You're halfway through a task. Claude Code has found the relevant files, started changing code, and is finally getting somewhere.

Then a usage limit interrupts the conversation.

Maybe the tests haven't passed yet. Maybe the refactor is only half done. Either way, you're suddenly thinking about quota windows and logins instead of the code.

If you already have multiple accounts you're authorized to use, there's a second problem: which one is available, and how do you keep track of the session?

That's one of the reasons I build ccdeck — a free, open-source dashboard for Claude Code and Codex that keeps account usage and active sessions in one place.

npx ccdeck 

It runs locally on macOS, Linux and Windows. You can use it with a single account too.

Animated three-step example: Claude Code usage limit, checking eligible account capacity, then selecting an available account

Animated explanatory example with fictional quota data. It is not a real CCDeck screen recording, and continuation can require a separate action.

The limit you hit isn't necessarily the limit you expected

Claude has different usage windows, including five-hour and weekly limits for applicable plans. They're separate: headroom in one window doesn't mean the other has room.

And changing models, effort or task complexity can affect how quickly you use an allowance. A percentage in one plan shouldn't be treated as the same number of tokens in a different plan.

Before deciding what to do next, I want to know three things:

  • Which window is restricting my work?
  • When does it reset?
  • What capacity is available on accounts I'm permitted to manage?

CCDeck's Accounts panel shows configured Claude accounts, usage readings, reading freshness, and reset information in the same place.

See the official CCDeck Claude accounts guide for the actual interface and current controls.

Switching accounts should not become another debugging task

You can select an account manually. If you prefer, CCDeck also integrates with claude-swap to offer optional Auto-switch for Claude Code.

It's off by default. When enabled, it evaluates the active account against your selected usage threshold — 90% by default — and can select another eligible account according to the configured rules.

There are useful choices beyond simply picking the first account in a list:

  • Most room left, when you want an eligible account with more reported capacity.
  • Soonest weekly reset, when the reset order matters to you.
  • Home account, so you can favor a preferred login.
  • Hold out of rotation, to exclude an account from automatic selection.

That last control is important if you keep work and personal accounts separate or your organization restricts which credentials may be used.

Illustrated account selection flow with example usage readings

Illustrative account-selection flow, not recorded CCDeck behavior.

One boundary worth being clear about: CCDeck does not bypass Claude's five-hour limit or pool allowances. Each account retains the capacity and restrictions assigned by its provider. Only use accounts and switching workflows you're authorized to use under the applicable terms.

Does switching restart my Claude Code session?

Not by itself.

Claude Code uses a shared active login. Changing that login doesn't restart existing sessions; they can pick it up on a later message. On macOS, the login change can take roughly 30 seconds to reach an existing session.

If a session has already stopped with a usage-limit error, you may need to type continue after an eligible login becomes active. CCDeck also offers a Continue action for supported background sessions and an opt-in continuation setting for certain qualifying stops.

So there are two separate steps: switch the active login and resume the stopped conversation if necessary. I would rather document the difference than promise a seamless handoff that doesn't exist for every launch path.

Codex works differently

CCDeck also manages isolated Codex profiles, with separate logins, quota information, and a persistent default.

For supported CCDeck-managed terminal sessions, enabling Codex Auto-switch can allow a usage-limit failure to trigger a handoff to an eligible profile, restore the saved conversation and submit one continuation.

That's not universal support for every IDE, daemon, or terminal. The automatic terminal path has transport and configuration requirements, and was verified with Codex CLI 0.166.0. Interactive native handoff testing described in the 3.80.0 README was performed on macOS; native Windows/Linux TUI behavior still needs separate acceptance testing.

The current README explains those limits in detail.

I also wanted to know which agent was waiting

Quota isn't the only reason an agent stops making progress.

Sometimes Claude Code is waiting for a permission prompt. Sometimes it finished a turn in another tab. Sometimes a subagent is still busy while the parent looks idle.

CCDeck brings Claude Code and Codex sessions into one dashboard with tool activity, token usage, and session state. Claude Code sessions waiting for input get surfaced together so you don't have to scan every terminal tab.

That was the original problem I built the dashboard around. Account management belongs next to it because usage interruptions happen in those same sessions.

Install it your way

Choose the desktop app or run ccdeck through Node.js.

macOS desktop app — Terminal:

curl -fsSL https://ccdeck.dev/install.sh | sh 

Windows desktop app — PowerShell:

irm https://ccdeck.dev/install.ps1 | iex 

Node.js / npx:

npx ccdeck 

For downloadable installers, including Linux, use Get ccdeck.

Open Accounts to inspect usage and configure selection if your setup permits it. Or use ccdeck tui to inspect Claude accounts and sessions from a terminal.

It's free and open source under AGPL-3.0.

How do you handle usage interruptions?

When an agent stops in the middle of a task, what do you usually do — wait for the reset, switch to another authorized workflow, change models, or something else?

I'm particularly curious about what happens to your conversation context after the interruption. That's the part I'm trying to make less annoying.

Further reading: CCDeck README, CCDeck account guide, Anthropic usage docs, OpenAI Codex plan guidance.