EmpryoEmpryo.beta
providers

Proxy

Route Claude, GPT, Gemini and Grok through the CLIProxyAPI add-on, and read the plan windows it reports: per-model caps and reset countdowns.

The proxy add-on is a local relay. It holds your chat subscriptions, and proxy/* models spend those instead of API credit. Empryo reads the limits from the provider and shows what is left on every surface.

For Claude and ChatGPT you no longer need it. Both sign in natively now, with no add-on and credentials Empryo holds itself. See Subscriptions. The relay still covers Gemini and Grok, and it still handles several accounts per provider, so it stays.

Use at your own risk. Routing a consumer chat subscription through a local relay presents your credentials to endpoints built for the vendor's own apps. Empryo is not affiliated with Anthropic, OpenAI, Google or xAI, and I have not cleared this use with any of them. Copilot is the exception, where I did read the published terms.

Whether your plan permits it is between you and your provider. Read your subscription terms before you log in. Rate limiting, revoked credentials and account suspension are all possible, and I cannot restore a suspended account.

plan  [▰▰▰▰▱] 78% weekly ↺3d
ctx   [▰▰▰▱▱] 42% ~12k/200k

The top line is the plan meter in the status bar, drawn in the same vocabulary as the context gauge below it: percentage in the severity colour, the window it belongs to and its reset countdown dimmed beside it. In the terminal each is prefixed by its own glyph rather than a word.

This page is about proxy/* models. GitHub Copilot is the other flat-rate plan Empryo meters — same gauge, same thresholds, but a monthly allowance rather than a rolling window. API-key providers bill per token, and that spend lives in `/usage` in dollars, not windows.

The two things a subscription tells you

Every account behind the relay reports health — is this credential working right now. Some providers additionally report rolling windows — how much of a rate-limit period you have burned.

TierProvidersWhat you get
Healthallready / cooling / disabled / error, plus success and failure counters
WindowsClaude, Codex (ChatGPT)percentage used, reset time, and per-model caps

Providers with no quota API we trust say so rather than guessing:

● you@example.com (xai) — ready
    no quota reported by this provider

A wrong quota bar is worse than no quota bar.

Per-model caps

This is the part that surprises people. On a Claude subscription the weekly allowance is not one number — Anthropic meters each model family separately on top of the account-wide windows:

Subscriptions · proxy
  ● claude   you@example.com
  ▸ weekly · fable [▰▰▰▰▰▰▰▰▰▰] spent  ↺ 3d
    5h             [▰▰▰▰▰▰▰▱▱▱]   73%  ↺ 1h
    weekly         [▰▰▰▰▰▰▰▰▱▱]   78%  ↺ 3d

Fable is spent. Sonnet and Opus are not. Same account, same week.

The marks the window that gates the model you are on right now. Switch models and the marker moves, the order changes, and the status-bar badge re-scores instantly — no refetch, because the numbers did not change, only which of them apply to you.

A spent cap only jumps to the top of the list when it actually gates your current model. A blown Fable weekly stays quiet on a Sonnet turn instead of shouting that you are blocked when you are not.

Which account pays

The relay round-robins within a provider but never across them. A proxy/gpt-5.6 turn bills your Codex subscription and cannot touch your Claude one, so the badge always follows the model rather than whichever account served the last request.

ModelBilled to
proxy/claude-*Claude subscription
proxy/gpt-*, proxy/*-codexCodex / ChatGPT subscription
proxy/gemini-*Gemini subscription
proxy/grok-*xAI subscription

Where it shows up

  • Status bar — ambient meter beside the context gauge, on both the classic footer and the v2 organic bar.
  • `/usage` → Plan — every account, every window, with the gating one marked.
  • `/status` — the plan badge next to the running proxy process.
  • `/proxy quota` — forces a live refresh and prints the full block.

When you get warned

UsedState
under 75%quiet
75% and upwarning tone
90% and up, or exhaustedcritical
exhaustedreads spent, not 100%

spent is deliberate wording. A round number and a shut door are different statements.

Refreshing

Upstream quota routes rate-limit hard, and the numbers barely move, so reports are cached for 5 minutes. Opening a panel reads the cache; these paths force a live fetch:

  • /proxy quota
  • the refresh button in the desktop Proxy and Usage drawers
  • --proxy-quota
  • Hearth /proxy

Privacy

Quota lookups go through the relay's own management API. When an upstream call needs your OAuth token, the proxy substitutes it server-side — the token never leaves the sidecar and Empryo never sees it. The management secret is generated on first use and stored alongside the proxy config.

Troubleshooting