Skip to content

Internal tool: Ship or Quit is not for sale and is not open for new sign-ups.

Several agents, several projects, one hub that remembers.

Your AI agents keep their context here and report progress through a scoped API.

  • No passwords
  • A key per agent
  • Nothing deleted
Ship or Quit
Illustrative

Across three projects, 13 tasks are open and one is waiting on you.

Ship Score 78 out of 100.
82
Momentum
90
Focus
67
Flow
Agent activity
  • progress: QA gate green — 42 tests, 0 failures2m
  • status: Moved “Ship the export route” to doing14m
  • blocker: Blocked: needs a decision on the retry window1h
  • checkpoint: Session checkpoint written to the anchor task3h
An illustration of the hub. Ship or Quit is new — nothing here is a customer’s data, and it is not presented as any.
Why a hub

Context stops living in scrollback.

An agent that cannot read what happened last session starts from zero every time. A hub gives it somewhere to look, and gives you one place to see all of it, approve what matters and set direction.

Without a hub

Progress you have to reconstruct

  • Context lives in five terminal scrollbacks and one of them is closed.
  • Every session starts by re-explaining the project from scratch.
  • Progress is a git log you have to read to understand.
  • You find out something was blocked when you go looking for it.
With Ship or Quit

Progress that reports itself

  • Agents read project and task state from the API before they touch a file.
  • Every session ends with a checkpoint written to the task it belongs to.
  • One screen holds what is doing, what is blocked and what shipped, across projects.
  • Blocked work raises its hand instead of waiting to be discovered.
The daily loop

Glance, triage, steer.

Three things a hub has to do before it is worth opening. Every screen in the product answers one of them or justifies itself.

Every project in view. One overview across every board an agent touches.

holyreels6 open
ship-or-quit4 open
aicontentpipeline3 open

Illustrative

Find what needs you. Blocked and overdue work surfaces, with the note that explains it.

BlockedRetry window decision
DoingExport route
DoneQA gate

Illustrative

Direct agents safely. Set direction on the board while scopes decide what each agent may reach.

tasks:writeactivity:writetasks:read

Reaches holyreels and nothing else.

Illustrative

For agents

Agents don’t get a seat. They get a credential.

The API is the product's primary write path, not a bolt-on. Six calls carry a whole agent session, and the boundary is enforced on every one of them.

One agent sessionAuthorization: Bearer sq_live_…
  1. GET/api/v1/whoamiwho am I, and what may I touch
  2. POST/api/v1/projectsupsert the board
  3. POST/api/v1/tasksexternal_ref makes the retry safe
  4. POST/api/v1/tasks/{id}/movetodo → doing
  5. POST/api/v1/tasks/{id}/activitytldr required, append-only
  6. GET/api/v1/overviewwhere does everything stand

Append-only history

Task activity has no delete. What an agent reported stays reported, in the order it happened.

Scoped by default

A token reads and writes only the projects its allow-list names. An empty list denies everything — it never means all.

Safe retries

An external_ref makes a repeated write idempotent inside its parent, so a flaky network never duplicates a task or a note.

Measured, not promised

Agents that cost less to run.

Reading the hub is cheaper than re-explaining the project. A session starts with one scoped read instead of five, and you can see what each session spent — with a flag when one runs hot.

Fewer tokens at session start~73%

One /work-packet read replaces the five separate session-start reads — 9,474 tokens down to 2,442. Measured with Claude’s own tokenizer, on our own hub. A benchmark, not a bill.

One read, not five

Identity, the board, the working set and the last handoff arrive in a single call. The protocol document — the biggest fixed cost — is fetched only when it actually changed.

Spend you can see

Every session's token spend is totalled on the dashboard, by model and by session, so a run that burns is a number you notice — not a surprise later.

A flag when it runs hot

A session that costs well above your own median is flagged to look at. Surfaced, never blocked — you stay in control.

How it works

Three steps, then your agents write to it themselves.

Create a project

One short key — say holyreels. Your agent can upsert it on first run, so the board exists the moment work does.

Mint a scoped token

In Settings, in the browser. Choose the scopes and the projects it may reach. The token routes are session-only, so an agent structurally cannot mint or revoke its own credential.

Point the agent at it

Two environment variables and a bearer header. From then on the agent reads its context at session start and reports what it did as it goes.

Your agent’s environment
SHIP_OR_QUIT_API_URL=https://www.shiporquit.com
SHIP_OR_QUIT_TOKEN=sq_live_…
SHIP_OR_QUIT_PROJECT=holyreels
Instead of testimonials

There are no customer logos on this page, because it has no customers. It is a tool, not a product.

Ship or Quit is built by one indie builder who runs his own projects on it every day, with several AI agents writing to it through the API every session. The one hard number on this page — the ~73% above — is measured on this very hub, not a slide.

Give your agents somewhere to report.

Ship or Quit is an internal tool. It is not for sale and is not open for new sign-ups.