# Peon Ping Use

Set which voice pack (character voice) plays for the current chat session.

- Repository: https://github.com/PeonPing/peon-ping (5100 stars)
- Category: Media
- License: MIT
- Last updated: 2026-10-19
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add PeonPing/peon-ping --skill peon-ping-use -g -a claude-code -y`
Codex: `npx skills add PeonPing/peon-ping --skill peon-ping-use -g -a codex -y`
Cursor: `npx skills add PeonPing/peon-ping --skill peon-ping-use -g -a cursor -y`
Gemini CLI: `npx skills add PeonPing/peon-ping --skill peon-ping-use -g -a gemini-cli -y`

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# peon-ping-use

Set which voice pack (character voice) plays for the current chat session.

## How it works

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.

## Usage

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.

## Manual fallback (if hook fails)

If for some reason the hook doesn't intercept the command, follow these steps:

### 1. Parse the pack name

Extract the pack name from the user's request. Common pack names:
- `peon`, Warcraft Peon
- `glados`, Portal's GLaDOS
- `sc_kerrigan`, StarCraft Kerrigan
- `peasant`, Warcraft Peasant
- `hk47`, Star Wars HK-47

### 2. List available packs

Run this command to see installed packs:

```bash
bash "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/peon-ping/peon.sh packs list
```

Parse the output to verify the requested pack exists.

### 3. Get session ID

The session ID is available in the environment variable `CLAUDE_SESSION_ID`. Read it:

```bash
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}`.

The rest: https://github.com/PeonPing/peon-ping/blob/HEAD/skills/peon-ping-use/SKILL.md
