Skip to main content

Documentation Index

Fetch the complete documentation index at: https://theseventeen-2abbdf80.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

keychain-auth ships as a single self-contained binary. Install it on macOS using Homebrew, on Linux using a pre-built binary or your package manager, or on Windows using the released archive. After installation, run keychain-auth start to launch the daemon — your CLI tools can then connect over a local socket.

Install with Homebrew

The recommended way to install on macOS is via the official Homebrew tap:
brew install The-17/tap/keychain-auth
Homebrew installs the binary to /usr/local/bin/keychain-auth (Intel) or /opt/homebrew/bin/keychain-auth (Apple Silicon) and places the launchd plist at io.keychainauth.daemon.plist inside the Homebrew prefix.

Install manually

Download the latest macOS archive from the GitHub releases page, choosing the correct architecture:
ArchitectureArchive name
Apple Silicon (M1/M2/M3)keychain-auth_<version>_darwin_arm64.tar.gz
Intelkeychain-auth_<version>_darwin_amd64.tar.gz
Extract and install:
tar -xzf keychain-auth_<version>_darwin_arm64.tar.gz
sudo mv keychain-auth /usr/local/bin/keychain-auth
sudo chmod +x /usr/local/bin/keychain-auth

Verify the install

keychain-auth --version

Start the daemon

keychain-auth start
The daemon listens on a Unix domain socket at ~/Library/Application Support/keychain-auth/agent.sock. You can override the path at startup:
keychain-auth start --socket /custom/path/agent.sock
Or set the KEYCHAIN_AUTH_SOCKET environment variable before starting.

Run at login with launchd

If you installed via Homebrew, register the daemon to start automatically at login:
brew services start The-17/tap/keychain-auth
For manual installs, copy the included launchd plist from the release archive to your LaunchAgents directory, then load it:
cp io.keychainauth.daemon.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/io.keychainauth.daemon.plist

Confirm the daemon is accepting connections

After starting the daemon, you can check it is listening by running:
keychain-auth list-pending
A response (even an empty list) confirms the daemon is up and reachable. If you see a connection error, verify the socket path matches between the daemon and your client, or check the daemon logs.
The daemon must be running before any client binary can connect. If you stop the daemon, all in-flight connections are closed and pending requests will fail with a connection error.