# Claude Code CLI — Configuration with OmniRoute (Svenska) 🌐 **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) · 🇳🇴 [no](../../../no/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) · 🇰🇪 [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) --- Rikta CLI-verktyget **Claude Code** (`claude`) mot OmniRoute — lokalt eller på en fjärr-VPS — med profiler per modell, motsvarande Codex-konfigurationen. --- ## Snabbstart ```bash # Starta Claude Code mot en lokal OmniRoute-instans (identifierar automatiskt den aktiva kontexten) omniroute launch # Mot en OmniRoute-fjärrinstans (efter `omniroute connect ` sker detta automatiskt) omniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxx # Generera profiler per modell och starta sedan en av dem omniroute setup-claude # skriver ~/.claude/profiles//settings.json omniroute launch --profile glm52 # Claude Code använder glm/glm-5.2 via OmniRoute ``` --- ## Så ansluter Claude Code till en gateway Claude Code kommunicerar via **Anthropic Messages API** och riktas mot en anpassad slutpunkt med miljövariabler (det har ingen `--base-url`-flagga): | Variabel | Syfte | | -------------------------------------------- | --------------------------------------------------------------------------------------------- | | `ANTHROPIC_BASE_URL` | Gatewayens rot-URL (Claude Code lägger till `/v1/messages`). **Inget `/v1`-suffix.** | | `ANTHROPIC_AUTH_TOKEN` | Skickas som `Authorization: Bearer …` — använd din åtkomsttoken/API-nyckel för OmniRoute | | `ANTHROPIC_API_KEY` | Alternativ: skickas som `x-api-key`. Om båda anges har `ANTHROPIC_AUTH_TOKEN` företräde | | `ANTHROPIC_MODEL` | Framtvinga en specifik modell (åsidosätter standardvalet i `/model`) | | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `1` → den inbyggda `/model`-väljaren listar `claude*`/`anthropic*`-modeller från `/v1/models` | | `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Begränsa antalet utdata-token per svar (t.ex. `65536`) | | `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Tokengräns för automatisk komprimering | > Miljövariabler läses **en gång vid uppstart** — starta om Claude Code efter att du har ändrat dem. `omniroute launch` ställer in allt detta åt dig: kommandot hämtar bas-URL:en och token från den aktiva kontexten (så `omniroute connect ` följt av `omniroute launch` fungerar direkt), hälsokontrollerar servern och kör `claude` via exec. --- ## Identifieringsalias — visa modeller som inte är Claude-modeller i `/model`-väljaren Claude Codes identifiering av gatewaymodeller listar endast id:n som börjar med `claude` eller `anthropic`, så med `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` visar den inbyggda `/model`-väljaren normalt **endast** OmniRoutes Claude-/Anthropic-modeller — en `kimi/kimi-k2.6` eller `glm/glm-5.2` visas aldrig, trots att dirigeringen fungerar korrekt. OmniRoute kan spegla valfri aktiverad modell (och kombination) under ett `claude/…`-id så att den passerar filtret och visas i väljaren: ``` 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 väljer en av dessa i Claude Code tar OmniRoute bort omslutningen `claude/` och återställer det verkliga id:t före dirigeringen — ett äkta `claude/`-id (den faktiska Claude OAuth-leverantören) lämnas alltid orört. **Detta är avstängt som standard** och styrs av en grind i tre nivåer (den mest specifika har företräde), så en vanlig OmniRoute-instans dubblerar aldrig sin katalog för klienter som inte använder Claude Code: | Nivå | Var | | ---------- | ----------------------------------------------------------------------------------- | | Modell | Leverantörens detaljsida → reglaget "Expose in Claude Code" per modell | | Leverantör | Leverantörens detaljsida → reglage på leverantörsnivå (omfattar alla dess modeller) | | Global | Settings → Feature Flags → `EXPOSE_CC_DISCOVERY_ALIASES` (avstängt som standard) | Miljövariabeln `EXPOSE_CC_DISCOVERY_ALIASES` framtvingar aktivering på global nivå och har företräde framför åsidosättningen i kontrollpanelen (skärmen Feature Flags visar meddelandet "active via environment variable" när så är fallet). Reglagen per leverantör och per modell finjusterar därefter beteendet — exempelvis exponerar globalt avstängt + aktiverat för Kimi-leverantören endast Kimis modeller. > ⚠️ **Skillnad i kontextfönster för modeller som inte är Claude-modeller.** Claude Code förutsätter ett kontextfönster > på 200K för alla id:n som det inte känner igen (det kan inte läsa det verkliga fönstret från > `/v1/models`). För en modell med ett större fönster (t.ex. Kimi K2:s 256K) anger du > `CLAUDE_CODE_AUTO_COMPACT_WINDOW` till ett värde under modellens verkliga fönster så att > automatisk komprimering inte aktiveras för tidigt. De genererade profilerna ovan gör redan > detta per modell. --- ## Introduktionsblock på instrumentpanelen Claude-verktygskortet (**Instrumentpanel → CLI Code**) visar det exakta `settings.json`-fragmentet för den här instansen, bredvid informationsknappen för identifieringsalias, med en kopieringsknapp: ```jsonc { "env": { "ANTHROPIC_BASE_URL": "http://:20128", "ANTHROPIC_AUTH_TOKEN": "", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", }, } ``` Bas-URL:en är den som kortet har fastställt (inklusive en anpassad åsidosättning som du har angett) och är redan normaliserad — inget `/v1`-suffix och inget avslutande snedstreck. **Nyckeln visas aldrig**: blocket innehåller en platshållare, så en skärmbild eller ett inklistrat kodavsnitt kan inte läcka någon nyckel. Ersätt platshållaren med din nyckel. Lägg till `CLAUDE_CODE_AUTO_COMPACT_WINDOW` under samma `env`-block för alla modeller vars faktiska kontextfönster inte är 200K — Claude Code förutsätter 200K för varje id som det inte känner igen, så automatisk komprimering utlöses annars vid fel tidpunkt (se varningen i föregående avsnitt). Kodavsnittsbyggaren accepterar även det värdet, så en anropare som känner till målmodellens fönsterstorlek kan generera det direkt. Källa: `src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet` (ren byggare, enhetstestad), renderad av `ClaudeGatewayOnboardingBlock`. --- ## Profiler (`CLAUDE_CONFIG_DIR`) Claude Code har **inga inbyggda profilfiler** (till skillnad från Codex `~/.codex/.config.toml`). Den vedertagna mekanismen är `CLAUDE_CONFIG_DIR` – en separat konfigurationskatalog per profil, var och en med sin egen `settings.json`, sina egna autentiseringsuppgifter, sin historik och cache. `omniroute setup-claude` hämtar den aktuella `/v1/models`-katalogen och skapar en profil per modell i `~/.claude/profiles//settings.json`, med **samma namn 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", }, } ``` > **Autentiseringstoken skrivs aldrig till profilen.** Starta med > `omniroute launch --profile ` (det injicerar `ANTHROPIC_AUTH_TOKEN` från den > aktiva kontexten), eller exportera `ANTHROPIC_AUTH_TOKEN` själv och kör > `CLAUDE_CONFIG_DIR=~/.claude/profiles/ claude`. **Automatisk synkronisering efter modellidentifiering (valfritt).** OmniRoute kan automatiskt återskapa samma `~/.claude/profiles//settings.json`-filer när en synkronisering av leverantörsmodeller ändrar den aktuella katalogen – så att nya modeller eller modeller med ändrade namn får profiler utan att kommandot behöver köras igen. Funktionen är **inaktiverad som standard**: aktivera den från **CLI Code-instrumentpanelen** ("Automatisk synkronisering av CLI-profiler" → Claude Code), eller ange `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true` (den respekterar även `CLI_ALLOW_CONFIG_WRITES`, som är aktiverad som standard). När funktionen är aktiverad skriver den endast profilfiler; den ändrar aldrig din aktiva Claude-standardkonfiguration, autentisering eller `~/.claude/settings.json`. ### Generera och använda profiler ```bash # Lokal OmniRoute omniroute setup-claude # Fjärr-VPS (bakar in VPS-URL:en i varje profil) omniroute setup-claude --remote http://192.168.0.15:20128 --api-key oma_live_xxx # Endast vissa leverantörer omniroute setup-claude --only glm,kimi # Skriv även profiler för lokala CLI-leverantörer (zcode, auggie, devin-cli-agentic, # codex-app-server) som inte identifierats på den här värden (överhoppas som standard för ett lokalt mål) omniroute setup-claude --include-local # Förhandsgranska utan att skriva omniroute setup-claude --dry-run # Starta en profil omniroute launch --profile kimi-k27 ``` --- ## Modellnivåer (valfritt) Claude Code dirigerar till kapacitetsnivåer. Mappa varje nivå till en OmniRoute-modell via miljövariabler / inställningar om du vill använda olika leverantö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" ``` Annars används en enda `ANTHROPIC_MODEL` (som profilerna ställer in) för allt. --- ## Fjärrläge När du har kört `omniroute connect ` (se [Fjärrläge](./REMOTE-MODE.md)) riktas `omniroute launch` och `omniroute setup-claude` automatiskt mot den fjärrservern och använder dess avgränsade åtkomsttoken — inga extra flaggor behövs. Åsidosätt för en enskild körning med `--remote` / `--api-key`. --- ## Felsökning **Claude Code ignorerar gatewayen** — bekräfta att `ANTHROPIC_BASE_URL` **inte innehåller `/v1`** och starta om `claude` (miljövariablerna läses endast en gång vid start). `omniroute launch` hanterar detta åt dig. **Väljaren `/model` är tom / saknar gatewaymodeller** — kräver Claude Code v2.1.219+ och `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`. Endast modell-ID:n av typen `claude*` / `anthropic*` visas i väljaren; framtvinga valfri annan modell med `ANTHROPIC_MODEL=` (det är detta profilerna gör). **`400 Ambiguous model 'claude-…'`** — Claude Code skickar alltid modell-ID:n **utan prefix** (t.ex. `claude-opus-4-8`), så när både leverantörerna Claude Code (`cc/…`) och Claude (`claude/…`) är anslutna matchar ID:t utan prefix två rutter och OmniRoute vägrar att gissa. Lös det på något av följande sätt: ange ett ID med prefix via `ANTHROPIC_MODEL=cc/claude-opus-4-8`, eller aktivera **Föredra Claude Code för Claude-modeller utan prefix** — reglaget på Claude-leverantörens sida, eller `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS=true` (inaktiverat som standard; se [Miljö](../reference/ENVIRONMENT.md)) — vilket dirigerar ID:n av typen `claude-*` utan prefix till Claude Code i stället. Explicita leverantörsprefix har alltid företräde. **Autentiseringsfel** — profilen innehåller ingen token. Använd `omniroute launch --profile` (injicerar den) eller exportera `ANTHROPIC_AUTH_TOKEN`. **Profiler isoleras inte** — varje profil är en separat `CLAUDE_CONFIG_DIR`; verifiera att `echo $CLAUDE_CONFIG_DIR` inuti sessionen pekar på `~/.claude/profiles/`.