Skip to content
Hooks
Skill

/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.

From plugin
peon-ping
5.1k7 skills

Claude Code

$ npx -y skills add PeonPing/peon-ping --skill peon-ping-config --agent claude-code

SKILL.md

peon-ping-config.SKILL.md
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 list
Read more
@peonping
Ships withpeon-ping

Game 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.

Stars on GitHub

Momentum

stars in total
5.1k
Star history of PeonPing/peon-ping on GitHub, a chart by star-history.com

Other skills on peon-ping.

peon-ping-create-pack

peon-ping-create-pack

Internal — invoked headlessly by `peon create`; humans should run `peon create` instead. Author and render a brand-new PeonPing…

@peonping@peonpingInstall Skill
peon-ping-log

peon-ping-log

Log exercise reps for the Peon Trainer. Use when user says they did pushups, squats, or wants to log reps. Examples -…

@peonping@peonpingInstall Skill
peon-ping-remix

peon-ping-remix

Internal — invoked headlessly by the peon eval server; humans should run `peon eval <pack>` instead. Execute one PeonPing reroll…

@peonping@peonpingInstall Skill
peon-ping-rename

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…

@peonping@peonpingInstall Skill
peon-ping-toggle

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…

@peonping@peonpingInstall Skill
peon-ping-use

peon-ping-use

Set which voice pack (character voice) plays for the current chat session. Automatically enables session_override rotation mode…

@peonping@peonpingInstall Skill

More skills from other plugins.

stop-that-shit

stop-that-shit

Complete requested work while preventing speculative defenses and scope creep. Use when considering extra hardening, reviewing…

@lennney@lennneyInstall Skill
prompt-improver

prompt-improver

This skill enriches vague prompts with targeted research and clarification before execution. Should be used when a prompt is…

@severity1@severity1Install Skill
add-command

add-command

Add support for a new CLI command. Use when implementing a handler or adding to SIMPLE_SAFE.

dippy5mo243
@ldayton@ldaytonInstall Skill
cute-claude-hooks

cute-claude-hooks

为 Claude Code 提供完整的中文体验!包含工具提示、界面汉化、完整的自定义指南、实战经验和进阶开发教程, 让用户能够根据自己的需求修改和完善.

@gugug168@gugug168Install Skill

Questions about peon-ping-config.

Which coding agents can use peon-ping-config?
peon-ping-config installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.