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…
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.
$ npx -y skills add PeonPing/peon-ping --skill peon-ping-use --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/peon-ping-useContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
name: peon-ping-use description: 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. user-invocable: true license: MIT metadata: author: PeonPing version: "1.0"
Set which voice pack (character voice) plays for the current chat session.
When the user types `/peon-ping-use <packname>`, a **beforeSubmitPrompt hook** intercepts the command before it reaches the model and handles it instantly:
1. Validates the requested pack exists 2. Enables `session_override` rotation mode in config.json 3. Maps the current session ID to the requested pack in .state.json 4. Returns immediate confirmation (zero tokens used)
When the hook blocks the message, Cursor keeps your cursor in the input field so you can type your next message right away.
The hook scripts (`scripts/hook-handle-use.sh` and `scripts/hook-handle-use.ps1`) do all the work - this SKILL.md file exists solely for discoverability in the `/` command autocomplete menu.
Users can invoke this by typing:
/peon-ping-use peasant /peon-ping-use glados /peon-ping-use sc_kerrigan
If the hook is not installed or fails, you can fallback to manual execution by following the instructions below.
If for some reason the hook doesn't intercept the command, follow these steps:
Extract the pack name from the user's request. Common pack names:
Run this command to see installed packs:
bash "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/peon-ping/peon.sh packs listParse the output to verify the requested pack exists.
The session ID is available in the environment variable `CLAUDE_SESSION_ID`. Read it:
echo "$CLAUDE_SESSION_ID"
**If empty (Cursor users):** Use `"default"` as the key in `session_packs`. This applies the pack to all sessions without explicit assignment. Add `session_packs["default"] = {"pack": "PACK_NAME", "last_used": UNIX_TIMESTAMP}`.
Read the config file:
cat "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/peon-ping/config.json**Required:** Set `pack_rotation_mode` to `"session_override"`. The pack must exist in the packs directory; if the assigned pack is missing or invalid, peon-ping falls back to `default_pack` and removes the stale assignment. The hook also adds the pack to `pack_rotation` (manual fallback can do the same).
Example config after setup:
"pack_rotation_mode": "session_override", "pack_rotation": ["peasant", "peon", "ra2_kirov"]
If `pack_rotation_mode` is `"random"` or `"round-robin"`, change it to `"session_override"`. If the requested pack is not in `pack_rotation`, add it.
Read the state file:
cat "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/peon-ping/.state.jsonUpdate the `session_packs` object to map this session to the requested pack. If `session_packs` doesn't exist, create it:
{
"session_packs": {
"SESSION_ID_HERE": "pack_name_here"
}
}Use StrReplace or edit the JSON to add/update the entry:
Report success with a message like:
Voice set to [PACK_NAME] for this session Rotation mode: session_override
User: Use GLaDOS voice for this chat
Assistant: [Lists packs to verify glados exists]
Assistant: [Gets session ID]
Assistant: [Updates config.json to set pack_rotation_mode: "session_override"]
Assistant: [Updates .state.json to set session_packs[session_id] = "glados"]
Assistant: Voice set to GLaDOS for this session
Rotation mode: session_overrideCursor doesn't expose session IDs. Use `session_packs["default"]` instead: when doing the manual fallback, add `"default": {"pack": "peasant", "last_used": 0}` to `session_packs`. This applies the voice to sessions without explicit assignment (including Cursor chats).
To stop using a specific pack for this session, remove the session ID from `session_packs` in `.state.json`, or change `pack_rotation_mode` back to `"random"` or `"round-robin"`.
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.
Repo: PeonPing/peon-ping
Update peon-ping configuration — volume, pack rotation, categories, active pack, and other settings. Use when user wants to change peon-ping settings like…
Internal — invoked headlessly by `peon create`; humans should run `peon create` instead. Author and render a brand-new PeonPing draft pack — invoked headlessly…
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",…
Internal — invoked headlessly by the peon eval server; humans should run `peon eval <pack>` instead. Execute one PeonPing reroll job — invoked headlessly by…
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…
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…