Features

Accounts and rate limits

If you hold two Claude subscriptions, or a Claude plan and a ChatGPT plan, hitting a limit should cost you one click rather than the rest of the afternoon.

How it works

Each coding CLI stores its credentials in its own config directory. Termdeck saves a snapshot of each login you connect and swaps the credential file when you switch. The config directory itself never changes.

That detail matters more than it sounds: because only the credential moves, your session history, settings, and project list stay shared across every account on that machine. Switching account does not switch you into a different workspace.

Functionally this is the same as signing out and signing back in with the other account, done instantly from a saved snapshot instead of repeating the login flow every time.

Connecting an account

Open Settings, then Machines and accounts, pick a machine, and use its Claude or Codex panel. Adding a brand new account runs the CLI's real login, so a browser page opens and you sign in with the provider as usual. Termdeck cannot fabricate a login and never asks for your provider password.

Once connected, the account appears in the list with its email and plan, ready to switch to.

Starter keeps 2 saved logins per engine on a machine: 2 Claude and 2 ChatGPT. Pro keeps as many as you have. To make room on Starter, remove a login you no longer use. Plans and limits has the details.

Accounts are per machine, because credentials live on the machine. Connecting your second Claude account on the laptop does not connect it on the desktop.

Live rate limits

The panel at the bottom of the sidebar shows the usage windows your provider reports for the account you are signed in to, updated as you work. For Claude that is the rolling window and the weekly window; Codex and Grok report their own equivalents.

Each usage header shows the provider logo and your plan. To show or hide the account email beside the plan, open Settings, then Appearance and change Show account email under Sidebar footer.

The reading is taken on your own machine. Your subscription token never leaves it: the agent calls the provider's usage endpoint locally and hands back only the percentages, which carry nothing sensitive.

When your provider has given the account a one-off limit reset, a ↺ pill with the number you have appears beside the plan. It lights up when the reset can be used. On Codex, click it to use the reset. On Claude, click it to see what it covers, then run /limit-reset in Claude Code on that machine to use it. A reset you have already used, or one that has expired, is not shown.

Because it is a live reading rather than an estimate, it is the thing to watch when you are deciding whether to start a long run now or after dinner.

Usage per account

The sidebar answers for one account at a time. To compare them, open Settings, then Machines and accounts, pick a machine, and open its Claude or Codex panel: every saved login lists its own windows underneath it, with the same bars the sidebar uses.

This is the view to open before a switch. You can see that the account you are on is nearly out and the one beside it has most of its week left, without switching to each in turn to find out.

The windows are read when you open the panel, not while the page is loading, so machines you never look at are never asked. Numbers are held for a minute or so, so closing and reopening the panel does not make your machine ask the provider again.

ChatGPT reports its windows only for the account currently signed in on that machine, so saved ChatGPT logins say so rather than showing a figure. Claude accounts all report, signed in or not. Grok has no saved accounts, so nothing to compare.

A saved login the provider has rejected shows that instead of a bar. Use Check on that row for the full reason.

These are rate limit windows, not spend. For tokens and cost, see Usage and cost, which breaks spending down by day, model and project.

Switching mid chat

When an account gets close to its limit, switch from the accounts panel. The chat stays open and the next turn runs under the account you switched to. There is no logout, no lost context, and no waiting out a countdown.

After a switch, Termdeck drops the caches that belonged to the previous account: the model catalog, and the usage percentages that were read under the old login. Serving the old account's numbers under the new account's name would be a mislabelling, so it does not happen.

Codex keeps a long lived helper process. Termdeck recycles it after a switch, which is why a Codex switch can take a moment longer than a Claude one.

Grok

Grok has no saved account switching in Termdeck. Use grok login on the machine to change which account it runs under. Grok rate limits are still shown in the limits panel.

When a machine holds two copies of a CLI

It is possible to have the same CLI installed twice on one machine, for example an npm global and a package manager install, both on the path. When that happens the two lookups can find different binaries, and the symptom is a sign in that appears to hang: one copy is being driven while the other is what actually runs your turns.

Fix it by removing the copy you do not want, or by naming the right one explicitly with TERMDECK_CLAUDE_EXE, TERMDECK_CODEX_EXE, or TERMDECK_GROK_EXE in ~/.termdeck/agent.env.

Using accounts to control cost

Not every task deserves your most expensive plan. A split that works well in practice:

  • Premium subscription for architecture, tricky debugging, and anything touching money or authentication.
  • A cheaper engine for tests, renames, documentation, and mechanical refactors.
  • A second account as overflow, so hitting a limit costs a click rather than an upgrade.

The usage dashboard tells you whether the split is actually working, since it breaks spend down by model and by project rather than by feeling.

Check the terms of the provider plans you connect. Termdeck moves your own credentials between your own machines and does not change what those subscriptions permit.