跳转到主内容
医点 AI医点 AI

OpenCode — 终端 AI 编程助手指南

OpenCode — 终端 AI 编程助手指南

SST 团队打造的开源终端编程助手,支持任意模型提供商,对国内用户最友好。


一、它是什么?

OpenCode 是由 SST(Serverless Stack)团队用 Go 语言开发的开源终端 AI 编程助手。它的核心理念是不绑定任何供应商 —— 你可以用 Claude、GPT、DeepSeek、GLM、Qwen,甚至本地跑的 Ollama 模型。

GitHub 仓库: https://github.com/sst/opencode

最大亮点:

  • 支持任意 OpenAI 兼容 API(国产模型直连无压力)
  • Go 编写,单个二进制文件,无需 Node.js 或 Python
  • 精美的 TUI(终端用户界面),用 Bubble Tea 框架构建

二、安装

2.1 方式一:Go Install

# 需要 Go >= 1.23
go install github.com/sst/opencode@latest
国内用户加速

Go 模块默认从国外下载,配置国内代理:

export GOPROXY=https://goproxy.cn,direct
go install github.com/sst/opencode@latest

其他可用 Go 代理:

  • https://goproxy.cn(七牛维护)
  • https://goproxy.io
  • https://mirrors.aliyun.com/goproxy/

2.2 方式二:Homebrew(macOS / Linux)

brew install sst/tap/opencode

2.3 方式三:下载二进制文件

从 GitHub Releases 下载对应平台的二进制:

https://github.com/sst/opencode/releases

支持的平台:

  • darwin-arm64(macOS Apple Silicon)
  • darwin-amd64(macOS Intel)
  • linux-amd64
  • linux-arm64
  • windows-amd64
国内下载加速

GitHub Releases 下载慢?使用镜像加速:

# 使用 ghproxy 加速
curl -fsSL https://ghproxy.com/https://github.com/sst/opencode/releases/download/vX.X.X/opencode_darwin_arm64.tar.gz -o opencode.tar.gz
tar -xzf opencode.tar.gz
sudo mv opencode /usr/local/bin/

2.4 方式四:一键安装脚本

curl -fsSL https://opencode.ai/install | bash

2.5 方式五:从源码编译

# 国内用户记得设置代理
export GOPROXY=https://goproxy.cn,direct

git clone https://github.com/sst/opencode.git
cd opencode
go build -o opencode .
sudo mv opencode /usr/local/bin/

三、配置

OpenCode 使用项目根目录下的 opencode.json 作为配置文件。

3.1 最简配置

在你的项目根目录创建 opencode.json

{
  "provider": {
    "anthropic": {
      "apiKey": "sk-ant-xxxxx"
    }
  }
}

或者用环境变量:

export ANTHROPIC_API_KEY="sk-ant-xxxxx"
cd your-project
opencode

3.2 支持的内置提供商

提供商环境变量说明
AnthropicANTHROPIC_API_KEYClaude 系列模型
OpenAIOPENAI_API_KEYGPT、o1、o3 系列
GoogleGEMINI_API_KEYGemini 系列
AWS BedrockAWS 凭证通过 AWS 访问 Claude
Azure OpenAIAzure 配置通过 Azure 访问 GPT

四、核心优势:使用国产模型

这是 OpenCode 对国内用户最友好的地方 —— 原生支持任意 OpenAI 兼容 API。

4.1 DeepSeek(推荐首选)

{
  "provider": {
    "deepseek": {
      "apiKey": "sk-your-deepseek-key",
      "baseURL": "https://api.deepseek.com",
      "models": {
        "deepseek-chat": {
          "name": "DeepSeek V3",
          "maxTokens": 8192,
          "contextLength": 64000
        }
      }
    }
  },
  "model": {
    "default": "deepseek/deepseek-chat"
  }
}

4.2 智谱 GLM

{
  "provider": {
    "glm": {
      "apiKey": "your-glm-api-key",
      "baseURL": "https://open.bigmodel.cn/api/paas/v4",
      "models": {
        "glm-4-plus": {
          "name": "GLM-4 Plus",
          "maxTokens": 4096
        },
        "glm-4-flash": {
          "name": "GLM-4 Flash(免费)",
          "maxTokens": 4096
        }
      }
    }
  },
  "model": {
    "default": "glm/glm-4-plus"
  }
}

4.3 通义千问 Qwen

{
  "provider": {
    "qwen": {
      "apiKey": "sk-your-dashscope-key",
      "baseURL": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "models": {
        "qwen-max": {
          "name": "Qwen Max",
          "maxTokens": 8192
        },
        "qwen2.5-coder-32b-instruct": {
          "name": "Qwen 2.5 Coder 32B",
          "maxTokens": 8192
        }
      }
    }
  },
  "model": {
    "default": "qwen/qwen-max"
  }
}

4.4 MiniMax

{
  "provider": {
    "minimax": {
      "apiKey": "your-minimax-key",
      "baseURL": "https://api.minimax.chat/v1",
      "models": {
        "MiniMax-Text-01": {
          "name": "MiniMax Text 01",
          "maxTokens": 4096
        }
      }
    }
  }
}

4.5 硅基流动 SiliconFlow(聚合平台)

一个 Key 用多种开源模型:

{
  "provider": {
    "siliconflow": {
      "apiKey": "sk-your-siliconflow-key",
      "baseURL": "https://api.siliconflow.cn/v1",
      "models": {
        "deepseek-ai/DeepSeek-V3": {
          "name": "DeepSeek V3",
          "maxTokens": 8192
        },
        "Qwen/Qwen2.5-72B-Instruct": {
          "name": "Qwen 2.5 72B",
          "maxTokens": 8192
        }
      }
    }
  }
}

4.6 本地模型(Ollama)

完全离线,不需要任何网络:

{
  "provider": {
    "ollama": {
      "apiKey": "ollama",
      "baseURL": "http://localhost:11434/v1",
      "models": {
        "qwen2.5-coder:32b": {
          "name": "Qwen 2.5 Coder 32B(本地)",
          "maxTokens": 8192
        },
        "deepseek-coder-v2:16b": {
          "name": "DeepSeek Coder V2 16B(本地)",
          "maxTokens": 8192
        }
      }
    }
  }
}
Ollama 安装
# macOS
brew install ollama

# 启动服务
ollama serve

# 拉取模型
ollama pull qwen2.5-coder:32b

五、多模型配置示例

OpenCode 的强大之处在于可以同时配置多个提供商,运行时自由切换

{
  "provider": {
    "deepseek": {
      "apiKey": "sk-deepseek-xxx",
      "baseURL": "https://api.deepseek.com",
      "models": {
        "deepseek-chat": { "name": "DeepSeek V3", "maxTokens": 8192 }
      }
    },
    "glm": {
      "apiKey": "glm-xxx",
      "baseURL": "https://open.bigmodel.cn/api/paas/v4",
      "models": {
        "glm-4-plus": { "name": "GLM-4 Plus", "maxTokens": 4096 }
      }
    },
    "qwen": {
      "apiKey": "sk-qwen-xxx",
      "baseURL": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "models": {
        "qwen-max": { "name": "Qwen Max", "maxTokens": 8192 }
      }
    },
    "ollama": {
      "apiKey": "ollama",
      "baseURL": "http://localhost:11434/v1",
      "models": {
        "qwen2.5-coder:32b": { "name": "本地 Qwen Coder", "maxTokens": 8192 }
      }
    }
  },
  "model": {
    "default": "deepseek/deepseek-chat"
  }
}

在 TUI 中可以直接切换不同模型,无需退出重启。


六、核心功能

功能说明
交互式 TUI精美的终端界面,聊天窗口 + 文件树 + diff 预览
文件操作AI 读写、创建、编辑项目文件
Shell 执行执行命令(需授权)
LSP 集成语言服务协议集成,代码智能提示
Git 感知理解 Git 上下文,可暂存/提交变更
会话管理保存和恢复对话
多提供商运行时切换模型/提供商
MCP 支持Model Context Protocol 扩展
压缩模式自动压缩对话历史以节省 token
开源 MIT完全开源,无遥测

七、四大工具对比

维度OpenCodeClaude CodeCodex CLIGemini CLI
开源MIT不开源Apache 2.0Apache 2.0
语言GoTypeScriptTypeScriptTypeScript
安装单二进制文件需 Node.js需 Node.js需 Node.js
多提供商原生支持任意仅 Anthropic仅 OpenAI 兼容仅 Gemini
国产模型原生支持需配置需配置不支持
本地模型支持 Ollama不支持有限不支持
国内直连可以不可以不可以不可以
TUI 质量精美精美简洁简洁
MCP支持支持不支持支持

八、快速开始

# 1. 安装
brew install sst/tap/opencode
# 或
go install github.com/sst/opencode@latest

# 2. 进入项目目录
cd your-project

# 3. 创建配置(用 DeepSeek 举例)
cat > opencode.json << 'EOF'
{
  "provider": {
    "deepseek": {
      "apiKey": "sk-your-key",
      "baseURL": "https://api.deepseek.com",
      "models": {
        "deepseek-chat": { "name": "DeepSeek V3", "maxTokens": 8192 }
      }
    }
  },
  "model": { "default": "deepseek/deepseek-chat" }
}
EOF

# 4. 运行
opencode

总结

OpenCode 是国内用户最推荐的终端 AI 编程工具。理由:

  1. 国产模型直连 —— DeepSeek、GLM、Qwen 开箱即用,完全不需要代理
  2. 本地模型支持 —— Ollama 一键接入,完全离线可用
  3. 单二进制文件 —— 无需 Node.js,下载即用
  4. 多提供商切换 —— 一个工具用所有模型
  5. 完全开源 —— MIT 协议,无厂商锁定

如果你在国内、不想折腾代理、想用国产模型 —— 选 OpenCode


参考链接

评论

登录 后发表评论
加载评论中...
AI 助手