Skip to content

Latest commit

 

History

History
261 lines (196 loc) · 17.2 KB

CLAUDE-CODE-CONFIGURATION.md

File metadata and controls

261 lines (196 loc) · 17.2 KB

Claude Code CLI — Configuration with OmniRoute (Norsk)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Koble Claude Code-CLI-en (claude) til OmniRoute — lokalt eller på en ekstern VPS — med profiler per modell, tilsvarende Codex-oppsettet.


Hurtigstart

# Start Claude Code mot en lokal OmniRoute (oppdager automatisk den aktive konteksten)
omniroute launch

# Mot en ekstern OmniRoute (etter `omniroute connect <host>` 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/<name>/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 <vps> etterfulgt av omniroute launch bare fungerer), helsesjekker serveren og kjører claude.


Discovery-aliaser — vis ikke-Claude-modeller i /model-velgeren

Claude Codes gateway-modelloppdagelse lister bare ID-er som begynner med claude eller anthropic, så med CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 viser den innebygde /model-velgeren normalt bare OmniRoutes Claude/Anthropic-modeller — en kimi/kimi-k2.6 eller glm/glm-5.2 dukker aldri opp, selv om den ruter helt fint.

OmniRoute kan speile enhver aktivert modell (og kombinasjon) under en claude/…-ID slik at den passerer 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)"
<combo "custo-otimizado"> →  claude/combo/custo-otimizado

Når du velger en av disse i Claude Code, fjerner OmniRoute claude/-innpakningen tilbake til den virkelige ID-en før ruting — en ekte claude/<real-claude-model>-ID (den faktiske Claude OAuth-leverandøren) forblir alltid urørt.

Som standard speiles bare grunn-ID-er. Med det valgfrie funksjonsflagget CATALOG_MIRROR_REFINEMENTS_ENABLED slått på speiles varianter med resonneringsinnsats som katalogen allerede lister (f.eks. codex/gpt-6-sol-high) som enhver annen ID, slik at Claude Code kan velge et eksplisitt innsatsnivå, og innebygde auto/*-ID-er som forespørselsstien ikke kan materialisere, speiles ikke. Om innsatsvarianter i det hele tatt listes, styres fortsatt av OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS — speilet legger aldri til en variant som grunnkatalogen ikke har.

Dette er av som standard og styres av en port med tre nivåer (mest spesifikke vinner), slik at en vanlig OmniRoute aldri dobler katalogen sin for klienter som ikke bruker Claude Code:

Nivå Hvor
Modell Leverandørens detaljside → «Vis i Claude Code»-bryter per modell
Leverandør Leverandørens detaljside → bryter på leverandørnivå (dekker alle modellene)
Global Innstillinger → Funksjonsflagg → EXPOSE_CC_DISCOVERY_ALIASES (av som standard)

Miljøvariabelen EXPOSE_CC_DISCOVERY_ALIASES tvinger det globale nivået på og har forrang over dashbord-overstyringen (Funksjonsflagg-skjermen viser et «aktiv via miljøvariabel»-notat når den gjør det). Brytere per leverandør og per modell raffinerer videre derfra — f.eks. globalt av + Kimi-leverandør på eksponerer bare Kimis modeller.

⚠️ Vindusavvik på ikke-Claude-modeller. Claude Code antar et kontekstvindu på 200K for enhver ID den ikke kjenner igjen (den kan ikke lese et reelt vindu fra /v1/models). For en modell med et større vindu (f.eks. Kimi K2s 256K), sett CLAUDE_CODE_AUTO_COMPACT_WINDOW til en verdi under modellens reelle vindu slik at automatisk komprimering ikke utløses for tidlig. De genererte profilene ovenfor gjør allerede dette per modell.


Onboarding-blokk på instrumentpanelet

Claude-verktøykortet (Instrumentpanel → CLI Code) viser det nøyaktige settings.json-fragmentet for denne instansen, ved siden av informasjonsknappen for discovery-aliaset, med en kopieringsknapp:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://<din OmniRoute>:20128",
    "ANTHROPIC_AUTH_TOKEN": "<din OmniRoute API-nøkkel>",
    "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1",
  },
}

Basis-URL-en er den som kortet har funnet (inkludert en egendefinert overstyring du skrev inn), og er allerede normalisert — uten /v1-suffiks og uten avsluttende skråstrek. Nøkkelen vises aldri: blokken inneholder en plassholder, slik at et skjermbilde eller et innlimt utdrag ikke kan lekke nøkkelen. Lim inn nøkkelen din over plassholderen.

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). Utdragsbyggeren godtar også denne verdien, slik at en anroper som kjenner målmodellens kontekstvindu, kan generere den direkte.

Kilde: src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet (ren bygger, enhetstestet), gjengitt av ClaudeGatewayOnboardingBlock.

Fest én konto (valgfritt)

For å sende hver Claude Code-forespørsel gjennom én bestemt leverandørkonto legger du til x-omniroute-connection-headeren via ANTHROPIC_CUSTOM_HEADERS i den samme env-blokken:

"ANTHROPIC_CUSTOM_HEADERS": "x-omniroute-connection: <connection id>"

Kopier id-en fra xxxxxxxx…-brikken på tilkoblingsraden på leverandørsiden. Festingen gjelder bare enkeltmodell-id-er (provider/model), ikke kombinasjoner. Se Kontofesting per forespørsel for nøyaktig reserveatferd.


Profiler (CLAUDE_CONFIG_DIR)

Claude Code har ingen innebygde profilfiler (i motsetning til Codex' ~/.codex/<name>.config.toml). Den idiomatiske mekanismen er CLAUDE_CONFIG_DIR — en separat konfigurasjonskatalog per profil, hver med sine egne settings.json, legitimasjonsopplysninger, historikk og hurtigbuffer.

omniroute setup-claude henter den aktive /v1/models-katalogen og skriver én profil per modell til ~/.claude/profiles/<name>/settings.json, med de samme navnene som setup-codex (glm52, kimi-k27, deepseek-pro, …):

// ~/.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 <name> (den setter inn ANTHROPIC_AUTH_TOKEN fra den aktive konteksten), eller eksporter ANTHROPIC_AUTH_TOKEN selv og kjør CLAUDE_CONFIG_DIR=~/.claude/profiles/<name> claude.

Automatisk synkronisering etter modelloppdagelse (valgfritt). OmniRoute kan automatisk generere disse ~/.claude/profiles/<name>/settings.json-filene på nytt hver gang en synkronisering av leverandørmodeller endrer den aktive katalogen — slik at nye modeller eller modeller med endrede navn får profiler uten at kommandoen må kjøres på nytt. Dette er slått av som standard: slå det på fra CLI Code-kontrollpanelet («Automatisk synkronisering av CLI-profiler» → Claude Code), eller angi OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true (det respekterer også CLI_ALLOW_CONFIG_WRITES, som er slått på som standard). Når dette er aktivert, skriver det bare profilfiler; det endrer aldri den aktive Claude-standardkonfigurasjonen, autentiseringen eller ~/.claude/settings.json.

Generere og bruke profiler

# Lokal OmniRoute
omniroute setup-claude

# Ekstern VPS (bygger inn VPS-URL-en 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

# Skriv også profiler for lokale CLI-leverandører (zcode, auggie, devin-cli-agentic,
# codex-app-server) som ikke oppdages på denne verten (hoppes over som standard for et lokalt mål)
omniroute setup-claude --include-local

# Forhåndsvis 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å:

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 <host> (se Ekstern modus), 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=<id> (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ø) — 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/<name>.