Skip to content

The background check

dotfix installs a LaunchAgent that runs at login and once an hour. It fetches your repository, compares it against the machine, and writes a single status line — it never installs or removes anything on its own.

A shell fragment prints that line in new terminals when something differs, and prints nothing at all when everything is in sync. It is a file read, not a process, so it costs nothing per tab.

Terminal window
dotfix doctor

The two failures worth naming are both silent otherwise:

A LaunchAgent does not inherit your interactive PATH. It runs with a minimal environment, so a dotfix that works in your terminal can be invisible to the agent. dotfix records the PATH it was installed with; doctor checks it still resolves.

It may not reach your SSH key. An agent has no terminal to unlock a passphrase-protected key. doctor checks that your SSH configuration persists keys in the Keychain (AddKeysToAgent and UseKeychain), and the setup screen can generate a passphrase-less deploy key scoped to the one repository when that is what it takes.

Terminal window
dotfix doctor --install-agent

Useful after moving the dotfix binary, or if setup finished without it — which happens when the command-line tool was not installed at the time.