返回指南
比較·2026年9月21日·更新於 2026年9月24日·閱讀約 8 分鐘

Crush 與 OpenCode:工作流程、模型與總成本

已封存的 Go OpenCode 成為 Crush。如今可安裝的 OpenCode 是不同的程式碼庫——真正的選擇在於授權、權限預設值,以及你要為哪個錢包儲值。

最後審核於 。

Crush 和 OpenCode 都是免費的終端機程式碼代理,不會向你收取任何費用,而且都允許你指向自己的 OpenAI 或 Anthropic 相容端點,因此選擇並不取決於用戶端價格,而取決於授權條款、權限預設值、設定執行模型,以及每個專案會引導你使用哪個錢包。 Crush 是 Charm 的 AI 程式碼代理——不是同名的 Rust shell——以 Go 撰寫,並採用 FSL-1.1-MIT 授權。OpenCode 是 opencode.ai 上、由 Anomaly 維護的 TypeScript 代理,採用 MIT 授權。

在安全閱讀其餘內容之前,必須先釐清兩個名稱陷阱。「Crush CLI」也是另一個無關專案的名稱——liljencrantz/crush,其自稱為「同時也是強大現代程式語言的命令列 shell」,以 Rust 撰寫,與 AI 程式碼完全無關。此外,還有兩個名為 opencode 的儲存庫,其中一個是 Crush 過去使用的名稱。以下緊接著就是該段內容,因為一旦弄錯,後續所有比較都會失效。

三個專案,其中兩個名為 OpenCode

已封存的 Go CLI 不是本次比較中的第三個選項,而是 Crush 的前身;該儲存庫也以自己的原話說明:「此儲存庫已不再維護,並已封存以保留來源脈絡。此專案已由原作者與 Charm 團隊以 Crush 之名繼續開發。」

專案目前的狀態程式語言授權最新發行版
charmbracelet/crush活躍中。Charm 的 AI 程式碼代理。已封存 Go OpenCode 的延續GoFSL-1.1-MIT(GitHub 回報 NOASSERTION)v0.95.0,2026 年 9 月 16 日
anomalyco/opencode活躍中。opencode.ai 上發布的 OpenCode。於 2025 年 4 月 30 日建立的獨立程式碼庫TypeScriptMITv1.18.31,2026 年 9 月 14 日
opencode-ai/opencode已封存。Crush 過去使用的名稱。不要從其中取得設定、供應商或價格GoMITv0.0.55,2025 年 6 月 27 日

儲存庫中繼資料取自 2026 年 9 月 19 日的 GitHub API;套件版本已對照 npm 確認,其中 @charmland/crush 為 0.95.0,採用 FSL-1.1-MIT 授權,而 opencode-ai 為 1.18.31,採用 MIT 授權。請注意,npm 套件名稱 opencode-ai 屬於目前的 Anomaly 專案,而 opencode-ai 同時也是已封存專案的 GitHub 組織;僅檢查 npm 無法區分兩者,因此請檢查 GitHub 組織。有一點本頁無法確定:GitHub 沒有回傳舊儲存庫的封存日期,因此不對其聲稱日期。同樣地,github.com/sst/opencode 現在會重新導向至 anomalyco/opencode,且 opencode.ai 的頁尾寫著「© Anomaly」,但沒有找到有日期的第一方改名公告,因此只描述交接,不標註日期。

誰應該選哪一個

如果這描述的是您選擇具體原因
你的組織要求開發者工具採用 OSI 核准的授權OpenCodeGitHub 與 npm 上兩者皆為 MIT。Crush 採用 FSL-1.1-MIT,限制競爭性使用,並且只有在每個版本滿兩週年時才轉為 MIT
你希望代理在觸碰任何內容之前停下來詢問CrushCrush 預設會在工具呼叫前要求權限;OpenCode 的文件化預設值則大多是允許
你希望代理超越終端機——桌面應用程式、IDE 擴充功能、GitHub 或 GitLabOpenCode其文件涵蓋桌面應用程式、IDE 擴充功能、網頁/分享、GitHub 與 GitLab 整合、ACP、SDK、伺服器及外掛
你希望設定是團隊一眼就能審查的資料檔OpenCodeopencode.json 是資料。crushrc 是 Bash,而 $(...) 會在載入時於 crush.json 內展開
你希望設定可以執行 shell 命令——從密碼管理器取得金鑰、依主機名稱分支Crush同一種執行模型就是該功能。Charm 自己的範例會使用 $(op read ...) 解析 MCP 權杖
你希望每月 10 美元的訂閱方案,使用固定且大多為開放權重的模型清單OpenCodeOpenCode Go 就是這項產品。Crush 可以讀取相同的 OPENCODE_API_KEY,但 Crush 不在 Go 的已驗證用戶端清單中
你希望在前沿 Claude、GPT 與 Gemini 模型之間共用一筆預付餘額兩者皆可兩者都接受第三方端點,不受方案限制。Charm 自己的供應商不提供這些模型系列

關於遷移成本:模型設定是便宜的一半,而設定格式是昂貴的一半。crushrc 與 opencode.json 之間沒有轉換器,因此專案本機的設定必須手動重寫。能保留的部分比看起來更廣——兩個用戶端都支援 MCP 伺服器、LSP 伺服器與 Agent Skills,因此可擴充性不是兩者的差異點,只有語法不同。兩者也都有非互動模式,因此這不是 TUI 對 TUI 的選擇:Crush 的 run 子命令在其原始碼中被描述為「執行單一非互動提示」,而 OpenCode 文件記載了 opencode run。

權限與設定執行:真正值得注意的安全差異

這兩個專案的預設方向相反,而在讓任一者接觸儲存庫之前,這是最值得知道的差異。

Crush 的 README 表示,Crush 預設會在執行工具呼叫前要求權限。你可以用扁平的允許或拒絕清單——permissions allow view edit、permissions deny bash sourcegraph——放寬規則,或使用 --yolo 完全移除權限要求;來源將其描述為「自動接受所有權限(危險模式)」。

OpenCode 則從另一端開始。其 權限文件 表示,大多數權限預設為 "allow",而 doom_loop 與 external_directory 預設為 "ask"。相對地,規則更細緻:權限會依工具分別套用於 read、edit、glob、grep、bash、task、skill、lsp、question、webfetch、websearch、external_directory 與 doom_loop;每個工具都接受 glob 模式,因此 bash 可以允許 git * 並拒絕 rm *;規則會依模式比對評估,最後一個符合的規則勝出,且代理可以覆寫全域集合。OpenCode 也有 --auto 旗標,會核准任何未明確拒絕的內容,因此兩個用戶端都能設定為寬鬆模式;只是它們並非從同一個預設起點開始。

第二半是設定格式。Crush 的 README 對此說得很直接:「crushrc 與 crush.json 都是受信任的程式碼;crushrc 會在完整 shell 中執行,而 crush.json 中的任何 $(...) 都會在載入時執行。不要在尚未審查設定的目錄中啟動 Crush」。Crush 會依序讀取 ./.crushrc、./crushrc、~/.config/crush/crushrc,因此你複製的儲存庫可能會附帶其中一個。這確實是一項能力——金鑰就是透過它從密碼管理器取出——也是一項實際危險。OpenCode 的 opencode.json 是資料。這兩項事實均於 2026 年 9 月 18 日確認;較舊的 Crush JSON 格式已記載為棄用,且不會取得新功能,因此應以 crushrc 為基礎,而非 JSON。

錢流向的是錢包,而不是用戶端

每個專案都有官方第一方供應商,但供應內容不同。Charm Hyper 完全不販售 Claude、GPT 或 Gemini 模型;OpenCode 則同時販售前沿模型的隨用隨付目錄,以及每月 10 美元、採用另一組大多為開放權重模型的訂閱方案。

錢包公布價格目錄這對選擇的意義
Charm Hyper 免費「每個人每月可獲得 100 Hypercredits」,且「目前 1 Hypercredit 為 5¢」23 個模型,主要是開放權重系列Crush 的預設入門流程。完全沒有 Claude、GPT 或 Gemini
Charm Hyper 訂閱方案「每月 20 美元」,可獲得「250 Hypercredits,每日更新」相同的 23 個模型每日更新頻率只出現在價格頁面,文件中沒有再次說明,因此不要據此進行算術推算
Charm Hyper 預付方案$5 = 100、$10 = 200、$20 = 400 Hypercredits;「預付 Hypercredits 永不過期」相同的 23 個模型方案額度是否 rollover 或過期,文件沒有明確說明;依賴之前請在你的帳戶中確認
OpenCode Zen以預付額度按每百萬權杖隨用隨付;信用卡費用按「每筆交易 4.4% + $0.30」轉嫁前沿 Claude、GPT、Gemini、Grok,加上開放權重模型其文件表示按成本銷售,僅加價以涵蓋處理費
OpenCode Go「低成本的每月 10 美元訂閱方案」主要為開放權重模型,但其自有表格也列出 Grok 4.6 與 GPT 5.6 Luna上限以美元計:5 小時上限為每月上限的 20%,每週上限為 50%,每月上限為 100%。每個工作區一位訂閱者

Hyper 價格與模型清單取自 2026 年 9 月 18 日的 公開模型端點——23 個模型,其中沒有任何 Claude、GPT 或 Gemini 模型。大多數模型帶有開放權重系列名稱——DeepSeek、Kimi、GLM、MiniMax、Qwen、gpt-oss-120b 與 Gemma——其中一個 inkling 帶有 Charm 品牌,但沒有記載基礎模型,因此本頁聲稱的是「沒有前沿專有模型系列」,而不是「全都採用開放權重」。方案價格來自同日檢查的 hyper.charm.land。如果隱私是你決策的一部分,還有一項值得指出的衝突:Crush 的 README 與 Hyper 價格頁面都描述零資料保留,而 Hyper 自己的文件 則表示「嚴格的最長 30 天保留政策」,其 FAQ 也將零保留政策描述為由雲端供應商遵守的政策。請閱讀文件中的句子,而不是行銷文案,並在你的帳戶條款中確認。

這裡有一項與通常的供應商鎖定敘事相反的事實:Crush 內建 OpenCode Zen 與 OpenCode Go 作為由 OPENCODE_API_KEY 驗證的供應商,因此 OpenCode 錢包可以隨你進入 Crush。但 Go 的官方文件要求用戶端使用自己的 user agent 識別自己,並在 x-opencode-session 標頭中傳送穩定的工作階段 ID;其已驗證用戶端表列出 Hermes、Claude Code、Codex、ZCode、Pi、jcode 與 Kilo Code CLI——Crush 不在該清單中,也不在有問題的那份清單中。不在清單中並不代表一定故障,而本頁也沒有任何一方面的證據,因此不下結論。依賴之前請自行測試。Zen 自己的自帶金鑰選項也比聽起來更窄:其文件描述的是在 Zen 中使用你自己的 OpenAI 或 Anthropic 金鑰,而不是提供任意閘道的欄位。

在兩個用戶端中使用自有端點

這是兩個專案真正開放的部分,也是 Crush 使用者能取得、而 Hyper 完全無法販售給他們的功能。兩個用戶端都不會以方案限制自訂供應商。

對 Crush 使用者最有用的一項細節是:Crush 的基礎 URL(適用於 OpenAI 相容與 Anthropic 相容類型)都包含 /v1。其 README 自己的自訂供應商範例會寫成 https://api.deepseek.com/v1 與 https://api.anthropic.com/v1。這與 Claude Code 的慣例相反;Claude Code 的 ANTHROPIC_BASE_URL 接受不含路徑的來源,因為用戶端會自行附加路徑——請參閱基礎 URL 參考,了解為何同一個閘道會以兩種方式書寫。對 Kunavo 金鑰而言,Crush 值為 https://api.kunavo.com/v1。

~/.config/crush/crushrc
# crushrc is Bash. Treat it as executable code, not as settings.
provider add kunavo --type openai-compat \
  --base-url "https://api.kunavo.com/v1" \
  --api-key "$KUNAVO_API_KEY"

model add kunavo/claude-sonnet-5 \
  --name "Claude Sonnet 5" \
  --context-window 1000000 \
  --default-max-tokens 32000 \
  --price-input 1.4 \
  --price-output 7

關於該區塊有三點說明。請使用 openai-compat,不要使用 openai:README 將 openai 保留給透過 OpenAI 本身進行代理或路由。--price-* 旗標只會提供 Crush 螢幕上的成本估算,不會改變實際計費,因此其中的拼字錯誤會產生錯誤讀數,而不會產生錯誤扣款。由於 crushrc 是 Bash,--api-key "$(op read ...)" 是讓金鑰完全不出現在檔案中的文件化方式。OpenCode 的對應方式是資料檔,並透過 {env:VAR} 參照金鑰:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "kunavo": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Kunavo",
      "options": {
        "baseURL": "https://api.kunavo.com/v1",
        "apiKey": "{env:KUNAVO_API_KEY}"
      },
      "models": {
        "claude-sonnet-5": {
          "name": "Claude Sonnet 5",
          "limit": { "context": 1000000, "output": 128000 }
        }
      }
    }
  }
}

npm 欄位會選擇資料傳輸格式:對於提供 /v1/chat/completions 的端點,使用 @ai-sdk/openai-compatible;對於 /v1/responses,使用 @ai-sdk/openai。OpenCode 也可以覆寫內建供應商的 baseURL,而不必宣告自訂供應商,因此有兩條路徑,而非一條;透過 /connect 新增的金鑰會寫入 ~/.local/share/opencode/auth.json(供應商文件,2026 年 9 月 18 日確認)。Kunavo 為兩者各自發布設定頁面:OpenCode 與 Crush。兩個用戶端都尚未針對 Kunavo 進行執行時測試,因此請將兩個區塊視為設定參考,並以一項範圍受限的工作進行驗證。

一次工作階段實際花費多少

以下數字是說明性的權杖算術,不是量測到的工作成本,也不是帳單上限。假設一次代理工作階段傳送200,000 個未快取輸入權杖並接收15,000 個輸出權杖——這是用於比較的假設,不是對你儲存庫的測量。費率是Kunavo 目錄目前每百萬權杖的價格,並列出 OpenCode Zen 於 2026 年 9 月 18 日針對其也提供的模型名稱所發布的費率。Zen 的目錄並非 Kunavo 的鏡像,因此下方有一列在 Zen 中沒有對應項目。

模型Kunavo 每百萬輸入/輸出OpenCode Zen 每 1M 的輸入/輸出Kunavo 對此工作階段的估算
Claude Haiku 4.5$0.70 / $3.50$1.00 / $5.00$0.192
GPT-5.6 Terra$0.70 / $4.20沒有以此名稱列出的 Zen 項目$0.203
Claude Sonnet 5$1.40 / $7.00$2.00 / $10.00$0.385
Claude Opus 5$3.50 / $17.50$5.00 / $25.00$0.963

請如實閱讀中間兩欄。在 Claude Sonnet 5 上,兩個目錄在 $1.40 與 $7.00 的價格均為完全相同,因此不能聲稱有節省;差距出現在其他列。Zen 的 Claude Haiku 4.5 列為 $1.00 與 $5.00,而 Kunavo 為 $0.70 與 $3.50;Zen 的 Claude Opus 5 列為 $5.00 與 $25.00,而 Kunavo 為 $3.50 與 $17.50。在依賴這些數字之前,請注意三點。Zen 完全沒有名為 GPT-5.6 Terra 的模型——2026 年 9 月 18 日,其 GPT 列為 GPT 6 Astra 與 GPT 5.6 Sol,兩者都不是同一模型——因此該列刻意留白,而不是填入相近模型。這些是某一天發布的目錄費率,不是基準測試,也不是任何路徑都是完成工作的最便宜方式的承諾:需要第二次嘗試的模型,很快就會抵銷費率優勢。四列也不是任一方完整的模型貨架。

現在來到本頁存在的重點。顯示成本與計費成本,在兩個用戶端中都是不同的數字。 Crush 的預設模型清單與成本估算來自Catwalk,這是一個會自動更新的外部目錄;對於手動註冊的自訂供應商,數字就只是你輸入 model add 的內容。OpenCode 自己的產品也在沒有第三方介入的情況下說明了同一點:DeepSeek V4 Flash 在 Zen 上是輸入 $0.14/輸出 $0.28,在 Go 非尖峰時段是 $0.15/$0.60,在 Go 尖峰時段是 $0.30/$1.20(供應商文件,2026 年 9 月 18 日)。Catwalk 對該模型的紀錄符合非尖峰時段的一組價格,因此 Crush 對它的成本讀數會悄悄低估尖峰時段的使用量。請以供應商帳戶實際記錄的帳本核對,永遠不要以終端機中的數字為準。

Kunavo 的目錄金額是計費下限,而不是上限:上游回報費用時,帳單金額取目錄成本與上游成本乘以適用加成兩者中的較高者。快取費用和外部工具不包含在此範例中。最低加值額為預付點數 $10——這是資金最低額,不是工作費用或訂閱費。請參閱billing details。

設定其中一個

如果你選擇 OpenCode,請從OpenCode 整合指南開始,並建立 Kunavo 帳戶以儲值金鑰。如果你選擇 Crush,上方的 crushrc 區塊就是完整設定;保留一條可運作的路徑,執行一項範圍受限的工作,並在切換主要日常工具之前,閱讀帳戶記錄的實際扣款。想比較更廣的範圍?OpenCode 與 Claude Code 比較及OpenCode 替代方案可以擴大選擇範圍,而OpenAI 相容 API 參考涵蓋兩個用戶端所依賴的端點慣例。

常見問題

Crush 與 OpenCode 是同一個專案嗎?

不是目前的那個,但這種混淆情有可原。曾有兩個名為 opencode 的專案。github.com/opencode-ai/opencode 上的 Go CLI 已封存,其 README 也表示該專案後來以 Crush 之名,由原作者與 Charm 團隊繼續開發。因此,那個 OpenCode 是 Crush 的舊名稱,而不是競爭者。你今天可以安裝的 OpenCode 是另一個位於 github.com/anomalyco/opencode 的 TypeScript 程式碼庫 — 建立於 2025 年 4 月 30 日,採用 MIT 授權,並發布於 opencode.ai。比較 Crush 與 OpenCode,代表比較 Charm 的 Go 代理程式與 Anomaly 的 TypeScript 代理程式;並不是比較同一程式碼庫的兩個分支。

Crush 是開放原始碼嗎?

它不是 OSI 核准的授權,若你的公司有授權政策,這一點很重要。Crush 的 LICENSE.md 是 Functional Source License, Version 1.1, MIT Future License — 縮寫為 FSL-1.1-MIT,版權所有 2025-2026 Charmbracelet, Inc。GitHub 自身的授權 API 將其回報為 NOASSERTION,而不是已辨識的 SPDX 識別碼。該授權允許被授權者內部使用、非商業教育與研究,以及專業服務,但排除其所稱的 Competing Use;它也授予不可撤銷的 MIT 授權,於每個版本發布兩週年時生效。相較之下,OpenCode 在 GitHub 和 npm 上都是純 MIT 授權。

Crush 與 OpenCode 哪個比較便宜?

都不是,因為兩個用戶端都不收費。Crush 是免費下載,OpenCode 也是免費下載;你支付的是所設定供應商的模型 Token 費用。成本差異來自各自引導你使用的錢包,而兩者都接受第三方 OpenAI-compatible 端點,且沒有方案限制。另請注意,列出的最低費率與完成工作的最低成本是兩回事:需要三次嘗試的模型,可能比一次就能完成的較昂貴模型花費更多。

我可以在 Crush 中使用自己的 API 金鑰或閘道嗎?

可以,而且這是有文件說明的一級使用方式,沒有方案限制。Crush 的 README 說明了 openai、openai-compat、anthropic 及數種本機類型的自訂供應商。對第三方 OpenAI-compatible 閘道,正確類型是 openai-compat;Crush 的 README 警告,openai 用於透過 OpenAI 本身進行代理或路由,而 openai-compat 用於具備 OpenAI-compatible API 的非 OpenAI 供應商。使用 provider add 註冊供應商,接著使用 model add 註冊每個模型,包括 Crush 用於畫面成本估算的每百萬 Token 價格。當 openai-compat 供應商的模型清單為空,或你傳入 --discover-models true 時,會執行自動探索。

Charm Hyper 會提供 Claude、GPT 或 Gemini 模型給我嗎?

不會。Hyper 位於 hyper.charm.land/v1/models 的公開模型端點在 2026 年 9 月 18 日回傳了 23 個模型,其中沒有 Claude、GPT-5 或 GPT-6 系列,也沒有 Gemini。大多數 ID 屬於開放權重系列 — DeepSeek、Kimi、GLM、MiniMax、Qwen、gpt-oss-120b 和 Gemma 變體 — 其中一個 inkling 是 Charm 品牌的 ID,而 Hyper 文件沒有描述其底層權重,因此本頁不會將整個目錄歸類為開放權重。Hyper 是官方 Crush 供應商 — Crush 的 README 稱,從模型選擇器選擇 Hyper 模型是最快的入門方式,並在其環境變數表中列出 HYPER_API_KEY — 但想使用前沿 Claude、GPT 或 Gemini 模型的 Crush 使用者,必須設定不同的供應商。Crush 中沒有任何限制會阻止這麼做。

OpenCode Zen 與 OpenCode Go 有什麼差異?

它們是同一供應商提供的兩個獨立付費產品,使用兩個不同的端點,而且同一模型在兩者中的費用可能不同。Zen 採預付額度、按量付費,可使用前沿模型目錄中的模型,按每百萬 token 計費;其文件表示以成本價銷售,僅加價以支付處理費,刷卡費則按每筆交易 4.4% 加 $0.30 轉嫁。Go 是每月 $10 的訂閱,使用另一個以開放權重模型為主的清單——其自身表格也列出 Grok 4.6 和 GPT 5.6 Luna——並設有以美元計價的用量上限:5 小時上限為每月上限的 20%,每週上限為 50%,每月上限為 100%;且每個工作區只能有一名成員訂閱。DeepSeek V4 Flash 展示了這項差距:Zen 的輸入為 $0.14、輸出為 $0.28;Go 在離峰時段輸入為 $0.15、輸出為 $0.60,在尖峰時段輸入為 $0.30、輸出為 $1.20;以上皆於 2026 年 9 月 18 日從供應商文件讀取。

將專案從其中一個移到另一個有多困難?

昂貴的部分不是模型設定,而是權限態勢與設定格式。Crush 會依序讀取 crushrc(這是包含 Crush 內建指令的 Bash):./.crushrc、./crushrc,然後 ~/.config/crush/crushrc;較舊的 crush.json 仍受支援,但文件已將其標記為棄用,且不會加入新功能。OpenCode 讀取 opencode.json 資料檔。兩者之間沒有轉換器,因此專案本機的設定必須手動重寫。兩個用戶端都支援 MCP 伺服器、LSP 伺服器與 Agent Skills,因此即使宣告方式不同,這些能力仍能隨遷移保留。

儲存庫中繼資料、發布版本與 npm 版本已於 2026 年 9 月 19 日對照 GitHub API 與 npm 登錄檔確認;授權、README、Crush 原始檔案,以及 Charm Hyper、OpenCode Zen、OpenCode Go、權限與供應商文件已於 2026 年 9 月 18 日至 19 日檢查。Kunavo 權杖費率來自目前的目錄。本頁未對任一用戶端進行相容性、效能或基準測試,也未作出相關聲稱;此處每個美元範例都是說明性的權杖算術,而非量測到的工作成本。