LabscoMCP early access ↗
sipyourdrink-ltdMCP SERVER · OFFICIAL PROJECT

Bernstein

Run several CLI coding agents in parallel from your MCP client, each in its own git worktree behind merge gates, with a replay journal that lets you check the run afterwards.

by sipyourdrink-ltd ↗Reasoning Scaffolds & Agent Workflow Engines✓ Official

LABSCO SUMMARY

Replay yesterday's plan and get yesterday's task graph.

Keeping the LLM out of the coordination loop is what buys that. The consequence you can act on is the journal: when a run diverges, it names the exact step, instead of leaving you to re-run it and hope.

What it is

A deterministic orchestrator for CLI coding agents — Claude Code, Codex, Gemini CLI and 40+ more — exposed as MCP tools so any MCP client can drive multi-agent work. The scheduling itself is plain Python with no LLM in the coordination loop, so a run reproduces end to end.

What you get

  • Three tool tiers, cumulative, chosen with --mcp-tier or BERNSTEIN_MCP_TOOL_TIER, because every advertised tool costs context on every turn whether or not it is called
  • core — bernstein_run, bernstein_status and bernstein_run_status: start a run and observe it, at the smallest context cost
  • standard, the default — adds bernstein_approve, bernstein_complete, bernstein_cancel, bernstein_claim, bernstein_post_message, bernstein_post_artifact, bernstein_task_capsule, bernstein_shutdown_orchestrator and load_skill
  • all — adds the scenario bridge bernstein_scenario and bernstein_verify_lineage
  • Isolation by construction: each coding task gets its own git worktree behind merge gates, artifact-mode tasks get a working directory of their own, and the only shared state is a task backlog claimed atomically
  • Checkability after the fact: a replay journal of every run, an always-on lineage spine, and an opt-in HMAC-chained audit log, so non-determinism surfaces as a hash mismatch at the exact step rather than as a flaky re-run
  • One portable, Ed25519-signed run receipt binding the journal head and the lineage-spine head, verifiable offline from the file alone
  • Two operator surfaces reading the same task API — a terminal dashboard and a browser dashboard — so neither lags the other
  • bernstein mcp tools to audit exactly what each tier would advertise before you change the setting

Requirements

Python 3.12+. Install with uv tool install bernstein or pipx install bernstein, then bernstein init, bernstein doctor — which checks that a CLI agent is installed and authenticated — and you are running. pipx, pip, brew, dnf, npm and Docker are all covered, and an air-gapped wheelhouse install profile exists. An unknown tier value is rejected with an error rather than silently falling back, so a typo cannot quietly change the exposed surface. The project is described as beta and solo-maintained: minor versions may change interfaces, so pin the version for anything you depend on. Apache 2.0.

Setup effort

Follow the published steps — uv tool install bernstein