# Claude Code CLI — Configuration with OmniRoute (ខ្មែរ) 🌐 **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) · 🇮🇳 [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) --- តម្រង់ **Claude Code** CLI (`claude`) ទៅកាន់ OmniRoute — ទាំងក្នុងម៉ាស៊ីន ឬ VPS ពីចម្ងាយ — ដោយមានប្រូហ្វាល់សម្រាប់ម៉ូដែលនីមួយៗ ដូចគ្នានឹងការរៀបចំ Codex។ --- ## ចាប់ផ្ដើមរហ័ស ```bash # ដំណើរការ Claude Code ជាមួយ OmniRoute ក្នុងម៉ាស៊ីន (រកឃើញ context ដែលកំពុងសកម្មដោយស្វ័យប្រវត្តិ) omniroute launch # ជាមួយ OmniRoute ពីចម្ងាយ (បន្ទាប់ពី `omniroute connect ` វាដំណើរការដោយស្វ័យប្រវត្តិ) omniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxx # បង្កើតប្រូហ្វាល់សម្រាប់ម៉ូដែលនីមួយៗ រួចដំណើរការប្រូហ្វាល់មួយ omniroute setup-claude # សរសេរទៅ ~/.claude/profiles//settings.json omniroute launch --profile glm52 # Claude Code ប្រើ glm/glm-5.2 តាមរយៈ OmniRoute ``` --- ## របៀបដែល Claude Code ភ្ជាប់ទៅ gateway Claude Code ទាក់ទងតាម **Anthropic Messages API** ហើយត្រូវបានតម្រង់ទៅកាន់ endpoint ផ្ទាល់ខ្លួន ដោយប្រើ environment variables (វាមិនមាន flag `--base-url` ទេ)៖ | អថេរ | គោលបំណង | | -------------------------------------------- | --------------------------------------------------------------------------------------- | | `ANTHROPIC_BASE_URL` | URL ឫសរបស់ gateway (Claude Code បន្ថែម `/v1/messages`)។ **មិនត្រូវមានបច្ច័យ `/v1` ទេ។** | | `ANTHROPIC_AUTH_TOKEN` | ផ្ញើជា `Authorization: Bearer …` — ប្រើ access token / API key របស់ OmniRoute | | `ANTHROPIC_API_KEY` | ជម្រើសជំនួស៖ ផ្ញើជា `x-api-key`។ ប្រសិនបើកំណត់ទាំងពីរ `ANTHROPIC_AUTH_TOKEN` មានអាទិភាព | | `ANTHROPIC_MODEL` | បង្ខំឱ្យប្រើម៉ូដែលជាក់លាក់មួយ (ជំនួសតម្លៃលំនាំដើមរបស់ឧបករណ៍ជ្រើស `/model`) | | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `1` → ឧបករណ៍ជ្រើស `/model` ដើម រាយម៉ូដែល `claude*`/`anthropic*` ពី `/v1/models` | | `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | កំណត់ចំនួន output tokens អតិបរមាសម្រាប់ការឆ្លើយតបនីមួយៗ (ឧ. `65536`) | | `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | កម្រិត token សម្រាប់ការបង្រួមដោយស្វ័យប្រវត្តិ | > Env vars ត្រូវបានអាន **តែមួយដងនៅពេលចាប់ផ្ដើម** — ចាប់ផ្ដើម Claude Code ឡើងវិញបន្ទាប់ពីផ្លាស់ប្ដូរពួកវា។ `omniroute launch` កំណត់អថេរទាំងអស់នេះជូនអ្នក៖ វាកំណត់ base URL + token ពី context ដែលកំពុងសកម្ម (ដូច្នេះ `omniroute connect ` រួច `omniroute launch` នឹងដំណើរការភ្លាមៗ) ពិនិត្យស្ថានភាព server ហើយប្រតិបត្តិ `claude`។ --- ## Discovery aliases — បង្ហាញម៉ូដែលដែលមិនមែន Claude នៅក្នុងផ្ទាំងជ្រើសរើស `/model` ការរកឃើញម៉ូដែលតាម gateway របស់ Claude Code បង្ហាញតែ id ដែលចាប់ផ្តើមដោយ `claude` ឬ `anthropic` ប៉ុណ្ណោះ ដូច្នេះជាមួយ `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` ផ្ទាំងជ្រើសរើស `/model` ដើម ធម្មតាបង្ហាញ **តែ** ម៉ូដែល Claude/Anthropic របស់ OmniRoute ប៉ុណ្ណោះ — `kimi/kimi-k2.6` ឬ `glm/glm-5.2` មិនដែលបង្ហាញឡើយ ទោះបីវា route បានល្អក៏ដោយ។ OmniRoute អាចចម្លង (mirror) ម៉ូដែលដែលបានបើកណាមួយ (និង combo) នៅក្រោម id `claude/…` ដើម្បីឱ្យវាឆ្លងកាត់តម្រងនោះ ហើយបង្ហាញនៅក្នុងផ្ទាំងជ្រើសរើស៖ ``` 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 ``` នៅពេលអ្នកជ្រើសរើសមួយក្នុងចំណោមទាំងនេះនៅក្នុង Claude Code, OmniRoute នឹងដក wrapper `claude/` ចេញ ឱ្យត្រឡប់ទៅ id ពិតប្រាកដ មុនពេល route — ចំណែក id `claude/` ពិតប្រាកដ (គឺ Claude OAuth provider ពិតប្រាកដ) តែងតែត្រូវបានទុកដដែល។ តាមលំនាំដើម មានតែ id មូលដ្ឋានប៉ុណ្ណោះដែលត្រូវបានចម្លង។ នៅពេលបើក feature flag ជាជម្រើស (opt-in) `CATALOG_MIRROR_REFINEMENTS_ENABLED` វ៉ារ្យ៉ង់ reasoning-effort ដែល catalog មានរាយរួចហើយ (ឧ. `codex/gpt-6-sol-high`) ត្រូវបានចម្លងដូច id ផ្សេងៗដែរ ដូច្នេះ Claude Code អាចជ្រើសរើសកម្រិត effort ជាក់លាក់បាន ហើយ id `auto/*` ដែលមានស្រាប់ ដែលផ្លូវសំណើមិនអាចបង្កើតជាក់ស្តែងបាន នឹងមិនត្រូវបានចម្លងទេ។ ថាតើវ៉ារ្យ៉ង់ effort ត្រូវបានរាយឬអត់ នៅតែកំណត់ដោយ `OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS` — ការចម្លងមិនដែលបន្ថែមវ៉ារ្យ៉ង់ដែល catalog មូលដ្ឋានមិនមានឡើយ។ **មុខងារនេះត្រូវបានបិទតាមលំនាំដើម** ហើយត្រូវបានគ្រប់គ្រងដោយទ្វារបីកម្រិត (កម្រិតជាក់លាក់បំផុតឈ្នះ) ដូច្នេះ OmniRoute ធម្មតាមិនដែលបង្កើន catalog របស់វាទ្វេដង សម្រាប់ client ដែលមិនប្រើ Claude Code ឡើយ៖ | កម្រិត | កន្លែង | | -------- | ----------------------------------------------------------------------------------------------- | | ម៉ូដែល | ទំព័រព័ត៌មានលម្អិតរបស់ Provider → ប៊ូតុងបិទ/បើក "បង្ហាញនៅក្នុង Claude Code" សម្រាប់ម៉ូដែលនីមួយៗ | | Provider | ទំព័រព័ត៌មានលម្អិតរបស់ Provider → ប៊ូតុងបិទ/បើកកម្រិត provider (គ្របដណ្តប់ម៉ូដែលទាំងអស់របស់វា) | | សកល | ការកំណត់ → Feature Flags → `EXPOSE_CC_DISCOVERY_ALIASES` (បិទតាមលំនាំដើម) | អថេរបរិស្ថាន `EXPOSE_CC_DISCOVERY_ALIASES` បង្ខំឱ្យបើកកម្រិតសកល ហើយមានអាទិភាពលើការ override ពី dashboard (អេក្រង់ Feature Flags បង្ហាញកំណត់សម្គាល់ "សកម្មតាមអថេរបរិស្ថាន" នៅពេលដូច្នោះ)។ ប៊ូតុងបិទ/បើកតាម provider និងតាមម៉ូដែល កែលម្អបន្តពីទីនោះ — ឧ. សកលបិទ + បើក provider Kimi នឹងបង្ហាញតែម៉ូដែលរបស់ Kimi ប៉ុណ្ណោះ។ > ⚠️ **បញ្ហា context window មិនត្រូវគ្នាលើម៉ូដែលដែលមិនមែន Claude។** Claude Code សន្មត់ថា > context window គឺ 200K សម្រាប់ id ណាមួយដែលវាមិនស្គាល់ (វាមិនអាចអាន window ពិតប្រាកដ > ពី `/v1/models` បានទេ)។ សម្រាប់ម៉ូដែលដែលមាន window ធំជាងនេះ (ឧ. 256K របស់ Kimi K2) > កំណត់ `CLAUDE_CODE_AUTO_COMPACT_WINDOW` ទៅតម្លៃមួយទាបជាង window ពិតប្រាកដរបស់ម៉ូដែល > ដើម្បីកុំឱ្យ auto-compaction ដំណើរការមុនពេលកំណត់។ ប្រវត្តិ (profiles) ដែលបានបង្កើតខាងលើ > បានធ្វើដូច្នេះរួចហើយសម្រាប់ម៉ូដែលនីមួយៗ។ --- ## ប្លុកណែនាំការចាប់ផ្ដើមនៅលើផ្ទាំងគ្រប់គ្រង កាតឧបករណ៍ Claude (**ផ្ទាំងគ្រប់គ្រង → CLI Code**) បង្ហាញបំណែក `settings.json` ពិតប្រាកដ សម្រាប់ instance នេះ នៅក្បែរប៊ូតុងព័ត៌មាន discovery-alias រួមជាមួយប៊ូតុងចម្លង៖ ```jsonc { "env": { "ANTHROPIC_BASE_URL": "http://:20128", "ANTHROPIC_AUTH_TOKEN": "", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", }, } ``` URL មូលដ្ឋានគឺជា URL ដែលកាតបានដោះស្រាយ (រួមទាំងតម្លៃកំណត់ជំនួសផ្ទាល់ខ្លួនដែលអ្នកបានវាយបញ្ចូល) ហើយត្រូវបាន ធ្វើឱ្យមានទម្រង់ស្តង់ដាររួចហើយ — គ្មានបច្ច័យ `/v1` និងគ្មានសញ្ញា slash នៅខាងចុង។ **កូនសោមិនត្រូវបានបង្ហាញឡើយ**៖ ប្លុកនេះភ្ជាប់មកជាមួយ តម្លៃកាន់កន្លែង ដូច្នេះរូបថតអេក្រង់ ឬបំណែកដែលបានបិទភ្ជាប់ មិនអាចធ្វើឱ្យកូនសោលេចធ្លាយបានទេ។ បិទភ្ជាប់កូនសោរបស់អ្នកជំនួសវា។ បន្ថែម `CLAUDE_CODE_AUTO_COMPACT_WINDOW` នៅក្រោមប្លុក `env` ដូចគ្នា សម្រាប់ម៉ូដែលណាមួយដែលមាន បង្អួចបរិបទពិតប្រាកដមិនមែន 200K — Claude Code សន្មតថា 200K សម្រាប់គ្រប់ id ដែលវាមិនស្គាល់ ដូច្នេះ ការបង្រួមដោយស្វ័យប្រវត្តិនឹងកើតឡើងនៅចំណុចមិនត្រឹមត្រូវ (សូមមើលការព្រមាននៅផ្នែកមុន)។ កម្មវិធីបង្កើតបំណែកក៏ទទួលយកតម្លៃនោះផងដែរ ដូច្នេះ caller ដែលដឹងទំហំបង្អួចរបស់ម៉ូដែលគោលដៅ អាចបញ្ចេញវាដោយផ្ទាល់។ ប្រភព៖ `src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet` (កម្មវិធីបង្កើត សុទ្ធ ដែលបានធ្វើ unit test) ដែលបង្ហាញដោយ `ClaudeGatewayOnboardingBlock`។ ### ភ្ជាប់ថេរគណនីមួយ (ជាជម្រើស) ដើម្បីផ្ញើរាល់សំណើ Claude Code តាមរយៈគណនីអ្នកផ្តល់សេវាជាក់លាក់មួយ សូមបន្ថែម header `x-omniroute-connection` តាមរយៈ `ANTHROPIC_CUSTOM_HEADERS` នៅក្នុងប្លុក `env` ដូចគ្នា៖ ```jsonc "ANTHROPIC_CUSTOM_HEADERS": "x-omniroute-connection: " ``` ចម្លង id ពី chip `xxxxxxxx…` នៅលើជួរដេកនៃការតភ្ជាប់ក្នុងទំព័ររបស់អ្នកផ្តល់សេវា។ ការភ្ជាប់ថេរនេះអនុវត្តតែ ចំពោះ id របស់ម៉ូដែលតែមួយ (`provider/model`) ប៉ុណ្ណោះ មិនអនុវត្តចំពោះ combo ទេ។ សូមមើល [ការភ្ជាប់គណនីថេរតាមសំណើនីមួយៗ](../reference/API_REFERENCE.md#account-pinning-per-request) សម្រាប់ឥរិយាបថ fallback ពិតប្រាកដ។ --- ## ប្រវត្តិរូប (`CLAUDE_CONFIG_DIR`) Claude Code **មិនមានឯកសារប្រវត្តិរូបដើម** ទេ (ខុសពី `~/.codex/.config.toml` របស់ Codex)។ យន្តការដែលគេប្រើជាទូទៅគឺ `CLAUDE_CONFIG_DIR` — ថតកំណត់រចនាសម្ព័ន្ធដាច់ដោយឡែកសម្រាប់ ប្រវត្តិរូបនីមួយៗ ដែលប្រវត្តិរូបនីមួយៗមាន `settings.json` ព័ត៌មានសម្គាល់អត្តសញ្ញាណ ប្រវត្តិ និងឃ្លាំងសម្ងាត់ផ្ទាល់ខ្លួន។ `omniroute setup-claude` ទាញយកកាតាឡុក `/v1/models` ដែលកំពុងប្រើប្រាស់ ហើយសរសេរ ប្រវត្តិរូបមួយសម្រាប់ម៉ូដែលនីមួយៗនៅ `~/.claude/profiles//settings.json` ដោយប្រើ **ឈ្មោះដូចគ្នានឹង `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", }, } ``` > **ថូខឹនផ្ទៀងផ្ទាត់អត្តសញ្ញាណមិនត្រូវបានសរសេរចូលក្នុងប្រវត្តិរូបឡើយ។** ដំណើរការជាមួយ > `omniroute launch --profile ` (វាបញ្ចូល `ANTHROPIC_AUTH_TOKEN` ពី > បរិបទសកម្ម) ឬ export `ANTHROPIC_AUTH_TOKEN` ដោយខ្លួនឯង ហើយដំណើរការ > `CLAUDE_CONFIG_DIR=~/.claude/profiles/ claude`។ **ការធ្វើសមកាលកម្មដោយស្វ័យប្រវត្តិបន្ទាប់ពីការរកឃើញម៉ូដែល (ជ្រើសរើសបើកប្រើ)។** OmniRoute អាចបង្កើតឯកសារ `~/.claude/profiles//settings.json` ដដែលទាំងនេះឡើងវិញដោយស្វ័យប្រវត្តិ រាល់ពេលការធ្វើសមកាលកម្មម៉ូដែលរបស់អ្នកផ្តល់សេវា ផ្លាស់ប្ដូរកាតាឡុកដែលកំពុងប្រើប្រាស់ — ដូច្នេះម៉ូដែលថ្មី/ដែលបានប្ដូរឈ្មោះនឹងទទួលបានប្រវត្តិរូប ដោយមិនចាំបាច់ដំណើរការ ពាក្យបញ្ជាម្ដងទៀត។ វា **ត្រូវបានបិទតាមលំនាំដើម**៖ បិទបើកវាពី **ផ្ទាំងគ្រប់គ្រង CLI Code** ("CLI profile auto-sync" → Claude Code) ឬកំណត់ `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true` (វាក៏គោរពតាម `CLI_ALLOW_CONFIG_WRITES` ដែលបើកតាមលំនាំដើមផងដែរ)។ នៅពេលបើក វាសរសេរតែឯកសារប្រវត្តិរូបប៉ុណ្ណោះ; វាមិន ផ្លាស់ប្ដូរការកំណត់រចនាសម្ព័ន្ធ Claude សកម្ម/លំនាំដើម ការផ្ទៀងផ្ទាត់អត្តសញ្ញាណ ឬ `~/.claude/settings.json` របស់អ្នកឡើយ។ ### ការបង្កើត + ការប្រើប្រាស់ប្រវត្តិរូប ```bash # OmniRoute មូលដ្ឋាន omniroute setup-claude # VPS ពីចម្ងាយ (បញ្ចូល URL របស់ VPS ទៅក្នុងប្រវត្តិរូបនីមួយៗ) omniroute setup-claude --remote http://192.168.0.15:20128 --api-key oma_live_xxx # តែអ្នកផ្តល់សេវាមួយចំនួន omniroute setup-claude --only glm,kimi # សរសេរប្រវត្តិរូបផងដែរសម្រាប់អ្នកផ្តល់សេវា local-CLI (zcode, auggie, devin-cli-agentic, # codex-app-server) ដែលមិនត្រូវបានរកឃើញនៅលើម៉ាស៊ីននេះ (ត្រូវបានរំលងតាមលំនាំដើមសម្រាប់គោលដៅមូលដ្ឋាន) omniroute setup-claude --include-local # មើលជាមុនដោយមិនសរសេរ omniroute setup-claude --dry-run # ដំណើរការប្រវត្តិរូបមួយ omniroute launch --profile kimi-k27 ``` --- ## កម្រិតម៉ូដែល (ជាជម្រើស) Claude Code បញ្ជូនសំណើទៅតាមកម្រិតសមត្ថភាព។ កំណត់ផ្គូផ្គងកម្រិតនីមួយៗទៅនឹងម៉ូដែល OmniRoute តាមរយៈ env / settings ប្រសិនបើអ្នកចង់ប្រើអ្នកផ្តល់សេវាផ្សេងៗគ្នាសម្រាប់កម្រិតនីមួយៗ៖ ```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" ``` បើមិនដូច្នោះទេ `ANTHROPIC_MODEL` តែមួយ (ដែល profiles កំណត់) នឹងត្រូវបានប្រើសម្រាប់អ្វីៗទាំងអស់។ --- ## របៀបពីចម្ងាយ បន្ទាប់ពីអ្នកបានដំណើរការ `omniroute connect ` (សូមមើល [របៀបពីចម្ងាយ](./REMOTE-MODE.md)) `omniroute launch` និង `omniroute setup-claude` នឹងកំណត់គោលដៅទៅម៉ាស៊ីនមេពីចម្ងាយនោះដោយស្វ័យប្រវត្តិ ហើយប្រើ token ចូលប្រើដែលមានវិសាលភាពកំណត់របស់វា ដោយមិន ត្រូវការ flags បន្ថែមឡើយ។ កំណត់ជំនួសសម្រាប់ការហៅដំណើរការនីមួយៗដោយប្រើ `--remote` / `--api-key`។ --- ## ការដោះស្រាយបញ្ហា **Claude Code មិនអើពើ gateway** — សូមបញ្ជាក់ថា `ANTHROPIC_BASE_URL` **មិនមាន `/v1`** ហើយចាប់ផ្តើម `claude` ឡើងវិញ (env ត្រូវបានអានតែម្តងប៉ុណ្ណោះនៅពេលចាប់ផ្តើម)។ `omniroute launch` ដោះស្រាយកិច្ចការនេះឱ្យអ្នក។ **ឧបករណ៍ជ្រើសរើស `/model` ទទេ / មិនមានម៉ូដែល gateway** — ត្រូវការ Claude Code v2.1.219+ និង `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`។ មានតែ model IDs ដែលជា `claude*` / `anthropic*` ប៉ុណ្ណោះដែលបង្ហាញក្នុងឧបករណ៍ជ្រើសរើស; បង្ខំឱ្យប្រើម៉ូដែលផ្សេងទៀតដោយប្រើ `ANTHROPIC_MODEL=` (នេះជាអ្វីដែល profiles ធ្វើ)។ **`400 Ambiguous model 'claude-…'`** — Claude Code តែងតែផ្ញើ model IDs ដែល **គ្មានបុព្វបទ** (ឧ. `claude-opus-4-8`) ដូច្នេះនៅពេលអ្នកផ្តល់សេវា Claude Code (`cc/…`) និង Claude (`claude/…`) ទាំងពីរត្រូវបានភ្ជាប់ bare id នឹងត្រូវគ្នានឹង routes ពីរ ហើយ OmniRoute បដិសេធមិនធ្វើការសន្មត។ ដោះស្រាយតាមវិធីណាមួយ៖ កំណត់ភ្ជាប់ id ដែលមានបុព្វបទដោយប្រើ `ANTHROPIC_MODEL=cc/claude-opus-4-8` ឬបើក **ផ្តល់អាទិភាពដល់ Claude Code សម្រាប់ ម៉ូដែល Claude ដែលគ្មានបុព្វបទ** — toggle នៅលើទំព័រអ្នកផ្តល់សេវា Claude ឬ `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS=true` (បិទតាមលំនាំដើម; សូមមើល [បរិស្ថាន](../reference/ENVIRONMENT.md)) — ដែលបញ្ជូន IDs ប្រភេទ bare `claude-*` ទៅ Claude Code ជំនួសវិញ។ បុព្វបទអ្នកផ្តល់សេវាដែលបានបញ្ជាក់ច្បាស់លាស់តែងតែមានអាទិភាព។ **កំហុសផ្ទៀងផ្ទាត់អត្តសញ្ញាណ** — profile មិនផ្ទុក token ទេ។ ប្រើ `omniroute launch --profile` (បញ្ចូលវា) ឬ export `ANTHROPIC_AUTH_TOKEN`។ **Profiles មិនដាច់ដោយឡែកពីគ្នា** — profile នីមួយៗមាន `CLAUDE_CONFIG_DIR` ខុសគ្នា; ផ្ទៀងផ្ទាត់ថា `echo $CLAUDE_CONFIG_DIR` នៅក្នុង session ចង្អុលទៅ `~/.claude/profiles/`។