# Bernstein > Forward-deployed engineering, with a coding swarm that fits in your `.sdd/`. Open-source multi-agent orchestration system for AI coding agents. Decomposes goals into parallel tasks, routes to optimal models, verifies via quality gates, merges results. 37 agent adapters, pluggable cloud sandboxes, cloud artifact sinks, progressive skill packs, Cloudflare cloud execution, deterministic Python scheduling. Apache 2.0. Built by Alex Chernysh. ## Forward-deployed engineering use case Forward-deployed engineering, on a swarm. Drop Bernstein into a client repo and you get a multi-agent crew with file-based state, per-agent credential scoping, and an HMAC-signed audit trail - running on whichever CLI agents the client already trusts. ## Docs - [Documentation](https://bernstein.readthedocs.io/): Full technical documentation - [Architecture](https://bernstein.readthedocs.io/en/latest/ARCHITECTURE/): System architecture and design - [Getting Started](https://bernstein.readthedocs.io/en/latest/GETTING_STARTED/): Installation and quickstart - [Adapter Guide](https://bernstein.readthedocs.io/en/latest/ADAPTER_GUIDE/): Supported agents and how to add your own - [API Reference](https://bernstein.readthedocs.io/en/latest/openapi-reference/): Task server REST API - [Cloudflare Guide](https://bernstein.readthedocs.io/en/latest/cloudflare-overview/): Cloud execution on Cloudflare Workers - [Configuration](https://bernstein.readthedocs.io/en/latest/CONFIG/): bernstein.yaml reference - [CHANGELOG](https://bernstein.readthedocs.io/en/latest/CHANGELOG/): Release notes per version ## Site pages - [Why Bernstein](https://bernstein.run/why-bernstein): Positioning vs LLM frameworks (CrewAI / LangGraph) and CLI orchestrators (Composio / emdash); the audit-grade wedge - [Cost calculator](https://bernstein.run/cost): Token-bill estimator for a Bernstein run with the contextual bandit router enabled; shows the per-model cost band against an unrouted baseline - [Adapter comparisons](https://bernstein.run/vs): Index of side-by-side feature matrices for every supported CLI agent (Aider, Claude Code, Codex, Cursor, Gemini, OpenAI Agents SDK, and more) - [CLI quickstart](https://bernstein.run/cli-quickstart): Minimal walkthrough. Installing pipx, running the first task, reading the audit log - [Ask the docs](https://bernstein.run/ask): DocsBot question surface backed by the readthedocs index plus blog content; cite-style answers with source chips - [Sponsors](https://bernstein.run/sponsors): Public sponsors wall (GitHub Sponsors / OpenCollective integrations) and the sponsorship tier breakdown - [Tools - agent.md bench](https://bernstein.run/tools/agent-md-bench): Free utility. Paste a project's agent file and get a token-cost estimate per supported model - [Tools - orchestra picker](https://bernstein.run/tools/orchestra): Free utility. Pick a Bernstein agent line-up for a stack and budget combination - [Benchmark - cli agent orchestrators](https://bernstein.run/benchmarks/cli-agent-orchestrators): Reproducible 10-task eval comparing Bernstein, Claude Squad, Conductor, Composio agent-orchestrator, and OpenCode. Operator-published scores; bernstein loses 4 of 10. Methodology and repro script linked. - [RSS feed](https://bernstein.run/rss.xml): Blog updates ## Resources - [GitHub](https://github.com/sipyourdrink-ltd/bernstein): Source code and issues - [PyPI](https://pypi.org/project/bernstein/): Python package - [npm](https://www.npmjs.com/package/bernstein-orchestrator): Node.js wrapper - [Full Technical Reference](https://bernstein.run/llms-full.txt): Comprehensive 600+ line reference for LLMs - [OpenAPI Spec](https://bernstein.run/openapi.yaml): REST API specification - [Agent Card (A2A)](https://bernstein.run/.well-known/agent-card.json): A2A protocol manifest - [MCP Server Card](https://bernstein.run/.well-known/mcp/server-card.json): MCP server discovery card - [RSS Feed](https://bernstein.run/rss.xml): Blog updates ## Primitives Canonical runnable examples for the four primitives an AI assistant needs to reason about Bernstein. ### Adapter (claude_code) ```yaml # .sdd/bernstein.yaml agents: - name: claude_code adapter: claude role: backend model: sonnet ``` ### plan.yaml ```yaml # plans/auth.yaml name: "Add authentication" stages: - name: api steps: - goal: "Implement /login endpoint" role: backend complexity: medium - name: tests depends_on: [api] steps: - goal: "Integration tests for /login" role: qa ``` Run with: `bernstein run plans/auth.yaml` ### MCP server ```bash # Expose Bernstein as an MCP server (stdio transport) bernstein mcp serve # Or HTTP transport on :8765 bernstein mcp serve --transport http --port 8765 ``` Exposed tools: `bernstein_run`, `bernstein_status`, `bernstein_tasks`, `bernstein_cost`, `bernstein_stop`. ### Worktree isolation ```bash # Default: every task gets its own git worktree under .worktrees/ bernstein -g "refactor auth module" # Bernstein creates .worktrees// for each agent ls .worktrees/ # task-001-backend-refactor-auth/ # task-002-qa-test-refactor/ ``` Each agent commits to its own branch; merge queue serializes results into the trunk after quality gates pass. ## Blog - [bernstein 2.x recap: lineage, ten trackers, A2A capability cards, and a CI that started fixing itself](https://bernstein.run/blog/v2-x-recap): Thirteen releases since the 1.10 recap consolidated into nine themes: a per-artefact transparency log with Ed25519 signatures, ten tracker adapters from Jira to Plane, A2A capability cards, MCP client and server hardening, a Playwright sandbox for UI agents, a secrets broker, supply-chain coverage with SBOM and OSSF Scorecard, calibrated cost guards, and a web UI plus PWA in the wheel. - [bernstein 2.0.0: a web UI ships in the wheel, CLI unchanged](https://bernstein.run/blog/v2-0-release): Bernstein 2.0 ships a FastAPI + React web UI inside the wheel. CLI and TUI surfaces are unchanged, configs do not move, agents and adapters keep working. - [bernstein 1.10.x recap: agents.md sync, a2a, cost guards](https://bernstein.run/blog/v1-10-x-recap): five point releases in five days: agents.md cross-cli sync, runtime cost guards, a2a v1.0 signed agent cards, four new cli adapters. - [Shipping the orchestrator onto someone else's box](https://bernstein.run/blog/orchestrator-on-someone-elses-box): On-prem deployment notes for Bernstein 1.10: cluster mTLS, signed lineage, air-gapped install, lethal-trifecta capability gate. Not an install guide. - [We orchestrate the orchestrators now: Composio + ralphex adapters](https://bernstein.run/blog/orchestrate-the-orchestrators): Bernstein adapters for Composio's @aoagents/ao and umputun/ralphex. Leaf-node delegation, not deep meta-orchestration: each runs as a single agent in a plan. - [A daemon that closes its own pull requests](https://bernstein.run/blog/autofix-daemon): How the Bernstein autofix daemon turns a red CI run on a Bernstein-opened PR into a fix commit. Capability gating and budget caps keep it from being a footgun. - [bernstein 1.9.0: ACP bridge, CI autofix daemon, keychain creds](https://bernstein.run/blog/v1-9-release): ACP bridge so Zed can dispatch tasks, a daemon that closes its own pull requests, OS keychain credentials, sandboxed preview server with a public URL. - [Four commands that take the glue out of multi-agent runs](https://bernstein.run/blog/operator-pack): Bernstein 1.8.14 ships pr, from-ticket, remote, hooks. The four shell snippets every multi-agent team ends up writing by hand, now built into the CLI. - [Four commands that turn the orchestrator into a service](https://bernstein.run/blog/operator-commands): 1.8.15 ships a chat bridge, mid-run approval, a tunnel wrapper, and a daemon installer. Less script you sit next to, more thing you install once. - [The install we should have shipped at launch](https://bernstein.run/blog/frictionless-install): Three months after launch Bernstein got a real curl | sh one-liner. It only happened because a community contributor picked up the issue we kept deferring. - [orchestration primitive vs desktop ade: pick the right layer](https://bernstein.run/blog/orchestrator-vs-desktop-ade): multi-agent coding split into two shapes: orchestration primitives (bernstein, workz) vs desktop ades (emdash, conductor). when to reach for each. - [getting started: first multi-agent claude code run in 5 min](https://bernstein.run/blog/getting-started): install bernstein, point it at claude code (or codex/gemini cli), run a goal in parallel, read the tui. five minutes if python 3.12 is ready. - [community spotlight: april 2026 bernstein contributors](https://bernstein.run/blog/community-spotlight-april-2026): first community spotlight. contributors who shaped bernstein's architecture decomposition, adapter list, windows support, cost-aware router. - [agents on cloudflare: workers, durable objects, r2, d1](https://bernstein.run/blog/cloudflare-cloud-execution): bernstein 1.8.4 cloudflare backend for ai coding agents: workers run agents, durable workflows handle multi-step tasks, r2 + d1 hold state. - [refactor a 4,000-line python file with 11 parallel ai agents](https://bernstein.run/blog/module-decomposition): 11 parallel ai coding agents split a 4,198-line python file into 22 sub-packages in three hours. how the decomposition pass actually ran. - [Picking a cheaper model when the task allows](https://bernstein.run/blog/cost-aware-routing): Bernstein's epsilon-greedy bandit picks a model per task. Internal runs cut roughly in half. Measure your own with bernstein cost. - [bernstein 1.0: open-source orchestrator for ai coding agents](https://bernstein.run/blog/introducing-bernstein): Orchestrate Claude Code, Codex, Gemini CLI + 40 other CLI coding agents in parallel git worktrees. Deterministic scheduler, HMAC-signed audit chain. ## Author - [Alex Chernysh](https://alexchernysh.com): Author of Bernstein, homepage and portfolio - [Alex on GitHub](https://github.com/chernistry): Source of Bernstein and other open-source projects - [Alex on X](https://x.com/alex_chernysh): @alex_chernysh - short notes and updates ## Related Projects - [HireEx](https://hireex.ai): Personal multi-agent AI workspace by the same author - career intelligence is the first vertical artefact ## Optional - [Changelog](https://bernstein.readthedocs.io/en/latest/CHANGELOG/): Version history - [Contributing](https://bernstein.readthedocs.io/en/latest/CONTRIBUTING/): How to contribute - [License](https://github.com/sipyourdrink-ltd/bernstein/blob/main/LICENSE): Apache 2.0