用途:为当前聊天会话指定播放哪个语音包(角色语音)。当用户输入 /peon-ping-use <packname> 时,beforeSubmitPrompt 钩子会在消息到达模型前拦截并即时处理,不消耗 token。
主要能力:校验所请求的语音包是否存在;在 config.json 中启用 session_override 轮换模式;在 .state.json 中把当前会话 ID 映射到指定语音包;立即返回确认。钩子拦截消息后,Cursor 会保留输入框光标,便于继续输入。实际工作由 scripts/hook-handle-use.sh 与 scripts/hook-handle-use.ps1 完成,SKILL.md 仅用于在 / 命令自动补全菜单中被发现。
用法:输入 /peon-ping-use peasant、/peon-ping-use glados、/peon-ping-use sc_kerrigan 等。常见语音包包括 peon(Warcraft Peon)、glados(Portal 的 GLaDOS)、sc_kerrigan(StarCraft Kerrigan)、peasant(Warcraft Peasant)、hk47(Star Wars HK-47)。
手动回退:若钩子未安装或失败,可手动执行:用 bash "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/peon-ping/peon.sh packs list 列出已安装语音包并校验;用 echo "$CLAUDE_SESSION_ID" 获取会话 ID;读取并修改 config.json,将 pack_rotation_mode 设为 "session_override",必要时把语音包加入 pack_rotation;读取并修改 .state.json,在 session_packs 中把会话 ID 映射到该语音包;最后向用户确认。
限制与错误处理:语音包不存在时列出可用包让用户选择;无会话 ID 时提示该功能需要 Claude Code;文件读写错误时报告错误并建议手动编辑配置。Cursor 不暴露会话 ID,应使用 session_packs["default"],使未显式分配的会话(含 Cursor 聊天)也应用该语音。若分配的语音包缺失或无效,peon-ping 会回退到 default_pack 并移除失效分配。恢复默认:从 .state.json 的 session_packs 中移除该会话 ID,或把 pack_rotation_mode 改回 "random" 或 "round-robin"。