# 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) · 🇰🇭 [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) · 🇹🇷 [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) --- กำหนดให้ CLI ของ **Claude Code** (`claude`) ชี้ไปยัง OmniRoute — ทั้งแบบภายในเครื่องหรือ VPS ระยะไกล — พร้อมโปรไฟล์แยกตามโมเดล โดยเลียนแบบการตั้งค่าของ Codex --- ## เริ่มต้นอย่างรวดเร็ว ```bash # เปิด Claude Code โดยเชื่อมต่อกับ OmniRoute ภายในเครื่อง (ตรวจหาคอนเท็กซ์ที่ใช้งานอยู่โดยอัตโนมัติ) 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 เชื่อมต่อกับเกตเวย์ Claude Code สื่อสารผ่าน **Anthropic Messages API** และถูกกำหนดให้ชี้ไปยัง เอนด์พอยต์แบบกำหนดเองด้วยตัวแปรสภาพแวดล้อม (ไม่มีแฟล็ก `--base-url`): | ตัวแปร | วัตถุประสงค์ | | -------------------------------------------- | ------------------------------------------------------------------------------------------------- | | `ANTHROPIC_BASE_URL` | URL รากของเกตเวย์ (Claude Code จะต่อท้ายด้วย `/v1/messages`) **ห้ามมีส่วนต่อท้าย `/v1`** | | `ANTHROPIC_AUTH_TOKEN` | ส่งเป็น `Authorization: Bearer …` — ใช้โทเค็นการเข้าถึง / 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` | จำกัดจำนวนโทเค็นเอาต์พุตต่อการตอบกลับ (เช่น `65536`) | | `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | เกณฑ์จำนวนโทเค็นสำหรับการย่ออัตโนมัติ | > ตัวแปรสภาพแวดล้อมจะถูกอ่าน **เพียงครั้งเดียวเมื่อเริ่มต้น** — ให้รีสตาร์ต Claude Code หลังจากเปลี่ยนแปลงค่า `omniroute launch` จะตั้งค่าทั้งหมดนี้ให้คุณ: คำสั่งนี้จะค้นหา URL ฐานและโทเค็น จากคอนเท็กซ์ที่ใช้งานอยู่ (ดังนั้นเมื่อใช้ `omniroute connect ` แล้วตามด้วย `omniroute launch` ก็จะใช้งานได้ทันที) ตรวจสอบสถานะของเซิร์ฟเวอร์ และเรียกใช้ `claude` --- ## นามแฝงสำหรับการค้นหา — แสดงโมเดลที่ไม่ใช่ Claude ในตัวเลือก `/model` การค้นหาโมเดลผ่านเกตเวย์ของ Claude Code จะแสดงเฉพาะ ID ที่ขึ้นต้นด้วย `claude` หรือ `anthropic` ดังนั้นเมื่อใช้ `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` ตัวเลือก `/model` แบบเนทีฟจึงมักแสดง **เฉพาะ** โมเดล Claude/Anthropic ของ OmniRoute — โมเดลอย่าง `kimi/kimi-k2.6` หรือ `glm/glm-5.2` จะไม่ปรากฏ แม้ว่าจะกำหนดเส้นทางได้ตามปกติก็ตาม OmniRoute สามารถสร้างตัวแทนของโมเดลที่เปิดใช้งานอยู่ (รวมถึงคอมโบ) ภายใต้ 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)" <คอมโบ "custo-otimizado"> → claude/combo/custo-otimizado ``` เมื่อคุณเลือกหนึ่งในรายการเหล่านี้ภายใน Claude Code ทาง OmniRoute จะนำส่วนครอบ `claude/` ออกให้กลับเป็น ID จริงก่อนกำหนดเส้นทาง — ส่วน ID จริงแบบ `claude/` (ผู้ให้บริการ Claude OAuth จริง) จะไม่ถูกแก้ไขเสมอ **ฟีเจอร์นี้ปิดอยู่โดยค่าเริ่มต้น** และควบคุมด้วยการตั้งค่าสามระดับ (ค่าที่เฉพาะเจาะจงที่สุด จะมีผลเหนือกว่า) ดังนั้น OmniRoute แบบปกติจะไม่สร้างรายการในแค็ตตาล็อกซ้ำสำหรับไคลเอนต์ที่ไม่ได้ใช้ Claude Code: | ระดับ | ตำแหน่ง | | ------------ | ---------------------------------------------------------------------------- | | โมเดล | หน้ารายละเอียดผู้ให้บริการ → สวิตช์ "Expose in Claude Code" แยกตามโมเดล | | ผู้ให้บริการ | หน้ารายละเอียดผู้ให้บริการ → สวิตช์ระดับผู้ให้บริการ (ครอบคลุมทุกโมเดล) | | ส่วนกลาง | Settings → Feature Flags → `EXPOSE_CC_DISCOVERY_ALIASES` (ปิดโดยค่าเริ่มต้น) | ตัวแปรสภาพแวดล้อม `EXPOSE_CC_DISCOVERY_ALIASES` จะบังคับเปิดการตั้งค่าระดับส่วนกลาง และมีลำดับความสำคัญเหนือการตั้งค่าทับจากแดชบอร์ด (หน้าจอ Feature Flags จะแสดงหมายเหตุ "active via environment variable" เมื่อมีผล) จากนั้นสามารถปรับให้เฉพาะเจาะจงยิ่งขึ้นด้วยสวิตช์ แยกตามผู้ให้บริการและแยกตามโมเดล — เช่น เมื่อปิดระดับส่วนกลางแต่เปิดผู้ให้บริการ Kimi ระบบจะแสดงเฉพาะโมเดลของ Kimi > ⚠️ **ขนาดหน้าต่างไม่ตรงกันสำหรับโมเดลที่ไม่ใช่ Claude** Claude Code จะถือว่า ID ใด ๆ > ที่ไม่รู้จักมีหน้าต่างคอนเท็กซ์ขนาด 200K (ไม่สามารถอ่านขนาดหน้าต่างจริงจาก > `/v1/models` ได้) สำหรับโมเดลที่มีหน้าต่างใหญ่กว่า (เช่น 256K ของ Kimi K2) ให้ตั้งค่า > `CLAUDE_CODE_AUTO_COMPACT_WINDOW` เป็นค่าที่ต่ำกว่าขนาดหน้าต่างจริงของโมเดล เพื่อไม่ให้ > การย่ออัตโนมัติทำงานก่อนเวลาอันควร โปรไฟล์ที่สร้างขึ้นข้างต้นได้ตั้งค่านี้แยกตามโมเดลไว้แล้ว --- ## บล็อกการเริ่มต้นใช้งานบนแดชบอร์ด การ์ดเครื่องมือ Claude (**แดชบอร์ด → CLI Code**) จะแสดงส่วนย่อยของ `settings.json` ที่ตรงกับ อินสแตนซ์นี้ทุกประการ ถัดจากปุ่มข้อมูล discovery-alias พร้อมปุ่มคัดลอก: ```jsonc { "env": { "ANTHROPIC_BASE_URL": "http://:20128", "ANTHROPIC_AUTH_TOKEN": "<คีย์ OmniRoute API ของคุณ>", "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1", }, } ``` URL ฐานคือ URL ที่การ์ดระบุได้ (รวมถึงค่ากำหนดเองที่คุณป้อน) และผ่านการปรับรูปแบบแล้ว — ไม่มีส่วนต่อท้าย `/v1` และไม่มีเครื่องหมายทับปิดท้าย **ระบบจะไม่แสดงคีย์จริงโดยเด็ดขาด**: บล็อกนี้ใช้ข้อความตัวอย่างแทน ดังนั้นภาพหน้าจอหรือส่วนย่อยที่นำไปวางจึงไม่ทำให้คีย์รั่วไหล ให้วางคีย์ของคุณทับข้อความดังกล่าว เพิ่ม `CLAUDE_CODE_AUTO_COMPACT_WINDOW` ภายใต้บล็อก `env` เดียวกันสำหรับโมเดลที่มี ขนาดหน้าต่างบริบทจริงไม่เท่ากับ 200K — Claude Code จะถือว่าทุก id ที่ระบบไม่รู้จักมีขนาด 200K ดังนั้นหากไม่กำหนดค่านี้ การบีบอัดอัตโนมัติจะทำงานผิดจังหวะ (ดูคำเตือนในส่วนก่อนหน้า) ตัวสร้างส่วนย่อยรองรับค่านี้เช่นกัน ดังนั้นตัวเรียกที่ทราบขนาดหน้าต่างของโมเดลเป้าหมาย จึงสามารถสร้างค่านี้ได้โดยตรง แหล่งที่มา: `src/shared/services/claudeCliConfig.ts::buildClaudeDiscoverySettingsSnippet` (ตัวสร้างแบบ pure ที่ผ่านการทดสอบระดับหน่วย) ซึ่งแสดงผลโดย `ClaudeGatewayOnboardingBlock` --- ## โปรไฟล์ (`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 # เขียนโปรไฟล์สำหรับผู้ให้บริการ 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 / การตั้งค่าได้ หากต้องการใช้ผู้ให้บริการที่แตกต่างกันในแต่ละระดับ: ```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` รายการเดียว (ที่โปรไฟล์กำหนดไว้) สำหรับทุกอย่าง --- ## โหมดระยะไกล เมื่อคุณเรียกใช้ `omniroute connect ` แล้ว (ดู [โหมดระยะไกล](./REMOTE-MODE.md)) `omniroute launch` และ `omniroute setup-claude` จะกำหนดเป้าหมายไปยังเซิร์ฟเวอร์ระยะไกลนั้นโดยอัตโนมัติ และใช้โทเค็นการเข้าถึงที่จำกัดขอบเขตของเซิร์ฟเวอร์ — ไม่ จำเป็นต้องใช้แฟล็กเพิ่มเติม คุณสามารถเขียนทับเป็นรายคำสั่งได้ด้วย `--remote` / `--api-key` --- ## การแก้ไขปัญหา **Claude Code ไม่ใช้เกตเวย์** — ตรวจสอบว่า `ANTHROPIC_BASE_URL` **ไม่มี `/v1`** และรีสตาร์ต `claude` (ระบบจะอ่าน env เพียงครั้งเดียวเมื่อเริ่มทำงาน) `omniroute launch` จะจัดการเรื่องนี้ให้คุณ **ตัวเลือก `/model` ว่างเปล่า / ไม่มีโมเดลของเกตเวย์** — ต้องใช้ Claude Code v2.1.219+ และ `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` เฉพาะ ID โมเดล `claude*` / `anthropic*` เท่านั้นที่จะแสดงในตัวเลือก หากต้องการบังคับใช้โมเดลอื่น ให้ใช้ `ANTHROPIC_MODEL=` (นี่คือสิ่งที่โปรไฟล์ทำ) **`400 Ambiguous model 'claude-…'`** — Claude Code จะส่ง ID โมเดลแบบ **ไม่มีคำนำหน้า** เสมอ (เช่น `claude-opus-4-8`) ดังนั้นเมื่อเชื่อมต่อทั้งผู้ให้บริการ Claude Code (`cc/…`) และ Claude (`claude/…`) แล้ว ID ที่ไม่มีคำนำหน้าจะตรงกับสองเส้นทาง และ OmniRoute จะไม่คาดเดาให้ แก้ไขได้สองวิธี: ระบุ ID ที่มีคำนำหน้าด้วย `ANTHROPIC_MODEL=cc/claude-opus-4-8` หรือเปิดใช้ **เลือก Claude Code ก่อน สำหรับโมเดล Claude ที่ไม่มีคำนำหน้า** — ใช้สวิตช์ในหน้าผู้ให้บริการ Claude หรือ `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS=true` (ปิดไว้โดยค่าเริ่มต้น; ดู [สภาพแวดล้อม](../reference/ENVIRONMENT.md)) — ซึ่งจะกำหนดเส้นทาง ID `claude-*` ที่ไม่มีคำนำหน้าไปยัง Claude Code แทน คำนำหน้าผู้ให้บริการที่ระบุไว้อย่างชัดเจนจะมีลำดับความสำคัญสูงสุดเสมอ **ข้อผิดพลาดด้านการยืนยันตัวตน** — โปรไฟล์ไม่มีโทเค็น ให้ใช้ `omniroute launch --profile` (เพื่อแทรกโทเค็น) หรือ export `ANTHROPIC_AUTH_TOKEN` **โปรไฟล์ไม่แยกจากกัน** — แต่ละโปรไฟล์ใช้ `CLAUDE_CONFIG_DIR` ที่แตกต่างกัน; ตรวจสอบว่า `echo $CLAUDE_CONFIG_DIR` ภายในเซสชันชี้ไปที่ `~/.claude/profiles/`