Skip to content
Empryo

Subscriptions

Sign in to ChatGPT, Copilot, Cursor, Devin, Gemini, Grok, Kimi and more from Empryo with no add-on. One /login picker, credentials in your keychain.

Providers12 minutes to read
Copy & share
On this page14 sections

If you already pay for a plan like ChatGPT Plus, you can use it in Empryo instead of buying API credit. Run /login, pick your account, and sign in. You do not need to install anything else.

Empryo stores the sign-in in your system keychain and renews it when it expires.

Accounts you can sign in toLink to this section

Most accounts sign in through your browser or with a device code (a short code you type on a web page). A few ask you to paste a key instead.

These accounts all appear under one provider, called Subscriptions:

AccountHow you sign inModel ids
ChatGPT Codexbrowsersubscriptions/gpt-*
ChatGPT Codex (device code)device codesubscriptions/gpt-*
Grok (SuperGrok / X Premium)browsersubscriptions/grok-*
Grok (device code)device codesubscriptions/grok-*
Cursorbrowsersubscriptions/cursor/*
Devin (Cognition)browsersubscriptions/devin/*
Gemini CLI (Google Cloud Code Assist)browsersubscriptions/google-gemini-cli/*
Antigravity (Google)browsersubscriptions/google-antigravity/*
Kimi Code (Moonshot)device codesubscriptions/kimi-code/*
Muse Code (Meta)device codesubscriptions/muse-code/*
Fire Pass (Fireworks)paste a keysubscriptions/*

These accounts use the same /login list but keep their own provider, because each has its own models and billing:

AccountHow you sign inModel ids
GitHub Copilotdevice codecopilot/*
GitHub Copilot (Enterprise)device code on your company's GitHubcopilot/*
OpenRouterbrowser, which creates a key for youopenrouter/*
Ollama Cloudpaste a keyollama-cloud/*
LLM Gateway, LLM Gateway DevPassbrowser, which creates a key for youllmgateway/*
Kilo Gatewaydevice codekilo/*
Z.AI Coding Planbrowser, then paste the final page's address backzai-coding-plan/*
Alibaba Coding Planpaste a keyalibaba-coding-plan/*
Alibaba Token Planpaste a keyalibaba-token-plan/*
Xiaomi MiMopaste a keyxiaomi/*
Meta Model APIpaste a keymeta/*

Z.AI is the only sign-in that cannot finish on its own. The browser ends on a web page instead of returning to Empryo. Copy that page's address and paste it into Empryo when asked.

Some accounts offer the same base models. For example, Gemini CLI and Antigravity both serve gemini-* models. To keep them apart, their model ids include the account name (google-gemini-cli/…, google-antigravity/…). Cursor and Devin work the same way. This way you always know which account pays for a turn.

Signing inLink to this section

Run /login in the terminal UI or the desktop app. The list shows every account you can sign in to, marks the ones you are already signed in to, and starts the sign-in you pick.

Sign in
  ChatGPT Codex
  ChatGPT Codex (device code)
  Cursor
  Devin (Cognition)
  GitHub Copilot                 device code
  GitHub Copilot (Enterprise)    ghe.example.com
  Grok (SuperGrok / X Premium)
  Grok (device code)
  Gemini CLI
  Antigravity
  Kimi Code                      device code
  Muse Code                      device code
  Fire Pass                      paste key
  OpenRouter
  Ollama Cloud                   paste key
  LLM Gateway                    signed in
  Kilo Gateway                   device code
  Z.AI Coding Plan
  Alibaba Coding Plan            paste key
  Alibaba Token Plan             paste key
  Xiaomi MiMo                    paste key
  Meta Muse                      paste key

Each row shows how the sign-in works and which account you are on. A Copilot Enterprise row also shows the GitHub host, so you can tell a company account from a personal one.

To skip the list, add the account name:

bash
/login codex           # ChatGPT, browser
/login codex-device    # ChatGPT, device code
/login grok            # Grok, browser
/login grok-device     # Grok, device code
/login cursor          # Cursor, browser
/login devin           # Devin, browser
/login google-gemini-cli   # Gemini CLI (Google Cloud Code Assist)
/login google-antigravity  # Antigravity (Google)
/login kimi-code       # Kimi Code, device code
/login muse-code       # Muse Code (Meta), device code
/login copilot         # GitHub Copilot
/login copilot-enterprise  # GitHub Copilot on a GHE host
/login openrouter      # OpenRouter, browser
/login firepass        # Fire Pass, masked key entry, no browser
/login ollama-cloud    # Ollama Cloud, masked key entry
/login kilo            # Kilo Gateway, device code
/login zai-coding-plan # Z.AI GLM coding plan, browser then paste the redirect
/login alibaba-coding-plan # Qwen coding plan, masked key entry
/login alibaba-token-plan  # Qwen token plan, masked key entry
/login xiaomi          # Xiaomi MiMo, masked key entry
/login meta            # Meta Model API, masked key entry

Brand names work too: /login chatgpt goes to ChatGPT Codex, /login xai-oauth to Grok, /login zai and /login glm to the Z.AI coding plan, and /login qwen to the Alibaba coding plan.

For accounts marked "masked key entry", you paste the key into a hidden field (the keys panel in the terminal UI, a password field in the desktop app). You never type it on the command line. Alibaba and Xiaomi sell the same plan in several regions. Empryo tests your key and finds the right region for you.

You can also sign in without a UI:

bash
empryo --headless --login codex
empryo --headless --login codex --no-browser

--no-browser prints the sign-in address instead of opening a browser. This helps when you are connected to a machine over SSH. For the paste-a-key accounts, put the key after the name: empryo --headless --login firepass <key>.

If you pick an account you are already signed in to, Empryo asks before it continues. Signing in again replaces the stored sign-in.

When the browser cannot reach EmpryoLink to this section

Browser sign-ins send you back to a small local web server that Empryo starts on your machine.

  • ChatGPT must use port 1455, because OpenAI only accepts that address. If something else is using port 1455, Empryo tells you before it opens the browser.

In that case, or when your browser is on another computer, use the device code instead:

bash
/login codex-device

Empryo shows a code. Open auth.openai.com/codex/device, type the code, and you are done. No local port is used.

Remote machines and serversLink to this section

Browser sign-ins need a browser on the same machine as Empryo. Over SSH, in a container, or on a server with no desktop, your browser is somewhere else. You have three options, easiest first:

  1. Use a device code. ChatGPT (codex-device), Grok (grok-device), Copilot, Copilot Enterprise, Kimi Code, Muse Code, and Kilo work from any browser on any machine.
  2. Forward the port. Run ssh -L 1455:localhost:1455 host for ChatGPT (54549 for OpenRouter). Then run /login on the remote machine and open the printed address on your own computer.
  3. Paste a key. Fire Pass, Ollama Cloud, and the coding plans accept a key directly.

Add --no-browser on machines that have no default browser.

Empryo stores sign-ins in your system's secret store: the keychain on macOS, the Windows credential protection on Windows, and the secret service on Linux desktops. Most Linux servers have no secret service. There, Empryo uses a file under the config folder that only your user can read. /keys shows where each key is stored.

Where the models show upLink to this section

Every signed-in account appears under the Subscriptions provider in the model picker, grouped by account. Model ids look like subscriptions/gpt-5.6-sol, subscriptions/grok-4.2, or subscriptions/cursor/composer. To switch plans, you just pick a different model.

Empryo asks each vendor which models your account can use. If the vendor does not answer, it falls back to models.dev data, and then to a built-in list.

When you sign out of an account, its models leave the picker.

Things to knowLink to this section

  • The ChatGPT subscription only supports streamed replies. Anything that needs a non-streamed reply fails with a clear error.

Muse Code (Meta)Link to this section

/login muse-code shows a code. Open auth.meta.com/oauth/device, approve it with your Meta account, and Empryo gets a Muse Code key from Meta. Turns then bill to your Muse Code plan (Everyday, High, Power or Maximum Usage) instead of per token.

  • Models. The picker lists the models your plan includes, from Meta's own Muse Code catalog, as subscriptions/muse-code/<model>. That covers Muse Wonder, Muse Spark and, on Power and Maximum Usage, Muse Wonder Full. The -contributor models are the Contributor mode versions: they give you more usage, and Meta may train on that content.
  • Usage. The 5-hour and weekly windows, with their reset times, show in /usage and on the desktop usage page. Empryo asks Meta for them at most every 5 minutes, the same way Meta's own app does. When nothing has run for a while, the 5-hour window reads 0% and the weekly figure holds until its reset.
  • Terms. Meta's terms say the Muse Code key is for Meta's own coding app. Like every account on this page, using it in Empryo is at your own risk. For use Meta fully allows, save a Model API key with /login meta.
  • Business and Enterprise (MMA) accounts cannot use the device sign-in. Use /login meta with a Model API key. Those keys bill per token.
  • Effort follows the levels Meta lists for each model, usually minimal to xhigh, with max on Muse Wonder and Muse Spark 1.3. Meta rejects "no reasoning" (none) on these models, so Empryo sends minimal instead. With effort set to off or auto, Empryo sends no level and Meta picks its own.
  • Muse Wonder is not available in South Korea.

Signing outLink to this section

Run /login, pick the account, and choose Sign out. This deletes the stored sign-in from your machine. It does not change your account with the vendor. To sign back in, follow the same steps as the first time.

Subscriptions, proxy, or an API keyLink to this section

SubscriptionsProxyAPI key
Installnothingempryo addon install proxynothing
CoversChatGPT, Copilot, Grok, Cursor, Devin, Gemini, and moreClaude, ChatGPT, Gemini, Grokevery provider
Where the credential livesyour keychainthe proxy's own filesyour keychain
Accounts per providerseveral, with automatic switchingseveralone key, or several for custom providers
You pay withyour planyour plancredit, per token
Usage displayplan limitsplan limitsspend per token

You can use more than one. They are separate providers with separate sign-ins, and the model id tells you which one runs the turn.

More than one accountLink to this section

Run /login again and pick Add another account. Both accounts stay signed in, and the list marks the one that will pay for the next turn.

One email address can have more than one plan, for example a Team seat and a personal Max plan. Empryo keeps them as two separate accounts.

When a plan runs out, Empryo switches to the next account. The used-up account waits until its limit resets. The terminal shows which account took over, next to the plan meter.

  • Only a used-up plan causes a switch. A short "too many requests" error is waited out on the same account.
  • Limits are tracked per model family. Using up the weekly limit for one model family does not stop the account from serving other models.

Empryo also switches before sending a request if it already knows the current plan is used up. That way a long turn does not fail halfway through.

You can pick an account by hand at any time from /login. The same list lets you switch, add, and sign out of accounts.

A model on a chosen accountLink to this section

With two or more accounts on one plan, the model picker also lists each account's models under its own heading, for example Claude Pro/Max · work@example.com. A model picked there always uses that account, whichever one is active, so one tab can run on your work plan while workers run on your personal one. The model id carries the account after a #:

subscriptions/claude-opus-5-5#work@example.com

Use that id anywhere a model goes: a tab, a /router role, or "dispatch to subscriptions/claude-opus-5-5#home@example.com". A model on a chosen account never switches accounts: if that plan runs out, the request fails instead of moving to another account. Models without # keep following the active account as before.

How much of your plan is leftLink to this section

Empryo asks each vendor for your usage, so the numbers match what the vendor's own app shows. That includes the 5-hour limit, the weekly limit, and per-model weekly limits where the plan has them, each with its reset time.

AccountWhat the meter showsUnit
ChatGPT Codex5-hour and weekly limitspercent
Gemini Code Assistper-model daily request limitspercent
CursorCursor models and other models for the billing monthpercent
GitHub Copilotpremium requests, chat, and completions against your seat's allowancerequests
OpenRouterspend against the key's credit limitUS dollars
Muse Code5-hour and weekly limits, checked with Meta at most every 5 minutes and updated by each replypercent

Keep two things in mind:

  • Copilot counts premium requests, not tokens. If your seat allows extra paid usage, it keeps working past the allowance and GitHub bills you for it. Empryo shows how many extra requests you used and estimates the cost from GitHub's published price per request. GitHub does not report that dollar amount, so Empryo labels it as an estimate. If the price changes, set EMPRYO_COPILOT_PREMIUM_USD to the new rate.
  • OpenRouter reports your total spend and, if the key has one, its credit limit. For a key with no limit, Empryo shows the spend without a progress bar.

When you use a subscription model, the status bar shows your plan meter in both the terminal and the desktop app. /usage lists every limit for every account. The desktop app's usage page shows one card per plan.

The per-token costs Empryo shows for subscription models are estimates based on token counts and models.dev prices. They are not what you are billed. Your plan meter is the number that matters.

TroubleshootingLink to this section

Port 1455 is in use

Only ChatGPT needs that exact port. Close whatever is using it, or run /login codex-device instead.

The browser opened but nothing came back

Empryo listens on both IPv4 and IPv6 for the return address. If the page still hangs, close it and use a device-code sign-in instead.

Signed in, but no models

Open /login and check the account. A sign-in that has passed its renewal window can still look signed in until the next renewal fails. Sign in again.

Usage credits are required for long context requests

This comes from a model using the 1M-token context option on a subscription. Empryo does not request that option on subscription models, so pick a model with a native 1M-token window instead.

Workspace is not authorized in this region

This happens with a company ChatGPT workspace tied to a region. Sign in again to fix it.