Skip to main content

Local-first control plane for cross-agent AI software delivery

Project description

Orcho โ€” Production Harness for Agentic Software Delivery

PyPI Python 3.12+ License: Apache-2.0 CI DCO Release codecov OpenSSF Scorecard

Orcho is a production harness and control plane for agentic software delivery.

๐Ÿ“– Documentation: docs.orcho.dev

One orcho run end to end, sped up: the opening envelope, the pipeline map, the plan contract, plan validation, implement subtasks with attestations, review, final acceptance, the delivery commit, and the closing rollup

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 registered runtimes such as Claude, a Claude-compatible GLM wrapper, 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.


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 ensurepath updates PATH for future shells, not the one you run it in. So after ensurepath you must open a new terminal before pipx (and the installed orcho) are on PATH โ€” 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 init creates safe .orcho/ guides and templates without overwriting local edits
  • Resumable โ€” --resume continues 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

orcho_core-0.4.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orcho_core-0.4.0-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

Details for the file orcho_core-0.4.0.tar.gz.

File metadata

  • Download URL: orcho_core-0.4.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for orcho_core-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b8aac6b59476c70e42f7667c039efbd21db240a27458a52f966d736ebe2197de
MD5 9eab0d13d4d6085964113597680f085a
BLAKE2b-256 633665c1868bb7e683075f779e4f2cc219090ef88d70e5db0b62be42495f26c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for orcho_core-0.4.0.tar.gz:

Publisher: release.yml on symphos-ai/orcho-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orcho_core-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: orcho_core-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for orcho_core-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 225050aa06bf7e06e55d6dc69a13abb113f821f3ec85cf1bce67e3a50ed986e8
MD5 9298412f9db735643336af328dfaf265
BLAKE2b-256 62afa34b57f2094af937b7f91d0fd435748edce37d385fd224f64dc1b2f0e5ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for orcho_core-0.4.0-py3-none-any.whl:

Publisher: release.yml on symphos-ai/orcho-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page