Claude Code ไม่ได้ผูกกับเซิร์ฟเวอร์ของ Anthropic ตายตัว มันมีตัวแปรให้ชี้ไปที่ API อื่นได้ องค์กรใช้วิธีนี้ต่อกับ gateway ของตัวเอง ส่วนนักพัฒนาใช้ลองโมเดลอื่น หรือแยกงานบางส่วนออกจากโควตาแพ็ก บทความนี้ไล่ตั้งค่าทีละขั้น พร้อมวิธีเช็กว่าใช้ได้จริงและวิธีสลับกลับ
ใช้ Claude Code กับโมเดลอื่นได้ไหม ต้องตั้งค่าอะไรบ้าง
ได้ในทางเทคนิค ถ้าปลายทางรับคำขอรูปแบบ Anthropic Messages ที่ Claude Code ใช้ คุณแค่ตั้ง ANTHROPIC_BASE_URL กับ credential และชื่อโมเดล แต่ Anthropic ระบุไว้ชัดว่าไม่ซัพพอร์ตการส่ง Claude Code ไปใช้โมเดลที่ไม่ใช่ Claude ถ้าเจอปัญหาต้องคุยกับผู้ให้บริการ API นั้นเป็นหลัก

ก่อนเริ่ม ขอข้อมูล 4 อย่างจากผู้ให้บริการ API ที่จะใช้
- base URL ที่อยู่ของ API ส่วนใหญ่ไม่ต้องมี
/v1ต่อท้าย เพราะ Claude Code จะต่อ/v1/messagesให้เอง - API key หรือ token
- วิธีส่ง key ว่าเป็น Bearer token หรือ
x-api-key - ชื่อโมเดล ที่ต้องใส่ในคำขอ
จากนั้นคือตัวแปรเหล่านี้
| ตัวแปร | ทำหน้าที่อะไร |
|---|---|
ANTHROPIC_BASE_URL | บอกว่าจะส่งคำขอไปที่ไหน |
ANTHROPIC_AUTH_TOKEN | key ที่ส่งใน header Authorization: Bearer ใช้ตัวนี้ถ้าไม่แน่ใจ |
ANTHROPIC_API_KEY | key ที่ส่งใน header x-api-key ครั้งแรกจะถามให้กดยืนยันก่อนใช้ |
ANTHROPIC_MODEL | ชื่อโมเดลหลักที่จะใช้ |
ANTHROPIC_DEFAULT_HAIKU_MODEL | ชื่อโมเดลที่ใช้แทนรุ่นเล็ก และใช้กับงานเบื้องหลัง เช่น ตั้งชื่อ session |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | ขนาด context window ของโมเดลปลายทาง เป็นจำนวน token |
ANTHROPIC_DEFAULT_HAIKU_MODEL มักถูกลืม Claude Code ใช้โมเดลรุ่นเล็กทำงานเบื้องหลังบางอย่าง ถ้าปลายทางไม่มีโมเดลชื่อนั้น งานเบื้องหลังอาจ error ได้ ตั้งให้ชี้ไปที่โมเดลของปลายทางไว้ด้วยจะปลอดภัยกว่า
ส่วน CLAUDE_CODE_MAX_CONTEXT_TOKENS ใช้เมื่อชื่อโมเดลปลายทางเป็นชื่อที่ Claude Code ไม่รู้จัก เพราะมันจะเดาขนาด context เอง ถ้าเดาไม่ตรง จะย่อบทสนทนาเร็วหรือช้าเกินไป ตั้งค่านี้ให้ตรงกับที่ปลายทางรับได้ เช่น 131072 สำหรับ 128K
ถ้าสงสัยว่า API ที่บอกว่า OpenAI-compatible ใช้กับ Claude Code ได้เลยไหม คำตอบคือต้องเช็กก่อน เพราะ Claude Code พูดรูปแบบ Anthropic Messages ไม่ใช่ Chat Completions ผู้ให้บริการหลายรายมีให้ทั้งสองแบบ อ่านความต่างได้ใน OpenAI-compatible API คืออะไร
ตั้งค่า ANTHROPIC_BASE_URL บน macOS, Linux และ Windows
เริ่มจาก export ใน terminal ก่อน ซึ่งมีผลแค่ใน terminal นั้น พอทดสอบผ่านแล้วค่อยย้ายไปไว้ใน env block ของ ~/.claude/settings.json เพื่อให้มีผลทุกครั้งที่เปิด Claude Code

macOS และ Linux (bash, zsh)
export ANTHROPIC_BASE_URL="https://api.example.com"
export ANTHROPIC_AUTH_TOKEN="sk-..."
export ANTHROPIC_MODEL="your-model"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="your-model"
claudeWindows (PowerShell)
$env:ANTHROPIC_BASE_URL = "https://api.example.com"
$env:ANTHROPIC_AUTH_TOKEN = "sk-..."
$env:ANTHROPIC_MODEL = "your-model"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "your-model"
claudeค่าที่ export ไว้หายไปเมื่อปิด terminal และโปรแกรมที่เปิดจาก Dock หรือ Start menu จะไม่เห็นค่าเหล่านี้
ตั้งให้มีผลถาวรด้วย settings.json
ใส่ไว้ใน env block ของ ~/.claude/settings.json (บน Windows คือ %USERPROFILE%\.claude\settings.json) เพื่อให้ทุกโปรเจกต์ใช้ หรือใน .claude/settings.local.json ถ้าอยากให้มีผลแค่โปรเจกต์เดียว
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.example.com",
"ANTHROPIC_AUTH_TOKEN": "sk-...",
"ANTHROPIC_MODEL": "your-model",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "your-model"
}
}ถ้าตั้งค่าเดียวกันไว้ทั้งใน shell และใน settings file ค่าใน settings file จะชนะ
เก็บ API key ให้ปลอดภัย
- อย่าใส่ key ใน
.claude/settings.jsonของโปรเจกต์ เพราะไฟล์นี้ถูก commit และแชร์ให้ทุกคนที่ clone repo - ถ้าใช้
.claude/settings.local.jsonให้เพิ่มลงใน.gitignoreก่อนเสมอ ถ้าสร้างไฟล์เองหรือให้ agent เขียนให้ มันจะยังไม่ถูกกันไว้ - ถ้าเผลอ commit key ไปแล้ว ให้ขอ key ใหม่จากผู้ให้บริการทันที การลบออกจากไฟล์อย่างเดียวไม่พอ เพราะ key ยังอยู่ในประวัติ git
ใช้ใน VS Code
ส่วนขยาย Claude Code ใน VS Code อ่านค่าจาก claudeCode.environmentVariables ใน user settings ของ VS Code (เปิดด้วยคำสั่ง Preferences: Open User Settings (JSON))
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://api.example.com" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-..." }
]
}ส่วนแอป Claude Desktop ไม่อ่าน ANTHROPIC_BASE_URL หรือ settings.json และมีหน้าตั้งค่าของตัวเองแยกต่างหาก
อธิบายด้วยภาพ
ตั้งแค่ base URL กับตั้งคู่ credential ไม่เหมือนกัน
- ตั้งแค่ ANTHROPIC_BASE_URLยังใช้ล็อกอิน claude.ailimit และการคิดเงินของแพ็กเดิมยังใช้อยู่
- ตั้งคู่กับ ANTHROPIC_AUTH_TOKENใช้ key ของปลายทางไม่นับ limit ของแพ็ก คิดเงินกับเจ้าของ key
เช็กได้จากบรรทัด Auth token หรือ Login method ในคำสั่ง /status
เช็กยังไงว่า Claude Code ใช้ API ใหม่จริง
ยิงคำขอทดสอบด้วย curl ก่อน แล้วเปิด claude จาก terminal เดียวกัน พิมพ์ /status ถ้าเห็นบรรทัด Anthropic base URL เป็นที่อยู่ใหม่ และบรรทัด Auth token เป็นชื่อตัวแปรที่ตั้งไว้ แปลว่าใช้ได้แล้ว

คำสั่งทดสอบนี้ใช้ตัวแปรที่ export ไว้ จึงต้องรันใน terminal ที่ตั้งค่าแล้ว
curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d "{\"model\": \"$ANTHROPIC_MODEL\", \"max_tokens\": 1, \"messages\": [{\"role\": \"user\", \"content\": \".\"}]}"อ่านผลแบบนี้
- ได้ JSON ที่ขึ้นต้นด้วย
{"id":"msg_แปลว่าใช้ได้ - ได้ error ว่าไม่รู้จักชื่อโมเดล แปลว่า URL กับ key ถูกแล้ว เหลือแค่แก้ชื่อโมเดล
- ได้
401แปลว่า key ไม่ผ่าน หรืออยู่ผิด header ลองสลับไปใช้ANTHROPIC_API_KEY
จากนั้นเปิด claude ส่งข้อความสักข้อความ แล้วพิมพ์ /status ดูสองบรรทัด
- Anthropic base URL ต้องเป็นที่อยู่ใหม่ ถ้าไม่มีบรรทัดนี้ แปลว่าตัวแปรไม่ถึง session
- Auth token หรือ API key ต้องเป็นชื่อตัวแปรที่ตั้งไว้ ถ้าเห็นบรรทัด Login method เป็นบัญชี claude.ai แทน แปลว่ายังใช้ล็อกอินเดิมอยู่
Error ที่เจอบ่อยตอนใช้ Claude Code กับ API อื่น
ส่วนใหญ่มาจาก key อยู่ผิดตัวแปร (401) หรือปลายทางไม่รู้จักฟิลด์ใหม่ๆ ที่ Claude Code ส่งไป (400) เกือบทั้งหมดแก้ได้ด้วยการเปลี่ยนหรือเพิ่มตัวแปรตัวเดียว

| อาการ | สาเหตุ | วิธีแก้ |
|---|---|---|
401 บอกว่า token ไม่ถูกต้อง | key ผิด หรืออยู่ใน header ที่ปลายทางไม่ได้อ่าน | สลับระหว่าง ANTHROPIC_AUTH_TOKEN กับ ANTHROPIC_API_KEY และเช็กว่า key ยังไม่ถูกยกเลิก |
400 พร้อมข้อความ Extra inputs are not permitted | ปลายทางไม่รับฟิลด์ทดลองที่ Claude Code ส่งไป | ตั้ง CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
400 บอกว่า context หรือ token เกินขีด ด้วยข้อความของปลายทางเอง | ปลายทางจำกัด context ไว้เล็กกว่า และตอบ error ในรูปแบบของตัวเอง Claude Code จึงไม่รู้ว่าต้องย่อบทสนทนา | พิมพ์ /compact แล้วทำต่อ หรือตั้ง CLAUDE_CODE_AUTO_COMPACT_WINDOW ตามขีดของปลายทาง (ตั้งได้ต่ำสุด 100,000 token) |
| ขึ้นเตือนตอนเปิดว่ามี credential สองแหล่ง | ทั้งล็อกอิน claude.ai และ key ทำงานพร้อมกัน | ลบตัวแปรถ้าจะใช้ล็อกอินเดิม หรือ /logout ถ้าจะใช้ key อย่างเดียว |
| ถามให้ล็อกอินทั้งที่ curl ผ่าน | Claude Code ยังไม่มี credential ที่อ่านได้ตอนเปิด | ตั้ง ANTHROPIC_AUTH_TOKEN ใน shell หรือใน ~/.claude/settings.json |
| ต่อไม่ได้ ขึ้น ConnectionRefused หรือ ENOTFOUND | URL ผิด หรือเครือข่ายบล็อกทาง | ลองคำสั่ง curl ด้านบน แล้วเช็ก URL กับ VPN หรือ firewall |
สำหรับขนาด context ถ้ายังไม่แน่ใจว่าตัวเลข 128K หรือ 256K หมายถึงอะไรในการใช้งานจริง อ่าน context window คืออะไร ประกอบได้
จะสลับกลับไปใช้บัญชี Claude เดิมทำอย่างไร
ลบตัวแปร credential กับ ANTHROPIC_BASE_URL ออก แล้วเปิด Claude Code ใหม่ ล็อกอิน claude.ai ที่บันทึกไว้จะกลับมาทำงานเอง เพราะระหว่างที่ตั้งตัวแปรไว้ ล็อกอินเดิมแค่ถูกพักไว้ ไม่ได้หายไป

unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN ANTHROPIC_MODEL ANTHROPIC_DEFAULT_HAIKU_MODEL CLAUDE_CODE_MAX_CONTEXT_TOKENSRemove-Item Env:ANTHROPIC_BASE_URL, Env:ANTHROPIC_AUTH_TOKEN, Env:ANTHROPIC_MODEL, Env:ANTHROPIC_DEFAULT_HAIKU_MODEL, Env:CLAUDE_CODE_MAX_CONTEXT_TOKENSถ้าตั้งไว้ใน settings.json ให้ลบออกจาก env block ด้วย แล้วเช็ก /status อีกครั้งว่ากลับมาเป็น Login method ของบัญชีคุณ ใช้ /logout เฉพาะตอนที่อยากล้างล็อกอินที่บันทึกไว้จริงๆ
ระหว่างที่ใช้ credential ของปลายทาง Remote Control และ voice dictation จะใช้ไม่ได้ ถ้าต้องใช้ Remote Control ต้องลบทั้ง credential และ ANTHROPIC_BASE_URL
วิธีที่สะดวกกว่าการตั้งแล้วลบไปมา คือทำคำสั่งแยกไว้ใน ~/.zshrc หรือ ~/.bashrc ค่าจะมีผลเฉพาะ Claude Code ที่เปิดด้วยคำสั่งนี้ ส่วนคำสั่ง claude ปกติยังใช้บัญชีเดิม
claude-alt() {
ANTHROPIC_BASE_URL="https://api.example.com" \
ANTHROPIC_AUTH_TOKEN="$ALT_API_KEY" \
ANTHROPIC_MODEL="your-model" \
ANTHROPIC_DEFAULT_HAIKU_MODEL="your-model" \
claude "$@"
}แบบนี้เปิด terminal หนึ่งใช้แพ็ก Claude อีก terminal หนึ่งใช้ API อื่นได้พร้อมกัน ซึ่งช่วยเรื่องโควตาได้มาก อ่านเรื่องโควตาต่อได้ที่ Claude Code ติด limit
ตัวอย่าง: ตั้ง Claude Code ให้ใช้ buzzAI
buzzAI เป็น API สำหรับ coding agent แบบเหมาจ่ายที่ไม่คิดค่า token รับคำขอรูปแบบ Anthropic Messages จึงใช้กับ Claude Code ได้ด้วยตัวแปรชุดเดียวกับด้านบน ชื่อโมเดลคือ Qwen3.8-27B (โมเดล open-weight) ใช้กับ Codex CLI และเครื่องมือแบบ OpenAI-compatible ได้ด้วย
# เปิด shell ใหม่ ค่าเหล่านี้ใช้แทนบัญชี Anthropic เฉพาะใน shell นี้
export ANTHROPIC_BASE_URL="https://api.heybuzzai.com"
export ANTHROPIC_AUTH_TOKEN="$BUZZAI_API_KEY"
export ANTHROPIC_MODEL="Qwen3.8-27B"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="Qwen3.8-27B"
# ขนาด context ของแพ็ก: 128K = 131072 · 256K = 262144
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=131072
# แล้วเปิดใช้งานตามปกติ
claude# เปิด PowerShell ใหม่ ค่าเหล่านี้ใช้แทนบัญชี Anthropic เฉพาะในหน้าต่างนี้
$env:ANTHROPIC_BASE_URL = "https://api.heybuzzai.com"
$env:ANTHROPIC_AUTH_TOKEN = $env:BUZZAI_API_KEY
$env:ANTHROPIC_MODEL = "Qwen3.8-27B"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "Qwen3.8-27B"
# ขนาด context ของแพ็ก: 128K = 131072 · 256K = 262144
$env:CLAUDE_CODE_MAX_CONTEXT_TOKENS = "131072"
# แล้วเปิดใช้งานตามปกติ
claudeเราแนะนำให้ใช้คู่กับแพ็ก Claude ที่มีอยู่ เปิด terminal หนึ่งไว้คุยงานกับบัญชีเดิม แล้วให้อีก terminal หนึ่งที่ต่อกับ buzzAI ทำงานยาวหรืองานเบื้องหลัง สิ่งที่มีขอบเขตคือจำนวน agent ที่รันพร้อมกัน (แพ็ก Personal ของ buzzAI ได้ 1 agent แพ็กบริษัทได้ 1–8 ตัว) ขนาด context ตามแพ็ก (64K, 128K หรือ 256K) และคิวในช่วงที่คนใช้เยอะ
ตอนนี้ API ยังไม่เปิดใช้ทั่วไป เรากำลังเปิดรับรอบที่ 1 และจะส่ง API key ให้ทางอีเมลเมื่อมีผู้สมัครครบโควต้าที่กำหนด ดูวิธีตั้งค่าครบทุกเครื่องมือได้ที่ คู่มือ API และดูแพ็กได้ที่ หน้าราคา
คำถามที่พบบ่อย
ANTHROPIC_AUTH_TOKEN กับ ANTHROPIC_API_KEY ต่างกันอย่างไร?
ANTHROPIC_AUTH_TOKEN ส่ง key ไปใน header Authorization แบบ Bearer ส่วน ANTHROPIC_API_KEY ส่งไปใน header x-api-key ถ้าผู้ให้บริการไม่ระบุว่าใช้แบบไหน ให้เริ่มจาก ANTHROPIC_AUTH_TOKEN ถ้าได้ error 401 ค่อยสลับไปใช้อีกตัว
ตั้งค่าแล้ว Claude Code ยังใช้บัญชี claude.ai อยู่หรือเปล่า?
ถ้าตั้งทั้ง base URL และ credential คำขอจะใช้ credential นั้นแทนล็อกอิน claude.ai และไม่นับรวมกับ limit ของแพ็ก แต่ถ้าตั้งแค่ ANTHROPIC_BASE_URL ล็อกอินเดิมยังเป็นตัวที่ใช้งาน เช็กได้จากบรรทัด Auth token หรือ Login method ในคำสั่ง /status
จะกลับไปใช้ Claude ตามปกติต้องทำอย่างไร?
ลบตัวแปรออกด้วย unset ใน bash หรือ Remove-Item Env: ใน PowerShell หรือเปิด terminal ใหม่ถ้าตั้งไว้แค่ใน shell ถ้าตั้งไว้ใน settings.json ให้ลบออกจาก env block ด้วย แล้วเช็ก /status อีกครั้ง
ใช้กับ Claude Code ใน VS Code ได้ไหม?
ได้ แต่ต้องตั้งค่าใน claudeCode.environmentVariables ใน user settings ของ VS Code ส่วนแอป Claude Desktop ไม่อ่าน ANTHROPIC_BASE_URL และมีหน้าตั้งค่าของตัวเอง
ทำไมฟีเจอร์บางอย่างใช้ไม่ได้หลังเปลี่ยนไปใช้ API อื่น?
Remote Control และ voice dictation ใช้ไม่ได้ระหว่างที่ใช้ credential ของ gateway และเพราะ Anthropic ไม่ซัพพอร์ตโมเดลที่ไม่ใช่ Claude ผ่าน gateway ฟีเจอร์ที่พึ่งความสามารถเฉพาะของโมเดลอาจทำงานไม่เหมือนเดิม
แหล่งอ้างอิง
ข้อมูล ณ วันที่อัปเดต แพ็ก โควตา และคำสั่งของแต่ละเครื่องมือเปลี่ยนได้บ่อย ก่อนใช้งานจริงควรตรวจกับเอกสารทางการที่ลิงก์ไว้ในแหล่งอ้างอิง
