# Claude Code

> Pakai Vikey di Claude Code lewat settings.json, termasuk pemetaan model Claude, Vikey Auto, dan model untuk tugas latar belakang.

Claude Code bicara dengan format Anthropic (`/v1/messages`). Vikey menerima format itu, jadi kamu cukup mengarahkan Claude Code ke Vikey dan memberi tahu model id mana yang dipakai.

Diuji dengan Claude Code 2.1.323 pada 13 November 2026.

## Config yang disarankan

Tulis ini ke `~/.claude/settings.json` (Windows: `%USERPROFILE%\.claude\settings.json`). Kalau file itu sudah ada, gabungkan isinya, jangan ditimpa.

```json title="~/.claude/settings.json"
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.vikey.ai",
    "ANTHROPIC_AUTH_TOKEN": "API_KEY_KAMU",
    "CLAUDE_CODE_ATTRIBUTION_HEADER": "0",
    "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1"
  },
  "modelOverrides": {
    "claude-opus-5-5": "anthropic/claude-opus-5.5",
    "claude-sonnet-5-5": "anthropic/claude-sonnet-5.5",
    "claude-haiku-5-5": "anthropic/haiku-5.5"
  }
}
```

Lalu jalankan `claude` seperti biasa. `/model sonnet`, `/model opus`, dan `/model haiku` sekarang memakai model Claude di Vikey.

### Kenapa tiap baris ada

| Baris | Fungsi |
| --- | --- |
| `ANTHROPIC_BASE_URL` | Mengarahkan semua request ke Vikey. Tanpa `/v1`, karena Claude Code menambahkan `/v1/messages` sendiri. |
| `ANTHROPIC_AUTH_TOKEN` | API key Vikey, dikirim sebagai `Authorization: Bearer`. Variabel ini langsung dipakai tanpa konfirmasi dan menang atas login claude.ai. |
| `CLAUDE_CODE_ATTRIBUTION_HEADER` | `0` menghapus blok atribusi yang berubah-ubah dari system prompt, supaya bagian prompt yang sama bisa ditagih dengan harga cache. |
| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `1` membuat `/model` menampilkan model dari `GET /v1/models` Vikey, jadi kamu bisa memilih model lain dari daftar. |
| `modelOverrides` | Nama model bawaan Claude Code (`claude-sonnet-5-5`) tidak sama dengan model id Vikey (`anthropic/claude-sonnet-5.5`). Pemetaan ini membuat alias `opus`, `sonnet`, `haiku`, dan tugas latar belakang (judul sesi, ringkasan) memakai model Vikey yang benar, dan Claude Code tetap mengenali kemampuan modelnya. |

**Jangan taruh key di repository**

Simpan config ini di `~/.claude/settings.json` (berlaku untuk semua proyek) atau `.claude/settings.local.json` (satu proyek, tidak ter-commit). Jangan tulis key di `.claude/settings.json` milik proyek, karena file itu ikut ter-commit.

## Pakai Vikey Auto atau model non Claude

Claude Code juga bisa memakai model selain Claude, misalnya GPT atau DeepSeek, karena Vikey yang menerjemahkan formatnya. Tambahkan `model` di settings.json:

```json title="~/.claude/settings.json" ins={2}
{
  "model": "vikey/agent-coding",
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.vikey.ai",
    "ANTHROPIC_AUTH_TOKEN": "API_KEY_KAMU",
    "CLAUDE_CODE_ATTRIBUTION_HEADER": "0",
    "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1"
  },
  "modelOverrides": {
    "claude-opus-5-5": "anthropic/claude-opus-5.5",
    "claude-sonnet-5-5": "anthropic/claude-sonnet-5.5",
    "claude-haiku-5-5": "anthropic/haiku-5.5"
  }
}
```

Atau untuk satu sesi saja: `claude --model vikey/agent-gpt`.

Pilihan model id yang umum dipakai:

| Model id | Isinya |
| --- | --- |
| `vikey/agent-coding` | Vikey Auto dengan model Claude: Haiku 5.5, Sonnet 5.5, Opus 5.5 |
| `vikey/agent-gpt` | Vikey Auto dengan model GPT: GPT-6 Luna, GPT-5.6 Terra, GPT-6.1 Sol |
| `vikey/agent-mocin` | Vikey Auto paling hemat, model DeepSeek V4.1 Flash |
| `openai/gpt-6.1-sol`, `deepseek/deepseek-v4.1-flash`, dan lainnya | Satu model tetap. Daftar lengkap di [halaman harga](https://vikey.ai/pricing). |

Saat memakai model id yang tidak dikenal Claude Code, muncul pesan `Claude Code doesn't recognize the model ...`. Itu hanya peringatan: Claude Code menganggap context window 1 juta token, sama dengan yang tercatat di Vikey untuk model-model ini. Kalau mau batas lain, set `CLAUDE_CODE_MAX_CONTEXT_TOKENS`, misalnya `"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "200000"` di blok `env`.

Cara kerja Vikey Auto dan biayanya dijelaskan di [Vikey Auto](/models/vikey-auto/).

## Coba dulu tanpa mengubah file

Untuk mencoba di satu terminal saja:

**macOS / Linux**

  ```bash
  export ANTHROPIC_BASE_URL=https://api.vikey.ai
  export ANTHROPIC_AUTH_TOKEN=API_KEY_KAMU
  export ANTHROPIC_DEFAULT_HAIKU_MODEL=openai/gpt-6-luna
  claude --model vikey/agent-coding
  ```
**PowerShell**

  ```powershell
  $env:ANTHROPIC_BASE_URL = "https://api.vikey.ai"
  $env:ANTHROPIC_AUTH_TOKEN = "API_KEY_KAMU"
  $env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "openai/gpt-6-luna"
  claude --model vikey/agent-coding
  ```

`ANTHROPIC_DEFAULT_HAIKU_MODEL` menggantikan `modelOverrides` untuk tugas latar belakang. Tanpa salah satunya, Claude Code mengirim nama model bawaannya untuk judul sesi dan ringkasan, lalu request itu gagal dengan `Model not found`.

## Cek koneksi

1. Tes key dan base URL langsung, tanpa Claude Code:

    ```bash
    curl -sS https://api.vikey.ai/v1/messages \
      -H "Authorization: Bearer API_KEY_KAMU" \
      -H "anthropic-version: 2023-06-01" \
      -H "content-type: application/json" \
      -d '{"model": "openai/gpt-6-luna", "max_tokens": 32, "messages": [{"role": "user", "content": "ping"}]}'
    ```

    Response yang berisi `"content"` berarti key dan base URL sudah benar.

2. Jalankan `claude`, kirim satu pesan, lalu ketik `/status`. Baris **Anthropic base URL** harus menunjukkan `https://api.vikey.ai`, dan baris **Auth token** harus menyebut `ANTHROPIC_AUTH_TOKEN`.

## VS Code

Ekstensi Claude Code di VS Code membaca variabel dari setelan VS Code sendiri. Buka **Preferences: Open User Settings (JSON)** lalu tambahkan:

```json
{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://api.vikey.ai" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "API_KEY_KAMU" }
  ]
}
```

`modelOverrides` tetap dibaca dari `~/.claude/settings.json`.

## Masalah umum

| Yang kamu lihat | Penyebab | Solusi |
| --- | --- | --- |
| `Model 'claude-...' not found` | Claude Code mengirim nama model bawaannya | Pasang `modelOverrides` seperti di atas, atau set `ANTHROPIC_DEFAULT_HAIKU_MODEL` |
| Diminta login padahal curl berhasil | Key belum terbaca sebelum layar login muncul | Taruh `ANTHROPIC_AUTH_TOKEN` di `~/.claude/settings.json` atau export di shell, bukan di settings proyek |
| Peringatan dua sumber login (`auth may not work as expected`) | Key Vikey dan login claude.ai aktif bersamaan | Jalankan `/logout` supaya hanya key Vikey yang dipakai |
| `ANTHROPIC_API_KEY` diabaikan | Variabel ini perlu disetujui sekali di mode interaktif | Pakai `ANTHROPIC_AUTH_TOKEN`, atau setujui lewat `/config` |
| `400` dengan `Extra inputs are not permitted` | Fitur beta Claude Code yang belum diteruskan model tujuan | Tambahkan `"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"` di blok `env` |
| `402 Insufficient balance` | Saldo habis | [Top up](/account/top-up/), lalu lanjutkan sesi |

Source: https://docs.vikey.ai/agents/claude-code/
