Install one extension.Uninstall the rest.

Parallel sub-agents, multi-model code review and a cleaner terminal for Pi. One install, works out of the box.

pi install npm:pi-firecode

Sub-agents under control.

Run them in parallel, pick a model per role, switch automatically on failure, step in any time.

  1. Run them in parallel

    One request, three researchers. Each works in its own session, at the same time.

  2. A model for every role

    Researchers run on a fast, cheap model; engineers get a stronger one. Set it once per role.

  3. Switch on failure

    When a provider fails, the sub-agent moves to the next model in its role's list and carries on in the same session.

  4. One table back

    The three reports come home to the commander, merged into the single table you asked for.

Dispatch 3 researchers in parallel to count the files, total lines and largest file of master/, review/ and tools/ each, then report back with just one summary table

researcher
→ claude-haiku-5-5/low
engineer
→ claude-sonnet-5-5/high
count-masterresearcherclaude-haiku-5-5/low
$ find master/ -type f | wc -l→ 21 files$ wc -l master/**/*→ 3,438 lines→ largest: worker-view.ts (516)✓ Done
count-reviewresearcherclaude-haiku-5-5/lowgpt-6-luna/medium
$ find review/ -type f | wc -l→ 18 files✕ anthropic · overloaded↻ switched → gpt-6-luna/medium$ wc -l review/**/*→ 4,177 lines→ largest: index.ts (879)✓ Done
count-toolsresearcherclaude-haiku-5-5/low
$ find tools/ -type f | wc -l→ 16 files$ wc -l tools/**/*→ 2,124 lines→ largest: group-view.ts (420)✓ Done
DirectoryFilesTotal linesLargest file
master/213,438worker-view.ts (516)
review/184,177index.ts (879)
tools/162,124group-view.ts (420)

The counts are the researchers' own and I didn't re-run them.

  • count-masterresearcher · Thinking
  • count-reviewresearcher · Thinking
  • count-toolsresearcher · Thinking

✓3 donecount-master · count-review · count-tools

WorkingWaiting for 3 workers✓Master

Step in any time

Every sub-agent sits above the input box. Click one to read its whole run and talk to it directly.

Also check what 0s and an empty string return

Your two cases

  • - parseDuration("0s") returns 0.
  • - parseDuration("") throws Invalid duration: . The same happens for anything that isn't a run of <digits><unit> pairs, such as "abc". It never returns NaN.
✓ Done 31sparse-duration· engineer

› Say something to this Worker, Enter to send

1/1 · anthropic/claude-sonnet-5-5/high · Tab switch Worker · click summary to expand · ctrl+o expand all · esc back

Fully automatic review and delivery.

Just tell the commander what you want. On important or hard tasks it starts an adversarial review on its own, and only hands you the result once it passes.

  1. Your models review in parallel

    Any number of them, adversarially. A single FAIL sends the whole round back.

  2. Every problem goes back to be fixed

    The agent fixes each finding at its root, and the next round starts on its own.

  3. Reviewed again until it passes

    What reaches you is code that meets the bar and does what you asked.

/fire-review

Round 1

  • Model 1ReviewingFAIL
  • Model 2ReviewingFAIL
  • Model 3ReviewingPASS

Review failedparseDuration("500ms") → 30000s, expected 0.5

↳ Round 1 · fixing

duration.js- /(\d+)(h|m|s|ms)/g+ /(\d+)(ms|h|m|s)/gduration.test.js+ parseDuration("500ms") === 0.5

Round 2

  • Model 1ReviewingPASS
  • Model 2ReviewingPASS
  • Model 3ReviewingPASS

Review passedafter 2 rounds

/fire-review
A real run: round 1 fails, the agent fixes it, round 2 passes

Stuck? An advisor decides

If rounds keep failing, an advisor model reads the findings and rules on what happens next:

Continue fixingNarrow scopeStop fixing

Or start it yourself

Run /fire-review any time.

Fixed and re‑reviewed code, not a list of problems

ToolReviewersWhat you get
FireCodeAny number of models, reviewing adversariallyFixed code that passed re‑review
Claude Code/code-reviewSeveral agents, Claude models onlyA findings list; --fix applies it as-is
Codex/reviewOne reviewer on your session's modelA findings list, no code changes
Open Code ReviewAlibabaOne model, file by fileA findings list to fix yourself
PR-Agent / QodoSpecialist agents, one modelComments and suggestions
multi-model-reviewPiSeveral model familiesOne combined verdict

An ultra-light core.

Built the Pi way: sub-agents add just two small tools, and review and the watcher add none.

FireCode2 tools926
omp2 tools3,140
Codex CLI5–6 tools4,766–9,378
pi-subagents2–3 tools4,703–23,182
Sub-agent tool definitions sent to the model on every request, in characters. Measured October 2026.

At its heaviest, pi-subagents costs 25× what FireCode does, on every request

Also in the box

/fire-watch
A cheap model keeps watch and speaks up only when work drifts
/preset
Switch model, thinking and tools in one go
/quota/tokens
Usage at a glance
CtrlR
Rename the session
CtrlShiftS
Toggle OpenAI Fast mode
/login
Works with Claude subscription login

One install.Works out of the box.

pi install npm:pi-firecode

Restart Pi (1.1.0+) and it's ready. The config is created on first launch.