---
title: "01 · OpenCode 是什麼"
description: "理解 OpenCode 的定位：開源、終端優先、多模型可換、配置開放的 AI Coding Agent。"
verifiedAt: "2026-05-07"
---

你已經聽過 Claude Code，也可能用過 Codex。現在又來了一個 OpenCode，第一反應很自然：是不是又一個"能在終端裡寫程式碼的 AI"？

這個判斷只對了一半。OpenCode 確實是 AI coding agent（AI 程式設計代理），但它最重要的不是"又能寫程式碼"，而是把**開源實現、終端 TUI（Terminal UI 文本介面）、多模型供應商、專案級配置和執行時擴充套件**放在同一個體系裡。理解了這個定位，你才知道它該放在工作流的哪個位置。

> [!NOTE]
> **這一篇解決什麼問題**：把 OpenCode 從“另一個 AI 程式設計工具”重新理解成“開放配置的 coding agent 執行時”。讀完你應該能說清：它和 Claude Code / Codex 差在哪，適合什麼專案，不適合什麼期待，以及後面 7 篇為什麼按現在這個順序講。

## 1. 一個真實選擇題

假設你現在維護一個 Next.js 專案，想引入 AI agent 幫你做三件事：

1. 平時解釋程式碼、改小 bug、跑測試。
2. 給不同任務配不同模型，避免所有事情都用最貴模型。
3. 把專案規則、review 流程、專用 agent 和工具配置一起放進儲存庫。

Claude Code 可以很順手，Codex 也可以很強。但如果你特別在意“配置能不能版本化、模型供應商能不能替換、執行時能不能擴充套件、原始碼能不能審計”，OpenCode 就開始變得有意義。

這不是“誰替代誰”的問題，而是“你要哪一種控制面”的問題。

> [!IMPORTANT]
> **先把問題問對**：選 OpenCode 不是因為它一定比 Claude Code 或 Codex 更聰明，而是因為你想要更開放的 provider、config、agent、skill、plugin 和 tool 組合空間。

## 2. OpenCode 的一句話定位

OpenCode 官方把它定義為 open source AI coding agent。它可以透過終端介面使用，也提供桌面應用和 IDE 擴充套件；官方文件還覆蓋 CLI、Web、SDK、server（HTTP 服務模式）、GitHub/GitLab 整合、ACP（Agent Client Protocol，讓編輯器和 AI agent 用統一協議通訊，配 Zed/JetBrains/Neovim 等編輯器）、MCP（Model Context Protocol，把外部系統/工具變成 agent 可呼叫工具的標準協議）、LSP（Language Server Protocol，編輯器拿程式碼診斷、跳定義、找引用的協議）、permissions、skills 和 plugins。

這一段術語很多，**不必現在全懂**——下面 7 篇會按入口、上下文、執行、角色、模型、治理 6 層分別展開，每個術語都會在它真正起作用的篇裡講清"為什麼需要它"。

用中文開發者更容易理解的話說：

> OpenCode 是一個開源、終端優先、多模型可換、配置開放的 AI 程式設計 agent 執行時。

這句話裡有四個關鍵詞。

| 關鍵詞 | 不是在說什麼 | 真正在說什麼 |
| --- | --- | --- |
| 開源 | 不是“免費所以更好” | 你能看原始碼、審計行為、理解執行邊界 |
| 終端優先 | 不是“只能在終端用” | TUI、shell、檔案系統、測試命令是一等工作流 |
| 多模型可換 | 不是“隨便切模型玩” | provider/model 是配置項，可以按任務和成本分層 |
| 配置開放 | 不是“配置越多越高階” | 專案規則、agent、command、skill、plugin 可以沉澱和版本化 |

## 3. 先看它長在哪個位置

很多 AI 程式設計工具的差異，不在模型，而在“AI 住在哪裡、能碰到什麼、由誰控制”。

OpenCode 的基本形狀可以這樣看：

```mermaid
flowchart TD
    User["開發者"] --> Entry["入口層：TUI / CLI / IDE / Desktop / Web"]
    Entry --> Context["上下文層：AGENTS.md / rules / @file / session"]
    Context --> Agent["Agent 層：commands / agents / skills"]
    Agent --> Tools["執行層：read / edit / bash / LSP / MCP / formatter"]
    Agent --> Model["模型層：provider / model / small_model / Zen"]
    Tools --> Project["真實專案：檔案 / 測試 / Git / 本地工具"]
    Model --> Provider["模型供應商"]
    Agent --> Policy["治理層：permissions / network / share / team config"]

    style Entry fill:#dbeafe,stroke:#3b82f6
    style Agent fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
    style Policy fill:#fee2e2,stroke:#ef4444,stroke-width:2px
```

這個圖裡有一個關鍵點：OpenCode 不只是“聊天框 + 改程式碼”。它把入口、上下文、角色、工具、模型和許可權都暴露成可配置層。

所以 OpenCode 的學習順序不能只按功能選單來。你要先理解它的層次，再決定哪一層該由個人配置，哪一層該寫進專案，哪一層必須收緊許可權。

## 4. 四個核心特徵

### 4.1 模型不是繫結死的

OpenCode 可以接不同 provider，也可以在配置裡宣告預設模型和 lightweight task 使用的小模型。官方也提供 OpenCode Zen 這類經過 OpenCode 團隊測試的模型和供應商組合。

這意味著你可以把模型選擇當成工程策略：

- 輕量解釋和文件整理，用低成本模型。
- 跨檔案 bug 和重構，用更強模型。
- 安全、釋出、資料處理，用強模型加人工確認。
- 主 provider 限流時，有備用 provider。

> [!TIP]
> **通俗講**：多模型能力不是“開模型超市”，而是讓不同風險等級的任務走不同成本結構。

### 4.2 終端 TUI 是主戰場

OpenCode 的 TUI 不是把網頁聊天搬進終端。它圍繞開發者已經在用的專案目錄、shell、檔案引用、slash command（斜槓命令）、session（會話）、compact（上下文壓縮）和工具詳情來組織互動。

你可以在對話裡 `@file` 引用檔案讓它讀專案；可以讓它執行命令把測試輸出帶回上下文；也可以把常用動作做成 command（命令），減少每次重新解釋任務邊界。

最值得理解的是 OpenCode 的 **Plan mode（計劃模式）vs Build mode（構建模式）雙模式**——按 `Tab` 鍵切換：

| 模式 | 行為 | 何時用 |
|---|---|---|
| **Plan mode** | 停用檔案修改，只輸出"打算怎麼做" | 任務複雜、範圍不清、第一次接觸陌生模組 |
| **Build mode** | 允許執行修改和命令 | 計劃已確認、改動範圍明確 |

跨模組改動、上線前重構、不熟悉的程式碼庫——先 Tab 切到 Plan mode 看 OpenCode 的方案，確認後再切回 Build mode 讓它真改。這是 OpenCode 最有標誌性的安全互動。

終端優先的好處是：OpenCode 不需要假裝替代你的開發環境，它直接進入你本來就在用的環境。

### 4.3 專案規則可以沉澱

OpenCode 的配置不是單一檔案。你會遇到 `opencode.json`、`.opencode/`、AGENTS.md、rules、commands、agents、skills、plugins、tools、themes 等入口。

新手最容易犯的錯，是把所有內容都塞進一個長提示詞。更穩的分法是：

| 內容 | 更適合放哪裡 | 原因 |
| --- | --- | --- |
| 預設模型、許可權、MCP、formatter | `opencode.json` | 執行引數需要機器可讀 |
| 專案長期約定 | rules / AGENTS.md | 每次任務都應該被讀取 |
| 重複任務流程 | commands | 用 slash command 固定入口 |
| 特定角色和許可權 | agents | 把 review、docs、test、plan 分開 |
| 跨專案能力包 | skills | 複用流程和檢查清單 |
| 執行時擴充套件 | plugins | 需要程式碼接入和維護 |

### 4.4 擴充套件能力進入執行時

OpenCode 不只呼叫模型。它能接 MCP server、LSP、formatter、custom tools、SDK、server、GitHub/GitLab 整合，也能透過 plugin 擴充套件執行時能力。

這讓它可以從“個人終端助手”向“團隊自動化元件”延伸。但代價也很清楚：工具越多，許可權越複雜，排障和安全成本越高。

## 5. 和 Claude Code / Codex 的差異

先給推薦判斷：

| 工具 | 更像什麼 | 你應該優先考慮它的情況 |
| --- | --- | --- |
| Claude Code | Anthropic 官方深度打磨的 coding agent | 你想要預設體驗統一，少配置，許可權、記憶、subagent、hook、command 體系清晰 |
| Codex | OpenAI 生態裡的多形態 coding agent | 你已經重度使用 OpenAI / ChatGPT / Codex CLI / IDE / cloud task，希望產品聯動更強 |
| OpenCode | 開源、終端優先、provider 可換的 agent 執行時 | 你要開放配置、多模型策略、專案級規則、可審計原始碼和可擴充套件執行時 |

不要用“哪個更強”做唯一判斷。更現實的問題是：

- 你的團隊是否願意維護配置？
- 你是否需要 provider 可替換？
- 你是否需要把規則和 agent 檔案納入版本控制？
- 你是否能接受開放體系帶來的配置成本？
- 你是否有能力治理 permissions、network、share 和工具呼叫邊界？

如果這些問題的答案偏“是”，OpenCode 才能發揮它的優勢。

## 6. 適合和不適合

OpenCode 適合這些場景：

- 你想把 coding agent 能力放進終端工作流，而不是隻在 IDE 側邊欄裡聊天。
- 你需要按任務切換 provider/model，控制成本和限流風險。
- 你希望把專案規則、commands、agents、skills 放進儲存庫，讓團隊共享。
- 你想接 MCP、LSP、formatter、custom tools 或內部系統。
- 你需要開源實現，方便審計、二次擴充套件或接入自動化。

OpenCode 不適合這些期待：

- 希望“開啟就完美”，不想理解配置、許可權和 provider。
- 希望 AI 自動接管整個專案，不願意先從只讀和單檔案任務開始。
- 不打算維護 rules、commands、agents，卻期待輸出長期穩定。
- 不願意管理 API key、許可權、分享和網路訪問邊界。
- 把開源等同於“沒有治理成本”。

> [!WARNING]
> **新手坑**：OpenCode 的配置面越開放，越不能把它當成“省心一鍵替代品”。開放給了你控制權，也把治理責任交給了你。

## 7. 最小心智模型

後面 7 篇可以先按這 6 層理解：

| 層 | 包含什麼 | 第一天必動 | 不做會怎樣 |
|---|---|:---:|---|
| **入口層** | CLI / TUI / IDE 擴充套件 / Desktop / Web / ACP | ✓ | 不知道任務從哪發起 |
| **上下文層** | `@file` 引用 / `AGENTS.md` 專案規則檔案 / rules / session（會話）/ compact（壓縮） | ✓ | 模型每次重新認識專案，token 浪費 |
| **執行層** | read / edit / bash 終端 / LSP（語言伺服器，型別提示）/ formatter / MCP | ✓ | 模型只會聊天不會動手 |
| **角色層** | commands（斜槓命令）/ agents（專用代理）/ skills（技能包）/ plugins（執行時外掛） | — | 重複任務每次都從零講 |
| **模型層** | provider（供應商）/ model / small_model 小模型 / OpenCode Zen 精選組合 / API key | — | 所有任務用同一個最貴模型 |
| **治理層** | permissions（許可權）/ network（網路）/ share（分享）/ team config（團隊配置） | — | 團隊場景安全風險無法收斂 |

**第一天只跑前 3 層**（入口 / 上下文 / 執行）。沉澱經驗後進角色層；準備長期使用再設計模型層和治理層。

## 8. 怎麼驗證你真的理解了

| # | 問題 | 自檢 |
|:-:| --- |:---:|
| 1 | OpenCode 為什麼不是 Claude Code / Codex 的簡單替代品？ | ☐ |
| 2 | “多模型可換”的價值是什麼，不是什麼？ | ☐ |
| 3 | 哪些內容應該放 rules，哪些內容應該放 commands 或 agents？ | ☐ |

> [!TIP]
> **過關標準**：能用一句話說清——OpenCode 的核心價值不是預設體驗最省心，而是把 coding agent 的入口、模型、規則、工具和許可權開放成可配置體系。

## 接下來去哪

<Cards>
  <Card title="安裝、連線模型與第一次執行" description="先驗證 OpenCode 能在真實專案裡啟動、連線 provider、讀取上下文並完成低風險任務。" href="/zh-Hant/docs/opencode/understanding/02-install-first-run" />
  <Card title="OpenCode 從原理到實戰" description="回到理解篇路線圖，按 8 篇文章建立完整學習路徑。" href="/zh-Hant/docs/opencode/understanding" />
  <Card title="入門官方整理" description="如果你要直接查安裝、CLI、TUI、IDE 和分享入口，看官方教程中文版。" href="/zh-Hant/docs/opencode/official/00-getting-started" />
  <Card title="模型與供應商策略" description="理解 OpenCode 的 provider 可換之後，再看模型策略怎麼落地。" href="/zh-Hant/docs/opencode/understanding/06-model-provider-strategy" />
</Cards>

## 官方資料

- OpenCode 官方入門：[https://opencode.ai/docs](https://opencode.ai/docs)
- OpenCode 配置：[https://opencode.ai/docs/config](https://opencode.ai/docs/config)
- OpenCode 許可權：[https://opencode.ai/docs/permissions](https://opencode.ai/docs/permissions)
- OpenCode GitHub 儲存庫：[https://github.com/anomalyco/opencode](https://github.com/anomalyco/opencode)
