Skip to main content

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 bernstein

Apache-2.0. Deterministic Python scheduler.

Feature matrix

CapabilityClaude CodeBernstein
Install methodcurl -fsSL https://claude.ai/install.sh | sh (or brew install --cask claude-code)pipx install bernstein
LicenseAnthropic proprietaryApache-2.0
AuthenticationAnthropic API key or Claude Pro/Max subscriptionPer-agent credential scoping (no shared key)
Multi-agent orchestrationOne agent in a terminalClaude Code plus 41 other adapters in parallel worktrees
MCP supportYesYes
Parallel-safe in worktreesYesYes (designed around git worktrees)
HMAC-chained audit logNoYes (RFC 2104 SHA-256 chain in .sdd/)
Deterministic schedulerNot 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.

  1. 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]
  2. 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]
  3. 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]
  4. 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]
  5. 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]
  6. 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 nameclaude
Adapter classClaude Code
Source filesrc/bernstein/adapters/claude.py
Source file size679 lines, 28,901 bytes
Source SHA-256e8b3a81450b24c667a8514d96498389435dfd463465c846ce5f956bd95140ff3
Category bucketclaude-family
Upstream repoNot derivable from adapter source
Upstream homepagedocs.anthropic.com
Last verified upstream@anthropic-ai/claude-code 2.1.x on 2026-05-05
Operator-curated overlayYes

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.