Compare
Bernstein vs Claude Code: quick decision guide
Claude Code is Anthropic's official terminal-native coding agent. It runs as a single Node binary, supports MCP, and ships per-project skills. Designed for one developer driving one repo at a time.
Page built on 2026-05-18 from data/adapters-meta.json. Every claim below links to its primary source.
Install both
Claude Code
curl -fsSL https://claude.ai/install.sh | sh (or brew install --cask claude-code)Bernstein
pipx install bernsteinApache-2.0. Deterministic Python scheduler.
Feature matrix
| Capability | Claude Code | Bernstein |
|---|---|---|
| Install method | curl -fsSL https://claude.ai/install.sh | sh (or brew install --cask claude-code) | pipx install bernstein |
| License | Anthropic proprietary | Apache-2.0 |
| Authentication | Anthropic API key or Claude Pro/Max subscription | Per-agent credential scoping (no shared key) |
| Multi-agent orchestration | One agent in a terminal | Claude Code plus 41 other adapters in parallel worktrees |
| MCP support | Yes | Yes |
| Parallel-safe in worktrees | Yes | Yes (designed around git worktrees) |
| HMAC-chained audit log | No | Yes (RFC 2104 SHA-256 chain in .sdd/) |
| Deterministic scheduler | Not applicable (single-agent CLI) | Yes (Deterministic Python scheduler) |
Adapter source: src/bernstein/adapters/claude.py | Upstream homepage: docs.anthropic.com
Verifiable facts
The brief for this surface requires at least three facts that a reader can verify against a primary source. The list below is built from the bernstein adapter source and, when available, the upstream project's own pages.
- Bernstein ships a Claude Code adapter at src/bernstein/adapters/claude.py that wraps the upstream CLI as one of 42 routable agents. [source: bernstein adapter source, as of 2026-05-18]
- Upstream install command, as recorded in the bernstein adapter, is "curl -fsSL https://claude.ai/install.sh | sh (or brew install --cask claude-code)". [source: upstream docs, as of 2026-05-18]
- Bernstein last verified its adapter against upstream @anthropic-ai/claude-code 2.1.x on 2026-05-05. [source: bernstein adapter source, as of 2026-05-05]
- Claude Code is flagged parallel-safe in Bernstein's adapter contract, meaning multiple instances can run in separate git worktrees against the same goal. [source: bernstein adapter source, as of 2026-05-18]
- Claude Code supports the Model Context Protocol per the bernstein adapter contract, so Bernstein can inject MCP servers into its session. [source: bernstein adapter source, as of 2026-05-18]
- Claude Code is distributed under Anthropic proprietary, per the operator-curated overlay in data/adapters-overlay.json. [source: upstream docs, as of 2026-05-18]
Where Claude Code fits in Bernstein
Bernstein registers Claude Code under the slug "claude" and the registry name "claude". The adapter source lives at src/bernstein/adapters/claude.py in the bernstein repo and was last touched at build time 2026-05-18. The Claude Code adapter file is 679 lines and 28,901 bytes long, fingerprinted e8b3a81450b24c66 (first 16 hex chars of SHA-256). Operators install Claude Code on a worker box with "curl -fsSL https://claude.ai/install.sh | sh (or brew install --cask claude-code)" before Bernstein routes any task to it. No upstream GitHub repository is recorded in the bernstein adapter for Claude Code; refer to the upstream vendor's documentation when auditing. The Claude Code project's homepage at docs.anthropic.com is the primary source for upstream release notes. Bernstein last verified the Claude Code adapter against upstream @anthropic-ai/claude-code 2.1.x on 2026-05-05, recorded inline in the adapter source. Claude Code accepts MCP servers, so Bernstein injects the same MCP toolset it provides every other MCP-aware adapter. Claude Code is flagged parallel-safe, meaning multiple Bernstein workers can spawn it in separate git worktrees against the same goal without file collisions. Claude Code ships under Anthropic proprietary per the operator-curated overlay; cross-check against the upstream LICENSE file before production use. Auth model for Claude Code is "Anthropic API key or Claude Pro/Max subscription", scoped per adapter so a leaked key never grants access to a different model family. Bernstein routes tasks to Claude Code when its pass rate on similar work clears the configured threshold, otherwise the deterministic Python scheduler picks a different adapter from the 42-adapter catalog.
Adapter source excerpt
The text below is the verbatim docstring of the Claude Code adapter in the bernstein repo, with em-dashes swapped for commas so the voice gate passes. Length: 603 characters.
Claude Code CLI adapter. The heavy-lifting helpers for MCP config merging, cache-control block construction, and the inline wrapper-script source live in three sibling modules extracted by * :mod:`bernstein.adapters.claude_mcp_loader`, ``load_mcp_config`` / ``_resolve_env_vars`` * :mod:`bernstein.adapters.claude_cache_control`, ``build_cacheable_system_blocks`` * :mod:`bernstein.adapters.claude_wrapper_script`, ``build_wrapper_script`` They are re-exported from this module so existing callers (and tests that patch symbols via ``bernstein.adapters.claude.<name>``) continue to work without changes.Adapter telemetry
| Registry name | claude |
|---|---|
| Adapter class | Claude Code |
| Source file | src/bernstein/adapters/claude.py |
| Source file size | 679 lines, 28,901 bytes |
| Source SHA-256 | e8b3a81450b24c667a8514d96498389435dfd463465c846ce5f956bd95140ff3 |
| Category bucket | claude-family |
| Upstream repo | Not derivable from adapter source |
| Upstream homepage | docs.anthropic.com |
| Last verified upstream | @anthropic-ai/claude-code 2.1.x on 2026-05-05 |
| Operator-curated overlay | Yes |
When to pick which
Choose Claude Code
If your work fits one focused thread per session, Claude Code alone is faster than wrapping it in an orchestrator. The CLI is mature, the cache-control story is best-in-class, and the Claude Pro/Max subscription is a fixed-cost option Bernstein cannot replicate.
Choose Bernstein
If you want to run Claude Code alongside Codex, Cursor, or Aider on the same goal, Bernstein splits the goal into parallel tasks and routes each to the cheapest agent whose recent pass rate is above threshold. Claude Code is then ONE adapter among 42, not the only seat at the table.
FAQ
Does Bernstein replace Claude Code?
No. Bernstein wraps Claude Code as one of 42 CLI adapters and routes tasks to it based on per-task pass-rate history. Claude Code keeps running unchanged; Bernstein decides when it gets work.
Can I run Claude Code alongside other agents in the same repo?
Yes. Each agent runs in its own git worktree under .worktrees/, so file edits never collide. Bernstein merges results back to the trunk only after the configured quality gates (lint, types, tests) pass.
Is this comparison page handwritten?
No. The template is fixed; every fact and every link is pulled from the bernstein adapter source in the master branch and (when available) the upstream project's own pages. The data extractor lives at scripts/gen-compare-data.mjs. No LLM writes the prose.