The conflict. The bad rebase. The detached HEAD at 11pm. nit reads the wreck, proposes the fix in plain English, and guarantees you can undo every move.
You signed up to ship. But the mess that matters most doesn't live in a pull request. It lives in the working tree on your machine, and it doesn't care that standup is in ten minutes.
It's not "AI resolves your conflict."
It's AI proposes, and you can always undo it.
An LLM turned loose on a real repo is a data-loss machine. So the product isn't the model. It's the safety layer around it: snapshot first, confirm anything destructive, verify after, roll back on the smallest doubt. That layer is what makes nit safe to point at your work, and what survives a corporate security review.
nit is local-first by design. The half with hands on your repo runs on your machine. The half that reasons about the mess runs in the cloud, and it only ever sees a redacted map of the wreck, never your code.
The only component that ever touches your working tree.
MERGE_HEAD, rebase-apply/, and submodule SHAs into a structured picture.Reasoning and audit. Sees a redacted situation, returns a plan.
Not a promise. A design. Five rules stand between the model and your repo, and none of them are optional.
No mutating operation runs until the vault has a restore point. nit undo is always one command away. If the snapshot can't be taken, nit refuses to act.
Anything destructive (reset --hard, force-push, ref delete) is gated behind an explicit yes. Only clearly-safe moves like a rescue branch or a stash auto-run.
You see the resulting tree and diff before a single byte changes. No surprises, no "trust me."
After each step nit checks the post-state is sane. If it isn't, it rolls back to the vault on its own and tells you which step failed.
The executor runs a fixed set of git operations. It never runs arbitrary shell the model dreamed up. The model advises; it doesn't hold the keys.
Content conflicts sorted out hunk by hunk, with a strategy you approve before it lands.
Stuck mid-rebase with a half-applied stack. nit gets you to a clean continue or a clean abort.
Back onto a real branch without orphaning the work you did while you were adrift.
That commit you thought a reset ate. It's in the reflog. nit finds it and brings it home.
A submodule pointing at a dead SHA. Diagnosed, reported, and re-pointed only when you say so.
Low confidence means nit asks instead of acting. It never guesses a destructive plan.
This isn't a setting you harden later. It's a constraint from day one, and it's the honest answer to "an AI touching our repos." Conflict content is stripped by default. Nothing leaves without your opt-in, and a what-we-send inspector lets you audit the exact payload, byte for byte.
v1 does one job well. Here's the honest edge of it.
v1 is in the shop. Drop a line to hello@nit.fyi to be first through the door.