Top
Best
New

Posted by zdgeier 1 day ago

Show HN: Oak – Git alternative designed for agents(oak.space)
Oak is a version control system I've been working on designed for agents (https://oak.space). It improves the speed and context your agents need when working on serious projects. With virtual mounts, agents locally and in the cloud no longer need a full copy of a repo to get working. You can work on many tasks in parallel without needing to download everything or fight worktrees. Version control shouldn't waste you or your agents time. It should be fast, creative and fun to make things with agents.

Oak is still early in development. There's no Windows build and missing plenty of features (no CI, no issues, no comments). We still use GitHub Actions for building Oak now, but we've been fully bootstrapped on Oak with no Git backup for several months: https://oak.space/oak/oak.

Blog post: https://oak.space/blog#git-is-forever

Docs: https://oak.space/docs

210 points | 183 commentspage 2
sourdecor 1 day ago|
I have always wanted a version control system that was basically Emacs/Vim/Neovim's undo-tree[0] but persistent and social. Why do I have to manually talk to git? You are a computer, track every modification I make while editing and let me decide (or help me decide) on what a checkpoint is.

[0]: https://i.sstatic.net/4vbd9.png

stouset 1 day ago||
Jujutsu might be what you’re looking for then.
LoganDark 1 day ago||
Seconding Jujutsu! I've been working to add Jujutsu support to basically every open-source tool and framework I use, including the agentic ones [0]. While it doesn't work for everyone, I've found it can really work for some people. (like myself)

It's absolutely great for keeping a bunch of exploratory changes alive, quick prototyping, etc. as I tend to do with basically every source I have on my machine. I don't have to think at all about the stuff I hate about git (babying the index, being careful to amend and etc. right the first time because undos are annoying, etc.)

Does not support LFS or submodules though.

[0]: https://github.com/LoganDark/get-shit-done/tree/jj-vcs

tcoff91 1 day ago||
submodules are cursed. LFS support looks to be coming soon in the form of jj ignoring LFS files and just allowing you to use git-lfs to manage them.
steveklabnik 1 day ago|||
Submodules are already that way as well.
y1n0 1 day ago||
Mostly true, but the weird edge case I run into is workspaces. Since they seem to be independent of and not backward compatible with git worktrees, there is no fall back to git for submodules within a workspace.

We still use submodules in a number of places at work so it’s a bit of friction for me. Other than that, I’m rapidly becoming a jj convert.

tcoff91 8 hours ago|||
Try just copying the .git directory into the other workspaces. It's worked great for me when working in repos that have tooling that is coupled to git.
steveklabnik 23 hours ago|||
Ahh, so workspaces don't currently support colocation, aka "put a .git directory in there". So that's what's up there. Interesting corner case! I know upstream is working on it.
tcoff91 8 hours ago||
The repos i work in are hard-coupled to being in a git repo. So in order to make jj workspaces work for me, I've had to do the very hacky thing of literally copying the .git directory into the other workspaces.

It actually works quite well and has never caused me any issues. I tried symlinking but that does not work, git doesn't like the .git being a symlink.

LoganDark 23 hours ago|||
Submodules are cursed, but I like to clone my repos without colocation, but then sometimes find that I need to re-colocate in order to `git submodule update`.

Relatedly, when I use filesystem paths as remotes they need to be colocated or else it doesn't work, which is a little annoying!

iknowstuff 1 day ago||
Zed’s DeltaDB is that very idea I believe

https://zed.dev/deltadb

Imustaskforhelp 1 day ago||
is there some more information about DeltaDB? this seems to be an early access feature and not something available at the moment but I would be interested to learn more about it.

Edit: this was actually announced at a very recent blog post (11 july 2026 so just 11 days ago): https://zed.dev/blog/introducing-deltadb

The blogpost also has some more relevant information as well.

FergusArgyll 1 day ago||
Software is made between commits https://news.ycombinator.com/item?id=48492533 (214 comments)
no_circuit 1 day ago||
My impression with this space is that you'd need to fundraise startup-style, which I'm assuming you'll do, to catch up with everyone that is doing a similar thing.

The problem space and solution has been around for a while in big tech, and now there is a handful known products publicly known, and probably a couple dozen still secret ones. It is just now with AI/agents volume, there probably needs to be an easier solution for quick narrowly focused VCS views.

For filesystem mount, usually FUSE-FS, of a version control system to enable multiple viewers without transferring a lot of data see some current/previous implementations:

- Google: Piper via CitC (Clients in the Cloud) often used with Cider (web IDE)

- Meta: Sapling on EdenFS (from what I read, never worked there)

- Rational Clearcase, anyone else remember mounting VOBs?

The main issue I see is with the site -- it just seems like a big blob of AI-generated text I need to understand what is going on. The cool part wasn't even shown off: your GitHub UI clone that you can get to from seeing the benchmark code.

FYI, I also think the 4-way arrows logo has been used before, and still might be in use. I tried searching, but I think I saw a multi-colored one, maybe in a UK-based IT corporate training company's class I attended.

zdgeier 1 day ago|
Definitely agree and great points. This is going to be a very busy space in the next year. haha I've never used ClearCase but my friend told me about mounting VOBs in ClearCase so I'm excited it bring it back. Thanks for your thoughts!
desmondl 1 day ago||
I would have loved to try locally, but the installer asks me to create an account and I don't want to do that yet.
zdgeier 1 day ago|
Agree we should definitely support offline flow. You can download the binary manually if you would like [1]. Although the offline/self-hosted flow isn't fully tested right now, would love some feedback on it if you're able to check it out!

[1] https://github.com/oakdotspace/oak/releases

danpalmer 22 hours ago||
The focus on speed is interesting here, it's something I think less and less about with agents. I'm not waiting for git operations, and at the rate agents run it's just not a major factor. Agentic development is all about throughput, not latency.

This looks interesting regardless, but I do wonder if the latency focus is the wrong way to sell this.

zdgeier 4 hours ago|
True, I do wonder if we focused more on the parallelism aspect with mounts that it would resonate with people more. Thanks for the thoughts!
CHUNK_CHUNK 22 hours ago||
Interesting to see more dev tools designed specifically for agent workflows. I've been building a local tool that monitors AI agent API calls and costs in real time — the "I have no idea what my agent just did" problem feels like it's only going to get bigger as agentic coding tools spread.
coldstartops 1 day ago||
I am curious, how do you handle latency issues for on demand access? I saw you use FUSE (and FSKit), and from my experience it is pain to make filesystems in userspace work on-demand over WAN because a) latency, and variable RTT; and b) you can't saturate the wire and aggressively read ahead things, otherwise native apps will freeze, lag, or just make the UX unpleasant, especially if there are too many placeholder files, or large files with random jumps in them.
zdgeier 1 day ago|
I think what makes FUSE/FSKit great here is that agents usually only need to see the file metadata + read a handful of actual files, rather than some applications needing read many things. If you're doing huge rewrites, this is a problem, but most tasks are usually somewhat small. Definitely is a problem that I've ran into though, we do cache aggressively to try to solve some of this, but it'll never be as fast as reading/writing directly to disk. We have benchmarks [1] if you want to take a look at how we're testing some of the performance there.

[1] https://oak.space/oak/benchmarks

coldstartops 1 day ago|||
Couldn't run your benchmarks, as I did not create an account, and a bit of a different beast that I am comparing against (P2P distributed filesystem), but these are my numbers and setup, and the on-demand part lines up with what I have observed:

Setup: a Linux box on the other side of Romania (compared to where I am living) reading from a Windows box in Singapore (~200 ms RTT)

- reading 1 MiB of a 1 GB remote file pulls only 16 MiB (~98% avoided) - this is because of my fine tuning optimization choice - first byte approx: 2.3s - git-LFS repos also clone cold over the mount byte-perfect (separate Mac - Linux run on a ~20 ms RTT)

The thing that I do differently is that my metadata is eagerly pushed, as I optimized for content streaming.

And 100k-file tree mounts I did not test yet.

But my goal was to have instant file access for generic files between apps, and peer to peer, supports also Windows :D

here is the tool: https://github.com/KeibiSoft/KeibiDrop

kccqzy 23 hours ago|||
That unfortunately doesn’t match my experience at all. My Claude often runs rg in the repo attempting to find things that need to be changed. And of course Claude still needs to invoke the build tool to ensure the change can be compiled, which necessarily involves reading almost every single file at least for a fresh checkout? Or did you envision the build tool being completely remote?
chadgpt3 1 day ago||
[flagged]
ianm218 1 day ago||
> Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.

From hacker news guidelines https://news.ycombinator.com/newsguidelines.html

booleandilemma 1 day ago||
[dead]
andunie 20 hours ago||
Wait, I clicked and read, but I still don't know what is this about!
zdgeier 20 hours ago|
Happy to describe or answer questions here. It's a version control system (like Git/GitHub) designed for agents. Some specific things that make it different than git are a simplified branching system and networked mounts so you can work on tasks on a repo in parallel.
andunie 13 hours ago||
Sounds good, but isn't that too little to justify moving out of git? Why couldn't this be written on top of git?
drob518 22 hours ago||
Oh, it’s “for agents,” you say. Well, I’m sure that makes all the difference.
zdgeier 4 hours ago|
It's also made for humans as well :) We have some nice TUI stuff in the CLI that you might like. Check it out if you're curious and let me know if you have any thoughts.
Pet_Ant 1 day ago|
What I want from a version system is to capture event in history not like changes as a files but as events that capture a process.

If I split a file in two I still want to be able to see blame correctly for the author of the function, not one file as freshly created and the other with a bunch of deletes. I wish commits could be folded into larger commits so that you can still capture the individual changes but also not see them by default when looking at the history of a file.

Just a more human centric perspective on change history where it captures the way we talk and think about changes.

WolfeReader 1 day ago|
"I wish commits could be folded into larger commits so that you can still capture the individual changes but also not see them by default when looking at the history of a file."

Fossil merges do this. More people need to use Fossil; it's got a ton of great ideas.

"If I split a file in two I still want to be able to see blame correctly for the author of the function, not one file as freshly created and the other with a bunch of deletes."

Now this is a good idea that I've never seen in a VCS.

packetlost 1 day ago||
> "If I split a file in two I still want to be able to see blame correctly for the author of the function, not one file as freshly created and the other with a bunch of deletes." > > Now this is a good idea that I've never seen in a VCS.

There's a reason no one has done that, the VCS would have to have a semantic understanding of what it's tracking. I'm sure that's possible, but I think would see extremely limited success. Honestly, it may have even been done for proprietary languages and VCS systems that have since faded into obscurity.

I'd settle for searching the git history for a particular regex/string and then running a blame on that.

Pet_Ant 1 day ago|||
1) An “easy” way to implement this would be to treat the original file as the parent to both files. You can add a new command “split” if needed to mark the new file as a fork of the existing file.

2) language sensitive version control seems like the next thing. We need like an LSP for VCSes.

mamcx 1 day ago||||
The other way is to make the tool UX do the semantic, ie:

`git split`

Something that I enjoy with jujutsu is that the semantics is the tool itself. ONCE you do that, the rest become easier!

tlb 1 day ago|||
git actually does this. `git diff --find-copies`
Pet_Ant 1 day ago||
If I run blame on the new file the will I see the commits made by the original writers? Will it find the same code if it was written independently? It’s not about find copies it about recording changes to a code base as an artifact and not to files. The closest git has is limited rename support.
tlb 1 day ago||
Yes, if you run `git blame -C`.
WolfeReader 20 hours ago||
I legit did not know this. Thanks!
More comments...