OpenCode 是一款開源 AI 編碼代理工具,由 SST 團隊開發維護。這款工具提供終端機介面(TUI)、桌面應用程式及 IDE 擴充套件三種使用方式,讓開發者能直接在命令列中獲得 AI 輔助編碼能力。本文將系統性整理 OpenCode 的所有指令、快捷鍵與進階設定,幫助開發者快速掌握這款工具的完整功能。


OpenCode 核心概念

OpenCode 與 Claude CodeCursor 等 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+ghome
跳至底部 ctrl+alt+gend
複製訊息 <leader>y

模型與代理

功能 快捷鍵
模型列表 <leader>m
循環切換最近模型 f2
反向循環切換 shift+f2
代理列表 <leader>a
循環切換代理 tab
反向循環切換 shift+tab

輸入控制

功能 快捷鍵
送出訊息 enter
換行 shift+enterctrl+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 的高效使用方式:

功能開發流程

  1. 切換至 Plan 代理(按 Tab)
  2. 描述功能需求,讓 AI 生成實作計畫
  3. 審閱計畫並提供回饋
  4. 切換回 Build 代理
  5. 執行 按照計畫開始實作

程式碼審查流程

  1. 建立自訂 review 代理,限制其只能讀取不能寫入
  2. 使用 @ 參照要審查的檔案
  3. AI 會提供詳細的審查意見
  4. 若接受建議,切換回 Build 代理進行修改

除錯流程

  1. 執行 !npm test 或相關測試指令
  2. 測試輸出會自動加入對話
  3. 請 AI 分析失敗原因並提出修正

與其他 AI 編碼工具的比較

OpenCode 在 AI 編碼工具生態系中有其獨特定位。與 Cursor 相比,OpenCode 專注於終端機環境,適合偏好命令列的開發者。與 Aider 相比,OpenCode 提供更完整的 TUI 體驗與更豐富的代理系統。與 Windsurf 等 IDE 整合方案相比,OpenCode 的優勢在於其開源特性與高度客製化能力。

選擇 OpenCode 的典型場景包括:遠端伺服器開發、偏好 Vim/Neovim 工作流程、需要深度客製化 AI 代理行為、或希望使用開源方案避免供應商鎖定。


引用來源


作者:Tenten Research Team

OpenCode 代表了 AI 編碼工具的新趨勢:將強大的 AI 能力帶入開發者最熟悉的終端機環境。透過本文整理的指令與設定,開發者應能快速上手這款工具,並根據個人工作流程進行深度客製化。

若您正在評估企業級 AI 開發工具導入方案,或希望了解如何將 AI 代理整合至現有開發流程,歡迎與 Tenten 團隊預約諮詢,探討最適合您團隊的解決方案。

Share this post
Ewan Mak

I'm a Full Stack Developer with expertise in building modern web applications that fast, secure, and scalable. Crafting seamless user experiences with a passion for headless CMS, Vercel and Cloudflare

Loading...