นักพัฒนา

การติดตั้ง OpenCode และการกำหนดค่า OmniProxy

อยากให้ผู้ช่วยเขียนโค้ดเข้าใจโปรเจกต์ แต่ไม่อยากติดขัดกับการติดตั้งและการกำหนดค่าใช่ไหม? OpenCode สามารถเริ่มใช้งานจากเทอร์มินัล, IDE หรือเดสก์ท็อป แล้วเชื่อมต่อกับบริการโมเดลที่คุณใช้อยู่ตามขั้นตอนได้

ตรวจสอบเอกสารแล้ว
9 ต.ค. 2569
ทดสอบเวอร์ชันแล้ว
OpenCode 1.18.34

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 คือบริการที่ใช้รูปแบบคำขอเดียวกันและเรียกใช้ได้ด้วยไคลเอนต์ประเภทเดียวกัน

  1. เรียกใช้ /connect ใน OpenCode แล้วเลื่อนไปที่ Other
  2. ป้อน Provider ID ตัวอย่างต่อไปนี้ใช้ omniproxy ควรเลือก ID ที่จำง่าย เพราะต้องใช้ค่าเดียวกันในไฟล์กำหนดค่า
  3. ป้อน API Key ของ OmniProxy ขั้นตอนนี้จะบันทึกเฉพาะข้อมูลประจำตัว ส่วนที่อยู่และโมเดลยังต้องเขียนลงใน opencode.json ข้อมูลประจำตัวจะถูกเก็บไว้ที่ ~/.local/share/opencode/auth.json
  4. สร้างหรือแก้ไข 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" }
      }
    }
  }
}
  1. เรียกใช้ /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 ของทั้งสองตำแหน่งต้องตรงกัน

ตรวจสอบด้วยงานจริง

เริ่มจากเรียกใช้งานจริงหนึ่งครั้งภายในไดเรกทอรีโปรเจกต์ รูปแบบอ้างอิงโมเดลคือ 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 list Provider อย่าง 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

แหล่งทางการ · OpenCode ↗