# Claude Code CLI — Configuration with OmniRoute (Suomi) 🌐 **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) · 🇫🇷 [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) · 🇸🇪 [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) --- Ohjaa **Claude Code** CLI (`claude`) OmniRouteen — paikalliseen tai etä-VPS:ään — mallikohtaisilla profiileilla Codex-määritystä vastaavasti. --- ## Pika-aloitus ```bash # Käynnistä Claude Code paikallista OmniRoutea vasten (tunnistaa aktiivisen kontekstin automaattisesti) omniroute launch # Etä-OmniRoutea vasten (komennon `omniroute connect ` jälkeen tämä tapahtuu automaattisesti) omniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxx # Luo mallikohtaiset profiilit ja käynnistä sitten yksi niistä omniroute setup-claude # kirjoittaa tiedoston ~/.claude/profiles//settings.json omniroute launch --profile glm52 # Claude Code käyttää mallia glm/glm-5.2 OmniRouten kautta ``` --- ## Miten Claude Code muodostaa yhteyden yhdyskäytävään Claude Code käyttää **Anthropic Messages API** -rajapintaa, ja se ohjataan mukautettuun päätepisteeseen ympäristömuuttujilla (sillä ei ole `--base-url`-valitsinta): | Muuttuja | Tarkoitus | | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `ANTHROPIC_BASE_URL` | Yhdyskäytävän juuren URL-osoite (Claude Code lisää `/v1/messages`). **Ei `/v1`-päätettä.** | | `ANTHROPIC_AUTH_TOKEN` | Lähetetään muodossa `Authorization: Bearer …` — käytä OmniRoute-käyttöoikeustunnustasi / API-avaintasi | | `ANTHROPIC_API_KEY` | Vaihtoehto: lähetetään muodossa `x-api-key`. Jos molemmat on asetettu, `ANTHROPIC_AUTH_TOKEN` on ensisijainen | | `ANTHROPIC_MODEL` | Pakota tietty malli (ohittaa `/model`-valitsimen oletusarvon) | | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `1` → natiivi `/model`-valitsin luettelee `/v1/models`-päätepisteen `claude*`/`anthropic*`-mallit | | `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Rajoita tulostunnusten määrä vastausta kohden (esim. `65536`) | | `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Tunnusraja automaattiselle tiivistykselle | > Ympäristömuuttujat luetaan **vain kerran käynnistyksen yhteydessä** — käynnistä Claude Code uudelleen niiden muuttamisen jälkeen. `omniroute launch` asettaa nämä kaikki puolestasi: se selvittää perus-URL-osoitteen ja tunnuksen aktiivisesta kontekstista (joten `omniroute connect ` ja sen jälkeen `omniroute launch` toimii suoraan), tarkistaa palvelimen kunnon ja suorittaa `claude`-komennon. --- ## Discovery-aliakset — muut kuin Claude-mallit näkyviin `/model`-valitsimeen Claude Coden gateway-mallidiscovery listaa vain tunnisteet, jotka alkavat `claude`- tai `anthropic`-etuliitteellä, joten kun `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` on asetettu, natiivi `/model`-valitsin näyttää normaalisti **vain** OmniRouten Claude/Anthropic-mallit — esimerkiksi `kimi/kimi-k2.6` tai `glm/glm-5.2` ei koskaan ilmesty listaan, vaikka reititys toimisikin moitteettomasti. OmniRoute voi peilata minkä tahansa käytössä olevan mallin (ja kombon) `claude/…`-tunnisteen alle, jotta se läpäisee kyseisen suodattimen ja näkyy valitsimessa: ``` 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 ``` Kun valitset jonkin näistä Claude Codessa, OmniRoute kuorii `claude/`-kääreen pois ja palauttaa todellisen tunnisteen ennen reititystä — aito `claude/`-tunniste (varsinainen Claude OAuth -palveluntarjoaja) jätetään aina koskemattomaksi. Oletuksena vain perustunnisteet peilataan. Kun valinnainen ominaisuuslippu `CATALOG_MIRROR_REFINEMENTS_ENABLED` on päällä, katalogin jo listaamat päättelyteho-variantit (esim. `codex/gpt-6-sol-high`) peilataan kuten muutkin tunnisteet, jolloin Claude Code voi valita eksplisiittisen tehotason, eikä sisäänrakennettuja `auto/*`-tunnisteita, joita pyyntöpolku ei pysty materialisoimaan, peilata. Sitä, listataanko teho-variantteja lainkaan, määrää edelleen `OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS` — peili ei koskaan lisää varianttia, jota peruskatalogissa ei ole. **Tämä on oletuksena pois päältä**, ja sitä ohjataan kolmitasoisella portilla (tarkin asetus voittaa), jotta tavallinen OmniRoute ei koskaan tuplaa katalogiaan asiakasohjelmille, jotka eivät käytä Claude Codea: | Taso | Sijainti | | ---------------- | ----------------------------------------------------------------------------------------- | | Malli | Palveluntarjoajan yksityiskohtasivu → mallikohtainen "Expose in Claude Code" -kytkin | | Palveluntarjoaja | Palveluntarjoajan yksityiskohtasivu → palveluntarjoajatason kytkin (kattaa kaikki mallit) | | Globaali | Asetukset → Feature Flags → `EXPOSE_CC_DISCOVERY_ALIASES` (oletuksena pois päältä) | `EXPOSE_CC_DISCOVERY_ALIASES`-ympäristömuuttuja pakottaa globaalin tason päälle ja ohittaa hallintapaneelin asetuksen (Feature Flags -näyttö näyttää tällöin "active via environment variable" -huomautuksen). Palveluntarjoaja- ja mallikohtaiset kytkimet tarkentavat asetusta tästä eteenpäin — esimerkiksi globaali pois päältä + Kimi-palveluntarjoaja päällä paljastaa vain Kimin mallit. > ⚠️ **Kontekstiikkunan epäsuhta muissa kuin Claude-malleissa.** Claude Code olettaa 200K:n kontekstiikkunan kaikille tunnisteille, joita se ei tunnista (se ei pysty lukemaan todellista ikkunakokoa `/v1/models`-päätepisteestä). Jos mallin ikkuna on suurempi (esim. Kimi K2:n 256K), aseta `CLAUDE_CODE_AUTO_COMPACT_WINDOW` arvoon, joka on pienempi kuin mallin todellinen ikkuna, jotta automaattinen tiivistäminen (auto-compaction) ei käynnisty ennenaikaisesti. Yllä olevat generoidut profiilit tekevät tämän jo mallikohtaisesti. --- ## Käyttöönotto-osio hallintapaneelissa Claude-työkalukortti (**Hallintapaneeli → CLI Code**) näyttää tämän instanssin tarkan `settings.json`-katkelman tunnistusaliaksen tietopainikkeen vieressä sekä kopiointipainikkeen: ```jsonc { "env": { "ANTHROPIC_BASE_URL": "http://:20128", "ANTHROPIC_AUTH_TOKEN": "", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", }, } ``` Perus-URL on kortin selvittämä osoite (mukaan lukien kirjoittamasi mukautettu ohitus), joka on jo normalisoitu — ei `/v1`-päätettä eikä lopun vinoviivaa. **Avainta ei koskaan näytetä**: lohko sisältää paikkamerkin, joten kuvakaappaus tai liitetty katkelma ei voi vuotaa avainta. Korvaa paikkamerkki omalla avaimellasi. Lisää `CLAUDE_CODE_AUTO_COMPACT_WINDOW` samaan `env`-lohkoon kaikille malleille, joiden todellinen konteksti-ikkuna ei ole 200K — Claude Code olettaa konteksti-ikkunaksi 200K jokaiselle tunnistamattomalle tunnisteelle, joten automaattinen tiivistys käynnistyy muuten väärässä kohdassa (katso edellisen osion varoitus). Katkelman muodostin hyväksyy myös tämän arvon, joten kutsuja, joka tuntee kohdemallin konteksti-ikkunan, voi sisällyttää sen suoraan. Lähde: `src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet` (puhdas muodostin, yksikkötestattu), jonka renderöi `ClaudeGatewayOnboardingBlock`. ### Kiinnitä yksi tili (valinnainen) Jos haluat lähettää kaikki Claude Code -pyynnöt yhden tietyn palveluntarjoajatilin kautta, lisää `x-omniroute-connection`-otsake `ANTHROPIC_CUSTOM_HEADERS`-muuttujan kautta samaan `env`-lohkoon: ```jsonc "ANTHROPIC_CUSTOM_HEADERS": "x-omniroute-connection: " ``` Kopioi tunniste palveluntarjoajasivun yhteysrivillä olevasta `xxxxxxxx…`-tunnisteesta. Kiinnitys koskee vain yksittäisten mallien tunnisteita (`provider/model`), ei yhdistelmiä. Tarkka varatoiminta on kuvattu kohdassa [Tilin kiinnitys pyyntökohtaisesti](../reference/API_REFERENCE.md#account-pinning-per-request). --- ## Profiilit (`CLAUDE_CONFIG_DIR`) Claude Codessa **ei ole natiiveja profiilitiedostoja** (toisin kuin Codexin `~/.codex/.config.toml`). Suositeltu mekanismi on `CLAUDE_CONFIG_DIR` — erillinen määrityshakemisto kullekin profiilille, joista jokaisella on omat `settings.json`-tiedostonsa, tunnistetietonsa, historiansa ja välimuistinsa. `omniroute setup-claude` hakee ajantasaisen `/v1/models`-luettelon ja kirjoittaa yhden profiilin mallia kohden polkuun `~/.claude/profiles//settings.json` käyttäen **samoja nimiä kuin `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", }, } ``` > **Todennustunnistetta ei koskaan kirjoiteta profiiliin.** Käynnistä komennolla > `omniroute launch --profile ` (se lisää `ANTHROPIC_AUTH_TOKEN`-arvon aktiivisesta > kontekstista), tai vie `ANTHROPIC_AUTH_TOKEN` itse ja suorita > `CLAUDE_CONFIG_DIR=~/.claude/profiles/ claude`. **Automaattinen synkronointi mallien löytämisen jälkeen (valinnainen).** OmniRoute voi luoda nämä samat `~/.claude/profiles//settings.json`-tiedostot automaattisesti uudelleen aina, kun palveluntarjoajan mallien synkronointi muuttaa ajantasaista luetteloa — näin uudet tai uudelleennimetyt mallit saavat profiilit ilman komennon suorittamista uudelleen. Se on **oletusarvoisesti pois käytöstä**: ota se käyttöön **CLI Code -koontinäytöstä** ("CLI-profiilien automaattinen synkronointi" → Claude Code) tai aseta `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true` (se huomioi myös `CLI_ALLOW_CONFIG_WRITES`-asetuksen, joka on oletusarvoisesti käytössä). Kun toiminto on käytössä, se kirjoittaa vain profiilitiedostoja; se ei koskaan muuta aktiivista Claude-oletusmääritystäsi, todennusta tai tiedostoa `~/.claude/settings.json`. ### Profiilien luominen ja käyttäminen ```bash # Paikallinen OmniRoute omniroute setup-claude # Etä-VPS (sisällyttää VPS:n URL-osoitteen jokaiseen profiiliin) omniroute setup-claude --remote http://192.168.0.15:20128 --api-key oma_live_xxx # Vain tietyt palveluntarjoajat omniroute setup-claude --only glm,kimi # Kirjoita profiilit myös paikallisille CLI-palveluntarjoajille (zcode, auggie, devin-cli-agentic, # codex-app-server), joita ei havaittu tällä koneella (ohitetaan oletusarvoisesti paikalliselle kohteelle) omniroute setup-claude --include-local # Esikatsele kirjoittamatta omniroute setup-claude --dry-run # Käynnistä profiili omniroute launch --profile kimi-k27 ``` --- ## Mallitasot (valinnainen) Claude Code reitittää pyynnöt suorituskykytasoille. Voit määrittää kullekin tasolle OmniRoute-mallin ympäristömuuttujien / asetusten avulla, jos haluat käyttää eri palveluntarjoajia eri tasoilla: ```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" ``` Muussa tapauksessa kaikkeen käytetään yhtä `ANTHROPIC_MODEL`-muuttujaa (jonka profiilit määrittävät). --- ## Etätila Kun olet suorittanut komennon `omniroute connect ` (katso [Etätila](./REMOTE-MODE.md)), `omniroute launch` ja `omniroute setup-claude` kohdistuvat automaattisesti kyseiseen etäpalvelimeen ja käyttävät sen rajattua käyttöoikeustunnusta — ylimääräisiä valitsimia ei tarvita. Voit ohittaa asetuksen yksittäisellä suorituskerralla valitsimilla `--remote` / `--api-key`. --- ## Vianmääritys **Claude Code ohittaa yhdyskäytävän** — varmista, että `ANTHROPIC_BASE_URL` **ei sisällä `/v1`-osaa**, ja käynnistä `claude` uudelleen (ympäristömuuttujat luetaan vain kerran käynnistyksen yhteydessä). `omniroute launch` hoitaa tämän puolestasi. **`/model`-valitsin on tyhjä / yhdyskäytävän mallit puuttuvat** — edellyttää Claude Code -versiota v2.1.219+ ja asetusta `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`. Vain `claude*`- / `anthropic*`-mallitunnukset näkyvät valitsimessa; pakota mikä tahansa muu malli asetuksella `ANTHROPIC_MODEL=` (profiilit toimivat näin). **`400 Ambiguous model 'claude-…'`** — Claude Code lähettää aina mallien **etuliitteettömät** tunnukset (esim. `claude-opus-4-8`), joten kun sekä Claude Code (`cc/…`)- että Claude (`claude/…`)-palveluntarjoajat on yhdistetty, etuliitteetön tunnus vastaa kahta reittiä eikä OmniRoute yritä arvata oikeaa. Korjaa ongelma jommallakummalla tavalla: kiinnitä etuliitteellinen tunnus asetuksella `ANTHROPIC_MODEL=cc/claude-opus-4-8` tai ota käyttöön **Suosi Claude Codea etuliitteettömille Claude-malleille** — kytkin Claude-palveluntarjoajan sivulla tai `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS=true` (oletuksena pois käytöstä; katso [Ympäristö](../reference/ENVIRONMENT.md)) — jolloin etuliitteettömät `claude-*`- tunnukset reititetään sen sijaan Claude Codeen. Eksplisiittiset palveluntarjoajan etuliitteet ovat aina etusijalla. **Todennusvirheet** — profiili ei sisällä tunnusta. Käytä komentoa `omniroute launch --profile` (joka lisää sen) tai vie ympäristömuuttuja `ANTHROPIC_AUTH_TOKEN`. **Profiilit eivät pysy erillään** — jokaisella profiililla on erillinen `CLAUDE_CONFIG_DIR`; varmista, että istunnossa komento `echo $CLAUDE_CONFIG_DIR` osoittaa hakemistoon `~/.claude/profiles/`.