1 waiting on you 0:07

01 Kipdeck The inbox for your AI coding agents.

Your agents are
waiting on you.

Every coding agent you run, in one place. See who is waiting on you and for how long, then answer, review and merge without leaving it.

Start agents from Kipdeck, each on its own branch, or bring one you already started with kipdeck attach.

Become a design partner
  • 5 agent CLIs in one list
  • 1st the oldest question, ranked by wait
  • MIT runs on localhost, no account
Kipdeck 1 waiting on you0:07 longest wait0 merged today

Needs you 1

To review 1

Working 3

CuWrite the README quickstartWrite: docs/quickstart.md2m
OCPort the settings page to the form kitEdit: web/settings.js4m
PiUpgrade the payment SDK to v5Bash: npm test6m
Demo data: scripted agents

02 Every vendor, one list

Five agent CLIs. Each on its own branch. One list, oldest wait first.

Claude Code, Codex and Cursor CLI side by side, with OpenCode and Pi in beta. A vendor's own inbox only sees its own agents. Here every agent you run is in one list, ranked by who has waited on you longest.

  • CCClaude Code
  • CxCodex
  • CuCursor CLI
  • OCOpenCode beta
  • PiPi beta

Needs you 2

CxFix the flaky checkout testoffice/fix-the-flaky-checkout-test-3f2awaiting 23m
OCPort the settings page to the form kitoffice/port-the-settings-page-9c1ewaiting 4m

To review 1

CCAdd rate limiting to /api/loginoffice/add-rate-limiting-to-api-8edcready 2m

Working 3

CuWrite the README quickstartoffice/write-the-readme-quick-51b07m
PiUpgrade the payment SDK to v5office/upgrade-the-payment-sdk-a7d412m
CCAdd an index to orders.created_atoffice/add-an-index-to-orders-c02f15m

Idle 1

Demo data: scripted agents

03 The problem

23 minutes of nothing.

An agent that asks at 10:02 and is answered at 10:25 did nothing for 23 minutes. Vendors race to make agents faster, and each vendor's dashboard sees only its own agents. None of them shows how long your agents, across every vendor, sit blocked on you. Kipdeck measures that.

Five agents across a workday. Each orange segment is time an agent spent waiting on a person. CCCxCuOCPi 9:0011:0013:0015:0017:00 all of it, end to end
2h 41m blocked today illustrative

04 The loop

Ask. Answer. Review. Merge.

The oldest agent waiting opens by itself. Its question is in plain words, with one reply box and a button per numbered choice, for every CLI. The finished diff sits beside the list. Merge on your machine without GitHub, or open a pull request.

  1. 1 / 4

    Ask

    The agent's raw terminal line becomes a card: the question in words, a button for each numbered choice.

  2. 2 / 4

    Answer

    One box. Send, and the wait stops counting. The agent goes back to work, then drops into To review.

  3. 3 / 4

    Review

    The real diff beside the list: the files, every hunk, the tests it ran.

  4. 4 / 4

    Merge

    On this computer, no GitHub needed, or as a pull request when gh is there.

Needs you 0

To review 1

CuWrite the README quickstart2 files, +38 -4

Working 2

CxFix the flaky checkout testBash: npx playwright test
PiUpgrade the payment SDK to v5Edit: pay/client.js

Shipped today 3

CCAdd rate limiting to /api/loginMerged, 3 fileswaited 0:23
CC Add rate limiting to /api/loginClaude Code / acme-shop / office/add-rate-limiting-to-api-8edc
TerminalChanges 3Log

Answered waited 0:23

Keep the rate limit in memory, or in Redis?

1 In memory2 Redis
In memory for nowSend
  • Mapi/login.js+11 -0
  • Aapi/rate-limit.js+32 -0
  • Aapi/rate-limit.test.js+27 -0
@@ -1,13 +1,24 @@ import { findUser, checkPassword, startSession } from './users.js'; import { rateLimit } from './rate-limit.js'; /** Five tries a minute for each address and each email. */ const tries = rateLimit({ max: 5, windowMs: 60_000 }); export async function login(req, res) { const { email, password } = req.body ?? {}; const wait = tries.take(req.ip) ?? tries.take(email); if (wait) { res.set('Retry-After', String(Math.ceil(wait / 1000))); return res.status(429).json({ error: 'Too many tries.' }); } const user = await findUser(email);

3 files, +70 -0, 1 committests 12/12

Demo data: scripted agents

Four clicks from a fresh start to the first merged change, 10.7 s (measured: headless Chromium, the scripted demo; how it was measured is in section 06).

05 Why not the tools you already have?

The layer across them.

Vendor inboxes see their own platform's agents. Conductor and Superset help one developer run more agents. We stop your team keeping them waiting: Kipdeck sits across every agent CLI, runs on your machine, and measures the wait.

What you needVendor inboxes GitHub Agent HQ, Codex app, Claude CodeAgent workbenches Conductor, Superset, EmdashTerminals and tmuxKipdeck
Every agent CLI in one listTheir platform's agentsThe ones started in itOne pane at a timeRanked by wait
Brings in an agent you already startedTheir own sessionsStarts its ownWhere you left itkipdeck attach
Shows who is blocked on you, oldest firstTheir own agentsOne developer'sIf you lookTop of the list
Answer the question in one boxIn their appIn each agent's paneFind the terminalEvery CLI
Review and merge before a PR existsMostly as a PRDiff, then a PRBy handOr open one
Measures how long agents wait on a personNoNoNoPer agent and model
Runs on your machineTheir cloud or appYesYesYes, MIT

06 Yours

One command. Your machine. A signed record.

It runs on your laptop or the team's dev box. Kipdeck has no servers of its own, so nothing comes to us: your agents talk only to their own model, and GitHub hears from it only when you open a pull request. Open source, MIT. Every merge and send-back is a signed record: the agent and model, who reviewed it, how long it waited.

  • Localhost by default. Only this computer can reach it until you pass --host.
  • Your network signs in. Off localhost, everyone needs the password or their own account. For HTTPS, add --self-signed or a reverse proxy.
  • A record only you can sign. Each merge is signed with an Ed25519 key made on your machine, and the key stays there.
  • 3.4sto the first agent at work
  • 10.7sto the first merged change
  • 4clicksfrom a fresh start to that merge

Measured: headless Chromium on an M-series Mac, the hero's demo command, a fresh home and repository per run, the scripted demo's stand-in agent. The script and its results are in the source repository.

  1. 10:41CCclaude-sonnetyouwaited 0:23a41f9c2
  2. 10:25Cxgpt-5-codexyouwaited 23:047be0d13
  3. 09:58Cucursoryouwaited 2:1203c9e6a
Your agents talk to their own model. Kipdeck has no servers to send to. The signed record stays on your machine. demo data merged today 3

07 Answer from anywhere

The couch counts.

The same inbox on your phone: the list alone, one tap target per row. Answer the question and merge the README without opening a laptop.

Start it with --host 0.0.0.0 and your phone on the same network signs in with the password. Add --self-signed for HTTPS, or reach it from outside through your own tunnel or the team's dev box.

Merged from your phoneWrite the README quickstart, 2 files

Needs you 0

To review 0

Working 3

CxFix the flaky checkout testAnswered. Back at work.Answer
CCUpgrade the payment SDKBash: npm test
PiPort the settings pageEdit: web/settings.js

Shipped today 3

CuWrite the README quickstartMerged from the couchMerge
Demo data

08 Numbers

The metric a team lead asks for.

Human wait time per agent and model, week over week, and the merge rate. The top bar shows who is waiting now and today's median. Numbers shows the week.

7min median wait, Sunday

Median human wait per day, Monday to Sunday: 23, 19, 17, 14, 12, 9 and 7 minutes. Illustrative. 231917141297 MonTueWedThuFriSatSun
Illustrative: a modelled week, not customer data. Merge rate 86%, same week.

09 Labs

What else is in the box.

Off by default, compiled and tested. The inbox comes first; each lab adds a view to it. An admin switches one on in Settings, or holds it on from the command line.

npm start -- --labs ,,,,
  • The Bridge

    A 3D starship bridge where agents sit at stations, with a mascot, sound and a lounge. For a team's wall screen.

    --labs bridge,ambience
  • Goals and timeline

    Mission control with goals, milestones and a timeline of what every agent did.

    --labs ops
  • GitHub boards and queue

    Issues, pull requests and a task queue that hands the next issue to a free agent.

    --labs boards
  • Voice

    Voice chat, screen sharing and dictation into any prompt box.

    --labs voice
  • Meetings

    A review bay and a planning whiteboard on any issue or pull request.

    --labs meetings
  • Testnet only

    Proof of Merge

    Pay an agent only when a person merges its work: test USDC held in escrow on Solana devnet and released on the merge, with a Base Sepolia attestation of who merged it. Its public ledger is the office's own /pom/ page.

    A real release on devnet: 2rPSWQv7...ZtUc Solana devnet

    --labs proof

10 Teams

Free for you. Paid for the team.

Free MIT

For one engineer, open source, forever.

  • The inbox across every agent CLI
  • Answer, review and merge, with or without GitHub
  • The signed record and Numbers
  • Your laptop or the team's dev box

Team planned

For teams running agents across several repositories.

  • A shared inbox everyone sees
  • Questions routed to whoever owns them
  • Single sign-on and an audit trail
  • Team wait-time reporting

Five design partners

Five seats, none taken yet: no users yet, honestly. We are looking for teams who run five or more agents a day, to shape the Team tier with us: the shared queue, the routing, the wait report.

Apply as a design partner

Opens an email to hello@kipdeck.com with three short questions. A person reads every one.

The 30 second film

The film is drawn frame by frame in code. Its rows are demo data; its chain values are real testnet artifacts.