使用说明
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
