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.
- 5 agent CLIs in one list
- 1st the oldest question, ranked by wait
- MIT runs on localhost, no account
Needs you 1
To review 1
Working 3
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
To review 1
Working 3
Idle 1
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.
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 / 4
Ask
The agent's raw terminal line becomes a card: the question in words, a button for each numbered choice.
- 2 / 4
Answer
One box. Send, and the wait stops counting. The agent goes back to work, then drops into To review.
- 3 / 4
Review
The real diff beside the list: the files, every hunk, the tests it ran.
- 4 / 4
Merge
On this computer, no GitHub needed, or as a pull request when
ghis there.
Needs you 0
To review 1
Working 2
Shipped today 3
Answered waited 0:23
Keep the rate limit in memory, or in Redis?
- Mapi/login.js+11 -0
- Aapi/rate-limit.js+32 -0
- Aapi/rate-limit.test.js+27 -0
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
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 need | Vendor inboxes GitHub Agent HQ, Codex app, Claude Code | Agent workbenches Conductor, Superset, Emdash | Terminals and tmux | Kipdeck |
|---|---|---|---|---|
| Every agent CLI in one list | Their platform's agents | The ones started in it | One pane at a time | Ranked by wait |
| Brings in an agent you already started | Their own sessions | Starts its own | Where you left it | kipdeck attach |
| Shows who is blocked on you, oldest first | Their own agents | One developer's | If you look | Top of the list |
| Answer the question in one box | In their app | In each agent's pane | Find the terminal | Every CLI |
| Review and merge before a PR exists | Mostly as a PR | Diff, then a PR | By hand | Or open one |
| Measures how long agents wait on a person | No | No | No | Per agent and model |
| Runs on your machine | Their cloud or app | Yes | Yes | Yes, 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-signedor 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.
- 10:41CCclaude-sonnetyouwaited 0:23a41f9c2
- 10:25Cxgpt-5-codexyouwaited 23:047be0d13
- 09:58Cucursoryouwaited 2:1203c9e6a
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.
Needs you 0
To review 0
Working 3
Shipped today 3
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
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 opsGitHub boards and queue
Issues, pull requests and a task queue that hands the next issue to a free agent.
--labs boardsVoice
Voice chat, screen sharing and dictation into any prompt box.
--labs voiceMeetings
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.
Opens an email to hello@kipdeck.com with three short questions. A person reads every one.