乐于分享
好东西不私藏

程序员必读!从一键安装到Bun源码编译、终端极致TUI体验,再到任意LLM+Z en模型+GitHub Copilot无缝集成,这是你今年最该星标的开源项目

程序员必读!从一键安装到Bun源码编译、终端极致TUI体验,再到任意LLM+Z en模型+GitHub Copilot无缝集成,这是你今年最该星标的开源项目

一个完全开源、不绑定任何LLM厂商、支持终端、桌面App和VS Code/Zed扩展的AI编码代理。它能自动加载项目LSP(Language Server Protocol)为大模型提供智能上下文,支持多会话并行、分享链接调试,还内置Build和Plan两种代理模式——这不是Cursor的闭源竞品,而是GitHub上已获140,000+星850位贡献者、每月服务650万开发者OpenCode(anomalyco/opencode)!

一、OpenCode简介

OpenCode是开源的AI编码代理(The open source AI coding agent),可在终端(TUI)、桌面App(Beta,支持macOS/Windows/Linux)或IDE扩展中使用。它帮助开发者在项目目录中通过自然语言驱动代码生成、分析、修改和探索。

核心定位:

100%开源,不受任何LLM提供商绑定。

隐私优先:不存储任何代码或上下文数据,适合企业隐私敏感环境。

灵活模型支持:75+ LLM提供商(通过Models.dev)、本地模型、GitHub Copilot、ChatGPT Plus/Pro均可登录使用。推荐Zen Models(官网专页验证过的编码专用模型,保证一致性能)。

多平台:终端TUI(neovim用户主导开发,极致键盘体验)、桌面App、VS Code/Zed SDK。

社区规模:140K星、11K+ commits、850贡献者。

与Claude Code等闭源方案的核心区别:

完全开源 + 提供商无关。

开箱即用的LSP支持。

专注TUI极致体验。

客户端/服务器架构:TUI只是客户端之一,可远程从手机App驱动本地服务器运行代理。

二、核心功能详解

1.两种内置代理(Agents)

Build代理(默认):完整访问权限,可编辑文件、执行Bash命令,适合实际开发工作。

Plan代理(Tab键切换):只读模式,默认拒绝文件编辑,执行Bash前询问许可。完美用于代码探索、规划变更。

General子代理:内部用于复杂搜索/多步任务,可通过@general在消息中调用。

1.LSP智能加载(:自动为LLM加载项目对应的Language Server,提供符号、补全、类型信息等精准上下文,大幅提升代码生成准确性。这是源码中packages/opencode解析器配置(parsers-config.ts支持Kotlin/HCL/Lua/TOML等)的直接体现。

2.多会话并行 + 分享链接:同一项目可启动多个代理会话。/share命令生成可分享链接(示例:https://opencode.ai/s/XXXX),便于团队调试或参考。

3.Undo/Redo + 项目初始化/undo//redo回滚变更;/init命令分析项目结构,生成AGENTS.md文件(仓库根目录也有),帮助模型理解编码规范和架构。

4.自定义扩展:主题、键位、格式化器、自定义命令、配置。

5.桌面App Beta:Electron实现,支持拖拽图片到终端作为设计参考。

源码层面:

packages/opencode:核心包,包含src/(代理逻辑、TUI)、bin/(平台二进制缓存)、migration/(Drizzle ORM SQLite迁移)、Dockerfile

packages/desktop-electrondesktop:桌面实现。

sdks/vscodeextensions/zed:IDE扩展。

packages/shareduiweb:公共组件、UI库、Web前端。

packages/plugin:插件系统。

整体monorepo使用Turborepo(turbo.json)、Bun(bun.lockb + bunfig.toml)、Nix(flake.nix)确保可复现构建。

三、安装方法(官方推荐 vs 高级方式)

最简单一键安装(:

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

支持环境变量自定义路径:

bash
OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash

包管理器安装

npm i -g opencode-ai@latest(或bun/pnpm/yarn)

macOS/Linux:brew install anomalyco/tap/opencode(推荐,最更新)或官方formula

Windows:scoop install opencode或 choco install opencode

Arch Linux:sudo pacman -S opencode或 AUR paru -S opencode-bin

Nix:nix run nixpkgs#opencode或 github:anomalyco/opencode(dev分支)

Docker:docker run -it --rm ghcr.io/anomalyco/opencode

桌面App Beta

官网下载或GitHub Releases:macOS .dmg、Windows .exe、Linux .deb/.rpm/AppImage

Homebrew Cask:brew install --cask opencode-desktop

先决条件(:WezTerm/Alacritty/Ghostty/Kitty等现代终端 + LLM API Key。

四、从源码安装与编译

OpenCode采用Bun + Turborepo monorepo架构,源码安装适合贡献者或需要最新dev功能的用户。

步骤

1.克隆仓库(dev为主分支):

bash
git clone https://github.com/anomalyco/opencode.git   cd opencode

2.安装依赖(Bun 1.3+):

bash
bun install

3.开发模式运行(默认在packages/opencode目录运行代理):

bash
bun dev

若想针对其他项目目录运行,可在dev命令后指定路径。

4.构建生产二进制/桌面App

核心CLI:packages/opencode中有package.jsonscripts(含build),结合script/目录CI脚本和patches/依赖patch。

桌面:packages/desktop-electron使用Electron打包,支持Darwin/Windows/Linux。

全monorepo构建:turbo run build(Turborepo配置)。

Nix可复现环境:nix developnix run

Docker:直接使用仓库根packages/opencode/Dockerfile构建ARM64镜像。

5.其他源码特性

使用Drizzle ORM + SQLite(drizzle.config.ts)处理会话/迁移数据。

TUI语法高亮解析器(parsers-config.ts)。

平台二进制缓存(bin/目录)。

贡献规范:UI/核心特性需设计审查;新provider优先PR到models.dev。

源码安装后,运行opencode命令即可进入TUI,与二进制版完全一致。推荐先阅读CONTRIBUTING.mdpackages/opencode/README.md

五、使用方法与实战案例

1.配置LLM

运行opencode进入TUI → 输入/connect→ 选择provider → 浏览器登录opencode.ai/auth获取API Key并粘贴。

2.项目初始化

bash
cd /your/project   opencode   /init

(生成AGENTS.md)

3.切换代理模式Tab键(右下角显示当前模式)。

4.实战示例(docs原文):

询问代码:

code
How is authentication handled in @packages/functions/src/api/index.ts

Plan模式规划特性(推荐先Plan):

code
When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes...

确认执行(切回Build模式):

code
Sounds good! Go ahead and make the changes.

直接修改:

code
We need to add authentication to the /settings route...

撤销/分享:

code
/undo    或    /share

支持拖拽图片作为参考、自定义键位、格式化器。分享链接支持团队协作。

六、技术原理、架构与实现方式

1. 客户端/服务器架构

TUI/Desktop/IDE仅为客户端,核心逻辑运行在OpenCode Server上。优势:可远程驱动(手机App控制本地服务器)、会话持久、多客户端并行。这是client/server设计的直接实现,源码中packages/opencodepackages/web体现。

2. 代理实现

Build/Plan/General基于相同核心引擎,权限/行为通过配置区分(AGENTS.md定义模块形状)。

工具调用:隐含支持文件读写、Bash执行(Plan模式会询问)、LSP查询。

LSP集成:源码中自动检测项目语言,启动对应LSP服务器,为LLM提供结构化上下文(远超简单prompt)。

3. 模型层

通过providers目录(docs)或Zen Models抽象,支持任意API。

Zen:官方基准测试过的编码专用模型,保证稳定性。

4. TUI实现

packages/opencode/src+ parsers-config.ts实现高性能终端界面(支持复杂语法、动画)。

Bun Shell迁移计划(BUN_SHELL_MIGRATION_PLAN.md)确保跨平台一致性。

5. 其他源码亮点

Drizzle ORM处理持久化(会话、迁移)。

Turborepo加速monorepo构建。

Patches/目录修复第三方bug(如Bun arborist)。

Specs/目录包含会话共享编排等架构规范。

安全性:不存储上下文 + 企业版文档支持。

6. 扩展性

Plugin系统(packages/plugin)。

SDKs for IDE(vscode/zed)。

容器化(containers/ + Dockerfile)。

整个架构追求极致性能 + 灵活性:Bun运行时 + TS + 轻量ORM + 客户端/服务器分离。

OpenCode是一个开源AI编码基础设施。它用客户端/服务器 + LSP + 多代理 + Zen模型,重新定义了“AI写代码”的边界。无论你是终端爱好者、桌面重度用户还是企业开发者,都能找到极致体验。