Peon-ping peon-ping-config
Update peon-ping configuration — volume, pack rotation, categories, active pack, and other settings. Use when user wants to change peon-ping settings like volume, enable round-robin, add packs to rotation, toggle sound categories, or adjust any config.
install
source · Clone the upstream repo
git clone https://github.com/PeonPing/peon-ping
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/PeonPing/peon-ping "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/peon-ping-config" ~/.claude/skills/peonping-peon-ping-peon-ping-config && rm -rf "$T"
manifest:
skills/peon-ping-config/SKILL.mdsource content
peon-ping-config
Update peon-ping configuration settings.
Config location
The config file is at
${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hooks/peon-ping/config.json.
Available settings
- volume (number, 0.0–1.0): Sound volume
- default_pack (string): Current sound pack name (e.g.
,"peon"
,"sc_kerrigan"
). Legacy key"glados"
is also accepted as a fallback.active_pack - enabled (boolean): Master on/off switch
- pack_rotation (array of strings): List of packs to rotate through per session. Empty
uses[]
only.default_pack - pack_rotation_mode (string):
(default) picks a random pack each session."random"
cycles through in order."round-robin"
uses explicit per-session assignments from"session_override"
; invalid or missing packs fall back to/peon-ping-use
and the stale assignment is removed. Legacy valuedefault_pack
is accepted as an alias."agentskill" - categories (object): Toggle individual CESP sound categories:
,session.start
,task.acknowledge
,task.complete
,task.error
,input.required
,resource.limit
— each a booleanuser.spam
- annoyed_threshold (number): How many rapid prompts trigger user.spam sounds
- annoyed_window_seconds (number): Time window for the annoyed threshold
- silent_window_seconds (number): Suppress task.complete sounds for tasks shorter than this many seconds
- session_ttl_days (number, default: 7): Expire stale per-session pack assignments older than N days (when using session_override mode)
- desktop_notifications (boolean): Toggle notification popups independently from sounds (default:
)true - use_sound_effects_device (boolean): Route audio through macOS Sound Effects device (
) or default output via afplay (true
). Only affects macOS. Default:falsetrue
How to update
- Read the config file using the Read tool
- Edit the relevant field(s) using the Edit tool
- Confirm the change to the user
Common Configuration Examples
Disable desktop notification popups but keep sounds
User request: "Disable desktop notifications"
Action: Set
desktop_notifications: false in config
Result:
- ✅ Sounds continue playing (voice reminders)
- ❌ Desktop notification popups suppressed
- ✅ Mobile notifications unaffected (separate toggle)
Alternative CLI command:
peon notifications off # or peon popups off
Adjust volume
User request: "Set volume to 30%"
Action: Set
volume: 0.3 in config
Enable round-robin pack rotation
User request: "Enable round-robin pack rotation with peon and glados"
Action: Set:
{ "pack_rotation": ["peon", "glados"], "pack_rotation_mode": "round-robin" }
Directory pack bindings
Permanently associate a sound pack with a working directory so every session in that directory uses the right pack automatically. Uses the
path_rules config key (array of { "pattern": "<glob>", "pack": "<name>" } objects).
CLI commands
# Bind a pack to the current directory peon packs bind <pack> # e.g. peon packs bind glados # → bound glados to /Users/dan/Frontend # Bind with a custom glob pattern (matches any dir with that name) peon packs bind <pack> --pattern "*/Frontend/*" # Auto-download a missing pack and bind it peon packs bind <pack> --install # Remove binding for the current directory peon packs unbind # Remove a specific pattern binding peon packs unbind --pattern "*/Frontend/*" # List all bindings (* marks rules matching current directory) peon packs bindings
Manual config
The
path_rules array in config.json can also be edited directly:
{ "path_rules": [ { "pattern": "/Users/dan/Frontend/*", "pack": "glados" }, { "pattern": "*/backend/*", "pack": "sc_kerrigan" } ] }
Patterns use Python
fnmatch glob syntax. First matching rule wins. Path rules override default_pack and pack_rotation but are overridden by session_override assignments.
List available packs
To show available packs, run:
bash "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/peon-ping/peon.sh packs list