Account con chiave API
Questa pagina è stata tradotta automaticamente dall'inglese. Le correzioni sono benvenute. Modifica questa pagina su GitHub
Un account con chiave API avvia Claude Code con una chiave API invece che con il login di un abbonamento Claude: l'API di Anthropic, oppure un endpoint che usa lo stesso formato Messages, come un gateway LiteLLM o OpenRouter. ccam non salva la chiave. La legge ogni volta che l'account si avvia, da una variabile d'ambiente o da un comando come un gestore di password, e la passa solo a quel processo di Claude Code.
Utilizzo
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 -Un account con chiave API condivide impostazioni, CLAUDE.md, estensioni e server MCP come qualsiasi altro account, e funziona con le scorciatoie, ccam folder e ccam ext.
Opzioni
| Opzione | Cosa fa | Predefinito |
|---|---|---|
--api |
Aggiunge un account con chiave API invece di fare il login | disattivata |
--key-from env:NAME |
Legge la chiave dalla variabile d'ambiente NAME |
|
--key-from command:COMMAND |
Esegue COMMAND (con sh -c, oppure cmd /C su Windows) e usa la prima riga che stampa |
|
--base-url <url> |
L'endpoint (ANTHROPIC_BASE_URL) |
l'API di Anthropic |
--auth api-key|bearer |
Invia la chiave come ANTHROPIC_API_KEY (x-api-key) oppure come ANTHROPIC_AUTH_TOKEN (Authorization: Bearer, che di solito chiedono i gateway) |
api-key |
--model <model> |
Il modello (ANTHROPIC_MODEL) |
quello predefinito di Claude Code |
Le impostazioni vengono salvate in config.toml:
[[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'Come funziona
A ogni avvio dell'account, dopo i soliti controlli e prima che Claude Code parta:
- ccam legge la chiave:
env:dall'ambiente,command:eseguendo il comando con un limite di 30 secondi. Un comando può chiedere una password nel terminale; anche il suo output di errore va al terminale. Una chiave vuota ferma l'avvio con un messaggio che dice dove era attesa la chiave. - Rimuove ogni variabile ereditata che decide come Claude Code accede o quale provider usa:
ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKEN,CLAUDE_CODE_OAUTH_TOKEN,ANTHROPIC_BASE_URL,ANTHROPIC_MODEL,CLAUDE_CODE_USE_BEDROCK,CLAUDE_CODE_USE_VERTEXeCLAUDE_CODE_USE_FOUNDRY. Una chiave impostata nella tua shell per altro non può arrivare a questo account, e il login di un abbonamento non può prevalere sulla sua chiave. - Imposta
ANTHROPIC_BASE_URLeANTHROPIC_MODELquando indicati, e la chiave comeANTHROPIC_API_KEYoANTHROPIC_AUTH_TOKEN.
Gli account con il login di un abbonamento mantengono l'ambiente che ereditano, come prima. In una sessione interattiva Claude Code può chiedere una volta se usare la chiave che trova nell'ambiente.
Sicurezza e casi limite
- La chiave non viene mai scritta in
config.toml, in una cache o in un log, eccam --dry-run gwnon la legge: un dry run non esegue una sorgentecommand:. ccam add --apicontrolla subito una sorgenteenv:e avvisa se la variabile è vuota; una sorgentecommand:viene eseguita per la prima volta all'avvio.ccam logineccam logoutrifiutano un account con chiave API, perché non ha un login.ccam doctormostra il suo endpoint e la sorgente della chiave, e avvisa quando una variabileenv:è vuota.ccam usagemostraAPIper questo account.ccam next --auto,--fallbackeccam pickscelgono solo tra gli account con abbonamento, perché una chiave API non ha limiti su 5 ore o settimanali da confrontare.- Un
settings.jsoncondiviso con un bloccoenvoapiKeyHelpervale per ogni account del gruppo, compresi gli account con chiave API. Tieni le impostazioni del provider fuori dalle impostazioni condivise.