neurosquad-cli
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 13 GitHub stars
Code Warn
- fs module — File system access in .github/workflows/pack-smoke.yml
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
nsq — run several AI coding agents in your terminal and stop babysitting them. Open-source CLI by NeuroSquad (in development).
nsq — NeuroSquad in your terminal
Run several AI coding agents from one terminal.
nsq starts Claude Code, Codex, OpenCode or any command, keeps them running in a background
daemon, shows them as live terminals in one dashboard, and tells you when one of them is waiting for you,
including the question it is asking. You can answer from the dashboard.

0.1.0 is a preview. Commands, keys and config may still change before 1.0. Please report what breaks.
Install
Requires Node.js 22.13 or newer. No compiler needed: native parts ship
prebuilt for Windows (x64, arm64), macOS (Apple silicon, Intel) and Linux (x64, arm64).
npm install -g neurosquad # then run: nsq
npx neurosquad # or try it without installing
More ways (Homebrew, Scoop, install scripts) and uninstalling:
docs/guide/getting-started.md.
Quick start
cd ~/code/my-app
nsq run claude "fix the flaky checkout test" --worktree # an agent on its own branch
nsq run codex --name reviewer # a second agent
nsq run -- npm run dev # any command, as an agent
nsq # the dashboard
In the dashboard, select an agent with the arrows, press Enter to work in it full screen, and
Ctrl+] to go back to the grid. When an agent asks a permission question, press y, a or
n without opening it. Press q to close the dashboard — the agents keep running.
What it does
- Agents that outlive the window. A per-user daemon owns the terminals. Close the dashboard or
the terminal — the agents keep working.nsq downstops them; the nextnsq up(or justnsq)
brings them back on their own sessions — after a reboot too. - One dashboard. Workspaces and agents in a sidebar, the selected workspace as a grid of live
terminals; any agent opens full screen and goes back to the grid. - Exact status, with the question. Working / needs you / finished comes from each CLI's own
hooks, not from guessing at the screen. "Needs you" carries the harness's own text, e.g.
Claude wants to run: npm test. - Answer inline.
y/a/n(yes / always / no) on a permission prompt,ito interrupt,sto send a prompt — orSto send it when the current turn ends. - Notifications and sound. A native notification on Windows, macOS and Linux when an agent
needs you or finishes — one per agent, withdrawn when it works again. Over SSH or without a
desktop, the dashboard rings its own terminal instead (bell + OSC 9). - A git worktree per agent.
--worktreegives the agent its own checkout on branchnsq/<name>, so parallel agents don't trip over each other.nsq diff <agent>shows its
uncommitted changes. - Cost per agent.
nsq costreads tokens from each harness's own logs. A model without a known
price shows "no price", never $0. - Your config stays yours.
~/.claude,~/.codexandopencode.jsonare never written:
everything nsq needs lives in a per-agent layer (flags, environment, its own folder). - OpenRouter built in. One key, any model, for Claude Code, Codex and OpenCode.
- Voice dictation. Local speech recognition; the text is pasted into the agent, never sent.
- Phone (experimental). Pair a phone with a QR code and answer your agents from it.
- Terminal graphics. CLI logos over kitty / iTerm2 / sixel graphics, light
animations that switch off over SSH and on request, ASCII fallbacks.
Supported: Claude Code, Codex, OpenCode (1.x and 2.x), and any command
(nsq run -- <command>; it has no hooks, so it shows working / finished, never "needs you").
Want another CLI? Request it.
Keys
| Key | In the dashboard |
|---|---|
| ↑ ↓ ← → / h j k l, Tab | select an agent (Tab walks all workspaces) |
| Enter, double-click | open the agent full screen — every key goes to it; Ctrl+] back |
| y / a / n | answer a permission prompt: yes / always / no |
| s / S | send a prompt / send it when the current turn is done |
| c | start an agent (harness, name, prompt, folder, worktree, model…) |
| i · x · X | interrupt · stop · remove |
| r · R · d | restart (resumes the session) · rename · dangerous mode on/off |
| m | pick a model (OpenRouter's catalogue) |
| v | dictate into the agent (also a global hotkey) — pasted, never sent |
| p | phones: who is connected |
| [ ] · b · ? · q | page of tiles · sidebar · help · quit (agents keep running) |
The mouse works too: click selects, double-click opens, the wheel moves the selection.
Commands
nsq the dashboard (starts the daemon)
nsq run <claude|codex|opencode> [prompt]
[--name n] [--worktree] [--model id] [--provider openrouter] [--dangerous] [--attach]
nsq run [--name n] -- <command…> any command
nsq ls [--json] agents and their status
nsq attach <agent> full-screen terminal (Ctrl+] to detach)
nsq send <agent> "prompt" [--when-done]
nsq answer <agent> yes|always|no answer a permission prompt
nsq interrupt|stop|start|restart <agent>
nsq rm <agent> [--worktree] remove (and delete its worktree)
nsq set <agent> [--dangerous on|off] [--model id|none] [--provider openrouter|none]
nsq diff <agent> uncommitted changes (git diff HEAD) in its folder
nsq peek <agent> [-n 20] the last lines of its screen
nsq cost [--since 7d] [--json] what each agent spent
nsq openrouter set-key|clear-key|models [query]|status
nsq phone on [--lan] [--port n]|off|pair|rotate|status
answer agents from a phone
nsq login | logout | whoami the optional NeuroSquad account
nsq dictation setup|status|test <wav> [--model id]
nsq up | down start / stop the daemon (and its agents)
nsq doctor check harnesses, hooks, terminal
Everything you can do in the dashboard you can also script: nsq ls --json, nsq send,nsq answer.
OpenRouter
nsq openrouter set-key # stored in the OS keyring (or set OPENROUTER_API_KEY)
nsq run claude --provider openrouter --model anthropic/claude-sonnet-4.5
nsq openrouter models qwen # search the catalogue
The key only ever goes into the agent's environment — never argv, logs or files. Requests carry
NeuroSquad's OpenRouter app attribution headers. Without a key, an agent runs on its CLI's own
login. Details: docs/guide/openrouter.md.
Phone (experimental)
nsq phone on --lan # off by default; without --lan it listens on this machine only
nsq phone pair # prints the link and a QR code — scan it with the phone
From the phone you can see the agents and their screens, send a prompt, answer a permission
prompt and interrupt. A phone cannot start agents, change settings or type arbitrary keys. The
link carries the pairing token — treat it like a password; nsq phone rotate signs every phone
out. This
part is the newest and most likely to change: docs/guide/phone.md.
Voice dictation
Press v in the dashboard (or the global hotkey, Ctrl+Shift+Space / Cmd+Shift+Space by
default) and speak: the text is recognised on your machine and pasted into the agent's input.
It is never submitted — you press Enter. The speech model (~670 MB, checked by SHA-256) is
downloaded once — with nsq dictation setup, or when you first press v. Not available on
Windows arm64.
docs/guide/dictation.md.
Privacy
- No account required. Everything works without signing in.
- No telemetry. nsq does not report usage anywhere.
- Data lives in
~/.neurosquad-cli(move it withNSQ_HOME). Secrets (the OpenRouter key, the
optional account session) live in the OS keyring. - Network access is what you ask for: your agents' own traffic, OpenRouter if you use it, the
one-time dictation model download, and the NeuroSquad account if you
sign in.
Platforms
Windows 10/11 (x64, arm64), macOS (Apple silicon, Intel), Linux (x64, arm64), each checked in CI
from the packed npm package on Node 22 and 24. Works over SSH: the daemon runs wherever you runnsq, and notifications fall back to the terminal.
Documentation
Getting started ·
Dashboard and keys ·
Agents and harnesses ·
OpenRouter ·
Worktrees ·
Notifications ·
Phone ·
Dictation ·
Configuration ·
Troubleshooting ·
Uninstall
How it works inside: harness integrations, agent status.
nsq and the NeuroSquad desktop app
nsq is the open-source, terminal sibling of NeuroSquad, a desktop app where
agents are cards with live terminals on a canvas: 20+ CLIs, agents that talk to each other by
arrows, browser/notes/plugin cards, recording. Both share the same open-source integration core,@neurosquad/core. Use nsq when you live in the terminal, work over SSH or on
Linux servers, or want something small and open; use the desktop app when you want the canvas.
Contributing
Contributions are welcome — every change goes through a pull request. Read
CONTRIBUTING.md and the Code of Conduct. Security issues:
SECURITY.md. Questions and ideas:
Discussions or our
Discord. Releases: RELEASING.md.
Trademarks
Claude Code, Codex, OpenCode and their logos are trademarks of their respective owners. nsq shows
them only to identify which CLI an agent runs; this does not imply endorsement of or affiliation
with NeuroSquad. Prefer no third-party marks? Set NSQ_LOGOS=none for neutral badges.
License
MIT © 2026 Stanislav Gelman and NeuroSquad contributors
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found