v0.1 preview · open source · MIT

BRAIN ORCHESTRA

A terminal coding assistant that routes, researchs and builds. Runtime provider switching, nine local tools, four autonomy modes — and a router that plans out loud without ever touching your files.

$ git clone https://github.com/brainfeatherai/BrainOrchestra-CLI.git
  • Go 1.26
  • Node ≥ 22.6
  • MIT
  • CI enforced
  • Zero telemetry
oo — signal · claude-opus-5 live session
OPEN ORCHESTRA
━━◆━━━━◆━━━━◆━━
claude-opus-5 · local
~/openorchestra
Describe the outcome. I’ll route, research, and build.
MANUAL claude-opus-5· local· ↑10.6k i11 ctrl+c interrupt
working 0s ⏎ send · ctrl+j newline · /help Brain Orchestra b48191b-dirty
scroll
OpenRouter◆ Anthropic◆ NVIDIA◆ OpenCode◆ claude-opus-5◆ qwen3◆ /model at runtime◆ capability-matched routing◆ AGENTS.md◆ read-only plan previews◆
0local tools
0autonomy modes
0node plan cap
0protocol request limit
0plan previews executed

[ what it does ]

Not another chat clone

A signal desk: specialists enter at the right moment, every action is gated, and the transcript stays readable six hours later.

Runtime model switching

/model swaps provider and model mid-conversation without losing the transcript. Eligibility policy hides models that cannot hold a conversation; /model all recovers.

Nine local tools

read_file, write_file, edit_file, delete_file, run_command, web_search, web_fetch, deep_research, remember — all executed by this process, none by a remote sandbox.

Approval gates that mean it

Every shell call is classified read / write / critical / catastrophic, and your operating mode decides which of those run without asking. Refusal happens at the call, not the catalogue.

Diffs before changes land

Writes and edits render as a coloured diff in the transcript. You review the actual rows, not a summary of intent.

Memory that ranks recall

remember stores one durable fact — a decision, a fix, your name — and recall is ranked by what you are doing right now, not by keyword luck.

The advisor notices first

Two failed turns on one model is a pattern, not noise. The advisor names the cause and points at a model that is not struggling.

Adaptive themes

Every colour in signal is a light/dark pair, so a white terminal is not an edge case. Palettes are fourteen named colours, not forty hard-coded styles.

AGENTS.md rules, unchanged

The same convention Codex, Cursor, Aider and Claude Code use. Personal rules concatenate over project rules, capped at 32 KiB, read once per launch.

Hardened egress

web_fetch resolves and blocks private, loopback, link-local and metadata addresses in the dialer, per redirect hop — closing the DNS-rebinding window a hostname check leaves open.

read the security notes

[ autonomy ]

Four modes, one key

Shift+Tab cycles the cycle. A mode is a policy about when to interrupt you — never a claim about what the tools can do.

manual mode

[ the pass ]

Describe → route → review

  1. 01

    You describe the outcome

    No syntax, no scaffolding. /plan add rate limiting or a sentence — the transcript keeps the intent in your own words, marked in amber.

  2. 02

    The router triages

    The TypeScript half normalises the catalog, applies conversational eligibility, triages the prompt and decomposes it into a validated DAG — capped at 12 nodes, cycles refused.

  3. 03

    Models get bound to requirements

    A pure, explainable pipeline matches category and budget to a model: code generation here, long-context summarisation there. Never redundant, always specialised.

  4. 04

    The preview runs read-only

    Triage, nodes, dependency waves, bindings, token estimates, warnings — rendered in the transcript. It never executes a tool or invokes a shell. /plan run has its own gate.

  5. 05

    You approve, it builds

    Edits render as diffs, shell calls wait on the gate your mode allows, and the session review at the end turns what happened into lessons that outlive the model’s memory.

[ orch · the optional router ]

Specialisation, not redundancy

One subprocess, one bounded JSON request, versioned protocol. The router is optional: without it, chat and model selection keep working exactly as before.

  • Normalises any model catalog into one shape
  • Conversational eligibility policy, versioned
  • Triage → decompose → bind → estimate, explainably
  • Offline, deterministic routing-efficiency benchmark
  • 1 MiB request cap, method-specific response caps
  • Only an allowlisted environment reaches the child
protocol · openorchestra.router
$ printf '{"protocol":"openorchestra.router",
"version":1,"id":"demo","method":"hello"}' \
  | node src/cli.ts protocol

✓ {"ok":true,"result":{"version":1}}
plan previewread-only
wave 1 · 3 nodes wave 2 · 2 nodes bound · mid budget

A preview is a turn like any other — stamped with the same identity as an agent update, and it modifies nothing.

[ two halves ]

Go on one side, TypeScript on the other

They talk over a versioned subprocess protocol rather than a shared library, so each builds and tests on its own toolchain — and neither can break the other in CI.

Go

The TUI

  • cmd/openorchestra/main.go
  • internal/agent · provider · tools · ui
  • internal/theme · memory · session
  • internal/router — protocol client
  • internal/diff · shell · paths

Agent loop, providers, tools, TUI. make ci runs fmt, vet, staticcheck and the race detector.

TS

The router

  • router/src/planner.ts
  • router/src/binder.ts · catalog.ts
  • router/src/plan.ts — DAG schema
  • router/src/cli.ts → orch
  • router/test · benchmark · docs

A self-contained npm package. npm test and npm run typecheck never touch the Go build.

“Planning is read-only: it never executes a planned tool or invokes a shell.”
router/README.md

[ coming soon ]

Be in the first orchestra

The preview build is almost ready. Drop your email and you will get the install command, the changelog, and an invite to the private feedback channel.

00days
00hours
00mins
00secs

Preview opens 1 December 2026

No spam. One launch email, then only what you ask for.

  • Early install command before public launch
  • Changelog for the Go TUI and the TS router
  • Direct line to the maintainers

[ ship it ]

Describe the outcome.

$ git clone https://github.com/brainfeatherai/BrainOrchestra-CLI.git git clone https://github.com/brainfeatherai/BrainOrchestra-CLI.git