YOUR AGENTS. IN FOCUS.
Every agent.
One clear
picture.
A live dashboard for Claude Code and Codex. See the work unfold. Know which Claude session needs you next.
npx ccdeck
Open source · Runs on your machine
Explore the deckIllustrated session · Waiting status is Claude Code only.
One task. A whole team of agents.
- Bashterraform plan
- Editkeys.tf
- Bashterraform apply
-
livereviewer15m subagent Sonnet 5 6 tools 1 in-flight
- Readlimit.ts
- Grep"429"
- Readlimit.test.tsrunning
-
donemigrator1s subagent Sonnet 5 2 tools
-
donedocs1s subagent Sonnet 5 2 tools
-
donegeneral-purpose2s subagent Sonnet 5 3 tools
Select any node on the canvas. This panel is drawn for the page; ccdeck shows the same facts on the node and its tool calls.
web-apilive
Prompt
Add rate limiting to the public API
Tool calls · 4
- ReadREADME.md0.4s
- GreprateLimit0.6s
- Readrouter.ts0.3s
- Agent4 subagents15m
Tokens
in 41.2kout 96.8kcache 1.84M
$4.28 so far · 24¢/min
reviewerlive
Task
Review the middleware
Recent tool calls
- Readsrc/mw/limit.ts0.4s
- Grep"429"0.6s
- Readtest/limit.test.tsrunning
Tokens
in 9.6kout 3.1kcache 212k
migratordone
Task
Move the counters to Redis
Tool calls · 2
- Editsrc/store.ts0.2s
- Bashnpm test -- store0.8s
Tokens
in 5.2kout 1.4kcache 88k
docsdone
Task
Document the new headers
Tool calls · 2
- Editdocs/limits.md0.3s
- Readdocs/api.md0.5s
Tokens
in 4.8kout 2.2kcache 61k
general-purposedone
Task
Find every unguarded route
Tool calls · 3
- Grep"app.get("0.4s
- Readsrc/routes/public.ts0.3s
- Bashrg -n 'router\.' src1.0s
Tokens
in 6.1kout 1.9kcache 74k
infradone
Prompt
Rotate the deploy keys
Tool calls · 3
- Bashterraform plan0.9s
- Editinfra/keys.tf0.2s
- Bashterraform apply2.0s
Tokens
in 8.9kout 14.6kcached 96k
49¢ total
01 / LIVE AGENTSYour terminal shows a scroll. ccdeck draws the tree.
One session becomes a team. ccdeck connects every agent to its work, so you can follow the whole story—from the first prompt to the last tool call.
The same events. A clearer picture.
-
Claude Code and Codex on one canvas
Claude Code reports through a hook, and Codex is read from its own rollout log. The model chip on each node tells them apart.
-
It watches. It cannot steer.
The hook only forwards events. It exits 0 and writes nothing back, so it has no way to allow, deny or rewrite a tool call.
The next thing that needs you.
Already at the top.
A permission prompt, or a finished turn waiting for your next instruction, moves that session to the top of the list with how long it has waited, longest first. The count in the topbar jumps to the oldest one, and the deck can raise a desktop notification when a session stops to ask.
Claude Code only. Codex is read from its rollout log, which records what happened rather than what is waiting now.
02 / USAGE & ACCOUNTSKnow your limits. Switch without the detour.
See usage and quotas for Claude Code and Codex at a glance. Keep multiple Claude accounts ready, then switch from the deck without another trip through the terminal.
Your accounts stay saved.
Your next move stays simple.
Your Claude accounts
Demo: work account selected. Choose the other account to try switching.
Your available headroomQUOTA & PACE
ACTIVE CLAUDE ACCOUNT · work
work@studio.example
15% under paceThe marker shows the pace to last until reset.
Codex quota
$5.23 spend on this board
| Model | Tokens | Cost |
|---|---|---|
| Opus 5 | 138.0k | $4.28 |
| GPT-5.5 | 23.5k | 49¢ |
| Sonnet 5 | 40.5k | 46¢ |
Every model.
One clear picture.
Zoom out from a single session. See your daily usage, compare models, and find where the cost comes from.
Choose a day to see its model breakdown.
04 / CONNECTED MACHINESOne working login.
Your machines, ready again.
Your desktop has a working Claude login. Your laptop should benefit from it. Pair your decks and choose which accounts to share: missing accounts can arrive automatically, and shared logins that stop working can repair themselves from a paired machine.
A little help from your other machine.
Desktop
Local network on · paired
work@studio.example
working · offered to paired decks
Laptop
Local network on · paired
work@studio.example
login stopped workingworking again · copied from Desktop
Mac mini
Local network off
not paired · nothing shared
Pair your machines
Local Network is on by default. Open it in Claude accounts and accept the pairing request from your other deck.
Share the accounts you choose
Sign in on one machine and tick the accounts it may share. Paired decks can add those accounts without pasting a login blob.
Skip the repeat sign-in
Once a minute, paired decks check for missing accounts and broken shared logins. A working copy can repair a dead login; an account that still works stays untouched.
Scope. Claude logins only, between decks you paired. Repair requires that account to be selected for sharing on the receiving deck, too, and a paired machine with a working copy. This shares accounts, not agent sessions or remote control. On a VPN, a guest network or a second subnet, add a deck by address or with an invite. A live login crosses the network, so pairing is the decision that matters.
Your agents are busy.
How’s your machine?
CPU, memory and thermal readings beside the work. See what your local machine is handling without opening another monitor.
8 cores · per-core activity
Open a reading to explore its CPU, memory, load or thermal history.
Inspect processes and their command lines, with machine readings still in view.
Room for the next task.
A quiet machine. Memory and CPU leave room for the work ahead.
06 / GET STARTEDStart in one command.
-
Have Node.js 18 or newer
And Claude Code, Codex, or both, on macOS, Linux or Windows.
-
Run ccdeck
npx ccdeckIt opens
http://127.0.0.1:4317and, on the first run, adds its hook to~/.claude/settings.json. If that port is busy, the terminal prints the one it took. -
Start an agent
Run
claudeorcodexin any folder. The session appears on the canvas by itself.
npx ccdeck
Ready to start your local deck.
Illustrated setup. No commands run on your machine.
ccdeck keeps running after you close the terminal. npx ccdeck --stop turns it off, and npx ccdeck --uninstall removes its hooks. Setup and options on GitHub
07 / YOUR DATAWhat it touches.
ccdeck is local, but it is not read-only. This is the short version; the README lists every file and request, with the switch that turns each one off.
Stays on your machine
Your sessions, prompts and tool calls. There is no telemetry. The dashboard listens on 127.0.0.1; Local Network is on by default and also listens on your network; you can switch it off. Account transfer requires pairing and selected shared accounts.
Written on your machine
The hook entry in ~/.claude/settings.json, the deck’s event log, the helpers it manages (claude-swap and ccusage), Codex’s token in ~/.codex/auth.json, refreshed the way Codex refreshes it, and Browser Watch’s local findings and log.
Leaves your machine
A small version check to npm, installs and checks for those helpers, quota reads to Anthropic and OpenAI signed with your own credentials, and on Apple Silicon Macs whose sensors are silent, a one-time download of macmon.
Know what it reads.
Browser Watch starts enabled. It checks supported Chromium browsers for visits made after the deck started, looking for signs of browser automation while you were away. It temporarily copies history databases to query them, then deletes the copies. Findings stay on your machine.
Turn the watch off to stop background checks. Opening its panel still reads live. Existing visits from before the deck started are not included.
Questions
Does it work with Codex, or only Claude Code?
Both, on one canvas, with spend and quota for each. Two things are Claude Code only: the waiting-on-you queue, and account management, which includes Local network.
Can it approve my agent’s tool calls?
No. The hook forwards events and has no way to answer: it exits 0 and writes nothing to stdout, the two channels Claude Code gives a hook to allow, deny or rewrite a tool call. The deck never edits your code. Browser Watch has separate, configurable reactions to detected browser activity.
Do I have to keep a terminal open?
No. It runs in the background and survives the terminal closing. A global npm install also starts it when you log in; an npx run does not. npx ccdeck --stop ends it.
Is an account share safe to paste?
Treat it like a password. A share carries the account’s live login unencrypted, and it expires ten minutes after it is made.
Is Local network remote access?
No. It adds missing shared Claude accounts and repairs broken shared logins between paired decks. It does not share agent sessions, project files, or control of another machine.
What license is it under?
AGPL-3.0-only, since version 3.22.0. Releases up to 3.21.4 were MIT, and those grants stand. Running it on your own machine asks nothing of you. Licensing details