การติดตั้ง OpenCode และการกำหนดค่า OmniProxy
อยากให้ผู้ช่วยเขียนโค้ดเข้าใจโปรเจกต์ แต่ไม่อยากติดขัดกับการติดตั้งและการกำหนดค่าใช่ไหม? OpenCode สามารถเริ่มใช้งานจากเทอร์มินัล, IDE หรือเดสก์ท็อป แล้วเชื่อมต่อกับบริการโมเดลที่คุณใช้อยู่ตามขั้นตอนได้
OpenCode เป็นผู้ช่วยเขียนโค้ดแบบโอเพนซอร์สที่ใช้เขียนโค้ดผ่านเทอร์มินัล, IDE หรือเดสก์ท็อปได้ และจะไม่จัดเก็บโค้ดหรือบริบทของคุณ จึงเหมาะสำหรับโปรเจกต์ที่ให้ความสำคัญกับความเป็นส่วนตัว build ใช้สำหรับแก้ไขโปรเจกต์ ส่วน plan เป็นแบบอ่านอย่างเดียวโดยค่าเริ่มต้น เหมาะสำหรับทำความเข้าใจโค้ดที่ไม่คุ้นเคยและวางแนวทางแก้ไขก่อน คุณสามารถเลือกบริการโมเดลได้ตามต้องการ
การเตรียมตัวก่อนติดตั้ง
สคริปต์ติดตั้งเป็นวิธีที่สะดวกที่สุด คุณต้องมีเทอร์มินัลสมัยใหม่ ซึ่งหมายถึงโปรแกรมเทอร์มินัลที่สามารถเรียกใช้คำสั่งและจัดการไฟล์ในโปรเจกต์ได้ เช่น WezTerm, Alacritty, Ghostty หรือ Kitty บน Windows แนะนำให้ใช้ WSL ก่อน โดยเป็นเครื่องมือสำหรับเรียกใช้สภาพแวดล้อม Linux ภายใน Windows ซึ่งให้ประสิทธิภาพและฟังก์ชันที่ครบถ้วนกว่า
ง่ายที่สุด
สคริปต์ติดตั้ง
- curl opencode.ai/install
- ใช้ได้โดยตรงบน macOS Linux
- แนะนำ WSL สำหรับ Windows
macOS Linux
Homebrew tap
- anomalyco/tap/opencode
- อัปเดตบ่อยกว่า formula
- มีแพ็กเกจสำหรับ Arch ด้วย
Windows แบบ Native
ตัวจัดการแพ็กเกจ
- choco หรือ scoop
- หรือติดตั้งแบบโกลบอลด้วย npm
- หรือดาวน์โหลดจาก Releases
นอกจากนี้ ให้เตรียม Model ID จากรายการโมเดลปัจจุบันไว้ด้วย Model ID คือชื่อที่บริการใช้ระบุโมเดลแต่ละรายการอย่างถูกต้อง
ติดตั้งและเปิดใช้งานครั้งแรก
คำสั่งติดตั้งที่ใช้ง่ายที่สุดคือ:
curl -fsSL https://opencode.ai/install | bash
คุณยังสามารถติดตั้งด้วยวิธีต่อไปนี้:
- Node.js:
npm install -g opencode-aiส่วน Bun, pnpm และ Yarn ก็มีคำสั่งติดตั้งแบบ global ที่สอดคล้องกัน ดูได้จากหน้าแนะนำที่ส่วนท้ายของบทความ - Homebrew สำหรับ macOS และ Linux:
brew install anomalyco/tap/opencodeให้ใช้ tap นี้ เนื่องจากอัปเดตบ่อยกว่าbrew install opencodeที่ดูแลโดยทีม Homebrew - Arch Linux: เวอร์ชันเสถียรใช้
sudo pacman -S opencodeส่วนเวอร์ชันที่ใหม่กว่าสามารถใช้opencode-binจาก AUR - Windows: ใช้
choco install opencodeหรือscoop install opencodeและยังสามารถใช้npm install -g opencode-aiได้ด้วย นอกจากนี้ยังดาวน์โหลดไฟล์ไบนารีจาก Releases ได้ การรองรับการติดตั้งด้วย Bun บน Windows ยังอยู่ระหว่างดำเนินการ
เข้าไปยังไดเรกทอรีโปรเจกต์ของคุณ แล้วเปิด OpenCode:
cd /path/to/project
opencode
ในการใช้งานครั้งแรก คุณสามารถเรียกใช้ /init คำสั่งนี้จะวิเคราะห์โปรเจกต์และสร้าง AGENTS.md ไว้ในไดเรกทอรีรากของโปรเจกต์ ไฟล์นี้สามารถ commit เข้า Git เพื่อเก็บคำอธิบายดังกล่าวไว้กับโปรเจกต์ได้
รับค่าการเชื่อมต่อจาก OmniProxy
baseURL: https://your-omniproxy-origin.example/v1
API Key: <YOUR_OMNIPROXY_API_KEY>
Model ID: คัดลอกจากรายการโมเดลปัจจุบันของ OmniProxy
baseURL คือที่อยู่บริการ API Key คือข้อมูลประจำตัวสำหรับเข้าถึง และ Model ID คือชื่อเต็มของโมเดล
เมื่อใช้ /v1/chat/completions ให้ใช้แพ็กเกจ npm เป็น @ai-sdk/openai-compatible โดย Chat Completions ในที่นี้คืออินเทอร์เฟซสำหรับส่งคำขอแชต เปลี่ยนไปใช้ @ai-sdk/openai เฉพาะเมื่อโมเดลทำงานผ่าน /v1/responses เท่านั้น หากใช้ OmniProxy ผ่านเส้นทาง Chat Completions ให้คงแพ็กเกจที่เข้ากันได้ไว้
คัดลอก Model ID ทั้งหมดจากรายการปัจจุบันของ OmniProxy โดยคงเครื่องหมายทับไว้ด้วย ID สองรายการที่ใช้ตรวจสอบเมื่อ 2026-10-09 คือ claude-sonnet-5-5 และ gpt-6-luna โดย gpt-6-luna รองรับ Chat Completions ส่วนการเรียกใช้ฟังก์ชันผ่าน Chat Completions จะรองรับเฉพาะเมื่อ reasoning_effort เป็น none อย่าคัดลอก ID ที่ไม่มีอยู่ในรายการมาใช้
กรอกการกำหนดค่าเครื่องมือ
Provider สามารถเข้าใจได้ว่าเป็นชุดการกำหนดค่าที่ OpenCode ใช้เชื่อมต่อกับบริการโมเดล เอกสาร Provider จัดให้บริการที่เข้ากันได้กับ OpenAI แต่ไม่มีอยู่ในรายการ /connect เป็น Provider แบบกำหนดเอง บริการที่เข้ากันได้กับ OpenAI คือบริการที่ใช้รูปแบบคำขอเดียวกันและเรียกใช้ได้ด้วยไคลเอนต์ประเภทเดียวกัน
- เรียกใช้
/connectใน OpenCode แล้วเลื่อนไปที่ Other - ป้อน Provider ID ตัวอย่างต่อไปนี้ใช้
omniproxyควรเลือก ID ที่จำง่าย เพราะต้องใช้ค่าเดียวกันในไฟล์กำหนดค่า - ป้อน API Key ของ OmniProxy ขั้นตอนนี้จะบันทึกเฉพาะข้อมูลประจำตัว ส่วนที่อยู่และโมเดลยังต้องเขียนลงใน
opencode.jsonข้อมูลประจำตัวจะถูกเก็บไว้ที่~/.local/share/opencode/auth.json - สร้างหรือแก้ไข
opencode.jsonในไดเรกทอรีโปรเจกต์:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"omniproxy": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniProxy",
"options": {
"baseURL": "https://your-omniproxy-origin.example/v1"
},
"models": {
"claude-sonnet-5-5": { "name": "Claude Sonnet 5.5" },
"gpt-6-luna": { "name": "GPT-6 Luna" }
}
}
}
}
- เรียกใช้
/modelsแล้ว Provider แบบกำหนดเองและโมเดลจะปรากฏในรายการ
ID ใน /connect ต้องตรงกับคีย์ใน opencode.json อย่าเขียนคีย์จริงลงในไฟล์นี้ หากไม่ใช้ /connect คุณสามารถใช้รูปแบบตัวแปรสภาพแวดล้อมใน options.apiKey เช่น {env:ชื่อตัวแปร} ได้ เมื่อทดสอบเมื่อ 2026-10-09 ด้วย OpenCode 1.18.34 การเขียนคีย์ลงใน options.apiKey ของโปรเจกต์โดยตรงโดยไม่ผ่าน /connect ก็สามารถเชื่อมต่อได้เช่นกัน หากเกตเวย์ไม่ตรวจสอบคีย์ ค่านี้สามารถเป็นชุดอักขระตัวแทนที่ใช้เฉพาะในเครื่องได้ คีย์ภายใต้ models ต้องใช้ ID แบบเต็มจากรายการ
คีย์
/connect
- เลือก Other ที่อยู่ล่างสุด
- กำหนด Provider ID เอง
- บันทึกอยู่ใน auth.json
โปรเจกต์
opencode.json
- คีย์ provider ต้องใช้ชื่อเดียวกัน
- ใช้แพ็กเกจที่เข้ากันได้สำหรับ npm
- baseURL ลงท้ายด้วย /v1
เลือกใช้
/models
- โมเดลปรากฏในรายการ
- เลือกหนึ่งโมเดลแล้วจึงถาม
- ใช้ ID ตามรายการในเกตเวย์
ตรวจสอบด้วยงานจริง
เริ่มจากเรียกใช้งานจริงหนึ่งครั้งภายในไดเรกทอรีโปรเจกต์ รูปแบบอ้างอิงโมเดลคือ Provider ID/Model ID และต้องคงเครื่องหมายทับภายใน Model ID ไว้:
opencode run --model omniproxy/claude-sonnet-5-5 --auto "อธิบายว่าไฟล์ที่ฉันระบุทำหน้าที่อะไร โดยอย่าแก้ไขไฟล์"
--auto จะอนุญาตให้การทำงานครั้งนี้ใช้เครื่องมือต่าง ๆ เช่น การอ่านไฟล์ได้ ในการทดสอบเมื่อ 2026-10-09 ด้วย OpenCode 1.18.34 ระบบสามารถอ่านเนื้อหาของไฟล์ที่ระบุได้ ครั้งแรกใช้เวลาประมาณสองนาที
สำหรับการใช้งานแบบโต้ตอบ ให้เรียกใช้ opencode แล้วเลือกโมเดลด้วย /models คุณสามารถใช้ @ เพื่อค้นหาไฟล์ได้ ใช้ opencode auth list เพื่อตรวจสอบข้อมูลประจำตัวที่บันทึกผ่าน /connect จากนั้นตรวจสอบแหล่งที่มาและ Model ID ในบันทึกการเรียกใช้ของ OmniProxy
เริ่มต้น
เปิด opencode ได้
- cd ไปยังโปรเจกต์ก่อน
- มองเห็น ID ใน auth list
- ไฟล์การตั้งค่าอยู่ในโปรเจกต์
งาน
มันอ่านโค้ดแล้ว
- ถามเกี่ยวกับไฟล์ที่เจาะจง
- ดูคำอธิบายของมัน
- หากไม่ถูกต้องให้ใช้ /undo
บันทึก
มองเห็นได้ในเกตเวย์
- แหล่งที่มาคือ OpenCode
- ID โมเดลตรงกัน
- อย่าคอมมิตคีย์
ข้อผิดพลาดที่พบบ่อย
- ไม่มี OmniProxy ใน
/models: ตรวจสอบว่า ID ใน/connectตรงกับคีย์ในopencode.jsonหรือไม่,npmเป็น@ai-sdk/openai-compatibleหรือไม่ และbaseURLลงท้ายด้วย/v1หรือไม่ - ข้อมูลประจำตัวหายไป: เรียกใช้
opencode auth listProvider อย่าง Bedrock ที่ใช้ตัวแปรสภาพแวดล้อมจะไม่ปรากฏที่นี่ แต่ Provider แบบกำหนดเองที่ใช้/connectควรปรากฏให้เห็น - ฟังก์ชันบน Windows ไม่ครบถ้วน: เปลี่ยนไปใช้สคริปต์ติดตั้งภายใน WSL
- Model ID ใช้ไม่ได้: คัดลอกใหม่จากรายการปัจจุบันของ OmniProxy แล้วแก้ไขคีย์ภายใต้
models - คำขอถูกส่งไปยังอินเทอร์เฟซผิด: สำหรับ Chat Completions ให้คง
@ai-sdk/openai-compatibleไว้ อย่าเปลี่ยนแพ็กเกจเพื่อใช้ Responses API เว้นแต่ว่าโมเดลนั้นบน OmniProxy จะทำงานผ่าน/v1/responsesจริง ๆ
เอกสารอ้างอิงอย่างเป็นทางการ
ดูการติดตั้งได้ที่ ข้อมูลเบื้องต้นเกี่ยวกับ OpenCode และดู Provider แบบกำหนดเองได้ที่ Providers ส่วน Model ID ที่ใช้เป็นตัวอย่างดูได้ที่ ภาพรวมโมเดล Claude และ GPT-6 Luna
แทนที่ตัววางตำแหน่งทั้งหมดด้วยค่าจากการกำหนดค่า OmniProxy ของคุณ ห้ามเผยแพร่คีย์จริง
ผลลัพธ์ที่บันทึกหรือ HTTP 200 เพียงอย่างเดียวไม่พิสูจน์ความเข้ากันได้เต็มรูปแบบของเอเจนต์ ตรวจสอบแหล่งที่มาและโมเดลในบันทึกการเรียกใช้ของ OmniProxy