vitrinka.docs

The work queue

Annotations released from a board land on a work queue. These three commands are how a machine reads that queue and how an agent session holds it.

See what is open

Lists the open work items for the current scope — this repository and branch, unless you narrow it.

vitrinka work list

Hold the queue

watch monitors the queue and leases a scope. One live listener per scope: several sessions can watch at once, but each holds its own scope, and a lapsed lease reverts its in-flight items rather than stranding them.

vitrinka work watch --project myapp --branch main
FlagWhat it does
--projectWatch a project. Defaults to this repository.
--branchNarrow a project scope to one branch. Defaults to the current branch.
--boardWatch one board instead of a project scope.
--allEvery scope — the firehose; takes no exclusive lease.
--harnessThe harness this watch wakes, stamped on the lease: claude (default), codex, cursor, opencode, vscode or gemini.
--execHeadless resume: feed every work line to a claude or codex listening thread, with that harness's own auto-approve policy.
--onceA single lease-free probe. Exits 3 when the queue is idle.
--takeoverSteal an expired lease for this scope.
--keepaliveOpt-in seconds between model-waking keepalive lines while a viewer is present. Default 0 (disabled).
--quiet-graceSeconds to wait between diffs while the queue is non-empty. Default 5.

Host a harness

listen hosts Codex, Gemini CLI or OpenCode (or Claude Code, when you name it) over the Agent Client Protocol and feeds it this scope's board work: each item arrives in the live session as a prompt. It takes the same scope flags as watch.

vitrinka work listen --harness codex
vitrinka work listen --harness gemini --board acme-audit --auto

--auto answers every permission request with allow-always, for an unattended listener; without it you approve as usual.

You rarely run these by hand — /vitrinka:listen picks the rung: a background Monitor on watch in Claude Code, the listen host for Codex, Gemini CLI and OpenCode, else one scoped drain that ends on idle — listening. Arming on the same machine takes the scope over; a live lease on another machine is never displaced (exit 2).

Where the session stands

status is the session dashboard: the live board, the open work queue, and the listener lease.

vitrinka status --live
FlagWhat it does
--liveRepaint every few seconds on a terminal. Ctrl-C exits.
--projectProject name. Defaults to this repository.
--branchBranch. Defaults to the current one.
--rootCapture root. Default .vitrinka/screenshots.

On this page