If that achieves quick COW copies of whole repo and works on Mac OS that's the solution I've been looking for last few weeks. Internets and Claude were insisting that such copies are possible only on Linux via OverlayFS. Seamless switching between unrelated features in the same repo – here I come!
Is it just an experimental tool by opencode team? If there is some article about this tool, I would love to read it. It’s not clear to me why I should use this instead of git worktree.
Currently it just sounds like an alternative to work trees, but with no explanation on how it’s better. Seems early stages, use of btrfs is cool, but unsure why I’d use this right now
git worktree (or any COW snapshot like this) still leaves you reinstalling node_modules per tree and fighting over a dev server port. That's the actual cost, and none of these tools touch it.
So I gave up on parallelizing inside one repo. I run agents across different projects — one repo each — and stay serial within a single project.
you are right, I've experimented with cp -a on macOS as well for https://github.com/madarco/agentbox and in the end found it's actually faster to use worktrees inside docker containers while mounting your .git repo inside them.
Then after the node_modules (or apt packages) are installed, take a docker commit snapshot.
Now I have truly isolated parallel workspaces in <10s.
Also the system was easy to adapt to cloud environments as well so now I have Hetzner, Vercel, Daytona as well (using their native snapshotting systems for fast boot after the initial setup)
CoW doesn't require reinstall of dependencies as they're part of the same directory tree, so should be immediately accessible (I've been using this way for a couple months now and it works fine)
The application running (port config) problem is an issue for frameworks and build tools to figure out around the shift towards multiple live working copies at once
The tools that facilitate this will win imo
I use Laravel Herd along with Polyscope (made by the same company). Together they enable CoW clones with their own dev domains - it's zero setup and works super well for my use-case
I can see a simpler version of the same thing being very neat dev experience across many stacks
Don't see the real reason to use this, as well as readme file is too short and give no actual info what is the better versus existing tools. Can be called Yet another :D ...
I spent some time & tokens starting to work on jujutsu support for opencode. Whose workspace support is so so good. I wonder if JJ does reflink-- maybe gonna go add that, as low hanging fruit.
I wrote something similar with go, but MacOS only.
Creating a worktree became instant, but the bottleneck shifted from that to git needing to build its index. Claude code runs `git status` in the background, meaning any speed gains are instantly gone.
21 comments
[ 0.24 ms ] story [ 55.1 ms ] thread> The JavaScript init function initializes exactly `at`; Git-root selection and `--here` are CLI behavior.
What does this mean? Maybe I'm missing something
Also some of the stuff in this README seems like it should be in comments above/in their respected code blocks.
It also did not tell me why rift is a better alternative. Because it's fast? git worktrees are also fast.
I had some issues regarding that.
https://github.com/anomalyco/opencode/issues/10416
Include closed issues, as some have been closed without resolution.
Then after the node_modules (or apt packages) are installed, take a docker commit snapshot.
Now I have truly isolated parallel workspaces in <10s.
Also the system was easy to adapt to cloud environments as well so now I have Hetzner, Vercel, Daytona as well (using their native snapshotting systems for fast boot after the initial setup)
The application running (port config) problem is an issue for frameworks and build tools to figure out around the shift towards multiple live working copies at once
The tools that facilitate this will win imo
I use Laravel Herd along with Polyscope (made by the same company). Together they enable CoW clones with their own dev domains - it's zero setup and works super well for my use-case
I can see a simpler version of the same thing being very neat dev experience across many stacks
I spent some time & tokens starting to work on jujutsu support for opencode. Whose workspace support is so so good. I wonder if JJ does reflink-- maybe gonna go add that, as low hanging fruit.
Creating a worktree became instant, but the bottleneck shifted from that to git needing to build its index. Claude code runs `git status` in the background, meaning any speed gains are instantly gone.