/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.
$ npx -y skills add PeonPing/peon-ping --skill peon-ping-config --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/peon-ping-config
Context preview
The summary Claude sees to decide when to auto-load this skill.
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.
SKILL.md
peon-ping-config.SKILL.mdname: peon-ping-config
description: 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.
user_invocable: false
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"`, `"glados"`). Legacy key `active_pack` is also accepted as a fallback.
- **enabled** (boolean): Master on/off switch
- **pack_rotation** (array of strings): List of packs to rotate through per session. Empty `[]` uses `default_pack` only.
- **pack_rotation_mode** (string): `"random"` (default) picks a random pack each session. `"round-robin"` cycles through in order. `"session_override"` uses explicit per-session assignments from `/peon-ping-use`; invalid or missing packs fall back to `default_pack` and the stale assignment is removed. Legacy value `"agentskill"` is accepted as an alias.
- **categories** (object): Toggle individual CESP sound categories:
- `session.start`, `task.acknowledge`, `task.complete`, `task.error`, `input.required`, `resource.limit`, `user.spam` — each a boolean
- **disabled_sounds** (object): Disable specific sound files within a pack, keyed by pack name → category → array of filenames (basenames). Example:
"disabled_sounds": {
"peon": { "session.start": ["Hello1.wav"] }
}If every sound in a category is listed, that category stays silent. Prefer the CLI:
peon sounds list [pack]
peon sounds disable <category> <file> [--pack=<name>]
peon sounds enable <category> <file> [--pack=<name>]
- **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 (`true`) or default output via afplay (`false`). Only affects macOS. Default: `true`
How to update
1. Read the config file using the Read tool 2. Edit the relevant field(s) using the Edit tool 3. 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 listRead more
name: peon-ping-config description: 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. user_invocable: false
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"`, `"glados"`). Legacy key `active_pack` is also accepted as a fallback.
- **enabled** (boolean): Master on/off switch
- **pack_rotation** (array of strings): List of packs to rotate through per session. Empty `[]` uses `default_pack` only.
- **pack_rotation_mode** (string): `"random"` (default) picks a random pack each session. `"round-robin"` cycles through in order. `"session_override"` uses explicit per-session assignments from `/peon-ping-use`; invalid or missing packs fall back to `default_pack` and the stale assignment is removed. Legacy value `"agentskill"` is accepted as an alias.
- **categories** (object): Toggle individual CESP sound categories:
- `session.start`, `task.acknowledge`, `task.complete`, `task.error`, `input.required`, `resource.limit`, `user.spam` — each a boolean
- **disabled_sounds** (object): Disable specific sound files within a pack, keyed by pack name → category → array of filenames (basenames). Example:
"disabled_sounds": {
"peon": { "session.start": ["Hello1.wav"] }
}If every sound in a category is listed, that category stays silent. Prefer the CLI:
peon sounds list [pack] peon sounds disable <category> <file> [--pack=<name>] peon sounds enable <category> <file> [--pack=<name>]
- **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 (`true`) or default output via afplay (`false`). Only affects macOS. Default: `true`
How to update
1. Read the config file using the Read tool 2. Edit the relevant field(s) using the Edit tool 3. 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 listGame character voice lines + visual overlay notifications when your AI coding agent needs attention — or let the agent pick its own sound via MCP. AI coding agents don't notify you when they finish or need permission.
Repo: PeonPing/peon-ping
Other skills on peon-ping.
- /peon-ping-log
Log exercise reps for the Peon Trainer. Use when user says they did pushups, squats, or wants to log reps. Examples - "/peon-ping-log 25 pushups", "/peon-ping-log 30 squats", "log 50 pushups".
Open skill - /peon-ping-rename
Rename the current Claude session for peon-ping notifications and terminal tab title. Use when user wants to give this session a custom name like "/peon-ping-rename Auth Refactor". Call with no argument to reset to auto-detect.
Open skill - /peon-ping-toggle
Toggle peon-ping sound notifications on/off. Use when user wants to mute, unmute, pause, or resume peon sounds during a Claude Code session. Also handles config changes like volume, pack rotation, categories — any peon-ping setting.
Open skill - /peon-ping-use
Set which voice pack (character voice) plays for the current chat session. Automatically enables session_override rotation mode if not already set. Use when user wants a specific character voice like GLaDOS, Peon, or Kerrigan for this conversation.
Open skill

