Production harness and local-first control plane for accountable AI software delivery
Project description
Orcho โ Production Harness for Agentic Software Delivery
Orcho is a production harness and control plane for agentic software delivery.
Run one task. Watch Orcho plan, implement, reject false-ready work, repair it, and prove what is ready to deliver.
๐ 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. They remain the workers; Orcho owns the delivery protocol 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 registered runtimes such as Claude, a Claude-compatible GLM wrapper,
Codex, or Gemini to any phase via env vars, profiles, or config.local.json.
No engine fork is required for project-specific context. Orcho can run in
generic mode; add an optional plugin.py when the project needs explicit
architecture, file hints, prompts, or verification policy.
Install
orcho is the native CLI distribution โ it installs the core CLI and the
MCP server (orcho-mcp). The recommended path is pipx, which keeps the CLI
isolated from any project environment. Pick your OS below, or jump to the
OS-agnostic Docker / direct engine
paths.
Prerequisites on every OS: Python 3.12+, and for real (non---mock) runs at
least one code-agent CLI or compatible wrapper (claude, claude-glm,
codex, or gemini) available to Orcho.
pipx ensurepathupdatesPATHfor future shells, not the one you run it in. So afterensurepathyou must open a new terminal beforepipx(and the installedorcho) are onPATHโ this trips up first-time Windows setups in particular. Each block below marks exactly where to reopen the shell.
macOS
brew install pipx # skip if pipx is already installed
pipx ensurepath
# โป reopen your terminal so the installed `orcho` is on PATH:
pipx install orcho
orcho --help
Linux
python3 -m pip install --user pipx # or: sudo apt install pipx / sudo dnf install pipx
python3 -m pipx ensurepath
# โป reopen your terminal so `pipx` (and later `orcho`) are on PATH:
pipx install orcho
orcho --help
Windows
Native Windows is supported and exercised in CI. Install Python 3.12+ and Git for Windows first, then, in PowerShell:
py -m pip install --user pipx
py -m pipx ensurepath
# โป IMPORTANT: close this window and open a NEW PowerShell now โ `ensurepath`
# only updates PATH for new shells, so `pipx` is not found until you reopen.
pipx install orcho
orcho --help
Prefer a Unix shell? Install into WSL2 using the Linux steps above. Full Windows notes โ agent-CLI paths, WSL2 layout, and pipe-based output streaming โ are in docs/expert/05_windows.md.
Docker
OS-agnostic. Use Docker 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 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
OS-agnostic. Use pip when you intentionally want orcho-core in the active
virtualenv, CI image, devcontainer, or custom 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. The
orcho[mcp]/orcho[all] extras remain as no-op back-compat aliases.
For source-checkout setup, tests, and contribution workflow, see CONTRIBUTING.md.
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.
For an installed CLI, use the packaged demo bootstrap:
orcho demos bootstrap golden-api
orcho demos install golden-api is accepted as the same operation.
From an existing source checkout, run the shell bootstrap script directly:
examples/scripts/bootstrap_demo_1a.sh
Do not clone this repository next to a pipx install orcho only to obtain the
demo assets; that creates two Orcho copies on the machine and makes it too easy
to confuse the installed CLI with source-checkout code.
Then paste the printed orcho run ... --mock command and inspect:
orcho evidence --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.
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
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.5.0.tar.gz.
File metadata
- Download URL: orcho_core-0.5.0.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d386f2070138d4ecb1d65941e4b43833c69d415b27405c918f2f161f1bdad84
|
|
| MD5 |
f79d6acfc86490588f4dcc6d4ef61de2
|
|
| BLAKE2b-256 |
19aeea2274e19c6e09e5a2fcd4c5f9f7f8cbdc86f85f6ccb539a9798453a9f39
|
Provenance
The following attestation bundles were made for orcho_core-0.5.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.5.0.tar.gz -
Subject digest:
0d386f2070138d4ecb1d65941e4b43833c69d415b27405c918f2f161f1bdad84 - Sigstore transparency entry: 2225284622
- Sigstore integration time:
-
Permalink:
symphos-ai/orcho-core@adcc1ec79c4d6a0a4ab0696521ebe9811cd09427 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/symphos-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@adcc1ec79c4d6a0a4ab0696521ebe9811cd09427 -
Trigger Event:
push
-
Statement type:
File details
Details for the file orcho_core-0.5.0-py3-none-any.whl.
File metadata
- Download URL: orcho_core-0.5.0-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11e9b9649e2b62d36fd7aee74d0978294855dd09efe5cbc1e9a621255bf9e904
|
|
| MD5 |
73c3aea04c7bf68b88acf1e82939c17b
|
|
| BLAKE2b-256 |
97c52f16c916e2fe5cfc86aa8d7f2396480397362a64b1fc2b0be79ccee6d627
|
Provenance
The following attestation bundles were made for orcho_core-0.5.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.5.0-py3-none-any.whl -
Subject digest:
11e9b9649e2b62d36fd7aee74d0978294855dd09efe5cbc1e9a621255bf9e904 - Sigstore transparency entry: 2225285049
- Sigstore integration time:
-
Permalink:
symphos-ai/orcho-core@adcc1ec79c4d6a0a4ab0696521ebe9811cd09427 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/symphos-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@adcc1ec79c4d6a0a4ab0696521ebe9811cd09427 -
Trigger Event:
push
-
Statement type: