Skip to main content

Agent Conductor ⚡

PyPI Python License

Run Codex CLI, OpenCode CLI and Claude Code simultaneously on the same project — frontend and backend in parallel, zero file conflicts.

pip install agent-conductor
agent-conductor "build a weather app: React frontend, FastAPI backend"

One command splits your goal into two independent workstreams, gives each agent its own isolated git worktree, runs both CLIs headlessly at the same time, and merges the work back.

🖥️ Web UI

pip install fastapi uvicorn
uvicorn webui:app --port 8600

Open http://localhost:8600 — type a goal, pick your agents, hit Run, watch both agents work live in the terminal panel.

Web UI

Real run (claude + opencode, parallel)

Conductor report

Merged output passed a live endpoint test: GET /api/quote → {"author": "Lao Tzu", "quote": "The journey of a thousand miles..."}

Install

npm (any OS, any folder — auto-creates its own Python venv):

npm install -g @anujmau/agent-conductor
agent-conductor "build a todo app: React frontend, FastAPI backend"

Requires Python 3.10+ on the machine. The npm package bundles the Python source, creates an isolated venv on install, and runs from YOUR current directory (.env and generated projects/ live in whatever folder you run it from).

pip (Python users):

pip install agent-conductor
agent-conductor "build a todo app: React frontend, FastAPI backend"

From source:

git clone https://github.com/a18-n03/agent-conductor
cd agent-conductor
pip install -e .
cp .env.example .env        # add ZEN_API_KEY (planner) + OMNIROUTE_API_KEY (codex via gateway)

Examples

# default: Codex + OpenCode
agent-conductor "build a todo app: React frontend, FastAPI backend"

# Codex (via OmniRoute, free) + ox-alpha (free) - the proven combo
agent-conductor "build a joke app: static HTML frontend, FastAPI backend" \
  --agents "codex@omniroute/auto,opencode@opencode/x-preview-f-free"

# Claude + OpenCode
agent-conductor "landing page + contact API" \
  --agents "claude@auto/best-coding,opencode@opencode/x-preview-f-free"

# custom project dir + timeout
agent-conductor "build a scraper + dashboard" --dir C:\dev\myproject --timeout 20

How it works

you: python agent-conductor "build a todo app: React frontend, FastAPI backend"
                          |
              [1] LLM PLANNER (splits goal into 2 isolated workstreams)
                          |
        ┌─────────────────┴──────────────────┐
        ▼                                    ▼
  [2] git worktree                    [2] git worktree
      .conductor/codex-…                  .conductor/opencode-…
        ▼                                    ▼
  [3] codex exec …                    [3] opencode run …  (or claude -p …)
      frontend/ (parallel)                backend/ (parallel)
        ▼                                    ▼
        └────────────► [4] MERGE ◄───────────┘
                          |
                  [5] REPORT (commits, timings, conflicts)
  • Isolation: each agent works in its own git worktree + branch → it physically cannot touch the other agent's files
  • Contract: the planner writes a shared interface contract (API endpoints/types) into both prompts so the two halves fit together
  • Headless: uses codex exec -C <dir> -s workspace-write, opencode run --dir <dir> and claude -p with per-agent model overrides
  • Merge: branches merged back to main automatically; conflicts are aborted and reported

Requirements

  • Python 3.10+
  • At least TWO of these CLIs installed and authenticated:
  • An OpenAI-compatible API key for the planner (default: OpenCode Zen — free)
  • Optional: OmniRoute (npm i -g omniroute) — free gateway so any of the CLIs run on free models

Model setup (tested working)

Agent spec Routes to Needs
codex your ChatGPT plan via Codex codex login
codex@omniroute/auto OmniRoute gateway → free models omniroute serve + OMNIROUTE_API_KEY in .env
opencode OpenCode default model opencode auth
opencode@opencode/x-preview-f-free ox-alpha (free) nothing
opencode@opencode/glm-5 GLM-5 via OpenCode Zen OpenCode Zen billing
claude Claude Code default (Anthropic plan or ANTHROPIC_MODEL) claude login / env
claude@auto/best-coding OmniRoute → free Claude routing ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN env

For the OmniRoute path, add this block once to ~/.codex/config.toml:

[model_providers.omniroute]
name = "OmniRoute"
base_url = "http://localhost:20128/v1"
wire_api = "responses"
env_key = "OMNIROUTE_API_KEY"

Usage

pip install -r requirements.txt
cp .env.example .env        # add ZEN_API_KEY (planner) + OMNIROUTE_API_KEY (codex via gateway)

# ox-alpha frontend + ox-alpha backend (two free instances)
python conductor.py "build a joke app: static HTML frontend, FastAPI backend" \
  --agents "opencode@opencode/x-preview-f-free,opencode@opencode/x-preview-f-free"

# Codex (via OmniRoute) frontend + ox-alpha backend
python conductor.py "build a joke app: static HTML frontend, FastAPI backend" \
  --agents "codex@omniroute/auto,opencode@opencode/x-preview-f-free"

# default: your Codex plan + OpenCode default
python conductor.py "build a todo app"

What you get

  CONDUCTOR REPORT
  [OK ] codex      frontend             done (6.2 min)
  [OK ] opencode   backend              done (4.8 min)
  [OK ] merge      conductor/codex-frontend      merged
  [OK ] merge      conductor/opencode-backend    merged

Full agent transcripts land in logs/ — every tool call both agents made.

Architecture

Module Role
src/planner.py LLM splits goal into 2 file-disjoint workstreams with an interface contract
src/worktrees.py git worktree + branch lifecycle, base commit handling
src/runners.py Parallel headless runners (threads), live logs, per-agent timeouts
src/merger.py Branch merging with conflict abort + final report

Notes & limits

  • Two agents is the sweet spot; more agents = more merge risk
  • Agents can't see each other mid-run — that's a feature (isolation), the interface contract in their prompts is what keeps the halves compatible
  • Conflicts are intentionally aborted, never auto-resolved — you decide

Proven result

Real run on this machine (2026-08-25): Codex (via OmniRoute, free models) built the frontend in 4.0 min while OpenCode (ox-alpha, free) built the backend in 0.7 min — in parallel, zero conflicts. Merged app passed a live endpoint test:

{"joke": "What does a cloud wear under its raincoat? Thunderwear."}

Built by Anuj Mhatre · BTech CSE (AI & ML)

Metadata

Release files for agent-conductor 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-conductor 0.3.2
File Size Uploaded Provenance
agent_conductor-0.3.2.tar.gz 14.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-conductor 0.3.2
File Interpreter ABI Platform
agent_conductor-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / agent_conductor-0.3.2.tar.gz

Download URL agent_conductor-0.3.2.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c984050c180a7eca11fadb1b1e39c4de1432ee41fe67c3786e60b261492e35c6
BLAKE2b-256 checksum
How to use checksums
41ce75b33c4211c5c4ebbac87c39eb01625173b290dd866c05a29e4b4557e639
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / agent_conductor-0.3.2-py3-none-any.whl

Download URL agent_conductor-0.3.2-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e8105c7fc35f61e9fa526af617dd778c48bd89ce27eeb55fbdb012e315bf77a
BLAKE2b-256 checksum
How to use checksums
063b132d9a5ec8593773ea37c5068f85f53216ea8c11dbfc065ac0d11784a494
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for agent-conductor 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page