Files
tf_code/packages/web/src/content/docs/th/cli.mdx
2026-02-28 15:27:11 -06:00

606 lines
28 KiB
Plaintext

---
title: CLI
description: สัญญาณและคำสั่งของ OpenCode CLI
---
import { Tabs, TabItem } from "@astrojs/starlight/components"
OpenCode CLI จะเริ่มต้น [TUI](/docs/tui) เป็นค่าเริ่มต้นเมื่อเรียกใช้โดยไม่มีอาร์กิวเมนต์
```bash
opencode
```
นอกจากนี้ยังรับคำสั่งและแฟล็ก ซึ่งช่วยให้คุณใช้ OpenCode ผ่านโปรแกรมได้
```bash
opencode run "Explain how closures work in JavaScript"
```
---
### tui
เริ่ม TUI เพื่อใช้ OpenCode แบบโต้ตอบ
```bash
opencode [project]
```
#### แฟล็ก
| แฟล็ก | สั้น | คำอธิบาย |
| ------------ | ---- | ---------------------------------------------------------- |
| `--continue` | `-c` | ดำเนินการต่อจากเซสชันล่าสุด |
| `--session` | `-s` | ID เซสชันเพื่อดำเนินการต่อ |
| `--fork` | | แยกเซสชันเมื่อทำต่อ (ใช้กับ `--continue` หรือ `--session`) |
| `--prompt` | | พรอมต์เริ่มต้นที่จะใช้ |
| `--model` | `-m` | โมเดลที่จะใช้ในรูปแบบ provider/model |
| `--agent` | | เอเจนต์ที่จะใช้ |
| `--port` | | พอร์ตที่จะฟัง |
| `--hostname` | | ชื่อโฮสต์ที่จะฟัง |
---
## คำสั่ง
OpenCode CLI ยังมีคำสั่งย่อยอีกมากมาย
---
### agent
จัดการเอเจนต์สำหรับ OpenCode
```bash
opencode agent [command]
```
---
### attach
เชื่อมต่อกับเซิร์ฟเวอร์แบ็กเอนด์ OpenCode ที่กำลังทำงานอยู่ ซึ่งเริ่มต้นผ่านคำสั่ง `serve` หรือ `web`
```bash
opencode attach [url]
```
วิธีนี้ช่วยให้คุณใช้ TUI กับแบ็กเอนด์ OpenCode ระยะไกลได้ ตัวอย่าง:
```bash
# Start the backend server for web/mobile access
opencode web --port 4096 --hostname 0.0.0.0
# In another terminal, attach the TUI to the running backend
opencode attach http://10.20.30.40:4096
```
#### แฟล็ก
| แฟล็ก | สั้น | คำอธิบาย |
| ----------- | ---- | -------------------------------------- |
| `--dir` | | ไดเร็กทอรีการทำงานเพื่อเริ่มต้น TUI ใน |
| `--session` | `-s` | ID เซสชันเพื่อดำเนินการต่อ |
---
#### create
สร้างเอเจนต์ใหม่
```bash
opencode agent create
```
คำสั่งนี้จะแนะนำคุณตลอดกระบวนการสร้างเอเจนต์ใหม่ พร้อมพรอมต์ระบบและความสามารถของเครื่องมือ
---
#### list
แสดงรายชื่อเอเจนต์ที่พร้อมใช้งานทั้งหมด
```bash
opencode agent list
```
---
### auth
จัดการการตรวจสอบสิทธิ์และข้อมูลรับรอง
```bash
opencode auth [command]
```
---
#### login
OpenCode ได้รับการกำหนดค่าไว้ล่วงหน้าด้วยรายชื่อผู้ให้บริการทั่วไปที่ [Models.dev](https://models.dev) ดังนั้นคุณเพียงแค่ต้องใส่คีย์ API สำหรับผู้ให้บริการที่คุณต้องการใช้ ข้อมูลนี้จะถูกเก็บไว้ที่ `~/.local/share/opencode/auth.json`
```bash
opencode auth login
```
เมื่อ OpenCode เริ่มต้น ระบบจะโหลดข้อมูลรับรองจากไฟล์นี้ ดังนั้นคุณจึงไม่ต้องกังวลกับการตั้งค่าตัวแปรสภาพแวดล้อมหรือไฟล์ `.env` ในโปรเจ็กต์ของคุณ
---
#### list
แสดงรายการข้อมูลรับรองการตรวจสอบสิทธิ์ทั้งหมดที่กำหนดค่าไว้
```bash
opencode auth list
```
หรือใช้นามแฝงสั้น
```bash
opencode auth ls
```
---
#### logout
ออกจากระบบของผู้ให้บริการและลบข้อมูลรับรองออกจากไฟล์ auth
```bash
opencode auth logout
```
---
### github
จัดการเอเจนต์ GitHub สำหรับเวิร์กโฟลว์อัตโนมัติ
```bash
opencode github [command]
```
---
#### install
ติดตั้งเอเจนต์ GitHub ใน repository ของคุณ
```bash
opencode github install
```
คำสั่งนี้จะสร้างเวิร์กโฟลว์ GitHub Actions และแนะนำคุณตลอดกระบวนการตั้งค่า [เรียนรู้เพิ่มเติม](/docs/github)
---
#### run
รันเอเจนต์ GitHub ด้วยตนเองหรือใน GitHub Actions
```bash
opencode github run
```
##### แฟล็ก
| แฟล็ก | คำอธิบาย |
| --------- | -------------------------------------- |
| `--event` | เหตุการณ์ GitHub เพื่อทริกเกอร์เอเจนต์ |
| `--token` | GitHub token |
---
### mcp
จัดการเซิร์ฟเวอร์ Model Context Protocol (MCP)
```bash
opencode mcp [command]
```
---
#### add
เพิ่มเซิร์ฟเวอร์ MCP ลงในการกำหนดค่าของคุณ
```bash
opencode mcp add
```
คำสั่งนี้จะแนะนำคุณผ่านวิซาร์ดเพื่อกำหนดค่าเซิร์ฟเวอร์ MCP ใหม่
---
#### list
แสดงรายชื่อเซิร์ฟเวอร์ MCP ทั้งหมดที่กำหนดค่าไว้และสถานะ
```bash
opencode mcp list
```
หรือใช้นามแฝงสั้น
```bash
opencode mcp ls
```
---
#### auth
ยืนยันตัวตนกับเซิร์ฟเวอร์ MCP ที่ต้องการ OAuth
```bash
opencode mcp auth [name]
```
หากไม่ระบุชื่อเซิร์ฟเวอร์ คุณจะได้รับแจ้งให้เลือกจากเซิร์ฟเวอร์ที่รองรับ OAuth ที่พร้อมใช้งาน
คุณยังสามารถแสดงรายการสถานะการตรวจสอบสิทธิ์ OAuth ได้:
```bash
opencode mcp auth list
```
หรือใช้นามแฝงสั้น
```bash
opencode mcp auth ls
```
---
#### logout
ลบข้อมูลรับรอง OAuth สำหรับเซิร์ฟเวอร์ MCP
```bash
opencode mcp logout [name]
```
---
#### debug
ดีบักการเชื่อมต่อเซิร์ฟเวอร์ MCP
```bash
opencode mcp debug <name>
```
---
### models
แสดงรายการโมเดลที่พร้อมใช้งานทั้งหมดจากผู้ให้บริการที่กำหนดค่าไว้
```bash
opencode models [provider]
```
คำสั่งนี้จะแสดง ID โมเดลทั้งหมดในรูปแบบ `provider/model`
คุณสามารถใช้ชื่อโมเดลเหล่านี้ในการกำหนดค่า [config](/docs/config/) ของคุณ
คุณยังสามารถส่งผ่านรหัสผู้ให้บริการเพื่อกรองโมเดลตามผู้ให้บริการรายนั้นได้
```bash
opencode models anthropic
```
#### แฟล็ก
| แฟล็ก | คำอธิบาย |
| ----------- | ------------------------------------------------------ |
| `--refresh` | รีเฟรชแคชโมเดลจาก models.dev |
| `--verbose` | แสดงรายละเอียดโมเดลเพิ่มเติม (รวมข้อมูลเมตาเช่นต้นทุน) |
| `--json` | แสดงผลลัพธ์เป็น JSON |
ใช้แฟล็ก `--refresh` เพื่ออัปเดตรายการโมเดลที่แคชไว้ มีประโยชน์เมื่อมีการเพิ่มโมเดลใหม่ให้กับผู้ให้บริการและคุณต้องการเห็นใน OpenCode
```bash
opencode models --refresh
```
---
### run
รัน OpenCode โดยไม่ต้องใช้ TUI โดยส่งพรอมต์โดยตรง
```bash
opencode run [message..]
```
มีประโยชน์สำหรับการทำงานอัตโนมัติหรือเมื่อต้องการคำตอบอย่างรวดเร็วโดยไม่ต้องเปิด TUI ตัวอย่าง:
```bash "opencode run"
opencode run Explain the use of context in Go
```
คุณยังสามารถแนบไปกับเซิร์ฟเวอร์ `opencode serve` ที่ทำงานอยู่ หรือใช้เซิร์ฟเวอร์ MCP แบบ headless:
```bash
# Start a headless server in one terminal
opencode serve
# In another terminal, run commands that attach to it
opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
```
#### แฟล็ก
| แฟล็ก | สั้น | คำอธิบาย |
| ------------ | ---- | ---------------------------------------------------------------------- |
| `--command` | | คำสั่งที่จะรัน (ใช้ส่วนที่เหลือของ args เป็นอาร์กิวเมนต์) |
| `--continue` | `-c` | ดำเนินการต่อจากเซสชันล่าสุด |
| `--session` | `-s` | ID เซสชันเพื่อดำเนินการต่อ |
| `--fork` | | แยกเซสชันเมื่อทำต่อ (ใช้กับ `--continue` หรือ `--session`) |
| `--share` | | สร้างลิงก์แชร์สำหรับเซสชัน |
| `--model` | `-m` | โมเดลที่จะใช้ในรูปแบบ provider/model |
| `--agent` | | เอเจนต์ที่จะใช้ |
| `--file` | `-f` | แนบไฟล์ไปกับข้อความ |
| `--format` | | รูปแบบเอาต์พุต: text (จัดรูปแบบ) หรือ json (JSON ดิบ) |
| `--title` | | ชื่อสำหรับเซสชัน (หากไม่ได้ระบุ จะสร้างจากพรอมต์) |
| `--attach` | | แนบไปกับเซิร์ฟเวอร์ opencode ที่ทำงานอยู่ (เช่น http://localhost:4096) |
| `--port` | | พอร์ตสำหรับเซิร์ฟเวอร์ภายในเครื่อง (หากไม่ได้ระบุ จะใช้พอร์ตสุ่ม) |
---
### serve
เริ่มต้นเซิร์ฟเวอร์ OpenCode headless ที่ให้บริการ API HTTP ดู [เอกสารเซิร์ฟเวอร์](/docs/server) สำหรับรายละเอียด API เต็มรูปแบบ
```bash
opencode serve
```
คำสั่งนี้จะเริ่มต้นเซิร์ฟเวอร์ HTTP ให้ API เข้าถึงฟังก์ชันการทำงานของ OpenCode ได้โดยไม่ต้องมี TUI นอกจากนี้ยังรองรับการตรวจสอบสิทธิ์พื้นฐาน HTTP (ชื่อผู้ใช้เริ่มต้นคือ `opencode` และรหัสผ่านระบุโดย `OPENCODE_SERVER_PASSWORD`)
#### แฟล็ก
| แฟล็ก | คำอธิบาย |
| ------------ | -------------------------------------- |
| `--port` | พอร์ตที่จะฟัง |
| `--hostname` | ชื่อโฮสต์ที่จะฟัง |
| `--mdns` | เปิดใช้งานการค้นหา mDNS |
| `--cors` | ต้นกำเนิดเพิ่มเติมที่อนุญาตสำหรับ CORS |
---
### session
จัดการเซสชัน OpenCode
```bash
opencode session [command]
```
---
#### list
แสดงรายการเซสชัน OpenCode ทั้งหมด
```bash
opencode session list
```
##### แฟล็ก
| แฟล็ก | สั้น | คำอธิบาย |
| ------------- | ---- | ----------------------------- |
| `--max-count` | `-n` | จำกัดการแสดงผล N รายการล่าสุด |
| `--format` | | รูปแบบ table หรือ json |
---
### stats
แสดงสถิติการใช้งานและค่าใช้จ่ายสำหรับ OpenCode ของคุณ
```bash
opencode stats
```
#### แฟล็ก
| แฟล็ก | คำอธิบาย |
| ----------- | ---------------------------------------------------- |
| `--days` | แสดงสถิติของ N วันที่ผ่านมา (ค่าเริ่มต้น: ตลอดเวลา) |
| `--tools` | แสดงสถิติการใช้เครื่องมือ |
| `--models` | แสดงรายละเอียดการใช้งานโมเดล (ซ่อนไว้ตามค่าเริ่มต้น) |
| `--project` | กรองตามโครงการ (ค่าเริ่มต้น: โครงการปัจจุบัน) |
---
### export
ส่งออกประวัติเซสชันเป็น JSON
```bash
opencode export [sessionID]
```
หากไม่ระบุรหัสเซสชัน คุณจะได้รับแจ้งให้เลือกจากรายการล่าสุด
---
### import
นำเข้าเซสชันจากไฟล์ JSON หรือ URL ที่แชร์ของ OpenCode
```bash
opencode import <file>
```
คุณสามารถนำเข้าไฟล์ในเครื่องหรือ URL ที่แชร์
```bash
opencode import session.json
opencode import https://opncd.ai/s/abc123
```
---
### web
เริ่ม OpenCode ในโหมดเซิร์ฟเวอร์พร้อมเว็บอินเตอร์เฟส
```bash
opencode web
```
คำสั่งนี้จะเริ่มต้นเซิร์ฟเวอร์ HTTP และเปิดเว็บเบราว์เซอร์เพื่อเข้าถึง OpenCode ผ่านทางเว็บอินเตอร์เฟส รองรับการตรวจสอบสิทธิ์พื้นฐาน HTTP (ชื่อผู้ใช้เริ่มต้นคือ `opencode` และรหัสผ่านระบุโดย `OPENCODE_SERVER_PASSWORD`)
#### แฟล็ก
| แฟล็ก | คำอธิบาย |
| ------------ | -------------------------------------- |
| `--port` | พอร์ตที่จะฟัง |
| `--hostname` | ชื่อโฮสต์ที่จะฟัง |
| `--mdns` | เปิดใช้งานการค้นหา mDNS |
| `--cors` | ต้นกำเนิดเพิ่มเติมที่อนุญาตสำหรับ CORS |
---
### acp
เริ่มต้นเซิร์ฟเวอร์ ACP (Agent Client Protocol)
```bash
opencode acp
```
คำสั่งนี้เริ่มต้นเซิร์ฟเวอร์ ACP ที่สื่อสารผ่าน stdin/stdout ด้วย nd-JSON
#### แฟล็ก
| แฟล็ก | คำอธิบาย |
| ------------ | ------------------ |
| `--cwd` | ไดเร็กทอรีการทำงาน |
| `--port` | พอร์ตที่จะฟัง |
| `--hostname` | ชื่อโฮสต์ที่จะฟัง |
---
### uninstall
ถอนการติดตั้ง OpenCode และลบข้อมูลการกำหนดค่าทั้งหมด
```bash
opencode uninstall
```
#### แฟล็ก
| แฟล็ก | สั้น | คำอธิบาย |
| --------------- | ---- | ----------------------------------- |
| `--keep-config` | `-c` | เก็บไฟล์การกำหนดค่าไว้ |
| `--keep-data` | `-d` | เก็บไฟล์ข้อมูล (เซสชันและสแน็ปช็อต) |
| `--dry-run` | | แสดงสิ่งที่จะลบออกโดยไม่ต้องทำจริง |
| `--force` | `-f` | บังคับลบโดยไม่มีการแจ้งเตือน |
---
### upgrade
อัปเกรด OpenCode เป็นเวอร์ชันล่าสุดหรือเวอร์ชันที่ระบุ
```bash
opencode upgrade [target]
```
อัปเกรดเป็นเวอร์ชันล่าสุด
```bash
opencode upgrade
```
อัปเกรดเป็นเวอร์ชันที่ระบุ
```bash
opencode upgrade v0.1.48
```
#### แฟล็ก
| แฟล็ก | สั้น | คำอธิบาย |
| ---------- | ---- | ----------------------------------------------- |
| `--method` | `-m` | วิธีการติดตั้งที่ใช้ curl, npm, pnpm, bun, brew |
---
## แฟล็กระดับโลก
OpenCode CLI ยอมรับแฟล็กสากลต่อไปนี้สำหรับทุกคำสั่ง
| แฟล็ก | สั้น | คำอธิบาย |
| -------------- | ---- | ----------------------------------------- |
| `--help` | `-h` | แสดงความช่วยเหลือ |
| `--version` | `-v` | พิมพ์เวอร์ชัน |
| `--print-logs` | | พิมพ์บันทึกไปยัง stderr |
| `--log-level` | | ระดับการบันทึก (DEBUG, INFO, WARN, ERROR) |
---
## ตัวแปรสภาพแวดล้อม
OpenCode สามารถกำหนดค่าโดยใช้ตัวแปรสภาพแวดล้อม
| ตัวแปร | ชนิด | คำอธิบาย |
| ------------------------------------- | ------- | ---------------------------------------------------------------- |
| `OPENCODE_AUTO_SHARE` | Boolean | แชร์เซสชันอัตโนมัติเมื่อสร้าง |
| `OPENCODE_GIT_BASH_PATH` | String | เส้นทางไปยัง Git Bash บน Windows |
| `OPENCODE_CONFIG` | String | เส้นทางไปยังไฟล์การกำหนดค่า |
| `OPENCODE_TUI_CONFIG` | String | เส้นทางไปยังไฟล์การกำหนดค่า TUI |
| `OPENCODE_CONFIG_DIR` | String | เส้นทางไปยังไดเร็กทอรีการกำหนดค่า |
| `OPENCODE_CONFIG_CONTENT` | String | เนื้อหาการกำหนดค่าแบบ inline JSON |
| `OPENCODE_DISABLE_AUTOUPDATE` | Boolean | ปิดใช้งานการอัปเดตอัตโนมัติ |
| `OPENCODE_DISABLE_PRUNE` | Boolean | ปิดใช้งานการลบข้อมูลเซสชันเก่า |
| `OPENCODE_DISABLE_TERMINAL_TITLE` | Boolean | ปิดใช้งานการตั้งชื่อหน้าต่าง terminal |
| `OPENCODE_PERMISSION` | String | การกำหนดค่าสิทธิ์แบบ inline JSON |
| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | Boolean | ปิดใช้งานปลั๊กอินเริ่มต้น |
| `OPENCODE_DISABLE_LSP_DOWNLOAD` | Boolean | ปิดใช้งานการดาวน์โหลด LSP อัตโนมัติ |
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | Boolean | เปิดใช้งานโมเดลทดลอง |
| `OPENCODE_DISABLE_AUTOCOMPACT` | Boolean | ปิดใช้งานการบีบอัดบริบทอัตโนมัติ |
| `OPENCODE_DISABLE_CLAUDE_CODE` | Boolean | ปิดใช้งานการนำเข้าจาก `.claude` (prompt + skills) |
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | Boolean | ปิดใช้งานการนำเข้า `~/.claude/CLAUDE.md` |
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | Boolean | ปิดใช้งานการนำเข้า `.claude/skills` |
| `OPENCODE_DISABLE_MODELS_FETCH` | Boolean | ปิดใช้งานการดึงรายการโมเดลจากระยะไกล |
| `OPENCODE_FAKE_VCS` | String | เปิดใช้งาน VCS จำลองสำหรับการทดสอบ |
| `OPENCODE_DISABLE_FILETIME_CHECK` | Boolean | ปิดใช้งานการตรวจสอบเวลาแก้ไขไฟล์ |
| `OPENCODE_CLIENT` | String | ตัวระบุไคลเอนต์ (ค่าเริ่มต้นคือ `cli`) |
| `OPENCODE_ENABLE_EXA` | Boolean | เปิดใช้งานการใช้ Exa แทน ls หากมี |
| `OPENCODE_SERVER_PASSWORD` | String | รหัสผ่านสำหรับการตรวจสอบสิทธิ์พื้นฐาน `serve`/`web` |
| `OPENCODE_SERVER_USERNAME` | String | ชื่อผู้ใช้สำหรับการตรวจสอบสิทธิ์พื้นฐาน (ค่าเริ่มต้น `opencode`) |
| `OPENCODE_MODELS_URL` | String | URL ที่กำหนดเองสำหรับการดึงรายการโมเดล |
---
### ขั้นทดลอง
ตัวแปรสภาพแวดล้อมเหล่านี้เปิดใช้งานฟีเจอร์ทดลองที่อาจมีการเปลี่ยนแปลงหรือถูกลบออก
| ตัวแปร | ชนิด | คำอธิบาย |
| ----------------------------------------------- | ------- | ---------------------------------------------- |
| `OPENCODE_EXPERIMENTAL` | Boolean | เปิดใช้งานฟีเจอร์ทดลองทั้งหมด |
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | Boolean | การค้นหาไอคอนทดลอง |
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | Boolean | ปิดใช้งานการคัดลอกเมื่อเลือกใน TUI |
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | Number | การหมดเวลาเริ่มต้นสำหรับคำสั่ง bash ในหน่วย ms |
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | Number | ขีดจำกัดสูงสุดสำหรับโทเค็นเอาต์พุต LLM |
| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | Boolean | เปิดใช้งานตัวเฝ้าดูไฟล์สำหรับไดเร็กทอรีทั้งหมด |
| `OPENCODE_EXPERIMENTAL_OXFMT` | Boolean | ใช้ oxfmt เป็นตัวจัดรูปแบบ |
| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | Boolean | เปิดใช้งานเครื่องมือ LSP ทดลอง |
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | Boolean | ปิดใช้งานตัวเฝ้าดูไฟล์ |
| `OPENCODE_EXPERIMENTAL_EXA` | Boolean | ฟีเจอร์ Exa ทดลอง |
| `OPENCODE_EXPERIMENTAL_LSP_TY` | Boolean | การตรวจสอบประเภท LSP แบบทดลอง |
| `OPENCODE_EXPERIMENTAL_MARKDOWN` | Boolean | ใช้ Markdown renderer แบบทดลอง |
| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | Boolean | เปิดใช้งาน Plan mode |