whatisgithub

What is moo?

heyito/moo — explained in plain English

Analysis updated 2026-05-18

77RustAudience · developerComplexity · 4/5Setup · moderate

In one sentence

Gives every git branch or coding agent its own isolated Linux machine whose full runtime state is saved and restored per commit.

Mindmap

mindmap
  root((moo))
    What it does
      Per commit machine state
      Isolated Linux machines
      Agent friendly workflow
    Tech stack
      Rust
      macOS Apple Silicon
      Linux microVM
    Use cases
      Parallel coding agents
      Restore state on checkout
      Per branch environments
    Audience
      Developers
      Coding agent builders
      DevOps engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run several coding agents against the same repo without their databases, ports, or services colliding.

USE CASE 2

Check out an old commit and have the database and installed packages match that exact point in history.

USE CASE 3

Give each git worktree its own fully provisioned Linux machine that forks in under a second.

USE CASE 4

Open a clickable desktop inside an isolated machine over VNC to inspect a running app.

What is it built with?

RustmacOS Apple SiliconLinux microVMHomebrew

How does it compare?

heyito/moo77wilnd/aemeath_withclaudeazw413/glass
Stars777779
LanguageRustRustRust
Setup difficultymoderatemoderatemoderate
Complexity4/53/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires an Apple Silicon Mac and Homebrew, Linux hosts are not yet supported and the snapshot format may still change.

So what is it?

moo gives every git branch, worktree, or coding agent attempt its own isolated Linux machine, complete with database, ports, packages, and services, and it saves that machine's state per commit so checking out old code restores the matching runtime. The README's line for it: git versions files, moo versions the machine. The problem it targets is running several coding agents against one repository at once. A git worktree isolates files, but the database, environment variables, installed packages, and running services still collide between them. Teams often patch this with a stack of separate tools: worktrees, a port-offset script.env symlinks, a database-per-branch tool, and Docker Compose project-name hacks. moo replaces that stack with two commands, git worktree add followed by moo new, and gives each machine full copy-on-write isolation as a lightweight Linux microVM that can fork in under a second. The whole tool is one noun, the machine, and four verbs. moo new creates or restores a machine, booting a saved snapshot for the current commit if one exists, or the live state, or a fresh copy from the base image. moo run executes a command inside the machine with behavior similar to docker exec, keeping started services running between calls. moo save snapshots the machine's state and tags it with the current commit, acting like a git commit for the runtime. moo drop destroys a live machine while its saved snapshots survive unless explicitly removed. The working tree also follows automatically: tracked and untracked-but-not-ignored files sync into the machine, while gitignored files like node_modules are left untouched. Installation is a signed prebuilt binary fetched with a shell script, requiring an Apple Silicon Mac and Homebrew, with a from-source path that additionally needs Rust. The project also ships four Claude Code or Cursor agent skills that teach a coding agent the full workflow, and an optional headless desktop can be provisioned inside a machine over VNC. The tool is currently alpha, macOS Apple Silicon only, with Linux hosts planned and the snapshot format still subject to change before a 1.0 release.

Copy-paste prompts

Prompt 1
Explain how moo's four verbs, new, run, save, and drop, map onto git commands I already know.
Prompt 2
Walk me through installing moo and setting up a golden image and base machine for my project.
Prompt 3
How does moo decide whether to boot a saved snapshot, live state, or a fresh machine when I run moo new?
Prompt 4
Help me set up moo so each of my coding agent's git worktrees gets its own isolated machine.

Frequently asked questions

What is moo?

Gives every git branch or coding agent its own isolated Linux machine whose full runtime state is saved and restored per commit.

What language is moo written in?

Mainly Rust. The stack also includes Rust, macOS Apple Silicon, Linux microVM.

How hard is moo to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is moo for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.