Skip to main content

Installation

Choose the installation method that works best for your platform.

Homebrew (macOS and Linux)

1

Install PeonPing

brew install PeonPing/tap/peon-ping
2

Register hooks and download sound packs

peon-ping-setup
This registers hooks in ~/.claude/settings.json and downloads 5 curated sound packs (Warcraft, StarCraft, Portal).
Homebrew is the recommended installation method for macOS and Linux.

Installer script (macOS, Linux, WSL2)

1

Run the installer

curl -fsSL https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.sh | bash
The installer:
  • Registers hooks in ~/.claude/settings.json
  • Downloads sound packs to ~/.claude/hooks/peon-ping/packs/
  • Adds the peon CLI alias to your shell rc file
  • Installs shell completions (bash/fish)

Installer flags

FlagDescription
--allInstall all 165+ available packs
--packs=<list>Install specific packs (comma-separated)
--localInstall into ./.claude/ for current project
--globalExplicit global install (default)
--init-local-configCreate ./.claude/hooks/peon-ping/config.json only
The --local flag installs packs and config into the current project’s ./.claude/ directory, but hooks are always registered globally in ~/.claude/settings.json with absolute paths.

Pick your packs interactively

Visit peonping.com/#picker to browse all 165+ packs with audio previews and get a custom install command.

Windows installer

1

Run the PowerShell installer

Invoke-WebRequest -Uri "https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.ps1" -UseBasicParsing | Invoke-Expression
The Windows installer:
  • Registers hooks for Claude Code and Cursor
  • Downloads sound packs to ~/.claude/hooks/peon-ping/packs/
  • Creates peon.cmd CLI shortcut in ~/.local/bin
  • Installs Claude Code skills

Nix (macOS and Linux)

Run directly from source without installing:
nix run github:PeonPing/peon-ping -- status
nix run github:PeonPing/peon-ping -- packs install peon
Or install to your profile:
nix profile install github:PeonPing/peon-ping

Home Manager module

For declarative configuration:
# In your home.nix or flake.nix
{ inputs, pkgs, ... }: {
  imports = [ inputs.peon-ping.homeManagerModules.default ];

  programs.peon-ping = {
    enable = true;
    package = inputs.peon-ping.packages.${pkgs.system}.default;
    
    settings = {
      default_pack = "glados";
      volume = 0.7;
      enabled = true;
      desktop_notifications = true;
      categories = {
        "session.start" = true;
        "task.complete" = true;
        "task.error" = true;
        "input.required" = true;
        "resource.limit" = true;
        "user.spam" = true;
      };
    };
    
    installPacks = [ "peon" "glados" "sc_kerrigan" ];
    enableZshIntegration = true;
  };
}
This creates ~/.openpeon/config.json and installs specified packs automatically.

Clone and inspect first

If you prefer to inspect the source before running:
1

Clone the repository

git clone https://github.com/PeonPing/peon-ping.git
cd peon-ping
2

Run the installer

./install.sh

Re-running the installer

Re-run the installer to update PeonPing while preserving your config and state:
curl -fsSL https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.sh | bash
The installer detects existing installations and preserves:
  • config.json settings
  • .state.json session data
  • Installed sound packs

Install conflicts

If a global install exists and you install local (or vice versa), the installer prompts you to remove the existing one to avoid conflicts.

Next steps

Quickstart

Get your first notification in under 2 minutes

Sound Packs

Browse and install more sound packs

Build docs developers (and LLMs) love