Show HN: Oak – 为AI代理设计的Git替代方案

Hacker News Top 工具

摘要

Oak是一个为AI代理设计的开源版本控制系统,提供每会话分支工作流、内容寻址懒挂载,以及比Git更快的性能。目前处于公开测试阶段,可作为CLI工具和可复用的Rust库使用。

Oak是我一直在开发的、专为AI代理设计的版本控制系统(<a href="https:&#x2F;&#x2F;oak.space" rel="nofollow">https:&#x2F;&#x2F;oak.space</a>)。它提升了代理在处理严肃项目时所需的速度和上下文。通过虚拟挂载,本地和云端的代理不再需要完整克隆仓库即可开始工作。你可以并行处理多个任务,无需下载全部内容或与工作树周旋。版本控制不应浪费你或代理的时间。它应该快速、富有创意,并且让与代理一起构建变得有趣。<p>Oak仍处于早期开发阶段。目前没有Windows版本,且缺少许多功能(无CI、无议题、无评论)。我们仍使用GitHub Actions来构建Oak,但我们已经完全在Oak上自举,且数月没有Git备份:<a href="https:&#x2F;&#x2F;oak.space&#x2F;oak&#x2F;oak" rel="nofollow">https:&#x2F;&#x2F;oak.space&#x2F;oak&#x2F;oak</a>。<p>博客文章:<a href="https:&#x2F;&#x2F;oak.space&#x2F;blog#git-is-forever" rel="nofollow">https:&#x2F;&#x2F;oak.space&#x2F;blog#git-is-forever</a><p>文档:<a href="https:&#x2F;&#x2F;oak.space&#x2F;docs" rel="nofollow">https:&#x2F;&#x2F;oak.space&#x2F;docs</a>
查看原文
查看缓存全文

缓存时间: 2026/06/22 19:35

# oak Source: https://oak.space/oak/oak README.md 95 行 · 3.9 KB 这个仓库是 Oak(https://oak.space/)的开源核心:**为智能体提供速度级别的版本控制**。它作为 Cargo 工作区开发:一个可复用的 VCS 库以及智能体驱动的命令行客户端 `oak`。 带上你自己的智能体(Claude Code, Codex, Cursor, ...);Oak 是它们进行读取、写入、分支和协作的基础。这个基底围绕智能体的实际工作方式设计——以每会话分支(branch-per-session)作为工作单元,用分支描述替代逐次提交消息,以及内容寻址的惰性挂载(lazy mounts),让智能体在数秒内就能编辑任何仓库。由于采用内容寻址并按需加载(hydrates on demand),它在智能体工作负载下比 git 快得多——但速度是设计的结果,而非噱头。 | Crate | Path | crates.io | 说明 | |---|---|---|---| | `oakvcs-core` | `core/` (https://oak.space/oak/core/) | `oakvcs-core` (https://crates.io/crates/oakvcs-core) | VCS 基础:BLAKE3 内容哈希、内容定义的分块、差异/合并、Blob/Manifest/Commit/Tree 数据模型,以及可选的客户端本地仓库(SQLite + git 后端)。 | | `oakvcs-cli` | `cli/` (https://oak.space/oak/cli/) | `oakvcs-cli` (https://crates.io/crates/oakvcs-cli) | 基于 `oakvcs-core` 构建的 `oak` 二进制文件。 | ## 在自有项目中使用库 `oakvcs-core` 可以独立使用——例如,将 Oak 集成到其他工具或引擎中。在关闭默认功能的情况下,仅引入内容寻址数据模型和哈希(无需 SQLite/git): ``` [dependencies] oakvcs-core = { version = "0.99.0", default-features = false } ``` 该包以 `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 发布页面(https://github.com/oakdotspace/oak/releases/latest)获取预构建的 `oak-windows-x86_64.exe`(重命名为 `oak.exe` 并添加到 `PATH`),或者通过 `cargo install oakvcs-cli` 从 crates.io 构建。随后 `oak upgrade` 会原地更新它。 Windows 上的 `oak mount` 使用 **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`(https://oak.space/oak/docs/release-readiness.md)。 ## 许可证 Apache-2.0。参见 LICENSE(https://oak.space/oak/LICENSE)。 ## AI 这个仓库几乎完全由 AI 编写,并有人类监督。如果您发现任何需要修复的问题或有贡献意愿,请发送邮件至 [\[email protected\]](https://oak.space/cdn-cgi/l/email-protection) 或通过 Discord(https://discord.gg/UUPfUaeDnS)联系我们。

相似文章

Show HN:面向AI代理的Git

Hacker News Top

re_gent 是一个开源的版本控制系统,专为AI代理活动设计,记录每一次工具调用及其相关提示,使开发者能够审查和回滚代理的变更。

Grit:用Rust和智能体重写Git

Hacker News Top

本文介绍了Grit,这是一个用Rust重新实现的Git新版本,通过了超过99%的Git测试套件,并且是通过AI智能体创建的。它旨在提供一种基于库、内存安全的替代方案,以取代原版Git。

@itsclelia: I have one big problem with agentic engineering: I want agents to operate autonomously, but I also want granular, rever…

X AI KOLs Timeline

I have one big problem with agentic engineering: I want agents to operate autonomously, but I also want granular, reversible control over every change they make. I could solve this by committing every intermediate step to Git, but that would completely pollute my repo history. So I built 𝗮𝗴𝗴𝗶𝘁: a Git-like CLI for local and remote (S3-backed) agent artifact storage, written in Rust . With aggit, my agents can stash intermediate work, create branches safely, restore previous states, and back