Orc[hestrator]

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 Orc board: five columns — queue, working, review, done, blocked — with task cards
The board — queue, working, review, done, blocked (shown in Portuguese; English is canonical).

The drift

context reset

The session ends, the context compacts. The agent no longer knows what is done, what is blocked, or what comes next.

second machine

An agent on another host is invisible to the first. Two machines once spent an hour on the same feature.

gate skipped

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

queue start work start review start done

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

local — stdio
uvx orc-hestrator

One SQLite file, no network. Any MCP client can register it; state defaults to ~/.orc/tasks.db.

central — http
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.