pi stays minimal.The canvas does the rest
pi has no MCP, no hooks and no permission popups — on purpose. NeuroSquad adds one extension, loaded the way pi is meant to be extended, and each pi card knows when it is working, waiting on you or finished, uses terminals, notes and other agents by arrow, and keeps its sessions and costs in view.
Official sitepi.dev- The real
piCLI, your own login - Nothing written to
~/.pi - Free, for Windows 10 and 11
It knows when pi is done — through pi’s own events
pi has no hook system; it has an extension API. The NeuroSquad extension listens to three of pi’s events and reports each turn to its card.
agent_startpi eventpi starts a turn. The card’s icon spins, the Squad status card counts it as working, and the last toast is taken down.
ui_prompt_startpi eventAn extension opened a dialog — your own permission gate, or NeuroSquad asking before a third-party tool. The card pulses and the toast shows the dialog’s title.
agent_settledpi eventNothing left to do: no retry, no compaction, no queued message. The next queued prompt goes out, and the context meter gets pi’s own numbers.
pi never asks — unless you want it to
Its own tools run without popups. A dialog from any extension, such as pi’s example permission gate, makes the card “needs you”.
“Finished” means settled
agent_settled fires only when pi has no retry, compaction or follow-up left, so a turn is never called done in the middle of a retry.
Click, and you’re there
A toast click switches to the workspace, flies the camera to that card and flashes it.
Three things you’ll do with pi
Replicas of the app, played step by step. When a dialog asks, the answer is yours.
pi fixes a failing test with its own tools, a permission-gate extension stops it before a delete, and the journal writes itself when the turn settles.
Everything pi can do in NeuroSquad
All of it comes from one extension file and pi’s own flags. Where NeuroSquad builds something pi does not have, the card says so.
- 01
Knows its state
pi’s own extension events report every turn, so nothing is guessed from a quiet terminal.
One extension, loaded by pi
Each card starts with
Docs: One extension, loaded by pi-e neurosquad-extension.js— the same file for every card, rewritten on each launch. Everything card-specific is in the environment; nothing secret is in the file or the arguments.Finished and waiting are different
Docs: Finished and waiting are differentagent_startmarks the card working,ui_prompt_start— waiting on you,agent_settled— finished. Answering the dialog (ui_prompt_end) marks it working again.A notification with the dialog’s words
The toast leads with the title of the dialog pi is showing — say,
Docs: A notification with the dialog’s words⚠️ Dangerous command: rm -rf dist. One per agent; a waiting one stays until you answer; a click flies to the card.Every card is its own session
Docs: Every card is its own session--session-idwith the card’s id on the first launch,--sessionafter./new,/resumeand/forkare followed, so a restart continues the session you were really in.The Squad status card
Every AI agent of the workspace on one card, with its model — from pi’s session log, or the default in pi’s own settings before the first turn.
Docs: The Squad status card
- 02
Works through the canvas
pi has no MCP client, so the extension is one. An arrow from the card is a set of tools.
- Built by NeuroSquad
Arrows are tools
The extension is a small MCP client: an arrow to a terminal, note, browser or agent gives pi
Docs: Arrows are toolsneurosquad_terminal_*,neurosquad_note_*and the rest as pi tools. - Built by NeuroSquad
New tools in the same turn
When an arrow appears, the extension re-lists the tools and switches the new ones on. A call that draws an arrow itself waits for that, so pi can use the new card right away.
Docs: New tools in the same turn It can add cards itself
Docs: It can add cards itselfcanvas_spawn_cardopens a terminal, a note, a browser or a helper — another pi with a first prompt — next to it, joined by an arrow.Canvas mode
pi starts with
Docs: Canvas mode--exclude-tools bash,powershell, so commands run in terminal cards you can watch. pi has no web tools of its own to take away.- Built by NeuroSquad
MCP servers, asked per call
Servers you installed from the MCP Registry reach pi through the extension. Before each call pi shows NeuroSquad’s dialog: Allow once, Allow for this session, or Deny.
Docs: MCP servers, asked per call
- 03
Built for long runs
Full contexts, failed turns and budgets are handled on the card.
Context meter
At the end of each turn pi reports its own count — tokens and the window of the model that ran — so the ring shows what pi compacts against.
Docs: Context meterContinues after a limit
pi retries on its own first. A turn that still fails reports its error and
Docs: Continues after a limitRetry-After; the card counts down to the reset and sends “continue”.Prompt queue
Line up the next messages: each goes out when pi has settled, never while a retry or a follow-up is still coming. Daily prompts too.
Docs: Prompt queueJournal and hand-off
The last answer is read from pi’s session file: into a connected note after each turn, into a fresh agent’s first prompt, back to a lead waiting in
Docs: Journal and hand-offagent_wait.
- 04
Works in a team
Several pi 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 prepare it before pi starts.
Docs: Isolated worktreesAdd a reviewer
One click starts an agent on a different CLI in the same worktree, with an arrow from pi and a prompt to review without editing anything.
Docs: Add a reviewer- Built by NeuroSquad
Skills from skills.sh
An arrow to a skill card gives pi
Docs: Skills from skills.shskill_load, with each skill and when to use it — through the same extension as every other tool. No stop at project trust
pi asks before it trusts a project’s own
Docs: No stop at project trust.pior.agents/skills. You already chose this folder, so the card passes--approve— for that run only; pi’s trust list is not written.No dangerous mode — none needed
pi never asks before running a tool, so a pi card always works the way dangerous mode works elsewhere. The switch is hidden rather than pretending to do something.
Docs: No dangerous mode — none needed
- 05
Cost, control and access
What it spends, what it may spend, which model it runs on, and how you reach it.
Exact usage and cost
Read from pi’s own session files, with the cost pi recorded. Every session the card entered is counted to it, and tools that ran models of their own are counted too.
Docs: Exact usage and costBudget brake
Past the workspace limit the card gets Escape — Ctrl+C would only clear pi’s editor, and a second one would quit it. The session is kept; automatic prompts stop until you raise the limit.
Docs: Budget brakeOpenRouter models
The extension registers its own provider with the card’s key, so a login you saved in pi can’t override it. The key lives only in that card’s environment.
Docs: OpenRouter modelsAttributed to NeuroSquad
On every OpenRouter request — your own pi login included — the extension replaces pi’s attribution headers with NeuroSquad’s.
Docs: Attributed to NeuroSquadFrom your phone
Scan a QR code and the whole canvas opens in the phone’s browser: read pi’s terminal, answer its dialog, send the next prompt.
Docs: From your phone
Who’s waiting, and what it cost
Two cards that answer the questions you ask most when several pi agents 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 its dialog’s title. Tap a status to filter.
coupon-fixPiclaude-sonnet-4-5⚠️ Dangerous command: rm -rf dist — Allow?Needs you3:51
api-migrationPiclaude-sonnet-4-5Move routes to the new clientWorking12:24
deps-auditPigpt-5-miniCheck outdated packagesWorking4:08
docs-passPigpt-5-miniUpdate the READMEFinished6 min. ago
Usage & cost
Read from pi’s session files on your disk, with the cost pi recorded for each request, and matched to the card by the sessions it reported.
| Agent | Tokens | Cost | ||
|---|---|---|---|---|
| coupon-fix | 1,108,442 | $2.68 | ||
| api-migration | 796,120 | $1.71 | ||
| docs-pass | 241,906 | $0.09 | ||
| Total | 103 | 2,146,468 | $4.48 |
The real pi, plus a few arguments
NeuroSquad starts the same pi you run yourself, in a real terminal in the card. This is everything it adds:
Nothing written to ~/.pi
Settings, logins, extensions and sessions of your own pi are left alone. The extension lives in NeuroSquad’s data folder.
No dangerous-mode flag
There is nothing to skip: pi never asks before a tool. A card on OpenRouter adds --model neurosquad-openrouter/<model>.
Interrupted with Escape
Escape stops a pi turn and keeps the process. The budget brake and every other stop use it; Ctrl+C would clear the editor or quit.
pi in NeuroSquad, answered
Give pi a canvas
Free for Windows 10 and 11. Your code, your login and your costs stay on your machine.