v0.10.0 — first public release
A local-first, config-driven router across OpenAI-compatible backends you own. TangleBrain
routes each task to a backend you've configured — a local model by default, with optional
authenticated CLIs and your own paid API keys as overflow — and keeps the whole roster in one
plain, editable YAML file. Adding or removing a backend is a config edit, not a code change.
Highlights
- Local-first routing — ships pointing at a free local model server; nothing leaves your
machine unless you configure a backend that does. - Config-driven roster — every routable backend is one entry in a plain YAML list,
auto-discovered from$TANGLEBRAIN_ROSTER→~/.config/tanglebrain/roster.yaml→ the packaged
example, so agit pullnever clobbers your config. - Frontier-first orchestration — drive authenticated CLI backends as orchestrators with
rotation and failover across them for resilience. - Local sub-task delegation — an orchestrator can offload bulk sub-tasks to the local backend
over an MCP tool, then review the results. - Optional classifier gate — a cheap local pre-filter can send trivial requests straight to the
local backend (off by default, fails safe). - Measurement — every routed task is logged with an estimated cloud-equivalent "spend avoided,"
rolled up bytanglebrain --stats. - Knob GUI — a localhost panel (
tanglebrain-gui) to view the roster, pricing, and rollup, edit
a focused set of config knobs, and run a prompt. - Gated paid-API tier — bring-your-own-key overflow, off by default behind two independent
switches.
Getting started
Requires Python ≥ 3.10.
make venv
.venv/bin/tanglebrain --local "Write a haiku about local inference."See the README to add orchestrator backends, ARCHITECTURE.md for
how the pieces fit, and DISCLAIMER.md for the opt-in / bring-your-own-key posture.
For contributors
CI runs the hermetic test suite on every push and PR. See CONTRIBUTING.md —
adding a backend is usually a config edit, a great first contribution.
MIT licensed.