[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-opencode-cli-acp-server-support-zh":3,"article-related-opencode-cli-acp-server-support-zh":33,"series-tools-cfc9970e-56ae-4c17-8b36-270e9b3492b5":85},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":25,"views":29,"created_at":30,"published_at":31,"topic_cluster_id":32},"cfc9970e-56ae-4c17-8b36-270e9b3492b5","opencode-cli-acp-server-support-zh","OpenCode CLI 加入 ACP 伺服器","\u003Cp data-speakable=\"summary\">OpenCode CLI 新增 ACP 伺服器，還把 TUI、無頭網頁、session、plugin 和 \u003Ca href=\"\u002Ftag\u002Fgithub\">GitHub\u003C\u002Fa> 自動化整合到同一套命令列介面。\u003C\u002Fp>\u003Cp>\u003Ca href=\"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fcli\u002F\" target=\"_blank\" rel=\"noopener\">OpenCode\u003C\u002Fa> 這次不是只加一個小功能。它直接把 CLI 做成控制台。你可以在終端機開 TUI，也能跑一次性 prompt，還能起 headless server。\u003C\u002Fp>\u003Cp>更狠的是，它現在還有 \u003Ca href=\"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fcli\u002F\" target=\"_blank\" rel=\"noopener\">ACP\u003C\u002Fa> server。文件寫得很直白，透過 stdin 和 stdout，搭配 nd-JSON 溝通。這代表它不只給人用，也給其他工具接。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>命令\u003C\u002Fth>\u003Cth>用途\u003C\u002Fth>\u003Cth>重點\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>opencode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>啟動 TUI\u003C\u002Ftd>\u003Ctd>沒帶參數時的預設行為\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>opencode run\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>非互動式執行 prompt\u003C\u002Ftd>\u003Ctd>支援 \u003Ccode>--format json\u003C\u002Fcode>、\u003Ccode>--attach\u003C\u002Fcode>、\u003Ccode>--thinking\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>opencode serve\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>啟動 headless HTTP server\u003C\u002Ftd>\u003Ctd>適合 API 與遠端 client\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>opencode acp\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>啟動 ACP server\u003C\u002Ftd>\u003Ctd>用 stdin\u002Fstdout 傳 nd-JSON\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>這個 CLI 已經不是附屬品\u003C\u002Fh2>\u003Cp>講白了，OpenCode 的 CLI 現在像主控台。沒參數就進 TUI，有參數就能自動化。你還可以接 server，讓別的 client 來呼叫它。這種設計很像把同一個 backend，切成幾種前端入口。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779035643289-wshz.png\" alt=\"OpenCode CLI 加入 ACP 伺服器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這種做法很實際。很多 AI 工具卡在單一介面。不是只有網頁，就是只有 editor plugin。OpenCode 反而把入口拆開。人用 TUI，腳本用 run，遠端用 serve，協定整合用 ACP。\u003C\u002Fp>\u003Cp>文件裡的命令分類也很清楚。這不是亂長出來的功能堆。它們對應的是不同工作流。你可以把它看成一套 AI 工具鏈，不是單純聊天介面。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>tui\u003C\u002Fcode>：適合互動操作\u003C\u002Fli>\u003Cli>\u003Ccode>run\u003C\u002Fcode>：適合腳本和 CI\u003C\u002Fli>\u003Cli>\u003Ccode>serve\u003C\u002Fcode>、\u003Ccode>web\u003C\u002Fcode>：適合遠端與瀏覽器\u003C\u002Fli>\u003Cli>\u003Ccode>acp\u003C\u002Fcode>：適合 protocol client\u003C\u002Fli>\u003Cli>\u003Ccode>session\u003C\u002Fcode>、\u003Ccode>stats\u003C\u002Fcode>、\u003Ccode>export\u003C\u002Fcode>：適合追蹤與管理\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我覺得這才是重點。OpenCode 沒把自己鎖死在單一 UI。它想當的是工作流底層。這對開發者很有感，因為你不必每次換工具，就重寫一次操作方式。\u003C\u002Fp>\u003Ch2>ACP 支援才是最值得看的地方\u003C\u002Fh2>\u003Cp>\u003Ca href=\"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fcli\u002F\" target=\"_blank\" rel=\"noopener\">opencode acp\u003C\u002Fa> 這條命令很有意思。它啟動 ACP server，並透過 stdin\u002Fstdout 傳 nd-JSON。這種做法很土炮，也很可靠。對本地工具來說，stdin\u002Fstdout 幾乎是最容易嵌進去的介面。\u003C\u002Fp>\u003Cp>這代表\u003Ca href=\"\u002Fnews\u002Fwhy-pi-mcp-adapter-is-the-right-way-to-use-mcp-zh\">什麼\u003C\u002Fa>？代表 OpenCode 可以更容易接進編輯器、腳本、a\u003Ca href=\"\u002Fnews\u002Faws-agent-toolkit-coding-agents-zh\">gent\u003C\u002Fa> runner，甚至本機常駐程式。你不用先開一個大網頁，再透過複雜 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> 路由繞來繞去。協定邊界直接放在 process 層，簡單很多。\u003C\u002Fp>\u003Cp>它也和其他 server 模式對得上。\u003Ca href=\"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fcli\u002F\" target=\"_blank\" rel=\"noopener\">serve\u003C\u002Fa> 是 HTTP server。\u003Ca href=\"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fcli\u002F\" target=\"_blank\" rel=\"noopener\">web\u003C\u002Fa> 是帶瀏覽器介面的 HTTP server。ACP 則是給懂協定的 client。三條路，三種用途。\u003C\u002Fp>\u003Cblockquote>\u003Cp>“This command starts an ACP server that commun\u003Ca href=\"\u002Fnews\u002Fmicrosoft-skills-174-ai-coding-skills-zh\">ic\u003C\u002Fa>ates via stdin\u002Fstdout using nd-JSON.”\u003C\u002Fp>\u003C\u002Fblockquote>\u003Cp>這句話很關鍵。它直接說明傳輸層怎麼做。對開發者來說，這比一堆行銷詞有用太多。因為你馬上知道，這能不能接到現有工具，能不能包成 daemon，能不能塞進自動化流程。\u003C\u002Fp>\u003Cp>如果你平常有碰 local \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa>，這種設計會很熟。很多工具最後都會回到 process protocol。原因很簡單。它穩，跨平台，而且不用先把整套系統網路化。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>opencode serve\u003C\u002Fcode>：HTTP API 入口\u003C\u002Fli>\u003Cli>\u003Ccode>opencode web\u003C\u002Fcode>：HTTP + 瀏覽器 UI\u003C\u002Fli>\u003Cli>\u003Ccode>opencode acp\u003C\u002Fcode>：process protocol 入口\u003C\u002Fli>\u003Cli>\u003Ccode>opencode run --attach\u003C\u002Fcode>：連到既有 server，少一次冷啟動\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>OpenCode 在做的是完整工作流\u003C\u002Fh2>\u003Cp>OpenCode 的 CLI 不只會跑 prompt。它還能管 agent、auth、models、GitHub 自動化。像 \u003Ccode>opencode agent\u003C\u002Fcode>、\u003Ccode>opencode auth\u003C\u002Fcode>、\u003Ccode>opencode models\u003C\u002Fcode>、\u003Ccode>opencode github install\u003C\u002Fcode>，這些都不是花拳繡腿。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779035644295-cu95.png\" alt=\"OpenCode CLI 加入 ACP 伺服器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>真正有用的是 session 和資料管理。你可以列出 session，也能匯出、匯入，還能看 \u003Ca href=\"\u002Ftag\u002Ftoken\">token\u003C\u002Fa> 使用量和成本。對團隊來說，這種紀錄很重要。因為 AI 工具一旦進到工作環境，大家就會開始問：誰做了什麼？花了多少？能不能重跑？\u003C\u002Fp>\u003Cp>文件也列出幾個很實用的指令。這些細節看起來不起眼，實際上很像產品成熟度的分數。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>opencode models --refresh\u003C\u002Fcode>：更新快取的 provider 清單\u003C\u002Fli>\u003Cli>\u003Ccode>opencode session list --format json\u003C\u002Fcode>：輸出機器可讀資料\u003C\u002Fli>\u003Cli>\u003Ccode>opencode export --sanitize\u003C\u002Fcode>：清掉敏感 transcript 和檔案內容\u003C\u002Fli>\u003Cli>\u003Ccode>opencode uninstall --keep-config\u003C\u002Fcode>：移除程式但保留設定\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這些功能說明一件事。OpenCode 想讓你把它放進日常開發流程。不是只拿來試玩。你可以把它接進 shell script、伺服器程序、GitHub Actions，甚至內部工具。\u003C\u002Fp>\u003Ch2>跟其他 CLI AI 工具比，差在哪\u003C\u002Fh2>\u003Cp>很多 \u003Ca href=\"\u002Ftag\u002Fai-coding\">AI coding\u003C\u002Fa> 工具只做一種入口。不是 editor plugin，就是 web app。OpenCode 比較像全家桶。它有 TUI、有 run、有 serve、有 web，現在還多了 ACP。這種多入口策略，對開發者很實際。\u003C\u002Fp>\u003Cp>原因很簡單。不同任務，本來就該用不同介面。臨時問一句，用 \u003Ccode>run\u003C\u002Fcode> 就好。長時間 debug，用 TUI 比較順。要給遠端 client 用，就開 \u003Ccode>serve\u003C\u002Fcode>。要接 process bridge，就用 \u003Ccode>acp\u003C\u002Fcode>。\u003C\u002Fp>\u003Cp>如果拿這種設計跟一般工具比，差異很明顯。OpenCode 比較像把控制權交給使用者，而不是逼你照它的 UI 走。這點我蠻買單。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>TUI\u003C\u002Fstrong>：適合單機互動\u003C\u002Fli>\u003Cli>\u003Cstrong>run\u003C\u002Fstrong>：適合腳本與 CI\u003C\u002Fli>\u003Cli>\u003Cstrong>serve\u002Fweb\u003C\u002Fstrong>：適合遠端與瀏覽器\u003C\u002Fli>\u003Cli>\u003Cstrong>acp\u003C\u002Fstrong>：適合協定型整合\u003C\u002Fli>\u003C\u002Ful>\u003Cp>另一個差異是 state 管理。它把 session、export、import、stats 都放進 CLI。這代表它不是只管輸出答案。它也管歷史、成本、追蹤和移轉。這對團隊導入很重要。\u003C\u002Fp>\u003Cp>如果你想看 OpenCode 之前的工作流設計，可以參考我們的延伸內容：\u003Ca href=\"\u002Fnews\u002Fopencode-agent-workflows\" target=\"_blank\" rel=\"noopener\">OpenCode agent workflows and session tools\u003C\u002Fa>。\u003C\u002Fp>\u003Ch2>這背後反映的是什麼趨勢\u003C\u002Fh2>\u003Cp>AI 工具正在往「可組合」走。單一聊天視窗已經不夠。大家開始要 API、server、session、plugin、protocol。因為真正上線後，工具不會只被一個人點來點去。它會被腳本、編輯器、CI、內部平台一起用。\u003C\u002Fp>\u003Cp>OpenCode 這次把 ACP 拉進 CLI，就是在往這方向靠。它不只想當一個模型前端。它想當一個可被其他工具接上的工作底座。這很像軟體世界裡，從單機 app 走向可插拔系統的路線。\u003C\u002Fp>\u003Cp>我覺得下一步值得觀察的，不是它還會多幾個命令，而是第三方 client 會不會開始接 ACP。只要有幾個工具接上去，CLI 的價值就會從「好用」變成「可整合」。\u003C\u002Fp>\u003Ch2>接下來可以怎麼看\u003C\u002Fh2>\u003Cp>如果你已經在用 OpenCode，現在該做的不是只學 \u003Ccode>opencode\u003C\u002Fcode> 這個入口。你應該把它當成一套系統來看。先試 \u003Ccode>run\u003C\u002Fcode>，再看 \u003Ccode>serve\u003C\u002Fcode> 或 \u003Ccode>acp\u003C\u002Fcode>，最後再碰 session 和 export。\u003C\u002Fp>\u003Cp>如果你還沒用過，這次更新其實很適合拿來評估。你可以直接問自己一句：我要的是一個聊天工具，還是一個能接進工作流的 AI 底層？OpenCode 明顯是後者。\u003C\u002Fp>\u003Cp>我的判斷很直接。接下來真正常用的，不會是最會講故事的 AI 工具，而是最容易被其他軟體接上的那一種。OpenCode 這次就是往那條路走。\u003C\u002Fp>","OpenCode CLI 新增 ACP 伺服器，並整合 TUI、無頭網頁、session、plugin 與 GitHub 自動化，讓終端機直接變成 AI 工作流控制台。","opencode.ai","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fcli\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779035643289-wshz.png","tools","zh","d562d2ce-737f-41c5-b95b-12bb53ea7a4a",[17,18,19,20,21,22,23,24],"OpenCode","CLI","ACP","AI 工具","命令列","TUI","headless server","GitHub automation",[26,27,28],"OpenCode CLI 現在把 TUI、run、serve、web、ACP 放在同一套介面裡。","ACP 透過 stdin\u002Fstdout 和 nd-JSON 溝通，方便接進本機工具與自動化流程。","session、export、import、stats 這些命令，讓 OpenCode 更像完整工作流底座。",5,"2026-05-17T16:33:41.747799+00:00","2026-05-17T16:33:41.68+00:00","c3c88dd2-a940-438a-b359-0e5a24562273",{"tags":34,"relatedLang":44,"relatedPosts":48},[35,37,38,40,42],{"name":20,"slug":36},"ai-工具",{"name":21,"slug":21},{"name":19,"slug":39},"acp",{"name":17,"slug":41},"opencode",{"name":18,"slug":43},"cli",{"id":15,"slug":45,"title":46,"language":47},"opencode-cli-acp-server-support-en","OpenCode CLI adds ACP server support","en",[49,55,61,67,73,79],{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"bef47dbc-b0b4-439e-bae9-abe9473a321c","wei-shen-me-tether-ba-ben-di-ai-ji-yi-tui-jin-ri-chang-zhuan-zh","為什麼 Tether 把本地 AI 記憶推進日常裝置是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780542170805-opi6.png","2026-06-04T03:02:19.599329+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"d3ec03a8-a805-4a21-9826-72a74a72b625","databricks-model-serving-llm-deploy-guide-zh","Databricks Model Serving 讓 LLM 部署變簡單","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998117-7ur8.png","2026-06-03T22:32:51.005996+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"4dd225a8-bf6c-4768-a486-a27956c7033d","opencode-digitalocean-model-freedom-zh","OpenCode+DigitalOcean 讓你切換模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525116428-1q7g.png","2026-06-03T22:18:06.969758+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"4bdcf208-fb80-484e-b4b6-06af035a6df1","modulate-aws-voice-chats-into-signals-zh","Modulate 用 AWS 把語音聊天做成訊號","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780519733892-rxue.png","2026-06-03T20:48:22.697917+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":13},"f44a28d3-2305-43de-b5fa-21217d561054","amazon-rekognition-content-moderation-filter-zh","Amazon Rekognition把審核變成過濾器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780517005409-bxfc.png","2026-06-03T20:02:57.634353+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":13},"80f6f40b-3217-45e4-acff-7b2f6d261779","codex-workspace-limits-tell-you-why-zh","Codex 讓工作區限額錯誤說人話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780514293711-ltqa.png","2026-06-03T19:17:41.340056+00:00",[86,91,96,101,106,111,116,121,126,131],{"id":87,"slug":88,"title":89,"created_at":90},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":132,"slug":133,"title":134,"created_at":135},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]