The Decision You Already Made Twice
You refactored the auth layer six months ago for a reason. Now you can't remember why. The code looks "wrong" to your new self, so you change it back. Three weeks later you remember the reason the hard way.
Grít is a CLI tool that turns your commits into a knowledge base. By introducing small, purposeful friction at the moments that matter - a commit, a dependency, a revert - it captures the thinking behind your code, not just the code itself.
grít is built for the moments that never make it into git history: the wrong turns, the uncertain assumptions, the AI paste you didn't fully internalize, the revert you don't want to talk about.
You refactored the auth layer six months ago for a reason. Now you can't remember why. The code looks "wrong" to your new self, so you change it back. Three weeks later you remember the reason the hard way.
You pasted 50 lines from ChatGPT. It works in tests. You ship it. Two months later it breaks in production and you have no memory of what it was supposed to do or why you trusted it.
You git revert a commit that broke prod. No one writes down what went wrong. No one captures what would have caught it. The same pattern ships again in three sprints.
You open auth.go to fix one thing. Forty minutes later you're somewhere deep in the call stack and the original problem is still open. No breadcrumb. No record. Just fatigue.
handleData, result, tmp — they slip through review because everyone's looking at logic, not names. Six months later no one knows what "data" means in this context.
One conditional became five. Nobody noticed because each addition was "just a small change." Now your cyclomatic complexity is 24 and nobody wants to touch it.
As engineers, we're obsessed with speed. We automate everything to reach zero friction which often leads to zero reflection. grít turns the “moments of resistance” into your most valuable creative signals.
The moment you hesitate is the moment you're actually learning. grít captures the “why” behind the hard decisions before the context disappears into the void.
A deliberate prompt after a large AI paste or a 40-minute rabbit hole isn't a hurdle — it's a guardrail that ensures your codebase remains an intentional investment.
Commit messages document what changed. grít documents what you were thinking. Build a searchable timeline of your evolution as an engineer.
“The best time to document a decision is the moment you're making it.”
“Friction at the right moment is the difference between a commit message and an audit trail.”
No new dashboard. grít lives where the work happens — commits, edits, and end-of-day review. Every signal becomes a searchable note.
grít intercepts the pre-commit hook and asks adaptive, context-aware questions. Large diffs get split-commit prompts. New files get contract questions. Revert commits trigger a full 3-question post-mortem.
Not telemetry. Not a team dashboard. The smallest prompts at the moments that matter — stored locally, queryable anytime.
Small, timely moments of reflection. Every threshold is configurable in .grit.yaml.
≥ 15 new lines added
"Was any of this AI-assisted? What did you verify?"
≥ 30 new lines added
"Did you paste this? Do you fully understand what it does?"
≥ 20 lines deleted
"Wrong turn or intentional cleanup?"
≥ 40 min in same file
"You've been in this file a while. Is the problem still clear?"
Vague identifier detected
"What would a better name be?"
Score > 10.0
Per-function breakdown (informational)
git revert detected
3-question post-mortem
Under a minute to your first logged friction event. Windows users need GCC for SQLite — that's the only gotcha.
# macOS / Linux
go install github.com/alchemistreturns/grit@latest
# Windows (MSYS2 — needed for SQLite/GCC)
pacman -S mingw-w64-ucrt-x86_64-gcc
PATH="/c/msys64/ucrt64/bin:$PATH" \
go install github.com/alchemistreturns/grit@latestFirst build is slower (compiling SQLite). All subsequent builds are instant.
cd your-project
grit initCreates .grit.yaml, .grit/store.db, and installs git hooks. Safe to re-run.
# Terminal 1 — start the watcher
grit watch
# Terminal 2 — commit as usual
git commit -m "feat: add auth"Prompts appear at the right moments. Commits are never blocked — grít always exits 0.
grit reflect # end-of-day summary
grit stats week # 12-week heatmap + tags
grit log # searchable friction logTurn today's friction into a weekly pattern. Export to Markdown any time.