OpenCode 是一款開源 AI 編碼代理工具,由 SST 團隊開發維護。這款工具提供終端機介面(TUI)、桌面應用程式及 IDE 擴充套件三種使用方式,讓開發者能直接在命令列中獲得 AI 輔助編碼能力。本文將系統性整理 OpenCode 的所有指令、快捷鍵與進階設定,幫助開發者快速掌握這款工具的完整功能。
OpenCode 核心概念
OpenCode 與 Claude Code 或 Cursor 等 AI 編碼工具的定位略有不同。它專注於終端機環境,適合偏好命令列操作的開發者。SST 團隊將其設計為可高度客製化的工具,支援多種 LLM 提供者,包含 Anthropic Claude、OpenAI、Gemini 等主流模型。
OpenCode 的工作流程圍繞「對話式開發」展開:開發者在終端機中輸入自然語言指令,AI 代理會分析專案結構、執行檔案操作、運行 Shell 命令,並在需要時請求使用者確認。這種設計在保持 AI 自主性的同時,也確保開發者對關鍵操作擁有最終決定權。
安裝與初始設定
OpenCode 支援多種安裝方式。最快速的方法是透過官方安裝腳本:
curl -fsSL https://opencode.ai/install | bash
其他安裝選項包含 npm(npm install -g opencode-ai)、Homebrew(brew install anomalyco/tap/opencode)以及 Chocolatey(Windows 使用者)。安裝完成後,需設定 LLM 提供者的 API 金鑰。在 TUI 中執行 /connect 指令,選擇要使用的提供者並輸入對應的 API 金鑰即可完成設定。
進入專案目錄後執行 opencode,接著運行 /init 指令。這會讓 OpenCode 分析專案結構,並生成 AGENTS.md 檔案,記錄專案的程式碼模式與架構特徵,協助 AI 更精準地理解專案脈絡。
TUI 斜線指令完整列表
OpenCode 的 TUI 環境提供一系列斜線指令,用於執行各種操作。以下是完整的指令清單:
連線與設定指令
| 指令 | 說明 | 快捷鍵 |
|---|---|---|
/connect |
新增 LLM 提供者並設定 API 金鑰 | - |
/models |
列出所有可用模型 | ctrl+x m |
/themes |
切換介面主題 | ctrl+x t |
/help |
顯示說明對話框 | ctrl+x h |
對話管理指令
| 指令 | 說明 | 快捷鍵 |
|---|---|---|
/new 或 /clear |
開始新對話 | ctrl+x n |
/sessions 或 /resume |
列出並切換對話 | ctrl+x l |
/compact 或 /summarize |
壓縮當前對話內容 | ctrl+x c |
/export |
匯出對話為 Markdown | ctrl+x x |
/share |
分享對話連結 | ctrl+x s |
/unshare |
取消分享對話 | - |
編輯與復原指令
| 指令 | 說明 | 快捷鍵 |
|---|---|---|
/undo |
復原上一則訊息與檔案變更 | ctrl+x u |
/redo |
重做已復原的變更 | ctrl+x r |
/editor |
開啟外部編輯器撰寫訊息 | ctrl+x e |
其他指令
| 指令 | 說明 | 快捷鍵 |
|---|---|---|
/init |
建立或更新 AGENTS.md 檔案 | ctrl+x i |
/details |
切換工具執行細節顯示 | ctrl+x d |
/exit 或 /quit 或 /q |
離開 OpenCode | ctrl+x q |
訊息語法技巧
OpenCode 支援三種特殊語法,讓開發者能更精確地傳達需求:
檔案參照:使用 @ 符號參照專案檔案。輸入 @ 後會觸發模糊搜尋,協助快速定位檔案。範例:
分析 @src/components/Button.tsx 的效能問題
Shell 命令執行:以 ! 開頭直接執行 Shell 命令,輸出會自動加入對話脈絡。範例:
!npm test
自訂指令:以 / 開頭執行預設或自訂指令,類似 IDE 中的 Slash Commands。
自訂指令系統
OpenCode 允許開發者建立自訂指令,將重複性任務自動化。自訂指令可透過 JSON 設定檔或 Markdown 檔案定義。
Markdown 方式:在 .opencode/command/ 目錄下建立 Markdown 檔案。檔名即為指令名稱。
---
description: 執行測試並顯示覆蓋率
agent: build
model: anthropic/claude-sonnet-4-20250514
---
執行完整測試套件並生成覆蓋率報告。
針對失敗的測試進行分析並建議修正方案。
儲存為 test.md 後,即可透過 /test 執行。
JSON 方式:在 opencode.json 設定檔中定義:
{
"$schema": "https://opencode.ai/config.json",
"command": {
"test": {
"template": "執行測試並分析結果",
"description": "執行測試套件",
"agent": "build"
}
}
}
自訂指令支援參數傳遞。使用 $ARGUMENTS 取得所有參數,或使用 $1、$2 取得位置參數。此外,可透過 \(!`command`\) 語法將 Shell 命令輸出嵌入提示詞中。
權限系統:實現「YOLO 模式」的關鍵
許多開發者關心的「YOLO 模式」(自動批准所有操作)可透過 OpenCode 的權限系統實現。這與 Claude Code 的 dangerously-skip-permissions 功能類似。
OpenCode 的權限系統提供三種行為模式:
allow:自動執行,無需確認ask:執行前詢問使用者(預設)deny:完全禁止執行
全域 YOLO 模式設定:
{
"$schema": "https://opencode.ai/config.json",
"permission": "allow"
}
選擇性 YOLO 模式(建議方式):
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"*": "ask",
"bash": {
"*": "ask",
"git *": "allow",
"npm *": "allow",
"rm *": "deny"
},
"edit": {
"*": "allow",
"*.env": "deny"
}
}
}
這種設定允許 Git 和 npm 指令自動執行,同時禁止刪除操作並保護環境變數檔案。權限支援萬用字元匹配,採用「最後匹配優先」規則。
可設定權限的工具類型包含:read(讀取檔案)、edit(編輯檔案)、bash(執行命令)、glob(檔案搜尋)、grep(內容搜尋)、webfetch(網頁抓取)等。兩個特殊權限值得注意:doom_loop 會在相同操作重複三次時觸發,external_directory 則在存取專案目錄外的路徑時觸發。
代理系統與模式切換
OpenCode 內建兩種主要代理(Agent)與兩種子代理(Subagent),類似 AI Agent 的多代理架構:
主要代理:
- Build:預設代理,啟用所有工具,用於實際開發工作
- Plan:規劃代理,限制檔案編輯與命令執行,專注於分析與建議
子代理:
- General:通用研究代理,適合複雜問題探索與多步驟任務
- Explore:快速探索代理,專精於程式碼搜尋與專案結構分析
使用 Tab 鍵可在主要代理間切換。子代理可透過 @ 提及方式手動觸發,例如 @general 幫我搜尋這個函式的用法。AI 也會根據任務性質自動決定是否調用子代理。
開發者可建立自訂代理。在 .opencode/agent/ 目錄下建立 Markdown 檔案:
---
description: 程式碼審查專家
mode: subagent
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
---
你是程式碼審查專家。專注於:
- 程式碼品質與最佳實踐
- 潛在錯誤與邊界案例
- 效能與安全性考量
只提供建議,不直接修改程式碼。
完整快捷鍵對照表
OpenCode 使用領導鍵(Leader Key)機制,預設為 ctrl+x。大多數快捷鍵需先按領導鍵,再按對應按鍵。
對話導航
| 功能 | 快捷鍵 |
|---|---|
| 向上翻頁 | pageup |
| 向下翻頁 | pagedown |
| 跳至頂部 | ctrl+g 或 home |
| 跳至底部 | ctrl+alt+g 或 end |
| 複製訊息 | <leader>y |
模型與代理
| 功能 | 快捷鍵 |
|---|---|
| 模型列表 | <leader>m |
| 循環切換最近模型 | f2 |
| 反向循環切換 | shift+f2 |
| 代理列表 | <leader>a |
| 循環切換代理 | tab |
| 反向循環切換 | shift+tab |
輸入控制
| 功能 | 快捷鍵 |
|---|---|
| 送出訊息 | enter |
| 換行 | shift+enter 或 ctrl+j |
| 清除輸入 | ctrl+c |
| 貼上 | ctrl+v |
| 行首 | ctrl+a |
| 行尾 | ctrl+e |
| 刪除至行尾 | ctrl+k |
| 刪除至行首 | ctrl+u |
快捷鍵可透過設定檔完全客製化。若某快捷鍵與終端機衝突,可將其設為 "none" 停用。
CLI 指令參考
除了 TUI 環境,OpenCode 也提供 CLI 指令供腳本與自動化使用:
# 非互動式執行
opencode run "解釋 JavaScript 中的閉包概念"
# 繼續上次對話
opencode run -c "接續上次的討論"
# 指定模型
opencode run -m anthropic/claude-sonnet-4-20250514 "最佳化這段程式碼"
# 附加檔案
opencode run -f ./src/main.ts "審查這個檔案"
# 啟動無頭伺服器
opencode serve --port 4096
# 附加至運行中的伺服器
opencode attach http://localhost:4096
# 查看使用統計
opencode stats --days 30 --models
# 匯出對話
opencode export [sessionID]
進階設定技巧
環境變數:OpenCode 支援多種環境變數控制行為:
| 變數 | 說明 |
|---|---|
OPENCODE_PERMISSION |
內嵌 JSON 權限設定 |
OPENCODE_DISABLE_AUTOUPDATE |
停用自動更新檢查 |
OPENCODE_DISABLE_AUTOCOMPACT |
停用自動壓縮對話 |
OPENCODE_EXPERIMENTAL |
啟用所有實驗功能 |
MCP 伺服器整合:OpenCode 支援 Model Context Protocol,可透過 opencode mcp add 新增 MCP 伺服器,擴展 AI 代理的能力範圍。
多專案設定:全域設定檔位於 ~/.config/opencode/,專案層級設定則放在 .opencode/ 目錄。專案設定會覆蓋全域設定。
實戰工作流程建議
根據 Vibe Coding 的理念,以下是 OpenCode 的高效使用方式:
功能開發流程:
- 切換至 Plan 代理(按 Tab)
- 描述功能需求,讓 AI 生成實作計畫
- 審閱計畫並提供回饋
- 切換回 Build 代理
- 執行
按照計畫開始實作
程式碼審查流程:
- 建立自訂
review代理,限制其只能讀取不能寫入 - 使用
@參照要審查的檔案 - AI 會提供詳細的審查意見
- 若接受建議,切換回 Build 代理進行修改
除錯流程:
- 執行
!npm test或相關測試指令 - 測試輸出會自動加入對話
- 請 AI 分析失敗原因並提出修正
與其他 AI 編碼工具的比較
OpenCode 在 AI 編碼工具生態系中有其獨特定位。與 Cursor 相比,OpenCode 專注於終端機環境,適合偏好命令列的開發者。與 Aider 相比,OpenCode 提供更完整的 TUI 體驗與更豐富的代理系統。與 Windsurf 等 IDE 整合方案相比,OpenCode 的優勢在於其開源特性與高度客製化能力。
選擇 OpenCode 的典型場景包括:遠端伺服器開發、偏好 Vim/Neovim 工作流程、需要深度客製化 AI 代理行為、或希望使用開源方案避免供應商鎖定。
引用來源
- OpenCode 官方文件
- MIT Technology Review: AI-Assisted Software Development
- Stanford HAI: AI in Software Engineering
作者:Tenten Research Team
OpenCode 代表了 AI 編碼工具的新趨勢:將強大的 AI 能力帶入開發者最熟悉的終端機環境。透過本文整理的指令與設定,開發者應能快速上手這款工具,並根據個人工作流程進行深度客製化。
若您正在評估企業級 AI 開發工具導入方案,或希望了解如何將 AI 代理整合至現有開發流程,歡迎與 Tenten 團隊預約諮詢,探討最適合您團隊的解決方案。
