# Claude Code CLI — Configuration with OmniRoute (Norsk) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/CLAUDE-CODE-CONFIGURATION.md) · 🇪🇹 [am](../../../am/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇦 [ar](../../../ar/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇦🇿 [az](../../../az/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇬 [bg](../../../bg/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇩 [bn](../../../bn/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇦 [bs](../../../bs/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇨🇿 [cs](../../../cs/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇩🇰 [da](../../../da/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇩🇪 [de](../../../de/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇬🇷 [el](../../../el/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇪🇸 [es](../../../es/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇪🇪 [et](../../../et/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇷 [fa](../../../fa/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇫🇮 [fi](../../../fi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇫🇷 [fr](../../../fr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇪 [ga](../../../ga/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [gu](../../../gu/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇬 [ha](../../../ha/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇱 [he](../../../he/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [hi](../../../hi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇭🇷 [hr](../../../hr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇭🇺 [hu](../../../hu/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇦🇲 [hy](../../../hy/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇩 [id](../../../id/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇬 [ig](../../../ig/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇹 [it](../../../it/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇯🇵 [ja](../../../ja/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇬🇪 [ka](../../../ka/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇰🇭 [km](../../../km/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [kn](../../../kn/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇰🇷 [ko](../../../ko/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇱🇹 [lt](../../../lt/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇱🇻 [lv](../../../lv/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [ml](../../../ml/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [mr](../../../mr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇲🇾 [ms](../../../ms/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇲🇹 [mt](../../../mt/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇲🇲 [my](../../../my/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇵 [ne](../../../ne/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇱 [nl](../../../nl/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [or](../../../or/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [pa](../../../pa/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇭 [phi](../../../phi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇱 [pl](../../../pl/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇹 [pt](../../../pt/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇷🇴 [ro](../../../ro/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇷🇺 [ru](../../../ru/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇱🇰 [si](../../../si/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇰 [sk](../../../sk/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇮 [sl](../../../sl/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇷🇸 [sr](../../../sr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇸🇪 [sv](../../../sv/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇰🇪 [sw](../../../sw/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [ta](../../../ta/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇮🇳 [te](../../../te/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇹🇭 [th](../../../th/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇹🇷 [tr](../../../tr/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇵🇰 [ur](../../../ur/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇺🇿 [uz](../../../uz/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇻🇳 [vi](../../../vi/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇳🇬 [yo](../../../yo/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/CLAUDE-CODE-CONFIGURATION.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/CLAUDE-CODE-CONFIGURATION.md) --- Koble **Claude Code**-CLI-en (`claude`) til OmniRoute — lokalt eller på en ekstern VPS — med profiler per modell, tilsvarende Codex-oppsettet. --- ## Hurtigstart ```bash # Start Claude Code mot en lokal OmniRoute (oppdager automatisk den aktive konteksten) omniroute launch # Mot en ekstern OmniRoute (etter `omniroute connect ` skjer dette automatisk) omniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxx # Generer profiler per modell, og start deretter en av dem omniroute setup-claude # skriver ~/.claude/profiles//settings.json omniroute launch --profile glm52 # Claude Code som bruker glm/glm-5.2 via OmniRoute ``` --- ## Slik kobler Claude Code seg til en gateway Claude Code kommuniserer med **Anthropic Messages API** og kobles til et egendefinert endepunkt ved hjelp av miljøvariabler (det har ikke noe `--base-url`-flagg): | Variabel | Formål | | -------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `ANTHROPIC_BASE_URL` | Gatewayens rot-URL (Claude Code legger til `/v1/messages`). **Ingen `/v1`-suffiks.** | | `ANTHROPIC_AUTH_TOKEN` | Sendes som `Authorization: Bearer …` — bruk OmniRoute-tilgangstokenet/API-nøkkelen din | | `ANTHROPIC_API_KEY` | Alternativ: sendes som `x-api-key`. Hvis begge er angitt, har `ANTHROPIC_AUTH_TOKEN` prioritet | | `ANTHROPIC_MODEL` | Tving bruk av en bestemt modell (overstyrer standardvalget i `/model`-velgeren) | | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `1` → den innebygde `/model`-velgeren viser `claude*`/`anthropic*`-modeller fra `/v1/models` | | `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Begrens antall utdatatokener per svar (f.eks. `65536`) | | `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Tokengrense for automatisk komprimering | > Miljøvariabler leses **kun én gang ved oppstart** — start Claude Code på nytt etter at du har endret dem. `omniroute launch` angir alle disse for deg: Kommandoen finner basis-URL-en og tokenet fra den aktive konteksten (slik at `omniroute connect ` etterfulgt av `omniroute launch` bare fungerer), helsesjekker serveren og kjører `claude`. --- ## Oppdagelsesaliaser — gjør ikke-Claude-modeller synlige i `/model`-velgeren Claude Codes gateway-baserte modelloppdagelse viser bare ID-er som begynner med `claude` eller `anthropic`, så når `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`, viser den innebygde `/model`-velgeren vanligvis **bare** OmniRoutes Claude-/Anthropic-modeller — en `kimi/kimi-k2.6` eller `glm/glm-5.2` vises aldri, selv om rutingen fungerer fint. OmniRoute kan speile enhver aktivert modell (og kombinasjon) under en `claude/…`-ID, slik at den passerer dette filteret og vises i velgeren: ``` kimi/kimi-k2.6 → claude/kimi/kimi-k2.6 "Kimi K2.6 (OmniRoute)" glm/glm-5.2 → claude/glm/glm-5.2 "GLM 5.2 (OmniRoute)" → claude/combo/custo-otimizado ``` Når du velger en av disse i Claude Code, fjerner OmniRoute `claude/`-omslaget tilbake til den egentlige ID-en før ruting — en ekte `claude/`-ID (den faktiske Claude OAuth-leverandøren) forblir alltid urørt. **Dette er deaktivert som standard** og styres av en port med tre nivåer (det mest spesifikke har prioritet), slik at en vanlig OmniRoute-instans aldri dobler katalogen sin for klienter som ikke bruker Claude Code: | Nivå | Hvor | | ---------- | ------------------------------------------------------------------------------- | | Modell | Leverandørens detaljside → «Expose in Claude Code»-bryter per modell | | Leverandør | Leverandørens detaljside → bryter på leverandørnivå (dekker alle modellene) | | Globalt | Innstillinger → Feature Flags → `EXPOSE_CC_DISCOVERY_ALIASES` (av som standard) | Miljøvariabelen `EXPOSE_CC_DISCOVERY_ALIASES` tvinger det globale nivået på og har prioritet over overstyringen i kontrollpanelet (Feature Flags-skjermen viser merknaden «active via environment variable» når dette gjelder). Bryterne per leverandør og per modell avgrenser dette ytterligere — globalt av + Kimi-leverandøren på eksponerer for eksempel bare Kimis modeller. > ⚠️ **Ulik kontekststørrelse for ikke-Claude-modeller.** Claude Code antar et kontekstvindu > på 200K for enhver ID det ikke gjenkjenner (det kan ikke lese den faktiske vindusstørrelsen fra > `/v1/models`). For en modell med et større vindu (f.eks. Kimi K2s 256K) bør du angi > `CLAUDE_CODE_AUTO_COMPACT_WINDOW` til en verdi under modellens faktiske vindusstørrelse, slik at > automatisk komprimering ikke utløses for tidlig. De genererte profilene ovenfor gjør allerede > dette per modell. --- ## Introduksjonsblokk på kontrollpanelet Claude-verktøykortet (**Kontrollpanel → CLI-kode**) viser det nøyaktige `settings.json`-fragmentet for denne instansen, ved siden av infoknappen for oppdagelsesaliaset, med en kopieringsknapp: ```jsonc { "env": { "ANTHROPIC_BASE_URL": "http://:20128", "ANTHROPIC_AUTH_TOKEN": "", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", }, } ``` Basis-URL-en er den kortet finner (inkludert en egendefinert overstyring du skrev inn), allerede normalisert — uten `/v1`-suffiks og uten avsluttende skråstrek. **Nøkkelen vises aldri**: blokken leveres med en plassholder, slik at et skjermbilde eller en innlimt kodesnutt ikke kan lekke den. Lim inn nøkkelen din over den. Legg til `CLAUDE_CODE_AUTO_COMPACT_WINDOW` under den samme `env`-blokken for alle modeller der det reelle kontekstvinduet ikke er 200K — Claude Code antar 200K for hver id den ikke gjenkjenner, så automatisk komprimering utløses ellers på feil tidspunkt (se advarselen i forrige avsnitt). Kodesnuttbyggeren godtar også denne verdien, slik at en klient som kjenner målmodellens vindu, kan inkludere den direkte. Kilde: `src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet` (ren bygger, enhetstestet), gjengitt av `ClaudeGatewayOnboardingBlock`. --- ## Profiler (`CLAUDE_CONFIG_DIR`) Claude Code har **ingen innebygde profilfiler** (i motsetning til Codex sin `~/.codex/.config.toml`). Den anbefalte mekanismen er `CLAUDE_CONFIG_DIR` — en separat konfigurasjonsmappe per profil, hver med sin egen `settings.json`, påloggingsinformasjon, historikk og hurtigbuffer. `omniroute setup-claude` henter den aktive `/v1/models`-katalogen og skriver én profil per modell til `~/.claude/profiles//settings.json`, med de **samme navnene som `setup-codex`** (`glm52`, `kimi-k27`, `deepseek-pro`, …): ```jsonc // ~/.claude/profiles/glm52/settings.json { "$schema": "https://json.schemastore.org/claude-code-settings.json", "model": "glm/glm-5.2", "effortLevel": "xhigh", "env": { "ANTHROPIC_BASE_URL": "http://192.168.0.15:20128", "ANTHROPIC_MODEL": "glm/glm-5.2", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "190000", }, } ``` > **Autentiseringstokenet skrives aldri til profilen.** Start med > `omniroute launch --profile ` (den setter inn `ANTHROPIC_AUTH_TOKEN` fra den > aktive konteksten), eller eksporter `ANTHROPIC_AUTH_TOKEN` selv og kjør > `CLAUDE_CONFIG_DIR=~/.claude/profiles/ claude`. **Automatisk synkronisering etter modelloppdagelse (valgfritt).** OmniRoute kan generere disse `~/.claude/profiles//settings.json`-filene på nytt automatisk hver gang en synkronisering av leverandørmodeller endrer den aktive katalogen — slik at nye modeller og modeller med endrede navn får profiler uten at kommandoen må kjøres på nytt. Dette er **slått av som standard**: aktiver det fra **CLI-kodekontrollpanelet** («Automatisk synkronisering av CLI-profiler» → Claude Code), eller angi `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true` (det respekterer også `CLI_ALLOW_CONFIG_WRITES`, som er aktivert som standard). Når dette er aktivert, skrives bare profilfiler; det endrer aldri den aktive eller standard Claude-konfigurasjonen, autentiseringen eller `~/.claude/settings.json`. ### Generere og bruke profiler ```bash # Lokal OmniRoute omniroute setup-claude # Ekstern VPS (legger VPS-URL-en inn i hver profil) omniroute setup-claude --remote http://192.168.0.15:20128 --api-key oma_live_xxx # Bare enkelte leverandører omniroute setup-claude --only glm,kimi # Forhåndsvisning uten å skrive omniroute setup-claude --dry-run # Start en profil omniroute launch --profile kimi-k27 ``` --- ## Modellnivåer (valgfritt) Claude Code ruter til kapabilitetsnivåer. Knytt hvert nivå til en OmniRoute-modell via miljøvariabler / innstillinger hvis du ønsker ulike leverandører per nivå: ```bash export ANTHROPIC_DEFAULT_OPUS_MODEL="glm/glm-5.2" export ANTHROPIC_DEFAULT_SONNET_MODEL="kmc/kimi-k2.6" export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm/glm-4.7-flash" ``` Ellers brukes én enkelt `ANTHROPIC_MODEL` (som profiler angir) til alt. --- ## Ekstern modus Når du har kjørt `omniroute connect ` (se [Ekstern modus](./REMOTE-MODE.md)), retter `omniroute launch` og `omniroute setup-claude` seg automatisk mot den eksterne serveren og bruker det avgrensede tilgangstokenet dens — ingen ekstra flagg er nødvendig. Overstyr for hver kjøring med `--remote` / `--api-key`. --- ## Feilsøking **Claude Code ignorerer gatewayen** — bekreft at `ANTHROPIC_BASE_URL` **ikke har `/v1`**, og start `claude` på nytt (miljøvariablene leses én gang ved oppstart). `omniroute launch` håndterer dette for deg. **`/model`-velgeren er tom / mangler gateway-modeller** — krever Claude Code v2.1.219+ og `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`. Bare modell-ID-er av typen `claude*` / `anthropic*` vises i velgeren; fremtving en hvilken som helst annen modell med `ANTHROPIC_MODEL=` (det er dette profiler gjør). **`400 Ambiguous model 'claude-…'`** — Claude Code sender alltid modell-ID-er **uten prefiks** (f.eks. `claude-opus-4-8`), så når både Claude Code (`cc/…`)- og Claude (`claude/…`)-leverandørene er tilkoblet, samsvarer ID-en uten prefiks med to ruter, og OmniRoute nekter å gjette. Løs det på én av følgende måter: Fest en ID med prefiks ved hjelp av `ANTHROPIC_MODEL=cc/claude-opus-4-8`, eller aktiver **Foretrekk Claude Code for Claude-modeller uten prefiks** — bryteren på Claude-leverandørsiden, eller `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS=true` (av som standard; se [Miljø](../reference/ENVIRONMENT.md)) — som i stedet ruter `claude-*`-ID-er uten prefiks til Claude Code. Eksplisitte leverandørprefikser har alltid forrang. **Autentiseringsfeil** — profilen inneholder ikke noe token. Bruk `omniroute launch --profile` (setter det inn) eller eksporter `ANTHROPIC_AUTH_TOKEN`. **Profiler isoleres ikke** — hver profil har en egen `CLAUDE_CONFIG_DIR`; kontroller at `echo $CLAUDE_CONFIG_DIR` i økten peker på `~/.claude/profiles/`.