Local-first control plane for cross-agent AI software delivery
Project description
Orcho โ Multi-Agent Pipeline Engine
Orcho โ local-first control plane for agentic software delivery.
๐ Documentation: docs.orcho.dev
One orcho run end to end (mock pipeline, sped up). Interactive version
with pause and scrub: docs.orcho.dev.
Use the coding agents you already trust; Orcho supervises the workflow around them: plan โ implementation โ review โ repair โ final acceptance.
It is built for work that needs more structure than a single interactive agent session:
- one task or one coordinated change across several repositories;
- explicit phase topology through profiles;
- human/agent review gates with resume and retry;
- durable run state: plans, diffs, findings, metrics, evidence;
- CLI, SDK, and MCP control surfaces.
Which model runs which phase is fully configurable.
Default: Claude (PLAN / BUILD / FIX) + Codex (REVIEW / QA).
Assign Claude, Codex, or Gemini to any phase via env vars, profiles,
or config.local.json.
Zero project-specific code โ all project context comes through plugin.py.
Try the golden mock demo
The fastest zero-API proof is the single-project CLI demo. It creates a disposable git-backed fixture, runs the full mock pipeline, reviews the diff, and writes evidence:
examples/scripts/bootstrap_demo_1a.sh
Then paste the printed orcho run ... --mock command and inspect:
orcho evidence --format md --workspace /tmp/orcho_demo_1a/workspace-orchestrator
orcho status --workspace /tmp/orcho_demo_1a/workspace-orchestrator
orcho diff <run-id> --stat --workspace /tmp/orcho_demo_1a/workspace-orchestrator
Full walkthrough: docs/demos/demo-1a-single-project-cli.md.
First time? Start here
โ docs/user/00_getting_started.md
The full path from zero to the first result: prerequisites โ install โ connect your project โ first run.
Install
Choose an install path:
| Path | Use when | Command |
|---|---|---|
Native CLI with pipx |
You want Orcho commands on your shell PATH without installing them into a project environment. |
pipx install orcho |
| Docker | You want an isolated container for trying Orcho, running CI-like checks, or exposing orcho-mcp over stdio. |
docker pull ghcr.io/symphos-ai/orcho |
| Direct package dependency | You intentionally want only the engine package in a virtualenv, CI image, devcontainer, or custom image. | python -m pip install orcho-core |
If pipx is missing, install it first. On macOS with Homebrew:
brew install pipx
pipx ensurepath
exec zsh -l
For Linux or Windows, use the official pipx installation guide.
Recommended CLI install
Use the orcho distribution when you want the public command set available
from your shell. pipx keeps the CLI isolated from the current project or
Python environment.
pipx install orcho
orcho --help
Since orcho 0.1.1 this installs the full set โ the core CLI and the MCP
server (orcho-mcp). The [mcp]/[all] extras remain as no-op back-compat
aliases.
Containerized install
Use Docker when you want to try Orcho without installing its Python package or agent CLIs on the host:
docker pull ghcr.io/symphos-ai/orcho
alias orcho='docker run --rm -it \
-v "$PWD":/workspace \
-v ~/.orcho-auth:/agent-auth:ro \
ghcr.io/symphos-ai/orcho orcho'
orcho run --project /workspace --task "Add input validation to the login endpoint."
The container image includes the core CLI and MCP server. See
orcho Docker docs
for credential bootstrap, MCP stdio setup, and custom project toolchains.
Direct engine dependency
Use pip when you intentionally want orcho-core in the active virtual
environment, CI image, devcontainer, or Docker image.
python -m pip install orcho-core
The orcho distribution depends on orcho-core; most CLI users should start
with orcho, while integrators can depend on orcho-core directly.
For source checkout setup, tests, and contribution workflow, see CONTRIBUTING.md.
How it works
Task
โ Claude [PLAN] writes the implementation plan
โ Codex [validate_plan] audits the plan
โ Claude [BUILD] implements the code
โ Codex [REVIEW] reviews the diff
โ Claude [FIX] fixes the findings
โ Codex [final_acceptance] final verdict
Core commands
# One project
orcho run --task "Add input validation to /api/login" --project ~/my-project
# Several projects at once
orcho cross --task "Add rate limiting: API + client" \
--projects api:~/api client:~/client
# No API calls (test)
orcho run --mock --task "..." --project ~/my-project
# Plan only (no code)
orcho run --profile planning --task "..." --project ~/my-project
# Resume an interrupted run
orcho run --resume 20260503_104135
# Status, history, metrics
orcho status | orcho history | orcho metrics
Connecting a project
Create your-project/.orcho/multiagent/plugin.py:
from pipeline.plugins import PluginConfig
plugin = PluginConfig(
name="My Project",
tech_stack="FastAPI + PostgreSQL",
architecture="REST API. Routes: app/routes/, Services: app/services/",
file_hints=["app/routes/", "app/services/", "tests/"],
build_prompt_extra="Run: pytest -x after changes.",
review_focus_extra="Check N+1 queries, missing validations.",
)
Without plugin.py, orcho runs in generic mode.
Package layout
orcho-core/
โโโ cli/ โ CLI facade (orcho run / cross / statusโฆ)
โโโ sdk/ โ typed headless API for tools and embedders
โโโ pipeline/
โ โโโ project_orchestrator.py โ single-project pipeline
โ โโโ cross_project/ โ cross-project planning, dispatch, gates
โ โโโ runtime/ โ profiles, steps, state, runner
โ โโโ prompts/ โ composable prompt parts and contracts
โ โโโ control/ โ handoff, resume, operator decisions
โ โโโ engine/ โ sessions, logging, worktrees, run diff
โ โโโ evidence/ โ evidence bundle and renderers
โ โโโ profiles/ โ profile loading and validation
โ โโโ sandbox/ โ command isolation backends
โ โโโ skills/ โ skill discovery and injection
โ โโโ plugins.py โ PluginConfig + load_plugin()
โ โโโ checkpoint.py โ SQLite store (--resume)
โโโ core/
โ โโโ _prompts/ โ core prompt templates
โ โโโ _config/ โ packaged defaults
โ โโโ contracts/ โ plan/review/release schemas
โ โโโ infra/ โ config, platform, binary discovery
โ โโโ observability/ โ logging, metrics, trace
โ โโโ io/ โ retry, git helpers, prompt loader
โ โโโ context/ โ codemap builder (optional)
โโโ agents/ โ runtimes, registry, stream parsers
โโโ tests/ โ unit, integration, acceptance, SDK contract tests
Documentation
The user-facing portal is docs.orcho.dev โ start there.
The in-repo docs below are the contributor & deep reference: the canonical engineering contracts the portal links into. Ordered from general to specific.
| Level | For whom | Link |
|---|---|---|
| User | You want to use the system | docs/user/ |
| Expert | You tune prompts, plugins, and models | docs/expert/ |
| Integrator | You author profiles, gates, and adapters | docs/guides/ |
| Reference | Exact schemas and registries | docs/reference/ |
| Creator | You develop the engine itself | docs/creator/ |
Full index: docs/README.md.
Testing
pytest tests/ -q
pytest tests/unit/ -v
pytest tests/integration/ -v
Tests must not call real models. Use MockAgentProvider for
pipeline-flow scenarios.
Key principles
- Zero hardcoding โ all project context comes through
plugin.py - DRY engine โ
pipeline/engine/is shared by both orchestrators - 3-level prompts โ project โ workspace โ core (always overridable)
- Discoverable extension points โ
workspace initcreates safe.orcho/guides and templates without overwriting local edits - Resumable โ
--resumecontinues from the last checkpoint - Cross-platform โ macOS, Linux, Windows (native + WSL2)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orcho_core-0.2.0.tar.gz.
File metadata
- Download URL: orcho_core-0.2.0.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ad8343138350ee49c05744747531f675f03482e2b2529c42da7095f2e96131c
|
|
| MD5 |
d95736e9d176a293c6ef66c211d37580
|
|
| BLAKE2b-256 |
a68757bc118492d90f74b31b9ee02d955959ad032fb194b1d3c5415da951ecd2
|
Provenance
The following attestation bundles were made for orcho_core-0.2.0.tar.gz:
Publisher:
release.yml on symphos-ai/orcho-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orcho_core-0.2.0.tar.gz -
Subject digest:
9ad8343138350ee49c05744747531f675f03482e2b2529c42da7095f2e96131c - Sigstore transparency entry: 2073848420
- Sigstore integration time:
-
Permalink:
symphos-ai/orcho-core@ca9b9bf36ffec243f4289f34315050191fa419da -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/symphos-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca9b9bf36ffec243f4289f34315050191fa419da -
Trigger Event:
push
-
Statement type:
File details
Details for the file orcho_core-0.2.0-py3-none-any.whl.
File metadata
- Download URL: orcho_core-0.2.0-py3-none-any.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c48ab5b73984da4c552e28b15cd440eda2ad9294425136f6e7b8d81f133f00f
|
|
| MD5 |
0f00a2228c1791c4cd2121083cd51421
|
|
| BLAKE2b-256 |
c1f52972de193f6880b611bfd18586df559a780c3a393eb22958242bd89be40e
|
Provenance
The following attestation bundles were made for orcho_core-0.2.0-py3-none-any.whl:
Publisher:
release.yml on symphos-ai/orcho-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orcho_core-0.2.0-py3-none-any.whl -
Subject digest:
1c48ab5b73984da4c552e28b15cd440eda2ad9294425136f6e7b8d81f133f00f - Sigstore transparency entry: 2073848511
- Sigstore integration time:
-
Permalink:
symphos-ai/orcho-core@ca9b9bf36ffec243f4289f34315050191fa419da -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/symphos-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca9b9bf36ffec243f4289f34315050191fa419da -
Trigger Event:
push
-
Statement type: