Skip to content

Latest commit

 

History

History
214 lines (172 loc) · 14.2 KB

usage.md

File metadata and controls

214 lines (172 loc) · 14.2 KB

Usage and limits

Open Usage from the sidebar or the command palette, or press mod+u on web and desktop when the terminal is not focused. Customize usage.open in Settings → Keybindings.

Understand your usage

Usage combines Codex, Claude Code, Grok Build, OpenCode, Antigravity, Pi, and Cursor history from your connected environments. It shows token use, cache savings, model breakdowns, and estimated API-equivalent cost, split by token type and by speed. These estimates are not your subscription bill. Premium is what Fast and Ultrafast requests cost above standard rates. Cost that cannot be split, such as a provider-reported cost for a model without public rates, shows as Other. Select a model under Breakdown to see its trend, cache hit rate, and cost per million tokens.

Totals depend on the history available on each server. Grok turns without a saved completed-turn record are missing from the totals.

OpenCode reads its SQLite database and older JSON history. Antigravity reads local conversation databases, including T3-managed profiles. Set OPENCODE_DATA_DIR or ANTIGRAVITY_DATA_DIR on the server to read a different data directory; comma-separated paths read multiple directories.

Cursor reads account usage from Cursor's dashboard API using the CLI login saved on the server. This includes headless T3 sessions and desktop usage across machines; the same account counts once across connected environments. Without an accessible CLI login, T3 shows a notice instead of incomplete local totals. T3 does not estimate missing tokens from conversation text. On macOS, choose Enable Cursor usage on Usage to allow T3 to read your existing CLI login from Keychain. You can turn it off in Settings → Providers → Usage providers. macOS may ask you to allow access on the server Mac.

Usage includes each configured account's history, including disabled accounts. Custom homes follow the account's home setting or its CODEX_HOME, CLAUDE_CONFIG_DIR, or GROK_HOME environment variable. Pi reads ~/.pi/agent/sessions, or the sessions directory under PI_CODING_AGENT_DIR. Set PI_CODING_AGENT_SESSION_DIR to read a different session directory. To include sessions saved through --session-dir or Pi's sessionDir setting, set this environment variable to the same directory. Pi includes recorded tool and summary costs under Tools/summaries. Use absolute paths or ~/ paths in the account's environment settings; relative environment paths depend on each project's working directory and cannot be reliably discovered by Usage. Accounts sharing a history directory count once.

When your app and server support different providers, usage totals may cover only the providers your app understands. Update the app to include newly supported providers.

On web and desktop, use the environment dropdown to filter costs, tokens, and limits. All environments are selected by default. The dropdown shows which environments are still scanning; results appear as each one responds, and figures still updating are dimmed. Cursor shows its last saved totals first, then updates them when Cursor's API responds.

If recent work is missing or a new model shows no cost, refresh to rescan session history and update model pricing.

Set custom model prices

On web or desktop, open the environment dropdown on Usage, then choose Model prices to add, edit, or reset a model's estimated price. Apply to starts with your current Usage filter; choose all environments or select individual destinations. Enter the exact model ID and USD rates per million input and output tokens. You can enter any model ID, including models without public pricing. When a model on Usage has no known price, select it under Breakdown and choose Set price to open this table with that model added.

Cache read and cache write rates are optional and use the input rate when blank. Enter 0 for tokens that are free. Saved prices replace automatic pricing for all of that environment's history and are shared with clients connected to it. When environments have different prices, cells show Mixed. Edit rates directly in the table, then choose Save changes to apply all edited rows. Untouched cells keep each environment's rate. Select one environment to inspect its prices. Reset to automatic marks a model's override for removal when you save; you can undo it before saving.

To count one model as another, such as a preview model under its released name, enter the target model ID under Map to. The mapped model no longer appears on Usage: its tokens and cost move to the target model and use the target's price. Clear Map to or reset the row to show the model on its own again.

Each destination reports whether the change saved. Offline or unavailable environments are marked Not saved. Reconnect them and choose Retry failed saves to finish the same change without writing again to environments that already saved. Changes are not queued after you close the dialog.

Track subscription limits

Usage → Limits pools every subscription account it can see per provider, so with several Codex or Claude accounts across your environments and hubs you read one number per window rather than a list. Each window card shows how much of the pool is left and a bar with one segment per account, kept in the same column across windows. Accounts are ordered by their next 5-hour refill, soonest first. For an account with no weekly quota left, this is when its session becomes usable again. The first available window is used when no account reports a 5-hour limit. A gap means the account does not report that window. When the provider reports reset times, the card also says when the next reset lands and how much it hands back. The hatched part of a segment is what that reset restores. Tap a segment or account row for the account's plan, where it is signed in, and its reset time. On web, you can hover too. Codex and Claude accounts with banked reset credits show a ticket count and the Use reset action in the account details. Claude resets are not available when the server runs on macOS, where Claude keeps its login in the Keychain. On narrow screens, numbered rows below the bar show each account's quota, countdown, and credits. Tap a row to open its details.

The same account signed in on more than one environment, or reported by a hub as well, counts once. Filter with the environment dropdown to see what a single machine has.

When a Claude or Codex account has no overall weekly quota left, its pooled session contribution shows 0% left. The next refill depends on both reset times: an exhausted session must also reset, and a partly spent session may only regain its unused portion when the week resets. Missing or stale reset times have no refill estimate; refresh Limits for a new reading. Claude's model-specific weekly allowances keep their reported values.

Opening Limits checks the selected connected environments automatically. Each client waits at least five minutes between automatic checks of an environment, including after a failed check. If a window still looks stale, refresh Limits to re-check every provider and hub.

Below the limit cards, Claude Code by project splits this week's Claude Code usage by project: tokens, API-equivalent cost, and roughly how much of the weekly limit each project used. Claude reports only the week's total, so each project's part is estimated from its share of the cost. The week runs to the reset Claude reports; without a reported week, the section covers the last seven days. Worktrees and subfolders count toward their project. Folders that are not a project in T3 Code show the name Claude Code gives them.

Pick /usage-limits from the composer's command menu, or send it as a message, to check the current model's limits without leaving the conversation. The result opens above the composer and closes when you dismiss it or send your next message. It uses the same snapshot as Usage → Limits, so it does not run the agent or refresh anything. The command is offered only for providers that appear under Usage → Limits.

OpenCode Go reports its session, weekly, and monthly allowance when OpenCode runs locally in the environment. T3 cannot report limits for external OpenCode servers because their credentials belong to the remote server. Limits need an OpenCode Go API key, or an OpenCode Console connected in OpenCode with an API key. A Console browser sign-in alone does not report them. You can also add your Go API key as OPENCODE_API_KEY in the OpenCode instance's Environment variables, then refresh provider status. Cursor reports its monthly allowance, including separate Auto and API usage, using the CLI login or CURSOR_AUTH_TOKEN. On macOS, this includes the default Keychain login after you enable Cursor usage. Keychain login is used for limits only with Cursor's default API endpoint. If you configure a custom Cursor endpoint, use an explicit token or file-based CLI login for limits.

Grok reports the remaining subscription allowance and reset time for its current billing period after signing in with grok login. Explicit XAI_API_KEY connections and custom authentication or endpoint configurations do not report subscription limits.

API-key accounts may not report subscription limits. This also applies to Claude connections using a proxy through ANTHROPIC_AUTH_TOKEN.

Connect a CLIProxyAPI hub

To see pooled accounts, open Settings → Providers → Usage providers → Add hub. Choose the environment that will connect to the hub and enter its URL and management key.

The accounts appear under Usage → Limits. Codex accounts show banked reset credits; select an account and choose Use reset to redeem one. No hub plugin is required.

This connection supplies usage information; configure the provider separately to send agent requests through the hub. Remove the hub from the same settings section when you no longer need it.

Switch Claude accounts with claude-swap

If you keep several Claude logins with claude-swap (cswap), T3 can show each account's 5-hour and weekly limits and switch between them. Turn on Settings → Providers → Usage providers → claude-swap accounts for the environment where claude-swap is installed. If cswap is not on that machine's PATH, enter its location under claude-swap binary path.

Usage → Limits then lists every saved account under Claude accounts, including the active login, accounts whose login expired, and readings claude-swap could not refresh, which are marked stale. Choose Switch on an account, or Switch to best to let claude-swap pick the one with the most headroom. Switching changes that machine's default Claude login. Running Claude sessions on that machine that use the default Claude login move to the new account on their next request, or within about 30 seconds on macOS. T3 Claude instances with a custom Claude home are not affected.

On macOS, claude-swap keeps logins in the Keychain, and macOS may ask you to allow access the first time. Add, remove, or sign in to accounts again with cswap in a terminal; T3 picks up the changes on its next check.

Switch accounts automatically

To move to another account before you hit a limit, turn on Settings → Providers → Usage providers → claude-swap accounts → Switch automatically and set Switch at (90% by default). T3 reads the active account's 5-hour and weekly usage from every Claude response, and when either reaches that point it switches that machine's Claude login. This is the same machine-wide switch as a manual one, so it also moves Claude Code sessions you run in a terminal on that machine. While it is on, that machine checks claude-swap every few minutes even when no T3 window is open.

T3 always spends the quota that runs out first. An account with a weekly limit is ranked by its weekly reset; a Team seat, which has no weekly limit, by its 5-hour reset. At Switch at, the login moves to the first account in that order that is still below it. Below Switch at, the login also moves when another account's quota runs out at least 10 minutes sooner than the active one's. T3 skips disabled accounts, API-key accounts, accounts that need to sign in again or have no recent reading, and accounts that are themselves at Switch at, and waits a minute after any switch before the next. Per-model weekly limits are not counted. The last automatic switch, or why it could not switch, appears under Claude accounts in Usage → Limits.

Don't run claude-swap's own cswap auto alongside this setting: the two would switch against each other. To stay on an account, turn Switch automatically off first.

As a last resort, turn on Settings → Providers → Usage providers → claude-swap accounts → When every Claude account is full, continue on Antigravity Claude. When a thread on your default Claude login stops at a usage limit and every claude-swap account is at Switch at, T3 moves that thread to the Claude model Antigravity offers, shown under the setting, and continues it. This only happens while Antigravity's Claude quota is also below Switch at. That quota is shared with Antigravity's GPT models. On Antigravity, the thread loses Claude Code skills, hooks, and MCP servers, and its earlier context carries over as a summary. Once a claude-swap account has room again, T3 moves the thread back to its original Claude model when it is idle. If you pick a model for the thread yourself, it stays on your choice.

Subscription usage widget

Add Subscription usage from your iOS or Android widget gallery to see remaining Codex and Claude quotas. Tap it to open Usage → Limits; on Android this works while T3 is running in the background, otherwise open the app from the launcher. On iOS, use Edit Widget to choose Session, Weekly, or both for each provider. Reopen T3 to refresh expired readings.

Keyboard shortcuts

On web and desktop, open Usage from the command palette. While on Usage, press C, T, or L for Cost, Tokens, or Limits while not typing in a field. Use Ctrl+Shift+1/2/3/4 (Cmd+Shift+1/2/3/4 on macOS) for the past 24 hours, 7 days, 30 days, or 90 days. Period shortcuts do nothing on Limits. Press Escape to return to the previous page. Customize these shortcuts in Settings → Keybindings.