iT邦幫忙

2026 iThome 鐵人賽

DAY 2
2

! 本篇文章將會介紹五分鐘安裝 opencode:打造你的 AI 指揮台,期望大家都能在五分鐘內把 AI 指揮台裝進終端機,從此寫程式像下指令 :D

昨天我們看完整條「19:00 生成 → 20:00 發文」的自動化管線,也自首了這個系列是 Agent 寫的。但萬丈高樓平地起——整套系統的核心員工其實只有一位:一支終端機指令,opencode。今天我們從零開始把它裝起來、完成登入、聊第一句天,順便搞懂一個關鍵問題:CLI agent 到底跟 Cursor 這種 IDE agent 差在哪?這題的答案,決定了後面 28 天的自動化要怎麼蓋。

本篇目標

讀完這篇你會學到:

  • 三種方式安裝 opencode,以及裝完最容易踩的 PATH 坑
  • 完成 provider 登入,跑起人生第一個 agent 對話
  • CLI agent 與 IDE agent 的本質差異,以及為什麼自動化非 CLI 不可

環境準備

  • macOS(Windows 官方建議走 WSL,Linux 直接照做)
  • 一套像樣的終端機:官方點名 WezTerm、Alacritty、Ghostty、Kitty;macOS 內建 Terminal.app 能跑,但 TUI 體驗打折
  • 一組 LLM provider 的 API key,或是願意註冊 opencode Zen(官方策展的模型清單)

主要內容

步驟一:安裝——三選一,三十秒

opencode 官方提供的安裝方式,最省事的是一行 curl:

# 官方安裝腳本(macOS / Linux 通用,不依賴套件管理器)
curl -fsSL https://opencode.ai/install | bash

# 或者用 Homebrew(官方建議用 opencode 自己的 tap,更新最快)
brew install anomalyco/tap/opencode

# 或者走 Node 生態系
npm install -g opencode-ai

裝完驗證一下:

opencode --version
# 終端機印得出版號,就代表裝好了

我自己是直接用 curl 腳本裝的——現在這台 Mac 上的 opencode 就住在 ~/.opencode/bin,等一下踩坑記錄裡的 PATH 問題,就是它親身示範的。curl 腳本的好處是不依賴任何套件管理器,剛開箱的乾淨機器也能一行搞定;升級也不用煩惱,opencode 內建 opencode upgrade 一行更新到最新版。brew 派則是照慣例 brew upgrade

步驟二:登入——告訴 Agent 誰出腦袋

opencode 本體開源,但它需要一顆 LLM 當大腦。登入有兩個入口:互動一點的,是輸入 opencode 進入 TUI 後打 /connect;懶得開 TUI 的,直接一行 CLI:

# 直接在終端機完成 provider 登入(選 provider、貼 key)
opencode auth login

# 登入完確認目前接了哪些 provider
opencode auth list

兩條路:

  1. opencode Zen:官方策展、測試過的模型清單,到 opencode.ai/auth 註冊、領 key、貼回去,一路 Enter 到底,最適合新手
  2. 自帶 key:手邊本來就有 Anthropic 或 OpenAI 等家的 API key,就直接選對應 provider 貼上

金鑰會存在本機的 credentials 檔(~/.local/share/opencode/auth.json),不會進 git repo——但請還是不要把含 key 的截圖和 log 到處亂貼,這是經營自動化系統的基本 hygiene。

小小小測驗:你知道 opencode 雖然是終端機工具,但其實也有 IDE extension 和桌面 App 嗎?那為什麼我偏偏選 CLI?答案在步驟四。

步驟三:第一個對話——/init、Tab 與 /undo

cd 到任何一個專案資料夾,輸入 opencode,TUI 會把你眼前的專案整包當成工作範圍。官方建議的第一件事是:

cd ~/some-project
opencode
# 進入 TUI 後輸入:
/init

/init 會讓 agent 掃過整個專案,在根目錄生成一份 AGENTS.md——這是 agent 的「專案說明書」,也是第 4 天的主題。之後就能直接開聊:

  • @ 可以 fuzzy search 專案裡的檔案,塞進對話當 context
  • Tab 切換 Plan / Build mode:Plan 只出計畫不動手,Build 才會真的改檔案
  • 改完不滿意?/undo 把 agent 的修改整組退貨,/redo 再救回來

我個人最愛 /undo——它把「叫 AI 改 code」的心理門檻降到接近零,反正隨時可以反悔。

步驟四:CLI agent vs IDE agent,差在哪?

多數人的第一次 AI coding 體驗都發生在 IDE 裡(Copilot Chat、Cursor),那 CLI agent 的差別到底是什麼?我整理成三點:

  1. 不綁編輯器:opencode 只吃「一個資料夾」。你用 vim 還是 VS Code 都無所謂,它對專案的理解來自檔案系統本身,而不是特定 IDE 的外掛介面。
  2. 可以被 script 呼叫:這是決定性差異。IDE agent 是給「人」用的 GUI;CLI agent 除了互動的 TUI,還有 opencode run "..." 這種非互動模式——一行指令、進去、做事、退出、回報結果。你昨天看到的 generate.sh,裡面叫的就是這個。GUI 可沒辦法被 launchd 排程叫起床。
  3. 到處都能跑:本機、遠端 server、CI pipeline,有 shell 就能裝。自動化系統要的從來不是漂亮的 UI,而是可以被程式呼叫的介面。

所以說「AI 指揮台」:IDE agent 像副駕座,你開車它導航;CLI agent 像可以被遙控的無人機——你不只要會跟它聊天,還要會寫排程叫它自己飛。這正是本系列選擇 opencode 的原因。

常見問題 / 踩坑記錄

  • Q:裝完輸入 opencode,跳 command not found?
    A:經典 PATH 坑。curl 安裝腳本會把執行檔放在 ~/.opencode/bin,腳本結束時會印出 export PATH=$HOME/.opencode/bin:$PATH 的提醒,很多人直接滑掉。把這行加進 .zshrc 再重開終端機即可。如果你是走 npm 安裝,opencode 會藏在 nvm 當前版本 node 的 bin 資料夾裡,之後每次切 node 版本路徑還會跟著變——這也是我後來改用 curl 腳本裝的原因。順帶一提,這只是 PATH 地獄的入門款,等 launchd 上場才是完全體(第 11 天見)。

  • Q:TUI 在 macOS 內建 Terminal.app 跑起來跑版、邊框亂掉?
    A:官方文件明講建議搭配現代終端機(WezTerm、Alacritty、Ghostty、Kitty)。TUI 依賴較新的 terminal 能力,內建 Terminal.app 能動但體驗打折。換一套終端機,五分鐘的事,值。

  • Q:已經在用 Claude Code 或 Cursor 了,還要學 opencode 嗎?
    A:核心心法相通——都是 agent,都靠 context 與工具呼叫做事。opencode 的特色是開源、provider 可替換、TUI 與 headless 雙形態。本系列後面的技巧(AGENTS.md、skills、headless)概念上可移植,但指令與設定會以 opencode 為準。

常見問題:裝完卻出現 command not found?

十之八九是 PATH 沒刷新。新開一個終端機視窗再試一次;還是不行,就照安裝程式最後印出的提示,把 ~/.opencode/bin 加進你的 shell 設定檔(.zshrc.bashrc),存檔後 source 重載。用 echo $PATH 確認路徑真的進去了,這一步通了,後面 28 天才不會卡在同一個坑。

小結

  • 安裝三選一:curl 腳本、brew tap、npm,裝完記得確認 ~/.opencode/bin 有沒有進 PATH
  • opencode auth login/connect 登入 provider,/init 生成專案的 AGENTS.md,/undo 是反悔藥
  • CLI agent 的核心價值:不綁編輯器、可以被 script 呼叫、到處能跑——這是後面 28 天自動化的地基

明日預告

下一篇我們要介紹「headless 模式:opencode run 讓 AI 無人值守工作」,把今天裝好的指揮台變成可以被排程呼叫的指令,這也是本系列發電機的真正原理,敬請期待!

參考資料:

有任何疑問但沒有 iT 邦幫忙帳號,或是想匿名提問?
歡迎到 https://dev.benben.me/q/Z5442T 提問或加油打氣,沒意外的話會在完賽之後一起回答 :D


上一篇
01 為什麼我讓 Agent 替我寫鐵人賽
下一篇
03 headless 模式:opencode run 讓 AI 無人值守工作
系列文
自我耍廢組:全自動化の鐵人3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言