The shared work board for humans and AI agents.
One source of truth for what is being worked on, by whom, right now — enforced by the server, not by discipline.
uvx orc-hestrator
MIT licensed · self-hosted · one SQLite file
The drift
The session ends, the context compacts. The agent no longer knows what is done, what is blocked, or what comes next.
An agent on another host is invisible to the first. Two machines once spent an hour on the same feature.
A task file has no rules. Nothing stops an agent from marking done work that never ran.
A hosted issue tracker is built for humans typing tickets; a memory server stores facts, not the structure of work. Orc stores the work itself — the rules live in the server.
What the server enforces
complete skips straight to done. Anything can be blocked, then resumed; done can be reopened back into the queue.
- dependencies
- An item cannot leave the queue while prerequisites are open. Cycles are detected; unblocking is configurable, not only at done.
- gates
- A YAML schema declares which notes a phase requires. Missing documentation blocks the transition — so done means something.
- presence
- Every session registers as host / agent / session, heartbeats, and is reaped when it dies.
- claims
- Before working, an agent claims the item or the resource. Who is on what, right now, has an answer.
Run it
uvx orc-hestrator
One SQLite file, no network. Any MCP client can register it; state defaults to ~/.orc/tasks.db.
uv sync --extra ui
MCP_TRANSPORT=streamable-http \
MCP_HOST=127.0.0.1 \
MCP_PORT=8005 \
ORC_DB=~/.local/share/orc/tasks.db \
uv run orc-hestrator
Every machine and agent points at the same server over HTTP, behind a TLS proxy. On first boot the admin is seeded from ORC_ADMIN_USER and ORC_ADMIN_PASSWORD.
Docs
The site presents. The repo explains.