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. 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

Recommended once the packages are published:

pipx install orcho
orcho --help

Use python -m pip install orcho if you prefer a project-managed environment over pipx.

Optional control surfaces are available through extras:

pipx install 'orcho[mcp]'
pipx install 'orcho[all]'

Source checkout for development:

git clone git@github.com:symphos-ai/orcho-core.git ~/.local/share/orcho-core
cd ~/.local/share/orcho-core
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

Add to ~/.zshrc / ~/.bashrc:

export ORCHO_CORE="$HOME/.local/share/orcho-core"
orcho() { (source "$ORCHO_CORE/.venv/bin/activate" && "$ORCHO_CORE/.venv/bin/python" -m cli.orcho "$@"); }

Windows (PowerShell):

git clone git@github.com:symphos-ai/orcho-core.git "$env:LOCALAPPDATA\orcho-core"
cd "$env:LOCALAPPDATA\orcho-core"
python -m venv .venv; .\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"

Add to $PROFILE:

. "$env:LOCALAPPDATA\orcho-core\shell\orcho-env-base.ps1"

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

Ordered from general to specific — start at the top, go deeper as needed.

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 enginepipeline/engine/ is shared by both orchestrators
  • 3-level prompts — project → workspace → core (always overridable)
  • Discoverable extension pointsworkspace 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.1.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.1.0-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: orcho_core-0.1.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.12

File hashes

Hashes for orcho_core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c23dadadabfbad7bb7d6b997f178c65895ad6a2f573cbd2757bb6594b4131f36
MD5 9a97d7e26c62054776bed3120ca5465b
BLAKE2b-256 115eb3d6b5de70a0afa2559210446c80272a0ab9f6d8c0f12b4eb37f7155f4f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for orcho_core-0.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: orcho_core-0.1.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.12

File hashes

Hashes for orcho_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 586c522b121801c9e21aa1cfd3f5ae87ea3697dd3e1f7d3dcf87c8852178661a
MD5 94e26acf8ba1f531cd07c2a9500acbb0
BLAKE2b-256 f2e8eb15f48d7d5d10e58a02460bb74893cc41a8914aeaae0d449a25d0f9b95f

See more details on using hashes here.

Provenance

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