查看本文參考來源

前言:為什麼我又換了一個 AI 編碼工具?

這幾年 AI 編碼工具換了一輪又一輪,每套工具各自為政:模型切換、MCP 設定、專案 Prompt 管理散在不同地方,換一台電腦就要重新設定一次。我想要的其實很單純:一個開源、模型中立、設定檔可以跟著 Repo 走的 CLI/桌面版代理,能同時接雲端免費模型、付費模型、地端 Ollama,再掛上 MCP 與專案級 Skill。

OpenCode 剛好就是這樣的工具。同一份 opencode.json,在公司、家裡桌機、甚至內網環境都能用,成本可控、隱私可管,團隊新人拉下 Repo 執行 opencode 就能上手。這篇把我目前的設定、踩過的坑和建議起手式一次整理,給還在猶豫的工程師參考。

核心優勢:一個工具吃遍所有模型與生態

OpenCode 最大的賣點是「聚合器」定位,不綁單一模型商,四個支柱一次到位:

  • 模型聚合:目前有 13 個左右 input/output 都是 0的免費模型(‘deepseek−v4.1−flash−free‘、‘glm−5.3−flash−free‘、‘big−pickle‘、視覺用的‘nemotron−3.5−super−vl−free‘等),終端機輸入‘opencodemodels‘或在TUI打‘/models‘就能看到完整清單。付費模型也在同一個介面切換,參考價格:DeepSeekV4.1Flash‘0 的免費模型(`deepseek-v4.1-flash-free`、`glm-5.3-flash-free`、`big-pickle`、視覺用的 `nemotron-3.5-super-vl-free` 等),終端機輸入 `opencode models` 或在 TUI 打 `/models` 就能看到完整清單。付費模型也在同一個介面切換,參考價格:DeepSeek V4.1 Flash `0.30/1.20‘、ClaudeSonnet5.5‘1.20`、Claude Sonnet 5.5 `2/$10`(每 1M tokens)。
  • 地端模型:opencode.json 直接指向內網的 Ollama,依場景挑模型:qwen3-vl:8b 看圖、OCR,qwen3-coder:30b 日常 coding,MoE 架構的 qwen3.6-35b-a3b 只啟用 3B 參數,速度快。
  • MCP 原生支援:Context7、瀏覽器三件組、GitHub 都能直接寫進設定檔,不用另外包一層。
  • Skill 機制:技能放在專案的 .opencode/skills/ 底下跟著 Repo 走,除錯流程、TDD 習慣、React 最佳實踐全團隊一致,代理變成「懂專案規矩」的隊友。

實戰設定:從安裝到跑起第一個 Task

安裝與啟動

最簡單的是官方安裝腳本,或用 npm 全域安裝:

curl -fsSL https://opencode.ai/install | bash
# 或
npm install -g opencode-ai

也可以直接下載桌面版。終端機執行 opencode 進入 TUI,輸入 /models 確認模型清單有正常載入。

雲端免費模型

我平常先用 deepseek-v4.1-flash-free 跑一般 coding 任務,回應速度不錯,很適合原型開發和副專案。但有幾點要先知道:

  • 限時免費:隨時可能下架,別把它當成永久方案。
  • 有限速但沒公布數字:尖峰時段會感覺得到變慢。
  • 只能在 OpenCode 裡用:免費 chat 模型不能拿 API key 餵給別的 client,需要登入 OpenCode Console 或設定 OPENCODE_API_KEY。
  • 注意隱私:NVIDIA 系列明講不要放機密資料;DeepSeek、GLM、Beam 則是零保留。

接地端 Ollama 完整步驟

這是我花最多時間調的地方,坑主要在 context 長度和跨主機連線。

1. 伺服器端啟動參數(一定要加):

# 把 context 拉到 32K,並開放其他主機連線
OLLAMA_CONTEXT_LENGTH=32768 \
OLLAMA_HOST=0.0.0.0:11434 \
ollama serve

💡 關鍵提醒:Ollama 預設 context 常常只有 4K~8K,模型讀到一半就「突然失憶」,工具呼叫也容易失敗。官方文件也建議遇到 tool call 不正常時先把 context 拉到 16K~32K。跨主機連線記得開防火牆的 11434 埠。

2. 客戶端 opencode.json:

Ollama 走 OpenAI 相容 API,所以 provider 要指定 @ai-sdk/openai-compatible,baseURL 記得帶 /v1:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (內網)",
      "options": {
        "baseURL": "http://192.168.1.100:11434/v1"
      },
      "models": {
        "qwen3-coder:30b": { "name": "Qwen3 Coder 30B" },
        "qwen3-vl:8b": { "name": "Qwen3 VL 8B" },
        "qwen3.6-35b-a3b": { "name": "Qwen3.6 35B A3B (MoE)" }
      }
    }
  },
  "model": "ollama/qwen3-coder:30b"
}

192.168.1.100 換成你自己 Ollama 主機的 IP;同一台機器就用 localhost。

3. 驗證: 重新啟動 OpenCode,/models 應該會出現地端模型,選一個丟個小任務測看看就知道通不通。

地端模型怎麼挑

模型大小適合場景
qwen3-vl:8b6.2 GB看圖、OCR,16 GB RAM 就能跑
qwen3-coder:30b18.6 GB日常 coding,建議 32 GB RAM
qwen3.6-35b-a3b22.1 GBMoE 只啟用 3B,速度快
qwen3.5:35b22 GB比較複雜的任務

MCP 與 Skill:把代理變成「懂我專案」的隊友

MCP 怎麼裝

MCP 寫在 opencode.json 的 mcp 區塊,type: "local" 是在本機啟動指令,type: "remote" 是連遠端網址。不想手寫的話,終端機執行 opencode mcp add 會一步步引導你設定。

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "enabled": true
    },
    "playwright": {
      "type": "local",
      "command": ["npx", "-y", "@playwright/mcp@latest"],
      "enabled": true
    },
    "chrome-devtools": {
      "type": "local",
      "command": ["npx", "-y", "chrome-devtools-mcp@latest"],
      "enabled": true
    }
  }
}

三個瀏覽器 MCP 各做各的事

我裝了三個瀏覽器相關的 MCP,一開始常搞混,後來抓到分工就很順:

情境用哪個原因
要登入的頁面(後台、信箱、公司系統)browse(操作已登入的 Chrome)直接沿用你瀏覽器裡的登入狀態
寫 E2E 測試、重現 bugplaywright乾淨的瀏覽器環境,步驟可以重播
查 Console 錯誤、Network、效能、記憶體chrome-devtools拿得到 DevTools 層級的資訊

一句話記:要登入用 browse、寫測試用 playwright、查錯誤用 chrome-devtools。

Context7:查官方文件不再瞎掰

裝了 Context7 之後,代理問到 Next.js、Prisma、Tailwind 這類函式庫的用法時,會先去拉最新官方文件,不會憑印象亂寫參數。版本更新快的框架特別有感。

GitHub MCP:要 Token

GitHub MCP 可以直接操作 repo、issue、PR、Actions,但要先設定 GITHUB_PERSONAL_ACCESS_TOKEN。我第一次裝完發現工具數是 0,原因就是 token 沒設。

Skill:把團隊做法寫成檔案

Skill 是一個資料夾配一個 SKILL.md,放在專案的 .opencode/skills/<名稱>/SKILL.md,跟著 Repo 版控。OpenCode 也會讀 .claude/skills/,原本給 Claude Code 寫的技能可以直接共用。例如建立 .opencode/skills/debug/SKILL.md:

---
name: debug
description: 團隊標準除錯流程,遇到 bug 時使用
---

# 除錯技能

遇到 Bug 時,請依照以下步驟:

1.  **先看 Log**:收集 Console、Server Log、錯誤堆疊。
2.  **再推測**:根據錯誤訊息列出 3 個可能原因,標註信心度。
3.  **再改 Code**:針對最有可能的原因做最小範圍修正,並寫測試驗證。
4.  **複盤**:在 PR 描述記錄根因與修正邏輯。

代理碰到 bug 時就會照這套流程走,不會一上來就亂改程式。同樣的方式可以建 TDD、React 最佳實踐、測試撰寫等技能。

坑與限制:免費不代表沒有代價

  • 免費模型隨時可能下架:重要工作流不要只綁一個免費模型,地端或付費模型要當備援。
  • Ollama context 陷阱:預設 4K~8K 不夠用,一定要設 OLLAMA_CONTEXT_LENGTH=32768;跨主機記得 OLLAMA_HOST=0.0.0.0:11434。
  • 地端吃硬體:30B 等級的模型建議 32 GB RAM 起跳;MoE 模型雖然快,複雜重構還是付費模型比較穩。
  • 隱私邊界:機密程式碼不要送到明講不保證隱私的免費模型,這種任務就交給地端模型。

結論:適合誰?我的建議起手式

適合

  • 想省訂閱費、需要內網或離線開發的工程師
  • 希望設定檔進版控、「設定即文件」的團隊
  • 喜歡用 MCP、Skill 打造自動化流程的人

不適合

  • 不想碰 JSON 設定、想要全託管介面的人
  • 已經深度綁定其他 AI 編碼工具、短期沒打算換的團隊

建議起手式

  1. 先用免費模型:安裝後 /models 挑 deepseek-v4.1-flash-free 之類的免費模型,先跑幾個日常任務感受一下。
  2. 接地端 Ollama:照上面的 provider 設定加進 opencode.json,記得把 context 拉到 32K。
  3. 裝 MCP 基礎三件組:Context7、playwright、chrome-devtools。
  4. 寫第一個 Skill:從團隊最常重複說明的流程開始,例如除錯或 code review。

如果你也在找一個可攜帶、可擴充、不綁廠商的 AI 編碼夥伴,OpenCode 很值得試試看。

參考連結

作者

Mark Ku

10 年以上的軟體工程師,做過北美電商與 AI SaaS 訂閱收費系統。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可。

熱門文章

View all
Mark Ku
··633

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··464

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··249

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··205

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··202

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
Mark Ku
··198

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調