Computer commands
After install, Pairfob runs in the background. Typing pairfob with no subcommand in a terminal prints status and exits: running or not, how many devices, whether Herdr is open. If it is not running, the command prints recovery advice and exits non-zero.
Pairfob is running.
1 device paired.
Herdr is on.
pairfob pair pair a device
pairfob list what's paired
pairfob doctor full checkIf it is not running, follow the suggested service command, or use pairfob run for foreground use. Sleep and logout stop the login service until you are back in that session.
Daily commands
pairfob pair # pair a phone, tablet, or another computer
pairfob list # paired devices
pairfob forget 1 # unpair #1 (index from list)
pairfob doctor # local checklist
pairfob run # foreground daemon
pairfob update # latest binary and restart the user service
pairfob version
pairfob helpforget also accepts a device name; collisions require the index. unpair is an alias of forget.
pairfob machine list shows the SSH machines Herdr has saved on this computer, and pairfob machine link NAME pairs a device with one of them. See Machines Herdr reaches over SSH.
setup
pairfob setup installs the latest stable Herdr when missing, starts it when needed and verifies its API. --no-install-herdr disables downloads; --non-interactive does not disable dependency installation. Existing installations are reused. doctor remains diagnostic. Use pairfob setup --update-herdr for a Pairfob-managed runtime update; see Herdr updates.
doctor
Pairfob <version>
Installed <version>
Process <version> (PID 1234)
Running yes
Paired 1
Herdr ready (0.8.2, protocol 20)
P2P on
Origin pairfob.com| Field | Healthy | When it is not |
|---|---|---|
| Running | yes | service not installed → pairfob service install; service stopped → pairfob service start; service running but not answering → pairfob service restart; status unavailable → pairfob service status |
| Paired | ≥ 1 | Nothing paired yet. Run pairfob pair |
| Herdr | ready | not installed / installed but not running / incompatible server / unavailable |
| P2P | on | off means this computer is relay-only (PAIRFOB_P2P=0); unknown clears after a restart |
| Origin | pairfob.com | Not enrolled |
doctor exits non-zero when Running or Herdr is unhealthy, so scripts can branch on it.
Installed describes this command's version; Process describes the daemon answering local requests. A mismatch calls for pairfob service restart. Very old daemons cannot report their actual version; the phone shows it as unknown instead of treating the old 0.1.0 placeholder as a release.
Service
The installer puts a user service in place. doctor and the not-running status suggest the matching install, start, restart, or status command without changing the service. For foreground use, run pairfob run. Typing pairfob in a terminal only shows status; login services still start the daemon the same way as before. When you need to touch the service:
pairfob service status
pairfob service restart
pairfob service stop
pairfob service start
pairfob service uninstall
pairfob service installPush environment variables are not written into the service file automatically. See Notifications.
Update
pairfob updateReplaces the binary and restarts an installed user service. Do not rerun install.sh to update. Hosted binaries use SemVer (pairfob version); the site build stamp is separate.
Even when the file is already current, the command verifies the responding daemon's version and image against the user service's PID. Install and restart also wait for the matching daemon to stay ready before reporting success. An independent old daemon is stopped only when its user, executable and state directory can be verified; otherwise the command identifies the conflict for manual resolution. Pairings are preserved.
Downloads report bytes received and retry once after a transient failure. Each attempt allows ten minutes total, with a 45-second limit without progress. SHA-256 verification still runs before replacement. If a proxy repeatedly stalls, inspect the terminal's proxy configuration; the updater does not change it.
The phone checks for new computer versions and shows an update reminder. In Settings, supported service-managed installations offer Update to v… with the new version in its name. Confirming briefly disconnects the phone while the verified binary starts; completion is shown only after the running version is confirmed. Failed startup can restore the previous binary. Older daemons require one manual pairfob update to enable this flow. Updates are never installed automatically.
Advanced (omitted from default help)
Still available for automation and debugging:
| Command | Use |
|---|---|
pairfob pair new | Open pairing and print the code; no interactive confirm |
pairfob pair accept / deny | Confirm or refuse without Enter |
pairfob enroll | Retry enroll. The installer already does this |
pairfob relay rekey | Rotate the reconnect credential |
pairfob device revoke <id> | Revoke by device id (forget N is the usual path) |