awesome-opencode 生态深度调研报告
生成时间: 2026-06-18 任务: 调研 OpenCode 生态及其与 Hermes Agent 的关系
1. 项目概况
1.1 OpenCode CLI(已归档)
| 属性 | 值 |
|---|---|
| 仓库 | https://github.com/opencode-ai/opencode |
| Stars | 12,988 |
| Forks | 1,479 |
| 语言 | Go |
| 许可证 | MIT |
| 创建时间 | 2025-03-16 |
| 归档状态 | 已归档(Archived)—— 项目已迁移至 Crush |
1.2 Crush(官方继任者)
| 属性 | 值 |
|---|---|
| 仓库 | https://github.com/charmbracelet/crush |
| Stars | 25,437 |
| Forks | 1,835 |
| 语言 | Go |
| 许可证 | FSL-1.1-MIT(Functional Source License) |
| 创建时间 | 2025-05-21 |
| 活跃度 | 非常活跃(最近推送: 2026-06-17) |
Crush 由 Charm 团队维护,支持 macOS / Linux / Windows / FreeBSD / OpenBSD / NetBSD / Android。
1.3 OpenCode Go(云 API 服务)
| 属性 | 值 |
|---|---|
| 端点 | https://opencode.ai/zen/go/v1 |
| 认证 | Bearer Token(API Key) |
| 协议 | OpenAI API 兼容(chat/completions) |
| 定价 | 订阅制(约 $60/月) |
| 模型数 | 20 个可用模型 |
2. OpenCode CLI 核心功能
2.1 功能总览
| 类别 | 功能 | 说明 |
|---|---|---|
| TUI | Bubble Tea 终端界面 | 带 vim 风格编辑器的完整 TUI |
| 多 AI 提供商 | OpenAI, Anthropic, Gemini, Bedrock, Groq, Azure, OpenRouter, GitHub Copilot, 自托管 | 多种后端 |
| 会话管理 | SQLite 持久化 | 保存/恢复/切换多会话 |
| 工具系统 | bash, glob, grep, ls, view, write, edit, patch | AI 可调用 |
| 网络工具 | fetch(URL 抓取), sourcegraph(代码搜索) | 代码库感知 |
| MCP 集成 | stdio / SSE 传输 | 外部工具扩展 |
| LSP 集成 | diagnostics, 多语言支持(gopls, typescript-language-server) | 代码智能 |
| 自定义命令 | Markdown 文件定义 | 可带命名参数 |
| 自动压缩 | 上下文窗口达 95% 时自动总结 | 防止 OOC |
| 非交互模式 | -p flag, 支持 text/json 输出 | 脚本化使用 |
2.2 命令行界面
opencode # 启动 TUI
opencode -p "prompt" # 单次非交互模式
opencode -c /path # 指定工作目录
opencode -d # 调试模式
opencode -f json # JSON 输出3. Crush(继任者)增强功能
3.1 重大增强
| 功能 | 描述 |
|---|---|
| Agent Skills 标准 | 支持 agentskills.io 开放标准,SKILL.md 技能包 |
| MCP 三传输 | stdio + HTTP + SSE,支持 shell 值展开 |
| 多客户端工作空间 | crush serve 模式,多 TUI 共享会话/权限 |
| 全局上下文文件 | CRUSH.md + AGENTS.md 跨项目指令 |
| 桌面通知 | 终端失焦时推送 |
| Hook 系统 | 事件钩子扩展 |
| Git 归属设置 | assisted-by / co-authored-by 自动添加到提交 |
| Catwalk 提供商自动更新 | 社区驱动的提供商数据库 |
| 用户可调用技能 | user-invocable: true 技能从命令面板触发 |
| 自定义提供商 | openai-compat / anthropic 类型 |
| 本地模型支持 | Ollama / LM Studio |
3.2 许可证差异
| OpenCode | Crush | |
|---|---|---|
| 许可证 | MIT(完全开放) | FSL-1.1-MIT |
| 说明 | 标准开放源码 | 源码可见,商业部署受限;2年后自动转 MIT |
4. 架构分析
4.1 OpenCode 内部架构
opencode/
├── cmd/ # Cobra CLI 入口
├── internal/
│ ├── app/ # 核心应用服务
│ ├── config/ # 配置管理
│ ├── db/ # SQLite 数据库操作及迁移
│ ├── llm/ # LLM 提供商 + 工具集成
│ ├── tui/ # TUI 组件(Bubble Tea)
│ ├── logging/ # 日志基础设施
│ ├── message/ # 消息处理
│ ├── session/ # 会话管理
│ └── lsp/ # LSP 协议集成
└── go.mod # Go 1.24.0
4.2 Crush 内部架构
crush/
├── cmd/ # CLI 入口
├── internal/
│ ├── agent/ # Agent 编排 + 工具 + 技能
│ │ ├── prompt/ # 提示词模板
│ │ ├── templates/# coder/task/title 模板
│ │ ├── tools/ # 内置工具集
│ │ │ └── mcp/ # MCP 工具集成
│ │ └── hyper/ # Charm Hyper provider
│ ├── backend/ # Agent 后端
│ ├── config/ # 配置 + 动态 MCP
│ ├── proto/ # 协议定义
│ ├── server/ # 服务端(crush serve)
│ └── ui/ # TUI + chat 组件
└── go.mod # Go 1.26.4 + Charm v2
4.3 关键依赖对比
| 组件 | OpenCode | Crush |
|---|---|---|
| Go 版本 | 1.24.0 | 1.26.4 |
| TUI 框架 | bubbletea v1, bubbles v0.21 | bubbletea v2, bubbles v2 |
| 样式库 | lipgloss v1, glamour v0.9 | lipgloss v2, glamour v2 |
| MCP 库 | mark3labs/mcp-go v0.17.0 | 自实现 |
| LLM SDK | anthropic-sdk-go, openai-go (beta) | charmbracelet/openai-go |
| 数据库 | ncruces/go-sqlite3 + goose | SQLite 内建 |
| CLI 框架 | cobra + viper | cobra + viper |
5. 支持的 LLM 提供商
5.1 OpenCode CLI
OpenAI(GPT-4.1/4o/o1/o3)、Anthropic(Claude 4/3.7/3.5)、Google Gemini、AWS Bedrock、Azure OpenAI、Groq、OpenRouter、GitHub Copilot、VertexAI、自托管。
5.2 Crush(通过 Catwalk)
Anthropic、OpenAI、Google Gemini、AWS Bedrock、Azure OpenAI、Groq、OpenRouter、Charm Hyper、Synthetic、Z.ai、MiniMax、Hugging Face、Cerebras、io.net、Alibaba、Avian、OpenCode(Zen & Go)、VertexAI、自定义兼容端点、Ollama、LM Studio。
5.3 OpenCode Go 云 API 模型清单
| 模型 ID | 类型 | 来源 |
|---|---|---|
| deepseek-v4-pro / deepseek-v4-flash | 推理 | DeepSeek |
| minimax-m3 / m2.7 / m2.5 | 通用/代码 | MiniMax |
| kimi-k2.7-code / k2.6 / k2.5 | 代码/通用 | Kimi (Moonshot) |
| glm-5.2 / glm-5.1 / glm-5 | 通用 | Zhipu AI |
| qwen3.7-max / plus / qwen3.6-plus / qwen3.5-plus | 推理 | Alibaba |
| mimo-v2-pro / v2-omni / v2.5-pro / v2.5 | 多模态 | Mimo |
| hy3-preview | 预览 | (新兴) |
共 20 个模型,按 OpenAI 兼容 API 格式提供。
6. MCP 集成分析
6.1 OpenCode
- 传输: stdio, SSE
- 配置:
.opencode.json的mcpServers段 - 安全: 权限系统(每次调用需批准)
- 库:
mark3labs/mcp-go v0.17.0
6.2 Crush
- 传输: stdio, HTTP, SSE(三传输)
- 增强特性:
- Shell 值展开((command))
- HTTP 传输自定义 Header
- 每服务器独立超时设置
- disabled_tools 支持禁用特定工具
- Docker MCP 支持
- 代码结构:
internal/agent/tools/mcp/
6.3 OpenCode Go 云 API 的 MCP 关系
OpenCode Go 云 API 本身不提供 MCP 服务器能力。它是模型推理网关。MCP 是 CLI 客户端的能力。
7. 与 Hermes Agent 的关系(重点)
7.1 集成模式
Hermes Agent
|
| 模型推理(chat/completions)
v
+------------------+
| OpenCode Go API | <-- 云网关(交易模式)
| /zen/go/v1 |
+--------+---------+
|
+--------+---------+
| 模型聚合 20 个 |
| DeepSeek / Qwen |
| GLM / Kimi / MM |
+------------------+
7.2 Hermes 配置中的 OpenCode
model:
default: deepseek-v4-flash
provider: opencode-go
base_url: https://opencode.ai/zen/go/v1
api_mode: chat_completions
api_key: ${OPENCODE_GO_API_KEY}
auxiliary:
vision:
provider: opencode-go
model: mimo-v2.57.3 Hermes 的 OpenCode 监控脚本
| 脚本 | 功能 | 运行方式 |
|---|---|---|
| opencode_go_status.py | API key 健康检测 + 额度查询 | 手动 / cron |
| opencode_go_usage.py | 详细用量追踪(workspace 抓取) | 需 session cookie |
| opencode_quota_monitor.sh | 3 层自动降级看门狗 | cron(每小时) |
| reconnect_opencode.sh | OP 恢复后自动切回 | 状态触发 |
7.4 3 层自动降级架构
| 层级 | 提供商 | 模型 | 账户 | 角色 |
|---|---|---|---|---|
| L0 | opencode-go | deepseek-v4-pro | OpenClaw($60/mo) | 主用 |
| L1 | opencode-go-fallback | flash 系列 | Hermes($60/mo) | 自动降级 |
| L2 | deepseek 直连 | deepseek-v4-pro | DeepSeek 账户 | 最终保底 |
7.5 互补性分析
| 维度 | Hermes Agent | OpenCode / Crush | 关系 |
|---|---|---|---|
| 定位 | 全功能 AI 代理系统 | 终端 AI 编码助手 | 供需互补 |
| 模型推理 | 自身不提供模型 | OpenCode Go 是模型网关 | Hermes 是云 API 消费者 |
| MCP 客户端 | 自身工具集系统 | 内置 MCP 客户端 | 位置不同,可协同 |
| Agent 技能 | Hermes Skills | agentskills.io 标准 | 概念一致 |
| 代码编辑 | 通过 terminal/工具 | 深度代码编辑(edit/patch/LSP) | 互补 |
| 知识存储 | GBrain(知识图谱) | SQLite 会话存储 | Hermes 存储更强大 |
| 自动化 | cron + agent 编排 | 非交互模式 + hook | 可组合使用 |
7.6 核心洞察
-
OpenCode Go 云 API 是 Hermes 的模型生命线:Hermes 的默认推理链路完全依赖 opencode-go 网关。若此服务不可用,将触发自动降级到 DeepSeek 直连。
-
Hermes 不直接使用 OpenCode CLI 或 Crush:Hermes 没有集成 OpenCode/Crush 作为子代理或工具。它使用的是 opencode-go 的云 API 端点。
-
OpenCode Go 模型聚合解决了中国区模型访问痛点:通过单一 API 端点,Hermes 可访问 DeepSeek、Qwen、GLM、Kimi、MiniMax 等多种中国顶级模型。
-
三方生态拓扑:
Hermes Agent --模型推理--> OpenCode Go Cloud API
|
DeepSeek MiniMax Kimi GLM Qwen Mimo
- Crush 作为 OpenCode 继任者 与 Hermes 无直接集成,但其 agentskills.io 标准和 Hermes Skills 系统概念一致,有互操作潜力。
8. 结论与建议
关键发现
-
OpenCode 生态已分裂为三部分:Archived 原始 CLI、Charm 的 Crush(25k+ stars)、商业云 API(opencode.ai/zen/go)。
-
Hermes 只消费云 API 部分,不使用 CLI 客户端。OpenCode/Crush 的 TUI、MCP 客户端、LSP、技能系统等与 Hermes 当前架构无直接关联。
-
OpenCode Go 云 API 对 Hermes 至关重要,不仅是默认提供商,还通过 3 层降级确保推理可靠性。
-
Crush 增长迅猛(25k+ vs 原版 13k),社区认可度高。
潜在集成方向
| 方向 | 可行性 | 价值 |
|---|---|---|
| Hermes 作为 Crush 的 MCP 服务器 | 高 | 让 Crush 能查询 Hermes 知识库 |
| Crush 作为 Hermes 的子代理 | 中 | 深度编码任务委派 |
| Skills 标准互操作性 | 高 | 统一 agentskills.io 标准 |
| Hermes 使用 Catwalk provider 列表 | 中 | 扩展模型支持范围 |
附录
A. OpenCode CLI 工具列表
| 工具 | 描述 |
|---|---|
| glob | 按模式查找文件 |
| grep | 搜索文件内容 |
| ls | 列出目录 |
| view | 查看文件 |
| write | 写文件 |
| edit / patch | 文件编辑 |
| bash | 执行命令 |
| fetch | 抓取 URL |
| sourcegraph | 代码搜索 |
| agent | 子代理任务 |
| diagnostics | LSP 诊断 |
B. Crush 内置工具
bash, edit, view, ls, grep, glob, fetch, web_fetch, web_search, sourcegraph, crush_info, crush_logs, download, diagnostics, job_kill, job_output, list_mcp_resources, read_mcp_resource, lsp_restart, mcp-*(动态), references, rg, search, todos。
C. 参考资料
- OpenCode 源码: https://github.com/opencode-ai/opencode
- Crush 源码: https://github.com/charmbracelet/crush
- Catwalk 提供商数据库: https://github.com/charmbracelet/catwalk
- OpenCode Go 云 API: https://opencode.ai/zen/go/v1
- Agent Skills 标准: https://agentskills.io
- Hermes Agent 文档: https://hermes-agent.nousresearch.com/docs
2026-10-09 Codex 审阅
本文原始 Go 项目 opencode-ai/opencode 确已归档,其后续为 Charm Crush;这条项目线不能与当前仍维护、TypeScript 实现的 anomalyco/opencode 混为一谈。当前 OpenCode Go 官方页列出 Go 40/月两个计划,具有用量限制;原文 $60/月、20 个模型及本地账户路由均为旧记录,不能当成当前报价或账户状态。Zen 官方页另采用按量付费。Crush 的 FSL-1.1-MIT 为源码可见许可,不能笼统说所有商业部署都禁止,具体限制应读完整许可。本文 Hermes 提供商、监控脚本、自动降级状态未在本轮做运行验证,也不构成自动启用付费保底的授权。