Tutorials Search / Native Mac IDE / Read your usage and rate limits
📝 Written ● Beginner Updated 2026-05-13

Read your usage and rate limits

The usage dashboard is the answer to "am I about to hit a wall." Tokens used, rate-limit headroom, time until reset — one panel, every provider you have configured, surfaced from three different sources so the number is as accurate as the provider lets it be.

Running into a rate limit mid-task is a uniquely bad failure mode. The agent was doing well; it had three more turns to finish; instead it stops, returns a 429, and you wait an hour. The cost isn't the failure itself, it's the loss of state — you've already paid the cognitive overhead of starting the task, and now you have to either wait or start over with a different provider. Either way, the work in flight goes cold.

The avoidable version of this is knowing your headroom before the limit becomes a problem. Most providers publish their current state in response headers on every request — "you have N tokens left this hour, reset at T." LingCode reads those and shows them. The dashboard isn't trying to predict anything fancy; it just surfaces what the provider already told you, in one place, across every provider you're using.

What makes the dashboard slightly tricky is that providers don't all publish the same data, and even when they do, the numbers come from three different sources with different freshness. This tutorial is mostly about reading the dashboard correctly: which number to trust, when it updates, and what to do when it tells you you're close to a wall.

What you'll learn

Step 1: Open the dashboard

1

From the status bar

At the bottom of the LingCode window, the status bar shows a compact summary — current provider, tokens used in this session, a percent of your daily quota. Click the status bar to expand the full dashboard panel.

The dashboard lists every provider you've configured (whether you've used it today or not), each with: tokens used today, tokens used this session, current rate-limit headroom, and "Resets in N" — the time until the next quota window opens.

Step 2: Read the three data sources

2

What's behind each number, in priority order

LingCode collects rate-limit state from three sources, in order of authority:

  1. Provider rate-limit events. Some providers (notably Anthropic via the SDK) push live events when your remaining quota changes. When these are flowing, the dashboard is essentially live — the number you see is the number the provider would return if you queried it right now.
  2. HTTP response headers. Every streaming agent call captures the provider's x-ratelimit-* (OpenAI shape) or anthropic-ratelimit-* (Anthropic shape) headers. Updated on every request you make. Authoritative as of the last call.
  3. Local heuristic. If neither of the above is available — say, you've only used a provider once today — LingCode falls back to counting requests locally, anchored to a midnight reset. This is rough and is meant to keep the dashboard non-blank, not to be precise.

You don't have to pick a source; the dashboard merges them automatically and shows the best available. But knowing which source a number came from helps you interpret it. A number coming from the local heuristic is a ballpark. A number from the SDK event stream is the truth.

If you add a new provider: The first request fills in the HTTP-header source. Until you've made that first call, the dashboard shows the local heuristic — which is roughly "looks fresh." Don't be alarmed if a brand-new provider shows generous headroom; it'll snap to real numbers on the first call.

Step 3: The "Resets in N" countdown quirk

3

It doesn't auto-tick

The "Resets in N" timer shows how long until the current rate-limit window ends. Important: it does not auto-tick. The number is computed when the panel renders. If you open the dashboard and see "Resets in 3h 12m," that's the time as of the moment of opening. Leave the panel open and three hours later, it'll still say "3h 12m."

To see fresh numbers, close and reopen the dashboard, or make any request (which causes a refresh). This is a deliberate design choice — the panel isn't a clock, it's a snapshot.

Step 4: What headroom percentage to worry about

4

Provider-by-provider rules of thumb

The relevant question isn't "am I past 80%," it's "do I have enough headroom for what I'm about to do." Most agentic tasks burn between 5K and 50K tokens. So:

  • Above 50% headroom — comfortably safe for any single task.
  • 20–50% headroom — fine for short turns; risky for long agentic loops. Consider switching providers for any task longer than a few turns.
  • Below 20% headroom — only start a task you're prepared to abandon. The wiser move is to switch providers, or stop and let the window reset.

These are not hard rules — your tasks may be longer or shorter than the average. But they're a useful default.

Step 5: When you're close to a limit

5

Three good options, one bad

If the dashboard says you're close to a limit and you still have work to do:

  • Switch providers — usually the right answer. See Switch providers mid-conversation. Carries your context to a fresh quota.
  • Switch models on the same provider — a lower-tier model on the same provider often has a separate quota. Useful if you have a paid tier with both Opus and Sonnet quotas.
  • Wait it out — if "Resets in" is small (minutes, not hours) and your task isn't urgent, just wait. Lowest cost in dollars and cognitive overhead.
  • Bad option: keep going until you hit the wall. The 429 will arrive mid-tool-call, often leaving the agent in a half-finished state. Don't do this.
The dashboard is provider-side, not per-app. If you use the same provider in another tool (a CLI, the website's /try playground, another IDE), those calls count against the same quota. The dashboard can't show you what those other tools used — only what LingCode used. If headroom is mysteriously lower than expected, check whether something else has been calling the same key.

What's next