Write a vision document. Run orc run. Walk away.
orc reads your high-level feature descriptions, breaks them into tasks, spawns AI coder agents, reviews the results, and merges passing work — all on a separate dev branch so you can keep working on main.
✨ Highlights
- Board-driven workflow — a YAML kanban board is the single source of truth; the orchestrator drives a plan → code → review → merge pipeline.
- Parallel coders — scale from 1 coder to many, each in its own git worktree, with configurable tool permissions.
- Git-native — every decision is a commit. The full audit trail lives in your repo.
- Sandboxed by default — agents run in
confinedmode with explicit tool allow-lists. Opt in toyolowhen you trust the environment. - Backend-agnostic — uses OpenAI-compatible LLM APIs (Gemini, OpenAI, GitHub Models).
- Telegram integration — optional real-time notifications and human-in-the-loop unblocking.
📦 Installation
pip install qorc
# or, with uv:
uv add qorc
Requires Python 3.13+.
🚀 Quick start
cd your-project/
orc bootstrap # scaffold .orc/ config directory
$EDITOR .env # fill in credentials (see below)
orc run # let the orchestra play
That's it. orc will plan tasks, write code, review changes, and merge passing work into your dev branch.
Key commands
| Command | What it does |
|---|---|
orc bootstrap |
Scaffold the .orc/ directory with roles, squads, and vision templates |
orc run |
Run the dispatch loop (plan → code → review → merge) |
orc run --maxloops 0 |
Loop until all visions are implemented |
orc run --squad broad |
Use a custom squad profile |
orc status |
Print current board state |
orc merge |
Rebase dev on main and fast-forward merge |
🏗️ How it works
orc is a workflow engine. On every cycle it reads the board (.orc/work/board.yaml) and drives a pipeline:
pending visions → plan (single LLM call → creates tasks)
open task, no branch → coder (full agentic loop in git worktree)
coder done → review (run tests + single LLM review)
review approved → merge (git merge, LLM for conflicts)
review rejected → coder (retry with feedback)
Only the coder is a full agent with creative autonomy. Planning, review, and merge are orchestrator operations — deterministic steps with targeted LLM calls. This eliminates the infinite-loop and instruction-reading failure modes of a multi-agent system.
Board tools are called in-process by the ToolExecutor. Each coder agent works in its own git worktree with role-appropriate tool permissions.
Work happens on a dev branch. You keep working on main. When you're ready, orc merge brings everything together (with automatic conflict resolution by a coder agent if needed).
Tip: configure the integration branch name via
orc-dev-branchin.orc/config.yaml. Tip: namespace all orc branches withorc-branch-prefix(e.g.orc→.orc/feat/0001-foo).
🗂️ Project layout after bootstrap
your-project/
.orc/
agents/ ← coder instructions (override bundled defaults)
squads/
default.yaml ← squad profile (coder count, model, permissions)
config.yaml ← project settings
justfile ← convenience recipes
vision/ ← your feature descriptions go here
work/
board.yaml ← kanban board (managed by orc)
.env.example ← credential template
Existing files are never overwritten unless --force is passed.
⚙️ Configuration
Credentials (.env)
Copy .env.example → .env and fill in:
GEMINI_API_TOKEN=... # Gemini API key (default provider)
# OPENAI_API_KEY=... # OpenAI API key (optional)
# GH_TOKEN=... # GitHub Models token (optional)
Environment variables
| Variable | Default | Description |
|---|---|---|
GEMINI_API_TOKEN |
— | Gemini API key. Required when using the default gemini provider. |
OPENAI_API_KEY |
— | OpenAI API key. Required when using the openai provider. |
GH_TOKEN |
— | GitHub token. Required when using the github provider. |
COLONY_TELEGRAM_TOKEN |
— | Telegram bot token for notifications. |
COLONY_TELEGRAM_CHAT_ID |
— | Telegram chat ID. Required when token is set. |
ORC_DIR |
.orc/ |
Override config directory path. |
ORC_LOG_LEVEL |
INFO |
DEBUG · INFO · WARNING · ERROR |
ORC_LOG_FORMAT |
console |
console or json |
ORC_LOG_FILE |
.orc/logs/orc.log |
Log file path. Empty string disables file logging. |
Config file (.orc/config.yaml)
| Key | Default | Description |
|---|---|---|
orc-dev-branch |
dev |
Integration branch name. |
orc-branch-prefix |
(empty) | Optional prefix for orc-owned branches. |
orc-worktree-base |
.orc/worktrees |
Base directory for git worktrees. |
🎻 Squad profiles
Squads define the composition and permissions of your agent team. They live in .orc/squads/{name}.yaml.
name: broad
description: High-throughput squad for large projects.
permissions:
mode: confined # "confined" (default) or "yolo"
allow_tools:
- "shell(just:*)"
deny_tools:
- "shell(git push:*)"
composition:
- role: planner
count: 1
model: claude-sonnet-4.6
- role: coder
count: 4
model: claude-sonnet-4.6
permissions:
allow_tools:
- "shell(npm:*)"
- "shell(cargo:*)"
- role: qa
count: 2
model: claude-sonnet-4.6
review-threshold: HIGH
timeout_minutes: 180
Permission modes
| Mode | Behaviour |
|---|---|
confined |
Agents may only use board tools, read, write, shell(git:*), plus explicit allow_tools. Default. |
yolo |
Unrestricted tool access. Use for trusted environments or debugging. |
QA review threshold
Controls which severity of issues causes QA to reject work back to coders:
| Threshold | Rejects on |
|---|---|
CRITICAL |
Critical failures only (most lenient) |
HIGH |
High-severity and above |
MID |
Medium-severity and above |
LOW |
Any issue (strictest, default) |
The planner count must always be
1. Scale throughput by adding coders and QA reviewers.
📱 Telegram notifications
Optionally monitor your agents in real time via Telegram. Set up a bot through @BotFather, add it to a group, and configure COLONY_TELEGRAM_TOKEN + COLONY_TELEGRAM_CHAT_ID.
Agents post structured status updates:
[coder-1](done) 2026-03-01T12:45:00Z: Implemented task 0002.
[qa-1](passed) 2026-03-01T13:00:00Z: No issues found.
[coder-2](blocked) 2026-03-01T14:00:00Z: Need clarification on auth flow…
🤝 Contributing
See CONTRIBUTING.md for the development workflow, commit conventions, and test-first policy.
git clone https://github.com/PietroPasotti/orc.git && cd orc
just install # deps + git hooks
just test # run the suite
📜 License
Metadata
Release files for qorc 0.2.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qorc-0.2.11.tar.gz | 4.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qorc-0.2.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.5 MB
Release files / qorc-0.2.11.tar.gz
| Download URL | qorc-0.2.11.tar.gz |
|---|---|
| Size | 4.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
97eb682329707a94d78a19a79434de545ad689ed06afdb790535377678e161e0
|
|
BLAKE2b-256 checksum How to use checksums |
b4973855ef039fb46f7aacb1b072d2890d0d7b8c4429bf4751537089a60e614b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.
Transparency logRelease files / qorc-0.2.11-py3-none-any.whl
| Download URL | qorc-0.2.11-py3-none-any.whl |
|---|---|
| Size | 143.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7e116e749e7f1a94dc5f75f8f12c3754a5f4523050da616d0269ae3333a3580
|
|
BLAKE2b-256 checksum How to use checksums |
ebd990999708fef84edbb3e806e8f2bafacdf1b2e8486bb7d7088b0f61235311
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.
Transparency log