Mawen API · Setup guide

Your key, inside your own tools

Check your key

Paste your key to see what is left on it and every request it has made.

Claude, GPT, Gemini, Grok and more in Claude Code, Codex, Cursor, Cline and the rest — one address, one key, one balance. Setup takes about five minutes.

1 Your key

  1. Your API key came with your order. It starts with sk-ntm- and it holds your tokens — there is no account to create and nothing to sign in to.
  2. Keep it to yourself: anyone who has the key can spend its tokens.
  3. What is left on it, and every request it has made, is in the Check your key box at the top of this page. Now set up your tool below.

2 Set up your tool

Pick your tool and follow the steps in order. Every tool needs the same three things: the address, your key and a model ID. Every model ID is in the Model IDs list — click one to copy it.

Your system:

Claude Code Desktop

Anthropic
  1. Open Help → Troubleshooting → Enable Developer Mode. After the app restarts, choose Developer → Configure Third-Party Inference…. On Windows the ☰ menu is in the top-left of the sign-in screen.
  2. Set Inference provider to Gateway. Then fill in Gateway credentials as in the picture:
    Claude Code Desktop, Gateway credentials: Gateway base URL is https://api.mawen8899.com, Gateway API key is a key starting with sk-ntm-; Credential kind is Static API key, Gateway auth scheme is bearer.
    1. Gateway base URL: https://api.mawen8899.com
    2. Gateway API key: paste your own key (it starts with sk-ntm-).
    3. Credential kind must be Static API key and Gateway auth scheme bearer. Leave the other fields empty.
  3. Further down the same page, in Models, click Add model. Leave the other settings there as they are.
    Claude Code Desktop, the Models section: the Add model button on the Model list row is marked.
  4. Fill in the box that opens as in the picture:
    Claude Code Desktop, a new model: Model ID claude-opus-4-8, Display name Opus 4.8, Tier alias opus.
    1. Model ID: claude-opus-4-8 — exactly this; it is what reaches the server. Short names like opus-4.8 do not work.
    2. Display name: the name you see in the picker; left empty, the app makes one from the ID.
    3. Tier alias: the model's family, here opus.
    4. Add: for the next model.
    Leave Offer 1M-context variant off and Max effort empty.
  5. Add as many models as you like; copy their IDs from the Model IDs list. Tier alias is the family named in the ID: claude-opus-… → opus, claude-sonnet-… → sonnet, claude-fable-… → fable. The first model in the list is the one the app starts with. Only Claude models belong in this screen: GPT and the other models speak the OpenAI format, so use one of the other tools for those.
  6. Click Apply locally — the app saves the configuration and relaunches. Open the Code tab, pick one of the models you added and send a test message. All of them sit in the same picker, so you can switch between them whenever you like.

Claude CLI

Anthropic
  1. Open the settings file — create it if it is not there yet:
    macOS / Linux~/.claude/settings.json Windows%USERPROFILE%\.claude\settings.json
  2. Put the address, your key and your models in its env block:
    {
      "env": {
        "ANTHROPIC_BASE_URL": "https://api.mawen8899.com",
        "ANTHROPIC_AUTH_TOKEN": "sk-ntm-…",
        "ANTHROPIC_MODEL": "claude-opus-4-8",
        "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-8",
        "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
        "ANTHROPIC_DEFAULT_FABLE_MODEL": "claude-fable-5-1",
        "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-5-5"
      }
    }
    If the file already exists, add the env block to it instead of replacing the file.
  3. What the model lines mean:
    ANTHROPIC_MODEL                  the model claude starts with
    ANTHROPIC_DEFAULT_OPUS_MODEL     the model behind the name "opus"
    ANTHROPIC_DEFAULT_SONNET_MODEL   the model behind "sonnet"
    ANTHROPIC_DEFAULT_FABLE_MODEL    the model behind "fable"
    ANTHROPIC_DEFAULT_HAIKU_MODEL    the model behind "haiku" — and the one
                                     used for small background requests
    Every value is a full model ID from the model table below. Keep "haiku" on Haiku 5.5, the cheapest model: titles and summaries run on it in the background, and without that line they go to your main — more expensive — model. To put a different model behind a name, change its line, for example "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5-5".
  4. Run claude. Switch models whenever you like, without leaving the session:
    /model sonnet            → claude-sonnet-5
    /model fable             → claude-fable-5-1
    /model opus              → claude-opus-4-8
    /model haiku             → claude-haiku-5-5
    /model claude-opus-5-5   → any full model ID works as well
    Or start straight on one: claude --model sonnet. The file is read at startup, so restart claude after you edit it.
Just trying it in one terminal? The same names work as variables, but they last only for that terminal. For example: export ANTHROPIC_BASE_URL="https://api.mawen8899.com" $env:ANTHROPIC_BASE_URL = "https://api.mawen8899.com" settings.json is the permanent place.

Cursor

OpenAI
  1. Open Settings (Cmd/Ctrl+Shift+J) → Models.
  2. Expand OpenAI API Key and paste your key: sk-ntm-…
  3. Enable Override OpenAI Base URL and enter https://api.mawen8899.com/v1
  4. Click + Add model and enter a model ID, for example gpt-5.6-luna.
  5. Click Verify — Cursor sends a test request and saves the key and the base URL.

Codex

OpenAI
  1. Create the Codex configuration file:
    macOS / Linux~/.codex/config.toml Windows%USERPROFILE%\.codex\config.toml
    model = "gpt-5.6-luna"
    model_provider = "mawen"
    
    [model_providers.mawen]
    name = "Mawen API"
    base_url = "https://api.mawen8899.com/v1"
    env_key = "MAWEN_API_KEY"
    wire_api = "responses"
    To use another model, put any ID from the GPT group of the model table on the model line.
  2. Put the key in the environment variable the file names.
    macOS / Linux — this terminal only
    export MAWEN_API_KEY="sk-ntm-…"
    Windows (PowerShell) — this terminal only
    $env:MAWEN_API_KEY = "sk-ntm-…"
  3. Make it permanent, so a new terminal — and the Codex app — still has the key.
    Windows (PowerShell) — run once
    [System.Environment]::SetEnvironmentVariable('MAWEN_API_KEY', 'sk-ntm-…', 'User')
    Then close the terminal and open a new one.
    macOS — once, in Finder
    1. In Terminal, type touch ~/.zshrc and press Return. It creates the file if it is missing and changes nothing if it is already there.
    2. Open Finder and press ⌘ Cmd + Shift + G.
    3. Type ~/.zshrc in the box and press Return — the file comes up selected.
    4. Right-click it → Open With → TextEdit.
    5. Add this line at the very bottom, with your own key in place of sk-ntm-…:
      export MAWEN_API_KEY="sk-ntm-…"
    6. Save with ⌘ Cmd + S. Quit Terminal completely (⌘ Cmd + Q) and open it again.
    Linux — run once
    echo 'export MAWEN_API_KEY="sk-ntm-…"' >> ~/.bashrc
    Then close the terminal and open a new one.
  4. Using the Codex desktop app? Quit it completely and open it again — it reads the key only when it starts. To quit it, right-click its icon next to the clock → Quit. To quit it, press ⌘ Cmd + Q while it is in front.
Codex says “Missing environment variable: MAWEN_API_KEY”? Step 3 is missing: the key was set in one terminal only, and Codex was started from another one or from the app. Do step 3, close and reopen the terminal (or the app), and start codex again.

OpenCode

OpenAI
  1. Create the configuration file and open it; run this in your terminal:
    macOS
    mkdir -p ~/.config/opencode && touch ~/.config/opencode/opencode.json && open -t ~/.config/opencode/opencode.json
    Linux
    mkdir -p ~/.config/opencode && nano ~/.config/opencode/opencode.json
    Windows (PowerShell)
    mkdir -Force "$HOME\.config\opencode" | Out-Null; notepad "$HOME\.config\opencode\opencode.json"
  2. Put the provider in it, with your own key in place of sk-ntm-…, and save:
    {
      "$schema": "https://opencode.ai/config.json",
      "model": "mawen/gpt-6-luna",
      "provider": {
        "mawen": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "Mawen API",
          "options": {
            "baseURL": "https://api.mawen8899.com/v1",
            "apiKey": "sk-ntm-…"
          },
          "models": {
            "gpt-6-luna": {
              "name": "GPT 6 Luna",
              "attachment": true,
              "modalities": { "input": ["text", "image"], "output": ["text"] },
              "limit": { "context": 200000, "output": 32000 }
            },
            "claude-opus-5-5": {
              "name": "Opus 5.5",
              "attachment": true,
              "modalities": { "input": ["text", "image"], "output": ["text"] },
              "limit": { "context": 200000, "output": 32000 }
            }
          }
        }
      }
    }
    This format works on both OpenCode 1.x and 2.x. For another model, add a block like these; the IDs are in the Model IDs list. If the file already has other settings, add these lines to them instead of replacing the file.
  3. Restart OpenCode and open /models: your models are under Mawen API. If they are not there, OpenCode did not load the file: check the file's name and folder first, then look for a typing mistake. OpenCode skips a broken file without a word, so fix it before you go on. Keep /v1 in baseURL.

Cline

OpenAI
  1. Open the Cline panel → ⚙.
  2. API Provider → OpenAI Compatible.
  3. Base URL → https://api.mawen8899.com/v1
  4. API Key → sk-ntm-…
  5. Model ID → type an ID from the model table. The list is not fetched automatically, so enter it by hand, then click Verify.

Kilo Code

OpenAI
  1. ⚙ → Providers tab → Custom provider at the bottom.
  2. Set the Provider ID (mawen) and the Display name (Mawen API).
  3. Provider API → OpenAI Compatible.
  4. Enter the Base URL https://api.mawen8899.com/v1 and the API key sk-ntm-…
  5. In Models, enter an ID from the model table. For a custom provider, set Context Window and Max Output Tokens in Model Configuration.

Droid (Factory)

OpenAI
  1. Export the key.
    macOS / Linux
    export MAWEN_API_KEY="sk-ntm-…"
    Windows (PowerShell)
    $env:MAWEN_API_KEY = "sk-ntm-…"
  2. Add a custom model to settings.json:
    macOS / Linux~/.factory/settings.json Windows%USERPROFILE%\.factory\settings.json
    {
      "customModels": [
        {
          "model": "claude-opus-4-8",
          "displayName": "Mawen Opus 4.8",
          "baseUrl": "https://api.mawen8899.com/v1",
          "apiKey": "${MAWEN_API_KEY}",
          "provider": "generic-chat-completion-api",
          "maxOutputTokens": 16384
        }
      ]
    }
  3. Run droid, execute /model and pick the entry from Custom models. settings.json uses camelCase fields (do not mix it with the legacy config.json / snake_case), the provider is generic-chat-completion-api, and ${VAR} only works in settings.json.

Pi

OpenAI
  1. Create the models file and open it; run this in your terminal:
    macOS
    mkdir -p ~/.pi/agent && touch ~/.pi/agent/models.json && open -t ~/.pi/agent/models.json
    Linux
    mkdir -p ~/.pi/agent && nano ~/.pi/agent/models.json
    Windows (PowerShell)
    mkdir -Force "$HOME\.pi\agent" | Out-Null; notepad "$HOME\.pi\agent\models.json"
  2. Put the provider in it, with your own key in place of sk-ntm-…, and save:
    {
      "providers": {
        "mawen": {
          "name": "Mawen API",
          "baseUrl": "https://api.mawen8899.com/v1",
          "api": "openai-completions",
          "apiKey": "sk-ntm-…",
          "models": [
            {
              "id": "gpt-6-luna",
              "name": "GPT 6 Luna",
              "input": ["text", "image"],
              "contextWindow": 200000,
              "maxTokens": 32000
            },
            {
              "id": "claude-opus-5-5",
              "name": "Opus 5.5",
              "input": ["text", "image"],
              "contextWindow": 200000,
              "maxTokens": 32000
            }
          ]
        }
      }
    }
    For another model, add a block like these; the IDs are in the Model IDs list. If the file already has other providers, add only the mawen block next to them.
  3. In your project folder, run pi, type /model, move to a model marked [mawen] and press Ctrl+S: it is selected and stays your default.

OMP (oh-my-pi)

OpenAI
  1. Create the models file and open it; run this in your terminal:
    macOS
    mkdir -p ~/.omp/agent && touch ~/.omp/agent/models.yml && open -t ~/.omp/agent/models.yml
    Linux
    mkdir -p ~/.omp/agent && nano ~/.omp/agent/models.yml
    Windows (PowerShell)
    mkdir -Force "$HOME\.omp\agent" | Out-Null; notepad "$HOME\.omp\agent\models.yml"
  2. Put the provider in it, with your own key in place of sk-ntm-…, and save:
    providers:
      mawen:
        baseUrl: https://api.mawen8899.com/v1
        api: openai-completions
        apiKey: sk-ntm-…
        models:
          - id: gpt-6-luna
            name: Mawen GPT 6 Luna
            reasoning: false
            input: [text, image]
            contextWindow: 200000
            maxTokens: 32000
          - id: claude-opus-5-5
            name: Mawen Opus 5.5
            reasoning: false
            input: [text, image]
            contextWindow: 200000
            maxTokens: 32000
    For another model, add a block like these; the IDs are in the Model IDs list. If the file already has a providers: line, add only the mawen block under it.
  3. Check it: omp models mawen must list your models.
  4. In your project folder, run omp. On the first launch, press Esc at Set up your providers; at Choose your default model, type mawen and pick a model. To change it later, type /model, find the model and assign it to Default.

Hermes Agent

OpenAI
  1. Open the settings file with hermes config edit. It lives here:
    macOS / Linux~/.hermes/config.yaml Windows%LOCALAPPDATA%\hermes\config.yaml
  2. Find the model: line at the far left of the file. Delete it and all the indented lines under it, paste this in its place with your own key instead of sk-ntm-…, and save:
    model:
      provider: custom:mawen
      default: gpt-6-luna
    
    providers:
      mawen:
        name: Mawen API
        api: https://api.mawen8899.com/v1
        api_key: sk-ntm-…
        transport: chat_completions
        default_model: gpt-6-luna
        discover_models: false
        models:
          gpt-6-luna:
            context_length: 200000
            supports_vision: true
          claude-opus-5-5:
            context_length: 200000
            supports_vision: true
    Only one model: and one providers: line may start at the far left of the file; lines with spaces or # in front do not count. With a second one, Hermes cannot read the file and your settings do not apply. For another model, add it under models: the same way; the IDs are in the Model IDs list.
  3. Test it: hermes chat --oneshot -q "Reply with exactly OK". A reply means it works.
  4. In your project folder, run hermes. /model opens the list: Mawen API, then the model. That choice lasts for the session; to keep it, type /model claude-opus-5-5 --global.

OpenClaw

OpenAI
  1. If you have not set OpenClaw up yet, run openclaw setup --baseline first.
  2. Create a file for the settings and open it; run this in your terminal:
    macOS
    touch mawen.patch.json && open -t mawen.patch.json
    Linux
    nano mawen.patch.json
    Windows (PowerShell)
    notepad mawen.patch.json
  3. Put this in it, with your own key in place of sk-ntm-…, and save:
    {
      "models": {
        "mode": "merge",
        "providers": {
          "mawen": {
            "baseUrl": "https://api.mawen8899.com/v1",
            "apiKey": "sk-ntm-…",
            "api": "openai-completions",
            "models": [
              {
                "id": "gpt-6-luna",
                "name": "Mawen GPT 6 Luna",
                "input": ["text", "image"],
                "contextWindow": 200000,
                "maxTokens": 32000
              },
              {
                "id": "claude-opus-5-5",
                "name": "Mawen Opus 5.5",
                "input": ["text", "image"],
                "contextWindow": 200000,
                "maxTokens": 32000
              }
            ]
          }
        }
      },
      "agents": {
        "defaults": {
          "model": { "primary": "mawen/gpt-6-luna" },
          "models": {
            "mawen/gpt-6-luna": { "alias": "mw-luna" },
            "mawen/claude-opus-5-5": { "alias": "mw-opus" }
          }
        }
      }
    }
    For another model, add a block to the models list and a line with its alias under agents; the IDs are in the Model IDs list.
  4. Add it to your settings: openclaw config patch --file ./mawen.patch.json. This adds these lines and leaves your other settings as they are. Then delete mawen.patch.json: your key is in it.
  5. Run openclaw chat. Switch models with /model mw-opus or /model mw-luna. To change the default: openclaw models set mawen/claude-opus-5-5.

Kimi Code

OpenAI
  1. Run kimi --version: it must start with 2. Version 1.x is the old tool and reads a different file.
  2. Create the settings file and open it; run this in your terminal:
    macOS
    mkdir -p ~/.kimi-code && touch ~/.kimi-code/config.toml && open -t ~/.kimi-code/config.toml
    Linux
    mkdir -p ~/.kimi-code && nano ~/.kimi-code/config.toml
    Windows (PowerShell)
    mkdir -Force "$HOME\.kimi-code" | Out-Null; notepad "$HOME\.kimi-code\config.toml"
  3. Put this in it, with your own key in place of sk-ntm-…, and save:
    default_model = "mawen/gpt-6-luna"
    
    [providers.mawen]
    type = "openai"
    base_url = "https://api.mawen8899.com/v1"
    api_key = "sk-ntm-…"
    
    [models."mawen/gpt-6-luna"]
    provider = "mawen"
    model = "gpt-6-luna"
    display_name = "Mawen GPT 6 Luna"
    max_context_size = 200000
    capabilities = ["tool_use", "image_in"]
    
    [models."mawen/claude-opus-5-5"]
    provider = "mawen"
    model = "claude-opus-5-5"
    display_name = "Mawen Opus 5.5"
    max_context_size = 200000
    capabilities = ["tool_use", "image_in"]
    The default_model line must stay at the very top, above the first line that starts with [, and only once. For another model, add a block like these; the IDs are in the Model IDs list.
  4. Run kimi in your project folder. You do not need /login: that is for Kimi accounts only. Switch models with /model. On Windows, Git for Windows must be installed first: Kimi Code does not run without it.

DeepSeek Harness

OpenAI
  1. Start it with npx @deepseek-ai/dsh webnpx.cmd @deepseek-ai/dsh web (it needs Node.js 24.9 or newer); it opens in your browser. Click Continue on Preview Notice, then Configure later on Add an API key to get started. In the desktop app, go straight to step 2.
  2. Open Settings → Models → Add model provider and switch to Custom model API.
  3. Provider ID → mawen, Display name → Mawen API.
  4. Base URL → https://api.mawen8899.com/v1, API protocol → OpenAI Chat Completions.
  5. API key → sk-ntm-…
  6. Click Fetch available models, tick the models you want and click Add selected. Then click Create provider.
  7. Pick your project with Choose workspace, then choose the model under Mawen API in the message box.

Any other tool

OpenAI · Anthropic

Any application that speaks the OpenAI or the Anthropic API works: give it the address, the key and a model ID.

OpenAI format:     https://api.mawen8899.com/v1
Anthropic format:  https://api.mawen8899.com   (without /v1)
Authorization:     Bearer sk-ntm-…

# OpenAI SDK (Python)
from openai import OpenAI
client = OpenAI(base_url="https://api.mawen8899.com/v1", api_key="sk-ntm-…")

# curl
curl https://api.mawen8899.com/v1/chat/completions \
  -H "Authorization: Bearer sk-ntm-…" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6-luna","messages":[{"role":"user","content":"Hello"}],"stream":true}'

Both formats accept x-api-key and Authorization: Bearer, and both draw from the same balance.

401Unauthorized — the key is wrong or has been switched off. Copy it again from your order.
402Payment Required — the key has used all of its tokens. Order more tokens to continue.
400Model not found — the model ID is not exactly one from the model table.
429Too Many Requests — too many requests at once on one key. Wait a moment and try again.
503Temporarily unavailable — a short outage on the service. Try again shortly; if it keeps happening, message us.

3 Models and what they cost you

Your balance is held in tokens, and every model draws from the same pool — but not at the same rate. Each model has a coefficient: the tokens a request uses are multiplied by that number before they come off your balance. A request that uses 50,000 tokens costs 100,000 tokens on a ×2 model and 500,000 on a ×10 one.

Claude · /v1/messages
claude-opus-5-5×6
claude-opus-5×5
claude-opus-4-8×4
claude-opus-4-7×4
claude-opus-4-6×4
claude-sonnet-5-5×3.5
claude-sonnet-5×2.5
claude-sonnet-4-6×2
claude-haiku-5-5×1
claude-fable-5-1×10
claude-fable-5×10
GPT · /v1/chat/completions · /v1/responses
gpt-6.1-sol×4
gpt-6.1-terra×2.5
gpt-6-astra×8
gpt-6-sol×4
gpt-6-luna×1.5
gpt-5.6-sol×4
gpt-5.6-terra×3
gpt-5.6-luna×1.7
codex-auto-review×4
Gemini · /v1/chat/completions
gemini-4-argon×7
gemini-3.8-flash×2
gemini-3.1-pro×4
Grok · /v1/chat/completions
grok-4.7×3
grok-4.6×3
grok-4.5×3
DeepSeek · /v1/chat/completions
deepseek-v4-pro×2
deepseek-v4-flash×1
deepseek-v4-flash-uncensored×3
Kimi · /v1/chat/completions
kimi-k3.1-pro×5
kimi-k3×5
kimi-k2.7-code×1.5
kimi-k2.6×1.5
Qwen · /v1/chat/completions
qwen-3.8-max×5
qwen-3.8-flash-next×2
GLM · /v1/chat/completions
glm-5.3×4
glm-5.3-flash×1.5
MiMo · /v1/chat/completions
mimo-v2.6-pro×2.5
mimo-v2.6-flash×1
Muse · /v1/chat/completions
muse-wonder×4
muse-spark-1.3×1.5
Hy4 · /v1/chat/completions
hy4-preview×3

The cheapest are claude-haiku-5-5, deepseek-v4-flash and mimo-v2.6-flash (×1), ideal for short, simple tasks. For everyday work claude-sonnet-4-6 and gpt-6-luna are the most economical. Keep claude-opus-5-5 and gpt-6-astra for the genuinely hard problems; the fable family is the most capable and the fastest to spend.

Write the model ID exactly claude-opus-4-8 works. opus-4.8 and Opus 4.8 do not — they come back as “model does not exist”.

Getting more out of your balance

Your very first message will use several thousand tokens. That is normal: coding agents attach their own instructions, their tool definitions and your project context to every request.

  • Clear the session when you start something new. The agent re-sends the whole conversation with every message, so a long chat is an expensive chat. /clear in Claude Code, a new session in Codex. This one habit saves more than all the others together.
  • Name the file. “Fix the bug in src/auth/login.ts” is far cheaper than “there is a bug somewhere, find it” — with the second one the agent reads dozens of files and you pay for every one.
  • Trim your error messages. Paste the 15–20 lines around the error, not the whole log.
  • Stop it when it gets stuck. An agent looping on the same failed idea burns real balance in minutes. Esc, then rephrase.
  • Match the model to the job. The spread between the cheapest and the dearest model is more than six times. Routine edits do not need the expensive end.
  • Check your key's history for the first few days (the box at the top of this page). Seeing what each request actually cost tunes your habits faster than any advice.

Common questions

Do I need an OpenAI or Anthropic account?

No. Your key is the whole thing: no account to create, nothing to sign in to. You never sign in to chatgpt.com or claude.ai and you never hand a password to anyone.

Is this an official OpenAI or Anthropic service?

No. Mawen API is an independent gateway that speaks the OpenAI and Anthropic API formats exactly — which is why your tools work without any change. Your usage is not billed by OpenAI or Anthropic, and the service is not affiliated with them.

Can one key work in both Codex and Claude Code?

Yes. The same key is accepted in both formats and both draw from the same token balance. Anthropic-format tools use https://api.mawen8899.com; OpenAI-format tools add /v1.

What happens when my key runs out of tokens?

Requests stop with a 402 error. Order more tokens; if you receive a new key, put it where the old one was — the address and the models stay the same.

“The requested model does not exist” — what now?

The model ID is not exactly right. Copy it from the model table: claude-opus-4-8, not opus-4.8; gpt-5.6-luna, not GPT 5.6 Luna.

My key works in one terminal but not in another.

An exported variable lives only in the terminal you typed it in. Make it permanent; step 3 of the Codex card walks you through it. On Windows you run the SetEnvironmentVariable command once. On macOS you open ~/.zshrc from Finder (⌘ Cmd + Shift + G) and add the export line at the bottom. On Linux you add the export line to the bottom of ~/.bashrc. Then open a new terminal.

Why did a short question cost more tokens than I expected?

Three things add up: your tool sends its own system instructions with every request, it re-sends the conversation so far, and the cost is multiplied by the model's coefficient. Every request, with its tokens, is in your key's history in the box at the top.

Can I share my key with a colleague?

Don't. Anyone holding your key spends its tokens. Never put it in a public repository, a screenshot or a shared file. If you think it has leaked, message us: we switch it off and move what is left to a new key.

How do I undo the setup?

Remove the address and key you added, then close the application completely and reopen it. Your projects and your other settings are untouched.

Stuck somewhere? Message us — tell us which step you are on and send the error message word for word.