终端原生IDE

Oxide是一个用Rust构建的终端原生集成开发环境,结合了终端的速度与可组合性以及现代编辑器的用户体验,支持VSCode扩展兼容性和MCP服务器,使LLM代理能够在IDE内部进行操作。

  • by galvaniclabs
  • Rust
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 galvaniclabs/oxide

使用说明

Website · Architecture · Roadmap · Contributing


Oxide是Rust内置的终端原生IDE。它将终端的速度和可组合性与现代编辑器的用户体验相结合——熟悉的键绑定、完全的鼠标支持、VSCode扩展兼容性,以及一个MCP服务器,它为IDE中的任何LLM代理提供了眼睛和手。

Oxide对人类和代理人说同样的语言。因为两者都是通过相同的IDE原语操作的,所以Oxide会跟踪谁编写了每一行代码——是人还是代理——以及为什么。 oxide blame 是 git blame 在AI时代。

无模态编辑。没有配置文件。没有捆绑的人工智能。它只是工作——你的代理也是如此。

为什么

开发人员越来越多地生活在终端中——SSH会话、Claude Code、OpenCode、tmux工作流。但每个终端编辑器要么要求你学习模态编辑,要么强迫你组装50个插件,然后才能提高效率。

同时,LLM编码代理可以读取和写入您的文件,但它们不能设置断点、检查变量、查看差异或运行测试。它们功能强大,但对IDE视而不见。

Oxide解决了这两个问题,并增加了其他人没有的东西:

  • 对于开发者: 终端中具有您已经知道的键绑定的真正IDE
  • 对于LLM代理: 本地主机上的MCP服务器将每个IDE原语(编辑器、诊断、符号、文件)作为任何代理都可以调用的工具公开
  • 对于工作流: 一扇窗户。左边是你的编辑,右边是你的经纪人。共享状态。代理修复了代码,您可以实时看到差异
  • 对于团队: 每一次代码更改都有来源——谁写的(人或代理),如何写的,为什么写的。它与git一起运行,出现在PR中,并让您有信心扩展自主代理

原则

面向大众,而不是终端书呆子。 默认情况下为正常编辑。 Ctrl+S 为了拯救。 Ctrl+Z 撤消。单击以放置光标。如果你想要Vim键绑定,它们是可用的,但它们不是默认的。

我们不拥有人工智能——我们使IDE对任何人工智能都清晰易读。 氧化物不会捆绑LLM。它运行一个MCP服务器,任何代理(Claude Code、OpenCode、Aider)都可以连接到该服务器。代理在自己的进程中运行;氧化物在IDE中赋予了它眼睛和手。

氧化物是单层玻璃。 您的编辑器、文件树和代理终端位于一个窗口中。 Ctrl+L 打开一个真正的终端窗格,运行您选择的代理。代理调用MCP工具,您可以在编辑器中实时查看结果。没有任何禁忌。

一种人类和代理人的语言——有完整的出处。 Oxide对双方都说同样的语言。每次编辑——无论是来自击键还是MCP工具调用——都流经相同的原语。因此,Oxide可以追踪每一行是谁写的,如何写的,以及为什么写。这种来源被记录在会话日志中,在提交时嵌入git中,并通过以下方式在团队中共享 .oxide/traces/.

扩展就是生态系统。 Oxide通过兼容的扩展主机运行VSCode扩展。我们不重写50种语言的语言支持——我们运行已经这样做的扩展。

终端是一个实现细节。 我们说的是“IDE”,而不是“终端编辑器”。终端是我们提供速度和通用访问的方式。这不是身份。

建筑

IDE作为服务器。 氧化物内核是所有IDE状态的真实来源。TUI为人类呈现它。LLM代理通过MCP读取并突变它。相同的工作区、相同的会话、相同的事实——代理调用 ide.editor.goToLine(file, 42) 光标在编辑器中实时移动。

本地主机上的MCP服务器。 Oxide在上运行MCP服务器 localhost:4322 (HTTP+SSE)自动启动。任何与MCP兼容的代理都可以使用零配置进行连接。不需要身份验证——它只是本地主机。

Tmux在引擎盖下。 Oxide使用tmux作为窗格管理的不可见基础架构。 Ctrl+L 拆分运行代理CLI的真实终端窗格。你永远不会看到tmux chrome——Oxide拥有用户体验。

编辑核心。 定制Rust内置。树形图用于语法高亮显示,绳索数据结构用于高效编辑,LSP用于智能感知。

扩展主机。 运行VSCode API兼容性填充程序的单独Node.js进程。扩展程序认为它们在VSCode中运行。通过Unix域套接字上的JSON-RPC进行通信。

来源: oxide blame

Oxide追踪每一行代码的来源。因为人工和代理编辑都通过相同的IDE原语,所以Oxide知道:

  • 谁 --人类(alice)或代理人(agent:claude-code)
  • 如何 --按键、MCP工具调用(ide.editor.replaceRange),或终端命令
  • 为什么 --触发更改的诊断、提示或测试故障

跑 oxide blame 查看丰富的归因:

abc123 (alice, human, keystroke)                              fn auth() {
abc123 (agent:claude, mcp:replaceRange, diagnostic:E0308)       let token = get_token().await?;
def456 (bob, human, keystroke)                                  if token.is_expired() {

来源存储在 .oxide/traces/ 和git一起旅行。评论者在PR中看到了这一点。企业可以回答:“这个代码库中有多少百分比是由代理编写的?”和“每个代理更改都经过人工审查了吗?”

连接您的代理

Oxide的MCP服务器自动启动 localhost:4322.指向您的代理人:

克劳德代码 --添加到您的项目 .mcp.json:

{
  "mcpServers": {
    "oxide": {
      "url": "http://localhost:4322/mcp"
    }
  }
}

任何MCP客户端 --连接到 http://localhost:4322/mcp (HTTP+SSE传输)。

第一阶段可用工具:

工具 说明
ide.editor.getOpenFile() 获取当前聚焦的文件
ide.editor.getOpenFiles() 列出所有打开的文件
ide.editor.getContent(file) 使用可选行范围读取文件内容
ide.editor.goToLine(file, line) 移动光标,滚动视口
ide.editor.replaceRange(file, ...) 编辑代码(在编辑器中突出显示更改)
ide.diagnostics.list(file?) 获取LSP错误和警告
ide.symbols.search(query) 在整个项目中搜索符号
ide.file.list(directory?) 列出工作区中的文件

默认密钥绑定

Oxide船上有熟悉的钥匙扣。没有模式。没有领导钥匙。

操作 密钥绑定
命令面板 Ctrl+Shift+P
快速打开文件 Ctrl+P
保存 Ctrl+S
撤消/恢复 Ctrl+Z / Ctrl+Shift+Z
在项目中查找 Ctrl+Shift+F
转到定义 F12
切换终端 Ctrl+`
开始调试 F5
多光标 Ctrl+D
切换代理窗格 Ctrl+L

可选键盘映射:Vim、Helix、Emacs、Sublime、IntelliJ

路线图

  • [ ] 第一阶段——基础: 编辑器核心、TUI shell、标准键绑定、鼠标、文件树、tmux代理窗格(Ctrl+L)、语法高亮显示、LSP、MCP服务器(本地主机上的8个工具:4322)、扩展主机、来源跟踪(oxide blame, .oxide/traces/)
  • [ ] 第2阶段——IDE电源: DAP调试、diff查看器、git面板、测试运行器、完整的MCP工具模式、IDE到代理SSE事件、内联diff接受/拒绝、嵌入式聊天窗格、多光标
  • [ ] 第三阶段——LLM深度整合: 代理可调用调试器/diff/git/测试、内联建议、双向上下文感知
  • [ ] 第四阶段——企业: 客户端/服务器架构、多用户会话、SSO、审计日志记录、气隙部署

技术栈

组件 技术
核心 生锈
TUI ratatui+交叉项
语法 树保姆
文本缓冲区 绳索
异步 东京
MCP服务器 通过axum的HTTP+SSE
LSP 塔LSP/LSP类型
Git gitoxide
扩展主机 Node.js(独立进程)
扩展IPC 基于Unix域套接字的JSON-RPC
窗格管理 tmux(不可见层)

贡献

氧化物处于早期开发阶段。我们正在培养开放和受欢迎的贡献者。

如果您有兴趣提供帮助,请先阅读 创始文件 了解愿景、架构和技术决策的完整背景。

目前帮助最有价值的领域:

  • 编辑核心 --文本缓冲区、光标管理、选择、撤消/重做
  • TUI布局 --基于ratatui的窗口、面板、命令面板
  • MCP服务器 --基于axum的HTTP+SSE服务器,工具处理程序实现
  • 来源追踪 --会话日志、终端观察者、跟踪编写器, oxide blame
  • Tmux集成 --程序化会话/窗格管理、代理窗格生命周期
  • 树保姆集成 --语法高亮显示、代码折叠
  • VSCode API研究 -映射顶部扩展使用的API曲面

在深入讨论之前,先打开一个问题或讨论来打招呼。

许可证

Apache 2.0——请参阅 许可证


Oxide is built by Galvanic Labs