Default Pack
The fallback pack used when no more specific rule applies.This replaces the legacy
active_pack key. Existing configs are migrated automatically.Pack Rotation Array
Array of pack names to rotate through.Used when
pack_rotation_mode is "random" or "round-robin".Leave empty [] to use default_pack (or path_rules) only.Pack names in
pack_rotation must match installed pack directories in ~/.claude/hooks/peon-ping/packs/.Pack Rotation Mode
Controls how PeonPing selects a pack for each session.Options:
"random"— Pick a random pack frompack_rotationeach session (default)"round-robin"— Cycle throughpack_rotationin order each session"session_override"— Use/peon-ping-use <pack>to assign a pack per session
"agentskill" is accepted as a legacy alias for "session_override".Mode Details
Random Mode
Each new session picks a random pack frompack_rotation. The same pack may be selected multiple times in a row (true randomness).
Round-Robin Mode
Cycles throughpack_rotation in order. State is persisted in .state.json so the rotation index survives restarts.
- Session 1 →
peon - Session 2 →
glados - Session 3 →
sc_kerrigan - Session 4 →
peon(loops back)
Session Override Mode
Use the/peon-ping-use <pack> slash command in Claude Code to assign a specific pack to the current agent session.
Each session can have its own pack, and assignments persist until the session ends.
glados pack until you end the session or assign a different pack.
Path Rules
Array of
{ "pattern": "...", "pack": "..." } objects.Assigns a pack to sessions based on the working directory using glob matching (*, ?).Rules:- First matching rule wins
- Beats
pack_rotationanddefault_pack - Overridden by
session_overrideassignments
Pattern Syntax
Path rules use glob patterns:*— Match any characters (except/)?— Match a single character*/work/client-a/*— Match any path containing/work/client-a//home/user/project— Exact path match
| Pattern | Matches | Doesn’t Match |
|---|---|---|
*/work/* | /home/user/work/project | /home/user/personal/project |
/home/user/client-a | /home/user/client-a | /home/user/client-a/subdir |
*/services | /home/user/work/services | /home/user/work/services/api |
Pack Selection Priority
When a new session starts, PeonPing selects a pack in this order:- Session override (if
pack_rotation_modeissession_overrideand a pack was assigned with/peon-ping-use) - Path rules (first matching rule from
path_rules) - Pack rotation (if
pack_rotationis not empty and mode israndomorround-robin) - Default pack (fallback)
- Sessions in
/home/user/work/...→sc_battlecruiser(path rule) - All other sessions → random pick from
["glados", "sc_kerrigan", "peasant"] - If rotation is empty →
peon(default)
Session TTL
Expire stale per-session pack assignments older than N days.Prevents
.state.json from growing unbounded when using session_override mode.Sessions that haven’t been active for session_ttl_days are automatically removed from state.Installing Packs
Before using a pack in rotation or path rules, install it:~/.claude/hooks/peon-ping/packs/.
Browsing Packs
View installed packs:* indicates the current default_pack.
Browse all available packs in the registry: