Back to the shelf
cockpit

Cockpit

A hosted, API-first project tracker for me and my coding agents, evolved from Mercury’s built-in kanban.

Shipped · live
2026
pythontursovercelpwaagentsrest-apimcp
01

Why

Mercury’s task board sat inside a custom agent-orchestration platform, with its own runtime and agent tooling. As portable AI coding tools got capable on their own, keeping that platform running just to have a task board stopped making sense.

So I rebuilt the tracking piece on its own: a hosted service with a tool-agnostic HTTP API that any agent runtime can call. It now holds my roadmaps, work, and decisions without depending on Mercury’s runtime.

02

How it’s built

I built the tracker and took it through a hosted production cutover: Python on Vercel, a canonical Turso database, GitHub owner sign-in, and scoped agent access. The API exposes phases, milestones, tasks, and first-class decisions, with revision checks and an append-only event history.

It is now my working portfolio tracker. Browser, CLI, and local stdio MCP clients use the hosted API; remote OAuth MCP provides read-only access. Vercel publishes Preview from staging and Production from main. The cutover included backup and restore verification, browser acceptance, and production read/write checks before the old local database was archived.

  • Phase to Milestone to Task hierarchy, with first-class decisions linked to the work they constrain
  • Revision-guarded edits and idempotent API mutations to protect concurrent agent work
  • Append-only, per-item audit event log plus a project-wide event feed
  • Decision workflow: lock with rationale, reopen with a reason, and create linked follow-up work
  • Installable hosted PWA with GitHub owner sign-in and scoped agent credentials
  • Self-describing OpenAPI contract so agents discover routes without re-deriving them from docs
  • Human notes and feedback kept separate from agent notes and feedback on every ticket
03

Demo

Demo on a throwaway board in hosted production, with my other project names blurred. An agent reads the board from the CLI, a stale write gets a 409, the retry with the current revision moves the card, then the ticket handoff, the roadmap and the iPad view.0:53 runtime
04

Screenshots