Your Mac as a key fob — SSH keys that live in the Secure Enclave, open only the doors they're badged for, and take one touch to use.
Zero dependencies · macOS 13+ · open source (AGPL-3.0)
to git@github.com · requested by ssh
Touch ID or enter your password
The private key is generated inside the Secure Enclave and never leaves it — what's on disk is an enclave-wrapped blob that's useless anywhere else. No key file to steal, back up, or leak.
Non-exportable. Nothing usable on disk, in memory, or in a backup.
Every fresh signature needs Touch ID, Apple Watch, or your password.
See where you're connecting — cryptographically verified, not guessed.
A key refuses every host but the one it's bound to. A stolen socket can't redirect it.
One touch can cover a quick git / rsync burst. Off by default.
Sign git commits from the enclave; GitHub & GitLab show Verified.
Moves an existing SSH host to fob alongside the old key — no cutover, no lockout.
A read-only hygiene report of your ~/.ssh: weak keys, risky config, footguns.
A hash-chained record of every decision — so key use is never silent.
Live activity feed, guided setup, and a scriptable fob command.
fob is a presence-gated key store — an ssh-agent that signs only with your finger, for the host you meant.
The Touch ID prompt names the verified host — fob checks the session-bind host-key signature and resolves the name from known_hosts. Unknown clients show as "an UNKNOWN destination."
A pinned key is refused for any other destination before any prompt, so a blocked request never costs a touch.
fob pin mykey myhostLet one approval cover the next few seconds of signatures — reused ones are still pin-checked, notified, and audited.
fob reuse mykey 30Every decision is appended to ~/.fob/audit.log as a SHA-256 hash chain you can verify.
fob audit --verifyInstall, open fob from the menu bar, and point one host at it. Your existing keys keep working the whole time.
brew install --cask olivierzol/fob/fob
Then open fob from the menu bar and turn on “Launch at login”.
fob setup myserver you@host
Creates a Secure Enclave key, installs it, and writes your ~/.ssh/config.
ssh myserver # prompts for Touch ID, then connectsfob is a presence-gated key store, not a sandbox around your own logged-in session. Here's exactly what that buys you — and what it doesn't.
ProxyJump over ForwardAgent.Two independent audits (findings resolved) + a regression suite are in SECURITY_AUDIT_REPORT.md.