All your agents. One terminal.You only step in when one needs you.
nsq runs Claude Code, Codex, OpenCode or any command side by side as a grid of live terminals, keeps them working after you close it, and calls you — with the question itself — the moment one is stuck. Go ahead, drive the one below.
- MIT licensed
- No account, no telemetry
- Windows, macOS, Linux, SSH
One npm package. One command.
nsq is the npm package neurosquad. Try it once with npx or install it for good, then type nsq: the dashboard opens and the daemon starts behind it.
Node.js 22.13 or newer · x64 and arm64 · no compiler, native parts ship prebuiltFull guide
- 01Try it, nothing to installRuns the latest version once.
npx neurosquad - 02Or install itPuts the
nsqcommand on your PATH.npm i -g neurosquad - 03Open the dashboardPress
cto start your first agent.nsq
brew install glmn-ai/neurosquad/neurosquad-clicurl -fsSL https://raw.githubusercontent.com/glmn-ai/neurosquad-cli/main/packaging/install/install.sh | shStop babysitting agents. Get called when one needs you.
Everything below is how nsq actually behaves. The numbers in the pictures are sample data.
It calls you. With the question.
Status comes from each CLI’s own hooks, not from squinting at the screen. When an agent waits, you get a notification that says what it wants — one per agent, withdrawn once it’s working again.
- Windows, macOS and Linux, natively
- Over SSH: the terminal’s bell and OSC 9
- On your phone through ntfy, if you want
Your CLIs. Any model.
Claude Code, Codex and OpenCode (1.x and 2.x) with full status from their hooks — on your own logins and subscriptions.
One key in the OS keyring, any model for any agent. Press m and search the catalogue.
llama.cpp, Ollama, LM Studio, vLLM, SGLang, Unsloth Studio or any OpenAI- or Anthropic-compatible API. nsq provider add tests it, then each CLI that can speak to it gets it. Press P to manage them.
Close the terminal. Nothing stops.
A small daemon owns the terminals. Quit the dashboard, lose the SSH session, close the laptop lid on the window — the agents keep going. nsq brings it all back; nsq up even resumes their sessions after a reboot.
A worktree per agent
--worktree gives an agent its own branch and checkout, so three agents can change one repo without stepping on each other. nsq diff shows what each one did.
What each agent cost
nsq cost reads the tokens from each CLI’s own logs. A model without a known price says “no price”. Never a fake $0.
Talk instead of typing
Press v and speak. Recognised on your machine, pasted into the agent — and never sent. You read it, you press Enter.
Answer from your phoneExperimental
Pair with a QR code and answer from the couch — or from anywhere with --online, over HTTPS through a Cloudflare tunnel. Off by default; a phone can answer, send a prompt and interrupt — not start agents, type raw keys or read files.
Your configs stay yours
nsq never writes ~/.claude, ~/.codex or opencode.json. Hooks, settings and keys go to each agent in its own layer: flags, environment, nsq’s own folder.
Not a mock-up: a recording.
This is nsq in a real terminal, recorded by its end-to-end test on macOS: real Claude Code, Codex and OpenCode, talking to a scripted test model so the run is the same every time.
nsq 0.1.0, recorded in CI. The agents’ answers come from the test model, which is why they are so boring.
A handful of keys does the whole job.
The mouse works too: click selects, double-click opens.
- # Start an agent on its own branch$ nsq run claude "fix the flaky test" --worktree
- # Run any command as an agent$ nsq run -- npm run dev
- # Agents and their status$ nsq ls --json
- # Answer a permission prompt$ nsq answer reviewer yes
- # Queue a prompt for the end of the turn$ nsq send api-fix "now add a test" --when-done
- # What each agent spent$ nsq cost --since 7d
Nine live terminals. One millisecond a frame.
Live terminals are grids of cells, so the dashboard draws cells — and sends the terminal only the ones that changed. We tried the alternatives first and measured.
One frame at most every ~33 ms, and only when something changed. Animations pause when an agent is open full screen or the terminal loses focus.
MIT. Read every line.
The CLI and the integration core it shares with the NeuroSquad desktop app are on GitHub under the MIT license. See exactly how each CLI is started, file an issue, send a pull request.
CLI names and logos are trademarks of their owners, shown only to say which CLI an agent runs.
~/.neurosquad-cli on your machine.Same idea, two places to work.
Both run the CLIs you already use and tell you when an agent needs you. Pick by where you spend your day.
- Runs wherever Node.js runs: Windows, macOS, Linux, a server over SSH
- Claude Code, Codex, OpenCode and any command
- Open source (MIT), no account, no telemetry
- A keyboard-first grid of live terminals
- 22 agent CLIs as cards with live terminals on a canvas
- Agents connected by arrows: tools, MCP servers, skills and plugins
- Notes, a browser, templates, workspace recording and remote access from your phone
- Windows and macOS, with a free NeuroSquad account
They share one integration core, so status works the same way in both.
Questions
What is nsq?
The open-source terminal version of NeuroSquad. It starts several AI coding CLIs, shows them as a grid of live terminals, reads their status from the CLIs’ own hooks, and calls you with the question when one of them needs you.
Is it really free? Do I need an account?
Yes, it is free and MIT licensed. No account is needed and nsq sends no telemetry. The agents run on your own CLI subscriptions and API keys.
Which CLIs does it support?
Claude Code, Codex and OpenCode (1.x and 2.x) with full status from their hooks. Any other command runs with nsq run -- <command>: it shows working while it prints and finished when it goes quiet, but it never claims to need you.
What happens when I close the terminal?
Nothing stops. The agents live in a background daemon; open nsq again and they are all there. nsq down stops the daemon and its agents, and nsq up brings them back, resuming their sessions.
Does it change my Claude Code or Codex settings?
No. nsq never writes your own configuration. Hooks and settings are passed per agent through flags, environment variables and files in nsq’s own folder.
Does it work over SSH and on Windows?
Yes. nsq runs in any terminal with Node.js 22.13 or newer: Windows (native, through ConPTY), macOS and Linux, x64 and arm64. Over SSH, notifications fall back to the terminal’s bell and its own notification codes.
How is the phone part secured?
It is off by default and experimental. nsq phone on listens on this machine only; --lan opens it to your local network, and --online to the internet through a Cloudflare quick tunnel (HTTPS only, an explicit opt-in with a warning, wrong tokens locked out, the address changes on every start). Pairing uses a token in the QR code, and nsq phone rotate cuts off every paired phone. A phone can answer, send a prompt and interrupt, but cannot start agents, type arbitrary keys or read files.
How does nsq update?
By itself, from version 0.2.0. Every six hours it asks the npm registry for the newest release (only the package’s public metadata, nothing about you), installs it in the background the way you installed nsq, and switches over when no agent is busy — only after the new version has started once in a test run, so a broken release leaves the old one running. The agents resume their sessions. nsq config set autoUpdate false or NSQ_NO_UPDATE=1 turns it off; nsq update does it by hand.
Can the agents run on my own models?
Yes. Besides OpenRouter, nsq provider add <name> --url <address> adds your own server — llama.cpp, Ollama, LM Studio, vLLM, SGLang, Unsloth Studio or any OpenAI- or Anthropic-compatible API. nsq tests it first and offers it to each CLI that can speak its API; then nsq run claude --provider <name> --model <id>, or P in the dashboard. A key, if the server needs one, stays in the OS keyring. nsq cannot know what your server charges, so its requests show “no price”, never $0.
Can I reach my agents away from home?
Yes, if you choose to. nsq phone on --online opens the phone page from anywhere through a Cloudflare quick tunnel: no account, nothing opened on your router, HTTPS. It is experimental, you turn it on explicitly each time, and anyone with the link and its token could control your agents, so treat it like a password. With a Cloudflare account you can keep one address with a named tunnel.
It is not 1.0 yet. How rough is it?
Every release is checked in CI on Windows, macOS and Linux from the packed npm package, but commands, keys and config may still change before 1.0. If something breaks, an issue on GitHub is the fastest way to get it fixed.
How does nsq relate to the NeuroSquad desktop app?
They share the integration core. The desktop app adds the canvas, cards, arrows between agents and many more CLIs; nsq keeps to the terminal. You can use both.
Start a squad in your terminal.
One command, two agents, and your attention back.
npx neurosquad