shipcue

Cloud

Two Claude Code accounts, a Codex seat, a Mac mini or two, a terminal open for each. shipcue Cloud is the one queue they all take work from, so no two fix the same thing and you can see who is on what.

shipcue Cloud is in an invite-only beta, free while it lasts. Sign in, ask to join, or see the plans.

Who it is for

Founders and builders who run more coding agents than they can watch: several Claude Code or Codex subscriptions, a laptop plus a Mac mini or two, a terminal per agent. Each one is fast on its own. Together they collide: two terminals on the same bug, one agent's fix undoing another's, and you as the switchboard, copying reports into prompts and asking which window is on what.

Cloud is a thin coordination layer over all of them. It does not run your agents or hold your subscriptions: they keep running on your machines with your own logins, and each one takes its next job from the same queue.

How it keeps them apart

  • A token for every agent. Give each account and terminal its own agent token (claude@mini-1, codex@laptop), and the CueLog shows which one holds which report.
  • One report, one agent. Claims are all-or-nothing. A claim runs out when its agent stops checking in, so a terminal that crashed or hit its usage limit hands its report back to the queue.
  • A listener on every machine. Run one per Mac mini as a launchd agent. It checks the queue every 15 seconds, starts claude -p (or Codex, or any command) for each report, and needs no open port.
  • Work areas. A claim can say which areas, files, migration slot or branch it touches, and Cloud flags two claims that overlap before they meet at merge time.
  • Every project on one screen. What is open, claimed and in review in each app, which claims are stuck, and what nobody has looked at yet.
  • From PR to fixed without you. Connect GitHub and opening a PR puts the report in review; merging it marks it fixed.

Pricing

The plans for when the beta ends. Every plan has the hosted queue, the CueLog, the MCP tools, listeners, work areas, the GitHub loop and the digest. They differ in how many projects, agents and people they cover. Machines and terminals are never counted: an agent token runs wherever you start it.

Solo

$10/month

One builder with a couple of accounts.

  • 2 projects
  • 5 agent tokens
  • Just you
  • 10 hosted triages a day

Builder

$25/month

A founder running a small fleet of agents and Mac minis.

  • 10 projects
  • 25 agent tokens
  • 3 people
  • 50 hosted triages a day

Team

$50/month

A team sharing agents, machines and apps.

  • Unlimited projects
  • Unlimited agent tokens
  • 10 people
  • 200 hosted triages a day

Prices are monthly, in US dollars. Rather run it yourself? Self-hosting stays free: the button, the handler, the MCP server and the CueLog table are MIT-licensed, and the docs set them up in your own Postgres.

Questions

Does shipcue see my Claude or Codex logins? No. Your agents sign in to Claude and Codex on your machines as they do now. shipcue only gives each one an agent token for the queue.

Does it run my agents? Not your coding agents: the listener starts them on your machines. The one agent that runs on shipcue is the optional hosted triage agent, which reads a report and leaves a note, and never touches code.

Can I mix Claude Code, Codex and people? Yes. Anything with a token claims from the same queue over MCP or the HTTP API, and a teammate can claim by hand in the CueLog.

What is in every plan

  • A hosted queue. One project per app, with a key for the button. No table, no handler to run.
  • The CueLog. One table with every report in full: who filed it, screenshots, context, the app snapshot. Filter, sort, set priority, and see each report's history.
  • People and agents claim from the same table. Claim a report yourself, assign it to a teammate, or queue it for an agent. Each agent has its own token, so you can see which one holds what.
  • No double work. Claims are all-or-nothing. An agent's claim runs out if it stops checking in, and an open PR puts the report in review.
  • A team. Invite people as owners, members (work the queue) or viewers (see it).
  • Notes. People and agents leave notes on a report (the add_note MCP tool); the CueLog shows them in its history.

Set up

  1. Sign in and create a project.
  2. Add <ReportButton endpoint="…/api/cloud/p/<key>" reporter={user?.email} /> to your app (or run npx shipcue init --cloud <key> --write in a Next.js app), and list the sites it runs on. reporter is who is signed in on your site, so the CueLog shows who filed each report. shipcue cannot check it, so Cloud projects have no reporter portal (a "My reports" list on any device); the Yours list stays per browser.
  3. Connect an agent: Setup gives you the claude mcp add shipcue … line with that agent's token.
  4. Optional: under Close the loop with GitHub, turn on the project's webhook and add its URL and secret to your repository (Pull requests only), so opening a PR puts a report in review and merging it marks it Fixed.

Run a listener

Keep an agent working the queue on your own machine, like a daemon. In Setup, under Run a listener, pick an agent (or create one on the spot, and its token is filled in), choose the events (filed, assigned to it, claimed, released, closed, video) and what it runs for each one. By default that is:

claude -p "Use the shipcue MCP tools to claim the report in $SHIPCUE_REPORT_ID, fix it, open a PR and submit it for review"

Copy it as one command, as a macOS launchd agent (it keeps running, starts at login and logs to ~/Library/Logs/shipcue-listen-<project>.log) or as a Linux systemd --user unit. The listener checks the queue every 15 seconds and needs no open port. For instant delivery, point the project's webhook (Forward reports) at that machine instead, say a Tailscale Funnel address.

Hosted agent

Every project can turn on shipcue-agent, an agent that runs on shipcue, so there is nothing to install. Assign a report to it in the CueLog (or switch on Triage every new report) and it reads the report with OpenAI and leaves a note: a one-paragraph summary, the likely area, a suggested priority with a reason, steps to reproduce or what is missing, and a short plan for a coding agent. Then it puts the report back in the queue for a person or a coding agent to fix. It never changes code, never sees screenshots or who filed the report, and treats the report's words as data, not instructions. Each project gets a daily allowance of triages.

Its note comes with one-click suggestions: Apply priority, Apply area and, when it spots that the report repeats one of the project's open reports (it reads their headlines in the same call, nothing else about them), Merge into #id. Merge closes the duplicate as won't fix with a link to the original, notes both and counts the extra reporters on the original. Nothing changes until someone clicks, and each click is in the report's history under their name.

All projects

On two or more projects, Cloud opens on All projects: one row per project you are on, with what is open, claimed and in review, how long the oldest open report has been waiting, agent claims stuck past their lease, and how many open reports nobody has looked at yet (never claimed, assigned or noted). Nobody has looked lists those reports, oldest first, each opening in its project's CueLog. Add your app's shipcue endpoint in Setup → Settings and the row shows the version it runs (from its /capabilities), flagged when it is behind; an app that does not answer quickly shows "unknown". The CueLog's "Claimed by" filter has the same Nobody has looked.

Digest

Rather have one message than one per event? Under Digest, pick hourly or daily and send it to the project's Slack channel or the owner's email: what was filed, fixed (with the fix line and PR), reopened, claims stuck past their lease, how many are still open and the oldest waiting. Quiet periods send nothing, and it never includes who filed a report or the app snapshot.

What stays the same

The button, the API and the MCP tools are the same as the open source package, and the CueLog table is in it too (CueLogTable with the handler's team option). You can move between hosted and self-hosted at any time.

Later

  • Sending reports on to GitHub Issues and Linear
  • A hosted agent that opens the PR too