mxkey

Install

Install the mxkey CLI on macOS, plus the bundled agent skill for Claude Code, Cursor, and Codex.

mxkey is macOS only. It wraps /usr/bin/security, which only exists on macOS, so Linux and Windows aren't supported.

brew install bonnard-data/mxkey/mxkey

The single-line form combines brew tap and brew install. Future updates land via brew upgrade mxkey. Or the two-step:

brew tap bonnard-data/mxkey
brew install mxkey

The bundled agent skill is installed at $(brew --prefix)/share/mxkey. Symlink it into your editor to enable:

ln -sfn "$(brew --prefix)/share/mxkey" ~/.claude/skills/mxkey

Manual

git clone https://github.com/bonnard-data/mxkey.git
cd mxkey
bash install.sh

install.sh is idempotent. It:

  1. Checks the OS is macOS (bails otherwise).
  2. Resolves the bundled mxkey script (<repo-dir>/mxkey).
  3. Makes it executable.
  4. Creates ~/.local/bin/mxkey as a symlink to the bundled script.
  5. Verifies ~/.local/bin/ is on PATH (prints a fix snippet if not).
  6. Runs mxkey list as a sanity check.

Verify

which mxkey                # should print ~/.local/bin/mxkey
mxkey --version            # mxkey 1.0.0
mxkey list                 # "(no secrets stored)" on a fresh install

PATH fix

If mxkey: command not found after install, add ~/.local/bin/ to your shell rc:

# zsh (default on macOS)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

# bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# fish
set -U fish_user_paths $HOME/.local/bin $fish_user_paths

Install the agent skill

Drop the repo into your editor's skills directory so Claude Code, Cursor, or Codex can call mxkey on your behalf.

# Claude Code
ln -sfn "$(pwd)" ~/.claude/skills/mxkey

# Cursor (path may differ)
ln -sfn "$(pwd)" ~/.cursor/skills/mxkey

The skill is a symlink to the cloned repo; git pull updates it automatically. See Agent skill.

Uninstall

Just delete the symlink:

rm ~/.local/bin/mxkey

To also wipe stored secrets (nuclear option):

rm -rf ~/.config/mxkey

security dump-keychain login.keychain-db 2>/dev/null \
  | grep -oE 'mxkey\.[^"]+' \
  | sort -u \
  | while read -r svc; do
      security delete-generic-password -s "$svc" >/dev/null 2>&1 || true
    done

On this page