You commit.
git & fit watches .git/logs/HEAD for new commits. No telemetry, no daemons — just a filesystem watcher inside the extension.
A VS Code extension that suggests a short exercise break after meaningful commits. Built for developers who would rather refactor than rest.
You wrote 4,800 lines today and the only muscle you used was your trapezius, complaining.
git & fit notices when you commit something real, then suggests a 3-minute break.
git & fit watches .git/logs/HEAD for new commits. No telemetry, no daemons — just a filesystem watcher inside the extension.
Trivial commits do not trigger anything. Defaults: 5+ files changed, 200+ lines, 60-min cooldown. Tunable per-repo via .gitnfit.json.
A VS Code notification with three buttons: Do it!, Snooze, Skip. Hit Do it! and a 3–5 minute routine opens inline.
A `chore: typo` commit will not make you do squats. Thresholds default to 5 files / 200 lines and are configurable per repo.
3–5 minute sequences picked from a 20+ exercise library, weighted by where you are in the sprint (warm-up, peak, taper).
Five minutes, 30 minutes, 2 hours, rest of the day, or forever. The extension does not call you "champion" when you snooze.
Zero telemetry, zero network calls, zero accounts. All state in .vscode/ and .git/. Open-source under MIT.
Commit a .gitnfit.json and your whole team gets the same thresholds, intensity, and sprint cadence.
Keyboard shortcuts, ARIA labels, screen-reader support, captions on every exercise video.
Add .gitnfit.json to your repo. Your whole team gets the
same nudges — and you can keep your couch-friendly threshold to
yourself.
{
"detection": { "minFilesChanged": 5, "minLinesChanged": 200, "cooldownMinutes": 60 },
"sprint": { "mode": "fixed-calendar", "lengthDays": 14, "anchorDate": "2026-01-06" },
"routines": {
"durationMinutes": 4,
"intensityByPhase": { "start": "medium", "mid": "medium", "end": "low" }
}
}
No analytics. No "anonymized telemetry". No "phone home for updates".
The extension runs entirely inside your VS Code instance. State lives
in .vscode/ (workspace state) and your repo's
.git/ (commit detection). If you read the source you can
confirm this in about ten minutes.