ccdeck

Codex CLI dashboard: every Codex session live

Checked on against ccdeck 3.33.1 and the sources below

Short answer

Run npx ccdeck: it reads the rollout file Codex CLI writes for each session, and shows every session’s tool calls, tokens and estimated cost, and your Codex quota, on one page on your machine, beside your Claude Code sessions.

ccdeck, for every Codex session at once

ccdeck is a free, open-source dashboard for Codex CLI and Claude Code that runs on your machine. For Codex it installs nothing, no hook and no trust prompt. It reads the rollout file Codex writes for each session under ~/.codex/sessions, or under $CODEX_HOME/sessions when you set CODEX_HOME, and looks for new lines every 1.5 seconds.

npx ccdeck

With Claude Code installed too, both kinds of session share the page, and the model chip on each card tells them apart. To show Codex only, without the Claude Code hook, claude-swap or the Accounts panel:

npx ccdeck --no-claude

What it misses. It cannot show a Codex approval prompt, because the rollout file records none. A running card whose approval policy can ask says approvals not visible instead, and you answer in the terminal; Codex’s own tui.notifications setting can alert you on approval-requested. The list of sessions waiting on you is Claude Code only. ccdeck draws no Codex subagents: a Codex card is one session and its tool calls, and /agent in Codex switches between its agent threads. A session that was already running when ccdeck started appears when it next writes, with nothing from before.

What a Codex card shows

Each session’s card reads LIVE while a turn runs and DONE when it ends. On it:

Quota left, by window

Press U for the Usage panel. With Codex signed in through codex login and a ChatGPT account, its Codex quota section has one bar for each limit OpenAI reports, named by its length, such as “5-hour window” or “7-day window”. Each bar shows how much is used, when it resets, and whether you are on, over or under pace. Under the bars, a line counts your Codex tokens and sessions of the last seven days from the rollout files, with no network needed.

More about how the quota is read

ccdeck asks OpenAI for your quota about once a minute while its page is open, signed with your own Codex login, which it reads from auth.json in the Codex folder. To keep that login working, it refreshes the token there the way the CLI does, writing back only the new tokens and the time of the refresh. If Codex keeps your login in the system keychain or keyring instead, or you signed in with an API key, there is no quota to show. The cost and quota guide covers the rest of the panel.

codex agents, Codex’s own dashboard

Codex CLI 0.149.0 added “an interactive codex agents dashboard for searching, starting, opening, renaming, and stopping tasks, with configurable shortcuts”, and codex queue “for sending messages to existing local or remote sessions”. Both act on your sessions, which ccdeck never does: it only reads, so it cannot start, stop or message one.

What it misses. It belongs to Codex, so your Claude Code sessions are not in it.

/status and /usage, inside a session

In a Codex session, /status shows “the active model, approval policy, writable roots, and current token usage”, and Codex’s reference suggests it to confirm the “remaining context capacity”. /usage shows your account’s token activity, daily, weekly or cumulative. /statusline can keep rate limits, context stats and token counters in Codex’s footer while you work.

What it misses. Each answers in the terminal you type it in, and /status describes that one session, so with several sessions you ask each in turn.

Step by step

Sources

Read on . What ccdeck does is checked against ccdeck 3.33.1, and what another tool does against its own documentation.