{"id":"3adaba57-b08f-4675-aa63-c8b6ccbbb455","slug":"orchestrator-kit","kind":"mcp","name":"orchestrator-kit","summary":"Multi-agent orchestrator for Claude Code: define an AI organization in Git, run it as a Claude Code plugin with guardrails (tasks, evidence, approvals, budgets)","owner":"coderbuzz","repoUrl":"https://github.com/coderbuzz/orchestrator-kit","license":"Apache-2.0","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-10-13T04:43:50.000Z","addedAt":"2026-10-22T03:49:09.248Z","logoUrl":"https://avatars.githubusercontent.com/u/1284811?u=c2a29d182ffae9057a860d21633ffc34b8097489&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools"],"tags":["ai-agents","claude-code","claude-code-plugin","multi-agent","orchestrator"],"runtime":"python","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T12:03:21.961Z","sample":false,"url":"https://conduits.dev/tools/orchestrator-kit","language":"Python","transports":["stdio"],"install":{"pypi":"orchestrator-kit"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# orchestrator-kit\n\n**A multi-agent orchestrator for Claude Code.** You define an AI organization in Git (agents, skills, policies,\napprovals, budgets); the kit turns it into a Claude Code plugin. Your Claude Code session becomes the orchestrator: it\nplans the work, hands tasks to subagents (or to worker CLIs), and the kit's code checks every result before a task can\nclose.\n\nThere is no separate scheduler or agent loop. Claude Code already is the loop. The kit adds what a session alone\ncannot guarantee:\n\n- **Task lifecycle** with contracts: every task carries the project goal, inputs, budget and expected artifacts.\n- **Evidence checked by machine**: a task closes only when its artifacts pass the checks for their type (a git commit\n  exists, a URL answers, sources are cited, or a check you register).\n- **Approvals up the reporting chain**: levels 0-4 follow `reports_to`; level 4 and the human's own tools always ask\n  you. No agent approves its own work.\n- **Budgets**: per task and per project per day (notice at 80%, refusal at 100%), with a usage ledger per call.\n- **Exactly-once actions and an append-only audit log**, stored atomically in the project folder.\n- **Routing across harnesses**: tasks run as native Claude Code subagents, or are dispatched to another CLI\n  (`claude -p`, zh, agy, dsh) with a chosen model and effort, fallbacks and a circuit breaker.\n\n## What the plugin contains\n\n`orchestrator-kit plugin` generates a standard Claude Code plugin from your company repo:\n\n| Part | What it does |\n|---|---|\n| Orchestrator skill | tells the session how to run the company: plan, staff, delegate, verify, ask for approval |\n| One subagent per agent | its prompt, skills, policies in force, a read-only tool baseline plus the tools its capabilities need, and its model |\n| MCP server | the company's tools: `task_add`, `task_start`, `task_submit`, `task_close`, `dispatch`, approvals, project and staff tools |\n| `PreToolUse` hook | keeps project state behind the MCP tools and makes tools reserved to the human always ask |\n\nInstall it like any plugin (`claude plugin marketplace add`, `claude plugin install`) and talk to the orchestrator in a\nnormal Claude Code session.\n\n## Quick start\n\nRequires Python 3.11+, [uv](https://docs.astral.sh/uv/) and [Claude Code](https://claude.com/claude-code).\n\n```sh\nuv tool install git+https://github.com/coderbuzz/orchestrator-kit@v0.2.0\n\norchestrator-kit roles                                   # the role library: 15 roles in engineering, product, finance, marketing, sales, customer\norchestrator-kit new-company ~/acme --name acme --title \"Acme Labs\" --mission \"...\"\norchestrator-kit hire cto --pack ~/acme                  # copies the role and the skills, policies, capabilities and routing it needs; validates or rolls back\norchestrator-kit hire fullstack-developer --pack ~/acme  # reports to cto\norchestrator-kit org --pack ~/acme                       # org chart from reports_to / delegates_to\norchestrator-kit plugin --pack ~/acme                    # generate the Claude Code plugin\norchestrator-kit new-project ~/workspace/shop --pack ~/acme --budget 3 --goal \"Launch the MVP\" --roster cto,fullstack-developer\n\nclaude plugin marketplace add ~/acme && claude plugin install acme@acme\ncd ~/workspace/shop && claude                            # this session is the orchestrator\n```\n\n## Concepts\n\n| | Where | Notes |\n|---|---|---|\n| Company | a repo: `pack.yaml`, `agents/`, `skills/`, `policies/`, `tools/capabilities/`, `model-routing/`, `config/`, `protocols/artifacts/evidence-requirements.yaml` | one plugin per company; several companies = several repos |\n| Hire into the company | `orchestrator-kit hire <role>`: a reviewed change to the company repo | roles are **copied**, never inherited: a newer kit does not change a company's agents |\n| Project | `<workspace>/<project>/<project_file>`: name, goal, daily budget, **roster**, default AI | state in `<project>/<state_dir>/` (never committed) |\n| Hire into a project | the human's `<human_prefix>staff` tool (asks for confirmation) | tasks go only to agents on the roster; the orchestrator is always on it |\n| Goal ancestry | mission (company) > project goal > task | the goal is in every task contract |\n| Routing | `ai: {harness, provider, model, effort}` per task > skill > approved mapping > agent > default | model-policy fallbacks; breaker |\n| Profiling | `orchestrator-kit profile` (deterministic battery through the router, hard budget), then `match` | `match` only **proposes** agent-to-model mappings; a human approves each one |\n\n## Harnesses\n\n| Harness | Role |\n|---|---|\n| Claude Code | the orchestrator session and its native subagents; also a worker through `claude -p` |\n| zh (zcode), agy, dsh | optional workers through `dispatch`, for other providers or cheaper models |\n\nAdding a harness is a descriptor in `model-routing/providers/<name>.harness.yaml` plus a builder and parser in\n`orchestrator_kit/harness.py`.\n\n## Writing your own pack\n\nMost companies need no code: definitions in YAML and Markdown, validated by `orchestrator-kit validate`. A pack with its\nown behaviour subclasses `orchestrator_kit.runtime.Runtime` (hooks: `init_state`, `filter_extras`, `apply_result`,\n`record_outcome`, `action_gate`, `visible_state`, `workspace_key`, `subagent_name`; tables: `builtin_adapters`,\n`evidence_checks`), adds MCP tools through `orchestrator_kit.mcp.Server(tools=, handlers=)` and words its orchestrator\nskill with `orchestrator_kit.plugin.Generator`.\n\n[`examples/review-pipeline/`](examples/review-pipeline/) is a complete pack: a multi-agent code review where a review lead\nplans, security, bug and simplicity reviewers report findings that must quote a changed line of the diff, a verifier\nchecks them, and a human maintainer approves the PR comment.\n\n## Limits\n\n- The hook is a speed bump for an honest session, not a sandbox.\n- Native subagents are not metered by the kit; `dispatch` to a worker harness is.\n- No loop or scheduler: the orchestrator is a session. Use your harness's scheduled triggers for recurring work.\n- 0.x: a minor release may break (see [CHANGELOG.md](CHANGELOG.md)). Pin a tag.\n\n## Development\n\n```sh\nuv sync && uv run python -m pytest\n```\n\nTests use the role library as their company (`ORCHESTRATOR_KIT_PACK`) and `examples/review-pipeline` as a second pack.\nContributor rules are in [AGENTS.md](AGENTS.md).\n\n## License\n\n[Apache-2.0](LICENSE)\n"}