gity vs Git's Built-in fsmonitor

Git 2.37+ ships its own fsmonitor daemon. Here's what it does, what it doesn't, and when adding gity on top is worth it.

  • #fsmonitor
  • #git
  • #comparison

When to pick gity

  • You want a single daemon to manage many registered repos
  • You need background prefetch and maintenance with a CPU/battery-aware scheduler
  • You have multiple worktrees of the same monorepo and want a shared cache
  • You run CI runners that need short-lived (oneshot) acceleration
  • You want subscribe APIs for IDE integrations

When to pick Native fsmonitor

  • You have a handful of small-to-medium repos
  • You already have `git maintenance start` configured and don't need anything else
  • You want absolute minimum surface area — no extra binary to install
  • You're not running CI / ephemeral environments

TL;DR

Git 2.37 quietly shipped a built-in fsmonitor daemon. For the canonical “make git status fast in this one repo” case, it’s all you need:

git config core.fsmonitor true
git update-index --fsmonitor

Done. No extra install, no extra daemon to manage. git status returns in tens of milliseconds.

gity adds value beyond this baseline:

  • Background maintenance + prefetch on a CPU- and battery-aware scheduler.
  • One daemon for many repos instead of one daemon per repo.
  • Multi-worktree cache sharing.
  • CI oneshot mode.
  • Pub/sub subscribe API for IDEs.

When the built-in is enough

You have a few repos, no CI to worry about, no worktrees, and you’re happy to configure git maintenance start manually on each machine. The built-in daemon is genuinely good for this case.

When gity earns its keep

You manage many repos (or one very large one with many worktrees), you want one tool to handle fsmonitor and prefetch and maintenance with one command, you run ephemeral CI runners, or you want IDEs to subscribe to changes instead of polling.

For deeper details, see our full comparison post.

Frequently asked questions

Is Git's built-in fsmonitor free?

Yes — it's bundled with Git itself since 2.37. No extra install. Enable with `git config core.fsmonitor true` and `git update-index --fsmonitor`.

Why install gity if Git ships its own?

gity adds background `git prefetch` and `git maintenance` on a CPU/battery-aware scheduler, shares status cache across worktrees of the same repo, has CI oneshot mode, and runs a single daemon process for many repos instead of one per repo.

Are they mutually exclusive?

Per-repo, yes — `core.fsmonitor` can be `true` (built-in) or a path to a helper (e.g., gity), not both. You can mix-and-match across repos: gity for your big monorepo, built-in for smaller repos.