Finally, some space to yourself
- Organizations are verified
- Organizations aren't just weird user-like accounts and spaces can't be squatted.
Claim your organization's space with a DNS TXT record and host your projects there. - All your branches are private by default
- Even for private projects, your team can't see your branches until you want to share them. Think of it like your local disk. Feel safe with your agents keeping all your work here.
- Projects only have one branch
- The main project just has one branch and it can't be written to directly. Every user has a fork and can only write to their and integrate when ready.
Actually social coding.
Share a branch with a peer or an agent and work on it together. You hear when they push, and when your work diverges, there's a clear way through.
Don't be afraid of accidental force-pushes or collaborating on branches together, ever again.
grit pull
grit pull --rebase
or
Ask factory to resolve it
Forget merge queues.
Your coworkers and agents can do trunk-based development, even landing thousands of commits per minute, with post-merge and pre-deploy testing, verification and smart resolution and rollback.
Check out the code, not the history.
grit checkout downloads one snapshot of main, cut down to the paths you need, and builds a normal Git repository around it. Commit as usual. grit checkin grafts your work back onto the real history.
gitbutler.com/grit, approximate sizes.
Slices
Name the parts of a project people work on. Slices live on main, versioned with the code they describe, so every checkout sees the same ones.
[slices.lib] description = "The library everything builds on" paths = ["grit-lib"] [slices.server] description = "Hosting: HTTP server and protocol" paths = ["grit-http-server", "grit-protocol"]
Monorepo first.
Keep every part of a project in one place, and work on just the part you need. Everyone checks out their own corner of the same project, and every change lands on the same main.
- Small checkouts of a big project
- The cli slice is 1,839 files and the server slice is 412. Nobody waits on the parts they never open.
- Give each agent its corner
- An agent fixing the server sees the server, not the whole project. Less to read, less to get wrong.
- One main, one history
- Work from any slice goes back onto the real history, so a change that spans slices is still one pull request.
History as an API.
Ask the server your archaeology questions.
- Better
- It holds the whole history, so blame, log and graph walks are exact even from a one-commit checkout.
- Faster
- One request, and only the answer comes back. No 237 MiB clone to run git log.
- At any scale
- Built to answer across hundreds of millions of commits.
Agent first.
Hand your agent one prompt.
It installs Grit, reads the docs written for agents, and learns where its work goes: its own branches in your private space, proposed back when they're ready.
Git compatible, Grit supercharged.
GitButler Code runs on Grit, a rewrite of Git in Rust from the GitButler team. It reads the same repositories and speaks the same wire protocol, so every Git client you use today just works.
curl -fsSL https://grit-scm.com/install | sh
- Speed
- Performance comes first, measured against real git on large repositories.
- Simplicity
- A smaller, opinionated command line, with the legacy subcommands left behind.
- Built for agents
- Every command answers in plain text, --json or --markdown, so agents read results instead of scraping them.
- Embeddable
- grit-lib is a clean Rust library. Link Git into your own tools, the way GitButler Code does.
Own the domain, own the project.
Prove it with a TXT record and you're its first owner. Owners add members; members integrate. No domain yet? you.gitbutler.dev is already yours.
Add your domain- Name
- _gitbutler-code.gitbutler.com
- Type
- TXT
- Value
- gitbutler-code-verification=<token>