Skip to main content

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

Project description

Orcho โ€” Multi-Agent Pipeline Engine

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

Orcho โ€” local-first 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 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 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.2.0.tar.gz (1.5 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.2.0-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

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

Hashes for orcho_core-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9ad8343138350ee49c05744747531f675f03482e2b2529c42da7095f2e96131c
MD5 d95736e9d176a293c6ef66c211d37580
BLAKE2b-256 a68757bc118492d90f74b31b9ee02d955959ad032fb194b1d3c5415da951ecd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for orcho_core-0.2.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.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

Hashes for orcho_core-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c48ab5b73984da4c552e28b15cd440eda2ad9294425136f6e7b8d81f133f00f
MD5 0f00a2228c1791c4cd2121083cd51421
BLAKE2b-256 c1f52972de193f6880b611bfd18586df559a780c3a393eb22958242bd89be40e

See more details on using hashes here.

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

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