> ## Documentation Index
> Fetch the complete documentation index at: https://gomodel.enterpilot.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GoModel & Claude Code

> Schritt-für-Schritt-Anleitung, um Claude Code über Anthropic-Passthrough durch GoModel zu routen.

GoModel kann Claude Code vorgeschaltet werden, sodass jeder Request zuerst Ihr
eigenes Gateway durchläuft.

Ablauf:

`Claude Code -> GoModel -> Anthropic`

## Bevor Sie beginnen

* Installieren Sie Claude Code auf Ihrem Rechner.
* Wählen Sie einen GoModel-Master-Key, zum Beispiel `change-me`.
* Stellen Sie sicher, dass GoModel Zugangsdaten für den Anthropic-Upstream hat.

> [!NOTE]
>
> Claude Code lässt sich über GoModel routen, unabhängig davon, ob Sie persönlich
> ein Claude-Code-Abonnement nutzen. Im Gateway-Modus kommuniziert Claude Code über
> `ANTHROPIC_BASE_URL` und `ANTHROPIC_AUTH_TOKEN` mit GoModel. GoModel benötigt
> trotzdem einen eigenen `ANTHROPIC_API_KEY`, um Anthropic upstream zu erreichen —
> entweder einen Console-API-Key oder ein OAuth-Token eines Claude-Abonnements.

## So erhalten Sie `ANTHROPIC_API_KEY`

**Option A — Console-API-Key (nutzungsbasiert):**

1. Öffnen Sie die Claude Console und melden Sie sich bei Ihrem API-Konto an.
2. Gehen Sie in der Console zu den Kontoeinstellungen und erstellen Sie einen
   API-Key.
3. Kopieren Sie den Key (er wird nur einmal angezeigt) und setzen Sie ihn für
   GoModel als `ANTHROPIC_API_KEY`.

Laut der API-Dokumentation von Anthropic werden API-Keys in den Kontoeinstellungen
der Console erstellt.

> [!WARNING]
>
> Kostenpflichtige Claude-Pläne (Pro, Max, Team, Enterprise) und die Abrechnung über
> die Claude API Console sind getrennt. Die Nutzung über API-Keys wird als
> API-Nutzung abgerechnet.

**Option B — Token eines Claude-Abonnements (Pro, Max, Team oder Enterprise):**

1. Führen Sie `claude setup-token` auf einem Rechner aus, auf dem Claude Code mit
   Ihrem Abonnement angemeldet ist.
2. Kopieren Sie das erzeugte Token `sk-ant-oat01-...` und setzen Sie es für GoModel
   als `ANTHROPIC_API_KEY`.

GoModel erkennt das Präfix `sk-ant-oat` und authentifiziert sich upstream
automatisch mit dem OAuth-Bearer-Schema. Die Nutzung wird über die Limits Ihres
Abonnements abgedeckt statt über die API-Abrechnung.

> [!WARNING]
>
> Anthropic autorisiert Abonnement-Tokens **ausschließlich für Traffic von Claude
> Code**. Dieses Setup funktioniert, weil Claude Code der Client bleibt und GoModel
> seine Requests unverändert weiterleitet; andere Clients oder Tools auf dieselben
> Gateway-Zugangsdaten zu richten, wird upstream abgelehnt und verstößt gegen die
> Nutzungsbedingungen von Anthropic.

## 1. GoModel starten

Starten Sie GoModel mit einem Master-Key und einem Anthropic-Provider-Key:

```bash theme={null}
docker run --rm -p 8080:8080 \
  -e GOMODEL_MASTER_KEY="change-me" \
  -e ANTHROPIC_API_KEY="sk-ant-..." \
  enterpilot/gomodel
```

## 2. Anthropic-Passthrough prüfen

Prüfen Sie, ob der Models-Endpunkt des Anthropic-Passthrough antwortet:

```bash curl theme={null}
curl -s http://localhost:8080/p/anthropic/v1/models \
  -H "Authorization: Bearer change-me"
```

```python Python theme={null}
import anthropic

client = anthropic.Anthropic(
    base_url="http://localhost:8080/p/anthropic",
    api_key="change-me",
)

for model in client.models.list():
    print(model.id)
```

```javascript JavaScript theme={null}
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "http://localhost:8080/p/anthropic",
  apiKey: "change-me",
});

for await (const model of client.models.list()) {
  console.log(model.id);
}
```

Senden Sie anschließend eine kleine Testnachricht:

```bash curl theme={null}
curl -s http://localhost:8080/p/anthropic/v1/messages \
  -H "Authorization: Bearer change-me" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-3-haiku-20240307",
    "max_tokens": 16,
    "messages": [
      {
        "role": "user",
        "content": "Reply with exactly ok"
      }
    ]
  }'
```

```python Python theme={null}
import anthropic

client = anthropic.Anthropic(
    base_url="http://localhost:8080/p/anthropic",
    api_key="change-me",
)

message = client.messages.create(
    model="claude-3-haiku-20240307",
    max_tokens=16,
    messages=[{"role": "user", "content": "Reply with exactly ok"}],
)

print(message.content[0].text)
```

```javascript JavaScript theme={null}
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "http://localhost:8080/p/anthropic",
  apiKey: "change-me",
});

const message = await client.messages.create({
  model: "claude-3-haiku-20240307",
  max_tokens: 16,
  messages: [{ role: "user", content: "Reply with exactly ok" }],
});

console.log(message.content[0].text);
```

Ist das Gateway korrekt eingerichtet, enthält die Response `ok`.

## 3. Claude Code für GoModel konfigurieren

Richten Sie Claude Code auf GoModel aus:

```bash theme={null}
export ANTHROPIC_BASE_URL=http://localhost:8080
export ANTHROPIC_AUTH_TOKEN=change-me
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
```

Die verwaltete Basis-URL stellt `/v1/messages` mit
[nativer Weiterleitung](https://gomodel.enterpilot.io/docs/de/advanced/anthropic-messages-api.md#native-weiterleitung-an-anthropic)
bereit: Requests, die zu Anthropic aufgelöst werden, werden abgesehen von der
Auflösung von Modell-Aliasen unverändert weitergeleitet (`cache_control`,
Thinking-Signaturen und Beta-Header bleiben erhalten), während Rate-Limits, Budgets,
Audit und Nutzungserfassung greifen — und Modell-Aliase oder virtuelle Modelle
können Claude Code zu anderen Providern routen. Alternativ verwendet
`ANTHROPIC_BASE_URL=http://localhost:8080/p/anthropic` den reinen Passthrough, der
fest an den Anthropic-Upstream gebunden ist.

Kurzfassung der Claude-Code-Dokumentation: Setzen Sie im Gateway-Modus
`ANTHROPIC_BASE_URL` auf Ihre Gateway-URL und `ANTHROPIC_AUTH_TOKEN` auf Ihr
Gateway-Token und führen Sie Claude Code dann wie gewohnt aus. Siehe die offizielle
Anleitung:
[Claude Code LLM gateway docs](https://code.claude.com/docs/en/llm-gateway).

Läuft GoModel nicht auf Ihrem lokalen Rechner, ersetzen Sie `localhost:8080` durch
den korrekten Host und Port.

## 4. Einen Test-Prompt mit Claude Code ausführen

```bash theme={null}
claude -p --output-format text --model claude-3-haiku-20240307 \
  'Reply with exactly ok and no punctuation.'
```

Das validierte Ergebnis war:

```text theme={null}
ok
```

## 5. Den Traffic in GoModel prüfen

Öffnen Sie die Audit-Logs im GoModel-Dashboard:

[http://localhost:8080/admin/dashboard/audit](http://localhost:8080/admin/dashboard/audit)

Hier können Sie am einfachsten bestätigen, dass Claude Code GoModel erreicht, und
den vollständigen Verlauf von Requests und Responses einsehen. Im selben Dashboard
können Sie Ihren GoModel-Traffic und die Nutzung weiter verfolgen.

## Referenzen

* Gateway-Dokumentation zu Anthropic Claude Code: [LLM gateway](https://code.claude.com/docs/en/llm-gateway)
* Einstellungen von Anthropic Claude Code: [Settings](https://code.claude.com/docs/en/settings)
* Claude Help: [Managing API key environment variables in Claude Code](https://support.claude.com/en/articles/12304248-managing-api-key-environment-variables-in-claude-code)
* Claude Help: [Paid Claude plans vs API Console billing](https://support.claude.com/en/articles/9876003-i-have-a-paid-claude-subscription-pro-max-team-or-enterprise-plans-why-do-i-have-to-pay-separately-to-use-the-claude-api-and-console)
* Claude-API-Dokumentation: [API-Übersicht (Keys aus den Kontoeinstellungen der Console)](https://docs.anthropic.com/en/api/getting-started)

## Validiert am 10. März 2026

Diese Anleitung wurde validiert mit:

* einer lokalen GoModel-Instanz unter `http://localhost:8080`
* einem GoModel-Branch, der `/p/{provider}/v1/...` bereitstellt
* Claude Code `2.1.72`

Die lokale Validierung bestätigte:

* `GET /p/anthropic/v1/models` lieferte `200 OK`
* `POST /p/anthropic/v1/messages` lieferte `200 OK`
* `claude` lieferte `ok`, wenn es auf GoModel ausgerichtet war


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.