API-Schlüssel-Konten
Diese Seite wurde maschinell aus dem Englischen übersetzt. Korrekturen sind willkommen. Diese Seite auf GitHub bearbeiten
Ein API-Schlüssel-Konto startet Claude Code mit einem API-Schlüssel statt mit der Anmeldung eines Claude-Abos: die API von Anthropic oder ein Endpunkt, der dasselbe Messages-Format spricht, etwa ein LiteLLM- oder OpenRouter-Gateway. ccam speichert den Schlüssel nicht. Es liest ihn bei jedem Start des Kontos aus einer Umgebungsvariable oder über einen Befehl, etwa einen Passwortmanager, und gibt ihn nur an diesen Claude Code-Prozess weiter.
Verwendung
ccam add api --api --key-from env:ANTHROPIC_KEY_WORK
ccam add gw --api --base-url https://llm.example.com --auth bearer \
--model claude-sonnet-5-5 --key-from 'command:pass show llm/gateway-key'
ccam add mac --api --key-from 'command:security find-generic-password -s anthropic-api -w'
ccam gw -p "summarise the open issues"
ccam list$ ccam list
# Name Shortcut Email Shared Last used
* 1 personal - me@example.com mcp settings md ext 2h ago
2 gw - (API: llm.example.com) mcp settings md ext -Ein API-Schlüssel-Konto teilt Einstellungen, CLAUDE.md, Erweiterungen und MCP-Server wie jedes andere Konto und funktioniert mit Kurzbefehlen, ccam folder und ccam ext.
Optionen
| Option | Wirkung | Standard |
|---|---|---|
--api |
Ein API-Schlüssel-Konto hinzufügen, statt sich anzumelden | aus |
--key-from env:NAME |
Den Schlüssel aus der Umgebungsvariable NAME lesen |
|
--key-from command:COMMAND |
COMMAND ausführen (mit sh -c oder unter Windows cmd /C) und die erste ausgegebene Zeile verwenden |
|
--base-url <url> |
Der Endpunkt (ANTHROPIC_BASE_URL) |
Die API von Anthropic |
--auth api-key|bearer |
Den Schlüssel als ANTHROPIC_API_KEY (x-api-key) oder als ANTHROPIC_AUTH_TOKEN (Authorization: Bearer, was Gateways meist erwarten) senden |
api-key |
--model <model> |
Das Modell (ANTHROPIC_MODEL) |
Standard von Claude Code |
Die Einstellungen werden in config.toml gespeichert:
[[profile]]
name = 'gw'
slot = 2
[profile.api]
base_url = 'https://llm.example.com'
key_from = 'command:pass show llm/gateway-key'
auth = 'bearer'
model = 'claude-sonnet-5-5'So funktioniert es
Bei jedem Start des Kontos, nach den üblichen Prüfungen und bevor Claude Code startet:
- ccam liest den Schlüssel:
env:aus der Umgebung,command:durch Ausführen des Befehls mit einem Limit von 30 Sekunden. Ein Befehl kann im Terminal nach einem Passwort fragen; auch seine Fehlerausgabe geht an das Terminal. Ein leerer Schlüssel stoppt den Start mit einer Meldung, wo der Schlüssel erwartet wurde. - Es entfernt jede geerbte Variable, die bestimmt, wie sich Claude Code anmeldet oder welchen Anbieter es verwendet:
ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKEN,CLAUDE_CODE_OAUTH_TOKEN,ANTHROPIC_BASE_URL,ANTHROPIC_MODEL,CLAUDE_CODE_USE_BEDROCK,CLAUDE_CODE_USE_VERTEXundCLAUDE_CODE_USE_FOUNDRY. Ein Schlüssel, der in deiner Shell für etwas anderes gesetzt ist, kann dieses Konto nicht erreichen, und eine Abo-Anmeldung kann sich nicht gegen seinen Schlüssel durchsetzen. - Es setzt
ANTHROPIC_BASE_URLundANTHROPIC_MODEL, wenn angegeben, und den Schlüssel alsANTHROPIC_API_KEYoderANTHROPIC_AUTH_TOKEN.
Konten mit Abo-Anmeldung behalten wie bisher die Umgebung, die sie erben. In einer interaktiven Sitzung fragt Claude Code möglicherweise einmal, ob es den in der Umgebung gefundenen Schlüssel verwenden soll.
Sicherheit und Sonderfälle
- Der Schlüssel wird nie in
config.toml, einen Cache oder ein Protokoll geschrieben, undccam --dry-run gwliest ihn nicht: Einecommand:-Quelle wird bei einem Probelauf nicht ausgeführt. ccam add --apiprüft eineenv:-Quelle sofort und warnt, wenn die Variable leer ist; einecommand:-Quelle wird erst beim Start ausgeführt.ccam loginundccam logoutlehnen ein API-Schlüssel-Konto ab, da es keine Anmeldung hat.ccam doctorzeigt seinen Endpunkt und seine Schlüsselquelle und warnt, wenn eineenv:-Variable leer ist.ccam usagezeigt dafürAPI.ccam next --auto,--fallbackundccam pickwählen nur unter Abo-Konten, weil ein API-Schlüssel kein 5-Stunden- oder Wochenlimit zum Vergleichen hat.- Ein geteiltes
settings.jsonmit einemenv-Block oderapiKeyHelpergilt für jedes Konto der Gruppe, API-Schlüssel-Konten eingeschlossen. Halte Anbietereinstellungen aus geteilten Einstellungen heraus.