Commit. Stretch.
Commit again.

A VS Code extension that suggests a short exercise break after meaningful commits. Built for developers who would rather refactor than rest.

43 seconds. Commit, get nudged, do a push-up, get back to coding.

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.

How it works

1

You commit.

git & fit watches .git/logs/HEAD for new commits. No telemetry, no daemons — just a filesystem watcher inside the extension.

2

It checks if it counts.

Trivial commits do not trigger anything. Defaults: 5+ files changed, 200+ lines, 60-min cooldown. Tunable per-repo via .gitnfit.json.

3

You get a nudge.

A VS Code notification with three buttons: Do it!, Snooze, Skip. Hit Do it! and a 3–5 minute routine opens inline.

Features

Triggers on real commits

A `chore: typo` commit will not make you do squats. Thresholds default to 5 files / 200 lines and are configurable per repo.

Tailored routines

3–5 minute sequences picked from a 20+ exercise library, weighted by where you are in the sprint (warm-up, peak, taper).

Snooze without guilt

Five minutes, 30 minutes, 2 hours, rest of the day, or forever. The extension does not call you "champion" when you snooze.

Privacy first

Zero telemetry, zero network calls, zero accounts. All state in .vscode/ and .git/. Open-source under MIT.

Per-repo config

Commit a .gitnfit.json and your whole team gets the same thresholds, intensity, and sprint cadence.

Accessible by default

Keyboard shortcuts, ARIA labels, screen-reader support, captions on every exercise video.

Configure once,
the whole team benefits.

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 data leaves your machine.

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.

Read the source on GitHub →

20+
exercises
MIT
license
0
telemetry endpoints

Questions

Will this annoy me?
No. Thresholds default to 5 files / 200 lines / 60-min cooldown. A typical day fires 1–3 nudges. Snooze for the rest of the day if you are shipping.
Does it work without an internet connection?
Yes. All data local, no servers involved at any point.
Does it work outside VS Code?
Not yet. JetBrains and Neovim adapters are planned (gitnfit-core is editor-agnostic by design).
Can I add my own exercises?
Yes. Drop a custom-exercises block in your .gitnfit.json.
What if I have a wrist injury / knee injury / cannot get on the floor?
Toggle wristSensitive, kneeSensitive, or avoidFloor in your fitness profile. The planner excludes incompatible exercises.
Is it free?
Yes, MIT-licensed. No paid tier planned.
Does it require git?
Yes. The trigger is git commit. Workspaces without a .git/ directory get a no-op.
What does the name mean?
git + fit. We are not subtle.

Get back some hip flexion.

Install on VS Code Marketplace

Free · MIT · No account required