1# Usage and limits
2
3Open **Usage** from the sidebar or the command palette, or press `mod+u` on web and
4desktop when the terminal is not focused. Customize `usage.open` in
5**Settings → Keybindings**.
6
7## Understand your usage
8
9**Usage** combines Codex, Claude Code, Grok Build, OpenCode, Antigravity, Pi, and Cursor history
10from your connected environments. It shows token use, cache savings, model breakdowns, and estimated API-equivalent
11cost, split by token type and by speed. These estimates are not your subscription bill.
12**Premium** is what Fast and Ultrafast requests cost above standard rates. Cost that cannot be
13split, such as a provider-reported cost for a model without public rates, shows as **Other**.
14Select a model under **Breakdown** to see its trend, cache hit rate, and cost per million tokens.
15
16Totals depend on the history available on each server. Grok turns without a saved completed-turn
17record are missing from the totals.
18
19OpenCode reads its SQLite database and older JSON history. Antigravity reads local conversation
20databases, including T3-managed profiles. Set `OPENCODE_DATA_DIR` or `ANTIGRAVITY_DATA_DIR` on the
21server to read a different data directory; comma-separated paths read multiple directories.
22
23Cursor reads account usage from Cursor's dashboard API using the CLI login saved on the server.
24This includes headless T3 sessions and desktop usage across machines; the same account counts
25once across connected environments. Without an accessible CLI login, T3 shows a
26notice instead of incomplete local totals. T3 does not estimate missing tokens from conversation text.
27On macOS, choose **Enable Cursor usage** on Usage to allow T3 to read your existing CLI login
28from Keychain. You can turn it off in **Settings → Providers → Usage providers**. macOS may ask
29you to allow access on the server Mac.
30
31Usage includes each configured account's history, including disabled accounts. Custom homes follow
32the account's home setting or its `CODEX_HOME`, `CLAUDE_CONFIG_DIR`, or `GROK_HOME` environment
33variable. Pi reads `~/.pi/agent/sessions`, or the `sessions` directory under
34`PI_CODING_AGENT_DIR`. Set `PI_CODING_AGENT_SESSION_DIR` to read a different session directory.
35To include sessions saved through `--session-dir` or Pi's `sessionDir` setting, set this environment
36variable to the same directory. Pi includes recorded tool and summary costs under `Tools/summaries`.
37Use absolute paths or `~/` paths in the account's environment settings; relative environment paths
38depend on each project's working directory and cannot be reliably discovered by Usage. Accounts
39sharing a history directory count once.
40
41When your app and server support different providers, usage totals may cover only the providers
42your app understands. Update the app to include newly supported providers.
43
44On web and desktop, use the environment dropdown to filter costs and tokens. All
45environments are selected by default. The dropdown shows which environments are still scanning;
46results appear as each one responds, and figures still updating are dimmed. Cursor shows its last
47saved totals first, then updates them when Cursor's API responds.
48
49If recent work is missing or a new model shows no cost, refresh to rescan session history and
50update model pricing.
51
52## Set custom model prices
53
54On web or desktop, open the environment dropdown on **Usage**, then choose **Model prices** to add,
55edit, or reset a model's estimated price. **Apply to** starts with your current Usage filter;
56choose all environments or select individual destinations. Enter the exact model ID and USD
57rates per million input and output tokens. You can enter any model ID, including models
58without public pricing. When a model on **Usage** has no known price, select it under
59**Breakdown** and choose **Set price** to open this table with that model added.
60
61Cache read and cache write rates are optional and use the input rate when blank. Enter `0` for
62tokens that are free. Saved prices replace automatic pricing for all of that environment's
63history and are shared with clients connected to it. When environments have different prices,
64cells show **Mixed**. Edit rates directly in the table, then choose **Save changes** to apply all
65edited rows. Untouched cells keep each environment's rate. Select one environment to inspect its
66prices. **Reset to automatic** marks a model's override for removal when you save; you can undo
67it before saving.
68
69To count one model as another, such as a preview model under its released name, enter the target
70model ID under **Map to**. The mapped model no longer appears on **Usage**: its tokens and cost
71move to the target model and use the target's price. Clear **Map to** or reset the row to show
72the model on its own again.
73
74Each destination reports whether the change saved. Offline or unavailable environments are
75marked **Not saved**. Reconnect them and choose **Retry failed saves** to finish the same change
76without writing again to environments that already saved. Changes are not queued after you close
77the dialog.
78
79## Track subscription limits
80
81**On web and desktop**, hover the sidebar Usage button to inspect subscription
82limits, or focus it and press Arrow Down.
83Click it to open costs and tokens. Right-click it for usage reset settings and provider configuration.
84**On mobile**, open **Usage → Limits**. The detailed limits view pools subscription accounts per
85provider across your environments and hubs. Each window card shows how much of the pool is left
86and a bar with one segment per account,
87kept in the same column across windows. Accounts are ordered by their 5-hour reset, soonest
88first, or by the first available window when no account reports a 5-hour limit. A gap means the
89account does not report that window. When the provider reports reset times, the card also says
90when the next reset lands and how much it hands back. The hatched
91part of a segment is what that reset restores. Tap a segment or account row for the account's plan,
92where it is signed in, and its reset time. On web, you can hover too. Codex and Claude accounts
93with banked reset credits show a ticket count and the **Use reset** action in the account details.
94Claude resets are not available when the server runs on macOS, where Claude keeps its login in the
95Keychain. On narrow screens, numbered rows below
96the bar show each account's quota, countdown, and credits. Tap a row to open its details.
97
98The same account signed in on more than one environment, or reported by a hub as well, counts once.
99On mobile, filter with the environment dropdown to see what a single machine has.
100
101Opening the detailed limits view checks connected environments automatically. Each client waits at
102least five minutes between automatic checks of an environment, including after a failed check.
103If a window still looks stale, refresh the limits view to re-check every provider and hub.
104
105Pick `/usage-limits` from the composer's command menu, or send it as a message, to check the
106current model's limits without leaving the conversation. The result opens above the composer and
107closes when you dismiss it or send your next message. It uses the same limits snapshot, so it does
108not run the agent or refresh anything. The command is offered only for providers reporting limits.
109
110OpenCode Go reports its session, weekly, and monthly allowance when OpenCode runs locally in
111the environment. T3 cannot report limits for external OpenCode servers because their credentials
112belong to the remote server. Limits need an OpenCode Go API key. A Console sign-in alone
113does not report them. Add your Go API key as `OPENCODE_API_KEY` in the OpenCode instance's
114**Environment variables**, then refresh provider status. Cursor reports
115its monthly allowance, including separate Auto and API usage, using the CLI login or
116`CURSOR_AUTH_TOKEN`. On macOS, this includes the default Keychain login after you enable Cursor
117usage. Keychain login is used for limits only with Cursor's default API endpoint. If you configure
118a custom Cursor endpoint, use an explicit token or file-based CLI login for limits.
119
120Grok reports the remaining subscription allowance and reset time for its current billing period
121after signing in with `grok login`. Explicit `XAI_API_KEY` connections and custom authentication
122or endpoint configurations do not report subscription limits.
123
124API-key accounts may not report subscription limits. This also applies to Claude connections
125using a proxy through `ANTHROPIC_AUTH_TOKEN`.
126
127## Connect a CLIProxyAPI hub
128
129To see pooled accounts, open **Settings → Providers → Usage providers → Add hub**. Choose the
130environment that will connect to the hub and enter its URL and management key.
131
132The accounts appear in the detailed limits view. Codex accounts show banked reset credits; select an
133account and choose **Use reset** to redeem one. No hub plugin is required.
134
135This connection supplies usage information; configure
136the provider separately to send agent requests through the hub. Remove the hub from the same
137settings section when you no longer need it.
138
139## Subscription usage widget
140
141Add **Subscription usage** from your iOS or Android widget gallery to see remaining Codex and
142Claude quotas. Tap it to open **Usage → Limits**; on Android this works while T3 is running in
143the background, otherwise open the app from the launcher. On iOS, use **Edit Widget** to choose
144Session, Weekly, or both for each provider. Reopen T3 to refresh expired readings.
145
146## Keyboard shortcuts
147
148On web and desktop, open Usage from the command palette. While on Usage,
149press `C` or `T` for Cost or Tokens while not typing in a field.
150Use `Ctrl+Shift+1/2/3/4` (`Cmd+Shift+1/2/3/4` on macOS) for the past
15124 hours, 7 days, 30 days, or 90 days.
152Press `Escape` to return to the previous page. Customize these shortcuts in
153**Settings → Keybindings**.