Show HN:Oak--专为代理设计的 Git 替代方案
专为 AI 代理打造的全新版本控制工具,分支作为会话单元、内容寻址懒加载,设计直接摆脱了 git 的包袱,用 agent 的开发者值得一试。
Oak 是开源版本控制系统,专为 AI 智能体(Claude Code、Codex、Cursor)设计。采用 BLAKE3 内容哈希、内容定义分块、diff/merge 及 Blob/Manifest/Commit/Tree 数据模型,可选 SQLite 和 git 后端。以分支-会话为基本工作单元,用分支描述替代逐次提交,通过内容寻址懒加载使智能体数秒内编辑任意仓库。速度远超 git。已发布公开测试版 v0.99.0,支持 macOS(Apple Silicon)、Linux(x86_64)及 Windows,可通过 curl 或 cargo 安装,Apache-2.0 开源。
Oak
这个仓库是 Oak 的开源核心:专为智能体速度设计的版本控制系统。它以 Cargo workspace 的形式开发,包含一个可复用的 VCS 库以及供智能体驱动的 oak 命令行客户端。
自带你的智能体(Claude Code、Codex、Cursor 等);Oak 是它们读取、写入、分支和协作的基础。底层架构围绕智能体的实际工作方式设计——以每个会话一个分支作为工作单元,用分支描述替代每次提交的消息,以及内容寻址的懒加载挂载,让智能体在数秒内即可编辑任何仓库。由于采用内容寻址并按需加载,它在智能体工作负载上远比 git 快得多——但速度是设计的结果,而非卖点。
| Crate | 路径 | crates.io | 它是什么 |
|---|---|---|---|
| oakvcs-core | core/ | oakvcs-core | VCS 基础:BLAKE3 内容哈希、内容分块、差异/合并、Blob/Manifest/Commit/Tree 数据模型,以及可选的客户端本地仓库(SQLite + git 后端)。 |
| oakvcs-cli | cli/ | oakvcs-cli | 基于 oakvcs-core 构建的 oak 二进制程序。 |
在自己的项目中使用该库
oakvcs-core 可以独立使用——例如,将 Oak 集成到另一个工具或引擎中。只需关闭默认特性,引入内容寻址数据模型和哈希(无需 SQLite/git):
[dependencies]
oakvcs-core = { version = "0.99.0", default-features = false }
该 crate 以 oakvcs-core 发布,但以 oak_core 导入。
当你还需要磁盘上 Repository(SQLite + 只读 git)后端时,请添加默认的 local-repo 特性。
安装 CLI
Oak 正处于公开测试阶段(v0.99.0)。最快的使用方式是预编译的 oak 二进制程序:
curl -fsSL oak.space/install | sh
安装程序支持 macOS(Apple Silicon)和 Linux(x86_64)。安装后,运行 oak upgrade 可原地更新二进制程序。
Windows (x86_64)
curl … | sh 安装程序仅适用于 Unix。在 Windows 上,请从最新的 GitHub 发布版中获取预编译的 oak-windows-x86_64.exe(将其重命名为 oak.exe 并放入 PATH),或通过 cargo install oakvcs-cli 从 crates.io 构建。之后 oak upgrade 可原地更新。
oak mount 在 Windows 上使用 Projected File System(ProjFS),这是一个可选的 Windows 功能。请在提升权限的 PowerShell 中,每台机器启用一次:
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
或者(设置 → 应用 → 可选功能 → "Windows Projected File System")。其他一切操作——clone、push、pull、commit——无需它即可正常工作。
更倾向于从 crates.io 构建?改用 Cargo 安装(适用于 macOS、Linux 和 Windows——TLS 栈使用 rustls + ring,因此无需 C/NASM 构建工具链):
cargo install oakvcs-cli # builds and installs the `oak` binary
从源代码构建
cargo build --workspace # builds oak-core + the oak binary
cargo test -p oakvcs-cli # CLI tests (incl. wiremock HTTP tests)
make build # release build + the CLI release tooling
make release-proof # non-mutating launch/release readiness proof
CLI 通过工作区内的本地路径依赖 oak-core,因此直接执行 `cargo build` 即可基于本地的 `core/` 检出进行构建,无需额外设置。关于发布验证和 crates.io 发布顺序检查,请参阅 `docs/release-readiness.md`。
许可证
Apache-2.0。详见 LICENSE。
AI
本仓库几乎完全使用 AI 编写,并辅以人工审核。如果你发现任何需要修复的内容或希望贡献代码,请发送邮件至 [email protected] 或在 Discord 上联系我们。
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 | |
| 35 | |
| 36 | |
| 37 | |
| 38 | |
| 39 | |
| 40 | |
| 41 | |
| 42 | |
| 43 | |
| 44 | |
| 45 | |
| 46 | |
| 47 | |
| 48 | |
| 49 | |
| 50 | |
| 51 | |
| 52 | |
| 53 | |
| 54 | |
| 55 | |
| 56 | |
| 57 | |
| 58 | |
| 59 | |
| 60 | |
| 61 | |
| 62 | |
| 63 | |
| 64 | |
| 65 | |
| 66 | |
| 67 | |
| 68 | |
| 69 | |
| 70 | |
| 71 | |
| 72 | |
| 73 | |
| 74 | |
| 75 | |
| 76 | |
| 77 | |
| 78 | |
| 79 | |
| 80 | |
| 81 | |
| 82 | |
| 83 | |
| 84 | |
| 85 | |
| 86 | |
| 87 | |
| 88 | |
| 89 | |
| 90 | |
| 91 | |
| 92 | |
| 93 | |
| 94 | |
| 95 | |