Fitur

Akun kunci API

Oleh jhyunwoo
Terakhir diperbarui 20 Oktober 2026
Diperiksa dengan ccam 0.8.0 dan Claude Code 2.1.302

Halaman ini diterjemahkan dengan mesin dari bahasa Inggris. Koreksi sangat dihargai. Sunting halaman ini di GitHub

Di halaman ini

Akun kunci API menjalankan Claude Code dengan kunci API alih-alih login langganan Claude: API Anthropic, atau endpoint yang memakai format Messages yang sama, seperti gateway LiteLLM atau OpenRouter. ccam tidak menyimpan kunci itu. ccam membacanya setiap kali akun dijalankan, dari variabel lingkungan atau dari perintah seperti pengelola kata sandi, dan hanya memberikannya ke proses Claude Code tersebut.

Penggunaan

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  -

Akun kunci API berbagi pengaturan, CLAUDE.md, ekstensi, dan server MCP seperti akun lainnya, dan berfungsi dengan pintasan, ccam folder, dan ccam ext.

Opsi

Opsi Fungsinya Default
--api Menambahkan akun kunci API alih-alih login nonaktif
--key-from env:NAME Membaca kunci dari variabel lingkungan NAME
--key-from command:COMMAND Menjalankan COMMAND (dengan sh -c, atau cmd /C di Windows) dan memakai baris pertama yang dicetaknya
--base-url <url> Endpoint (ANTHROPIC_BASE_URL) API Anthropic
--auth api-key|bearer Mengirim kunci sebagai ANTHROPIC_API_KEY (x-api-key) atau sebagai ANTHROPIC_AUTH_TOKEN (Authorization: Bearer, yang biasanya diminta gateway) api-key
--model <model> Model (ANTHROPIC_MODEL) Bawaan Claude Code

Pengaturan ini disimpan di 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'

Cara kerjanya

Setiap kali akun dijalankan, setelah pemeriksaan biasa dan sebelum Claude Code dimulai:

  1. ccam membaca kunci: env: dari lingkungan, command: dengan menjalankan perintah itu dengan batas 30 detik. Perintah bisa meminta kata sandi di terminal; output galatnya juga masuk ke terminal. Kunci yang kosong menghentikan peluncuran dengan pesan yang menyebutkan di mana kunci itu diharapkan.
  2. ccam menghapus setiap variabel warisan yang menentukan cara Claude Code masuk atau penyedia mana yang dipakainya: ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_BASE_URL, ANTHROPIC_MODEL, CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, dan CLAUDE_CODE_USE_FOUNDRY. Kunci yang diatur di shell Anda untuk keperluan lain tidak bisa sampai ke akun ini, dan login langganan tidak bisa mengalahkan kuncinya.
  3. ccam mengatur ANTHROPIC_BASE_URL dan ANTHROPIC_MODEL jika diberikan, dan kunci sebagai ANTHROPIC_API_KEY atau ANTHROPIC_AUTH_TOKEN.

Akun dengan login langganan tetap memakai lingkungan yang diwarisinya, seperti sebelumnya. Dalam sesi interaktif, Claude Code mungkin bertanya sekali apakah akan memakai kunci yang ditemukannya di lingkungan.

Keamanan dan kasus khusus

  • Kunci tidak pernah ditulis ke config.toml, cache, atau log, dan ccam --dry-run gw tidak membacanya: sumber command: tidak dijalankan oleh dry run.
  • ccam add --api langsung memeriksa sumber env: dan memperingatkan jika variabelnya kosong; sumber command: pertama kali dijalankan saat peluncuran.
  • ccam login dan ccam logout menolak akun kunci API, karena akun itu tidak punya login. ccam doctor menampilkan endpoint dan sumber kuncinya, dan memperingatkan jika variabel env: kosong.
  • ccam usage menampilkan API untuknya. ccam next --auto, --fallback, dan ccam pick hanya memilih di antara akun langganan, karena kunci API tidak punya batas 5 jam atau mingguan untuk dibandingkan.
  • settings.json bersama dengan blok env atau apiKeyHelper berlaku untuk setiap akun dalam grup, termasuk akun kunci API. Jauhkan pengaturan penyedia dari pengaturan bersama.