Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/peonping-peon-ping-config/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -68% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -68% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 45% | 0% |
Update peon-ping configuration settings.
The config file is at ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hooks/peon-ping/config.json.
"peon", "sc_kerrigan", "glados"). Legacy key active_pack is also accepted as a fallback.[] uses default_pack only."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.session.start, task.acknowledge, task.complete, task.error, input.required, resource.limit, user.spam — each a booleanjson "disabled_sounds": { "peon": { "session.start": ["Hello1.wav"] } } If every sound in a category is listed, that category stays silent. Prefer the CLI: bash peon sounds list [pack] peon sounds disable <category> <file> [--pack=<name>] peon sounds enable <category> <file> [--pack=<name>]
true)true) or default output via afplay (false). Only affects macOS. Default: trueUser request: "Disable desktop notifications"
Action: Set desktop_notifications: false in config
Result:
Alternative CLI command:
bashpeon notifications off # or peon popups off
User request: "Set volume to 30%"
Action: Set volume: 0.3 in config
User request: "Enable round-robin pack rotation with peon and glados"
Action: Set:
json{ "pack_rotation": ["peon", "glados"], "pack_rotation_mode": "round-robin" }
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).
bash# 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
The path_rules array in config.json can also be edited directly:
json{ "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.
To show available packs, run:
bashbash "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/peon-ping/peon.sh packs list
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,001 | 5,538 | -31% | 1 | 1 | 0% | 1,374 | 1,639 | +19% | 0 | 0 | — |
case-02 | fail→fail | 6,433 | 5,257 | -18% | 1 | 1 | 0% | 1,153 | 1,583 | +37% | 0 | 0 | — |
case-03 | fail→fail | 10,571 | 5,666 | -46% | 1 | 1 | 0% | 2,012 | 1,547 | -23% | 0 | 0 | — |
case-04 | fail→pass | 6,694 | 2,100 | -69% | 1 | 1 | 0% | 1,178 | 1,633 | +39% | 0 | 0 | — |
case-05 | pass→fail | 3,992 | 5,829 | +46% | 1 | 1 | 0% | 654 | 1,529 | +134% | 0 | 0 | — |
case-06 | pass→pass | 6,718 | 1,759 | -74% | 1 | 1 | 0% | 969 | 1,518 | +57% | 0 | 0 | — |
case-07 | fail→fail | 13,835 | 7,427 | -46% | 1 | 1 | 0% | 2,433 | 1,571 | -35% | 0 | 0 | — |
case-08 | fail→pass | 29,707 | 2,873 | -90% | 1 | 1 | 0% | 5,226 | 1,696 | -68% | 0 | 0 | — |
case-09 | fail→pass | 28,959 | 2,271 | -92% | 1 | 1 | 0% | 5,182 | 1,659 | -68% | 0 | 0 | — |
case-10 | fail→pass | 8,866 | 4,150 | -53% | 1 | 1 | 0% | 1,550 | 1,984 | +28% | 0 | 0 | — |
case-11 | fail→fail | 12,282 | 6,045 | -51% | 1 | 1 | 0% | 1,905 | 1,572 | -17% | 0 | 0 | — |
case-12 | fail→pass | 7,132 | 2,609 | -63% | 1 | 1 | 0% | 1,166 | 1,690 | +45% | 0 | 0 | — |
case-13 | fail→pass | 18,335 | 1,709 | -91% | 1 | 1 | 0% | 2,987 | 1,454 | -51% | 0 | 0 | — |
case-14 | fail→pass | 8,213 | 2,030 | -75% | 1 | 1 | 0% | 1,308 | 1,535 | +17% | 0 | 0 | — |
case-15 | fail→pass | 19,464 | 2,504 | -87% | 1 | 1 | 0% | 3,369 | 1,564 | -54% | 0 | 0 | — |
case-16 | fail→pass | 6,517 | 63,354 | +872% | 1 | 1 | 0% | 1,132 | 1,485 | +31% | 0 | 0 | — |
case-17 | fail→pass | 3,558 | 1,394 | -61% | 1 | 1 | 0% | 516 | 1,434 | +178% | 0 | 0 | — |
case-18 | fail→pass | 9,637 | 1,837 | -81% | 1 | 1 | 0% | 1,781 | 1,517 | -15% | 0 | 0 | — |
case-19 | fail→pass | 4,962 | 1,620 | -67% | 1 | 1 | 0% | 836 | 1,467 | +75% | 0 | 0 | — |
case-20 | pass→pass | 3,619 | 2,789 | -23% | 1 | 1 | 0% | 655 | 1,685 | +157% | 0 | 0 | — |
case-21 | pass→pass | 3,234 | 2,941 | -9% | 1 | 1 | 0% | 525 | 1,750 | +233% | 0 | 0 | — |
case-22 | pass→pass | 2,578 | 2,550 | -1% | 1 | 1 | 0% | 380 | 1,649 | +334% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 16 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.