All agent CLIs
Kilo Code in NeuroSquad

Kilo Code,with a canvas around it

Run as many Kilo CLI sessions as you need, each in its own card with the real Kilo terminal. A NeuroSquad plugin inside Kilo reports every turn and every question, arrows hand it browsers, terminals and notes, and its sessions and costs stay in view.

Official sitekilo.ai/cli
  • The real kilo, your own login
  • Nothing written to ~/.config/kilo
  • Free, for Windows 10 and 11
Lifecycle

It knows when Kilo is done — and when it’s asking

Kilo’s CLI is a fork of OpenCode and keeps its plugin system. Every Kilo card loads a NeuroSquad plugin that relays Kilo’s own events, so a quiet terminal is never mistaken for a finished turn.

session.status: busyKilo event
Working

The main session goes busy. The card’s icon spins, the Squad status card counts it as working, and the toast from its last question is taken down. Subagents don’t count as your turn.

permission.askedKilo event
Needs you

Kilo stops at “Permission required”, asks a question, blocks on a suggestion or waits for the network. The card pulses and the toast says what it wants — Kilo needs your permission: bash — rm -rf dist.

session.status: idleKilo event
Finished

The main session is idle again. The next queued prompt goes out, the journal gets the answer, and a toast says it’s done.

No false alarms in --auto

A permission request is reported only if it’s still open 700 ms later — in auto mode Kilo approves it within milliseconds, and the toast would be a lie.

One status everywhere

The card, the sidebar, the Squad status card, custom cards and the phone all read the same status.

Your config stays yours

The plugin and settings come in a per-card file named by KILO_CONFIG, which Kilo merges over your own configuration.

Watch it work

Three things you’ll do every day

Replicas of the app, played step by step. When Kilo asks for permission, the answer is yours.

Kilo fixes a failing test through a connected terminal, stops at “Permission required” before deleting a folder, and finishes — the journal writes itself.

Everything it gets

Everything Kilo Code can do in NeuroSquad

Because Kilo’s CLI is OpenCode renamed, a Kilo card is the OpenCode integration with Kilo’s names — at the same depth. Here is all of it, and in the last group, what NeuroSquad works around.

  • 01

    Knows its state

    A NeuroSquad plugin relays Kilo’s own events, so nothing is guessed.

  • Finished and waiting are different

    The plugin reports session.status busy and idle of the main session, and permission.asked, question.asked, a blocking suggestion.shown and session.network.asked as waiting on you.

    Docs: Finished and waiting are different
  • A notification that says what it needs

    The toast leads with what Kilo wants — Kilo needs your permission: bash — … or Kilo is asking: …. One per agent; a waiting one stays until you answer; a click flies to the card.

    Docs: A notification that says what it needs
  • Every card is its own session

    The plugin reports Kilo’s session id on every turn, and the next launch passes --session with it. A deleted session is noticed and the card starts fresh. “Restart session” gives it a clean one.

    Docs: Every card is its own session
  • The Squad status card

    Every AI agent of the workspace on one card, with Kilo’s model from its last request (before that, the default in your Kilo config) and the live time of its turn.

    Docs: The Squad status card
  • Custom cards can follow it

    Cards built with the Card SDK see the same statuses and turn events, and read Kilo’s last answer from its own database.

    Docs: Custom cards can follow it
  • 02

    Works through the canvas

    An arrow from the card is a set of tools. Draw it, and Kilo can use what is at the other end — on its next turn.

  • Arrows are tools — without a restart

    An arrow to a browser, terminal, note or another agent gives Kilo neurosquad_browser_*, terminal_*, note_* or agent_*. Kilo re-reads the list, so a new arrow works on its next turn.

    Docs: Arrows are tools — without a restart
  • It can add cards itself

    canvas_spawn_card lets it open a terminal, a browser, a note or a helper agent next to itself, joined by an arrow.

    Docs: It can add cards itself
  • Canvas mode

    The card’s config denies bash, webfetch and websearch. A deny removes the tool from Kilo altogether, and --auto only approves what isn’t denied — checked on the wire.

    Docs: Canvas mode
  • MCP servers from the registry

    Install a server from the official MCP Registry once, then give it to an agent with an arrow. Kilo asks before every call to it, and its secrets never leave NeuroSquad.

    Docs: MCP servers from the registry
  • Skills from skills.sh

    An arrow to a skill card gives Kilo skill_load with each skill and when to use it — live on the running card.

    Docs: Skills from skills.sh
  • 03

    Built for long runs

    Full contexts, limits and long queues are handled on the card.

  • Context meter and Compact

    The ring shows the last request against the model’s window from Kilo’s own models cache. Compact sends /compact.

    Docs: Context meter and Compact
  • Continues after a limit

    Kilo’s retries are relayed by the plugin; a usage limit is recognised by its message and “reset in 2h” is read, then “continue” goes out. Kilo Gateway credit errors aren’t retried by Kilo — they end the turn.

    Docs: Continues after a limit
  • Prompt queue

    Line up the next messages: each goes out when the main session is idle — never mid-thought. Daily prompts too.

    Docs: Prompt queue
  • Hand off to a fresh agent

    When a session is full, start a new agent beside it — Kilo or any other CLI — with a summary of the work typed in, ready for you to send.

    Docs: Hand off to a fresh agent
  • Journal

    Each finished answer is added to a connected note, read from Kilo’s own database.

    Docs: Journal
  • 04

    Works in a team

    Several Kilo agents — or a mix of CLIs — on one project without stepping on each other.

  • Isolated worktrees

    Give an agent its own git worktree, so parallel agents never edit the same files. A setup command and files to copy, like .env, prepare it before Kilo starts.

    Docs: Isolated worktrees
  • Add a reviewer

    One click starts an agent on a different CLI in the same worktree, with an arrow from the author and a prompt to review without editing anything.

    Docs: Add a reviewer
  • Dangerous mode, per card

    For a run you trust, a card starts Kilo with --auto: permissions that aren’t explicitly denied are approved. Canvas mode’s denies still hold.

    Docs: Dangerous mode, per card
  • Roles

    Reviewer, tester, researcher, architect, writer or your own: the role is typed in as a first prompt you can see and edit, and never re-sent behind your back.

    Docs: Roles
  • AGENTS.md, read natively

    Kilo reads AGENTS.md by itself, along with its .kilo rules — the file you already keep for your agents reaches it as is.

    Docs: AGENTS.md, read natively
  • 05

    Cost, control and access

    What it spends, what it may spend, which model it runs on, and how you reach it.

  • Usage and cost per card

    Read from Kilo’s own database: every request, with subagents folded into the session that started them. Checked to match SQL sums to the token. Free models show $0 — as Kilo recorded.

    Docs: Usage and cost per card
  • Budget brake

    A limit per workspace. Past it, each agent is stopped — Kilo with Escape twice — and automatic prompts stop. Raise the limit and it’s lifted; your own typing is never blocked.

    Docs: Budget brake
  • OpenRouter models

    Run a card on an OpenRouter model with NeuroSquad’s key. It goes only into that card’s environment, and the card’s config makes Kilo use it even over a key saved in Kilo itself.

    Docs: OpenRouter models
  • Dictation into the prompt

    Hold a hotkey and speak. Speech is recognised on your machine and typed into Kilo’s prompt.

    Docs: Dictation into the prompt
  • From your phone

    Scan a QR code and the whole canvas opens in the phone’s browser: read Kilo’s terminal, answer its question, send the next prompt.

    Docs: From your phone
  • 06

    What NeuroSquad works around

    Where Kilo’s defaults would get in a card’s way — and the two things it can’t do.

  • Never attached to a daemon

    By default Kilo attaches to a running kilo daemon — with its own environment, so a card would lose its config, plugin and --auto. Every card sets KILO_NO_DAEMON=1.

    Docs: Never attached to a daemon
  • Waits for Kilo to be ready

    Kilo shows its first frames, then stays silent for ~6 s while it loads MCP servers and plugins. A helper’s first prompt and every typed-in seed wait for the “Kilo CLI” title instead of the silence.

    Docs: Waits for Kilo to be ready
  • Escape twice, never Ctrl+C

    Ctrl+C with an empty prompt quits Kilo. The budget brake presses Escape twice — Kilo’s own interrupt — so the turn stops and the session lives.

    Docs: Escape twice, never Ctrl+C
  • Kilo picks its own session id

    Impossible: Kilo can’t start a session with an id given to it. So the card can’t name its session up front — it captures the id Kilo reports (and the one /exit prints) and resumes with that.

    Docs: Kilo picks its own session id
  • Kilo Gateway is Kilo’s

    Impossible by design: models through Kilo’s own gateway are called by Kilo’s servers under Kilo’s name. NeuroSquad credits itself on direct OpenRouter requests only.

    Docs: Kilo Gateway is Kilo’s
At a glance

Who’s waiting, and what it cost

Two cards that answer the questions you ask most when several Kilo sessions run at once.

The Squad status card

Every agent of the workspace with its status, model and turn time. The one waiting on you comes first, with what it asks. Tap a status to filter.

  • coupon-fixKilo Codekilo-auto/freeKilo needs your permission: bash — rm -rf distNeeds you2:34
  • api-migrationKilo Codeclaude-sonnet-4.6Move routes to the new clientWorking12:24
  • db-indexesKilo Codekilo-auto/freeAdd the missing indexesWorking6:42
  • docs-passKilo Codeclaude-sonnet-4.6Update the READMEFinished4 min. ago

Usage & cost

Read from Kilo’s own database on your disk and matched to the card by the sessions its plugin reported. The rows always add up to the total.

AgentTokensCost
coupon-fix482,615$0.00
api-migration903,318$2.14
docs-pass187,204$0.38
Total1,573,137$2.52
Exact to the picodollar; rounded only on screen.Each row includes the subagents its session started. Kilo’s free models cost $0.
Under the hood

The real Kilo CLI, plus a few settings

NeuroSquad starts the same Kilo you run yourself — the real `kilo.exe`, not through npm’s launcher — in a terminal in the card. This is everything it adds:

What NeuroSquad adds to the command
❯ kilo
KILO_CONFIG=<this card’s file>every launchNeuroSquad’s MCP servers, the plugin and permissions, merged over your config
KILO_NO_DAEMON=1every launchthe card runs its own Kilo, not a shared daemon
KILO_PURE=falseevery launchkeeps the plugin on even under a `kilo --pure` parent
--session <the ses_… id it reported>later launchesthe same conversation after a restart
"permission": { "bash": "deny", "webfetch": "deny", "websearch": "deny" }canvas modeits own shell and web off; the canvas’s cards instead
--autodangerous modeapprove everything that isn’t denied

Nothing written to ~/.config/kilo

The config, the plugin and the MCP entries are per-card files in NeuroSquad’s own data folder. The MCP token is read from the environment, never written in the file.

Your login, your plan

Kilo runs with the account and providers it already uses, Kilo Gateway included. Your NeuroSquad account is separate and never sees it.

Found where you installed it

kilo.exe first, then the one behind npm’s wrapper — the same AVX2 or baseline build Kilo’s own launcher would pick.

FAQ

Kilo Code in NeuroSquad, answered

Give Kilo Code a canvas

Free for Windows 10 and 11. Your code, your login and your costs stay on your machine.