Route
who runs the work?
Direct: one agent in a terminal tab the user can watch and step into. Factory: a fixed pipeline — plan, build, verify, review — for larger builds.
Creative technologist, bridging creative and engineering. I design, build and consult on AI workflows and systems for studios, agencies, production companies and image‑led brands.










Whistle is a ticket board for AI coding agents — Claude Code, Codex or Pi — that runs on the user’s own computer. Each ticket says what to do and what will prove it is done. Whistle starts an agent on the ticket, checks the proof before the ticket can close, and keeps a record of everything the agent did.
It makes running several agents simple and organised. The work is written once, as tickets, and the board shows what each ticket is waiting on, what is running and what is done. The agents run in Herdr, a terminal multiplexer: one window that gives each agent its own terminal and shows which are working, blocked or idle. The user works from the tickets rather than from the terminals.
who runs the work?
Direct: one agent in a terminal tab the user can watch and step into. Factory: a fixed pipeline — plan, build, verify, review — for larger builds.
which agent?
Claude Code, Codex or Pi. Each project lists the agents it allows, so a ticket can't quietly run on a different one.
whose model answers?
Anthropic, OpenAI or OpenRouter. It follows from the route and the agent, and every run records it.
where does it run?
Direct runs on the user's computer, with the same access the user has. In Factory, the builder works in a Docker Sandbox: a sealed space with its own copy of the project.
Whistle checks all four before anything starts, and refuses any combination it doesn't allow. Only one agent works on a ticket at a time. The ticket closes when a person, or the supervisor agent, verifies the proof.

Every ticket lists what done means, one item at a time. Each item names the kind of proof it needs, and Whistle refuses proof of the wrong kind.

The supervisor agent is a coding agent the user messages from the board. It reads the board, writes tickets, and follows them through.


If the agent needs a decision, it stops and asks a question with numbered options. The board shows it under Needs you, and sends the answer back.
Every run keeps its brief, its transcript, the changes it made and its proof. What was asked for and what actually ran are recorded side by side.
The record is only ever added to, never changed. A value Whistle could not read is shown as unavailable, never as zero.

Much of Whistle was built through Whistle: its own changes were written as tickets and run through it.