agent-sound-packs
Your AI coding agent talks back.
What it does
Your AI coding agent (Claude Code, Codex, …) plays a short sound when it finishes a
reply, needs your input, or hits another moment in its work. Pick a theme — Mortal
Kombat, Futurama, a Warcraft peon — and you hear what your agent is doing without
watching the screen.
A pack is a theme: a folder of short audio clips. You can switch packs in one
command, or make your own. 15 packs ship in the box.
Sounds fire on these moments (events):
| Event | When it plays |
|---|
stop | The agent finished its reply |
notification | The agent needs you (a permission prompt, or it went idle) |
subagent | A background sub-task finished |
session | A new session started |
compact | The conversation is about to be summarized |
Each event picks a random clip from that pack, so it stays fresh.
Install
Claude Code (recommended — no files to edit)
Type these two lines inside Claude Code:
/plugin marketplace add foxtrotdev/agent-sound-packs
/plugin install agent-sound-packs@agent-sound-packs
Done. Sounds wire up automatically and the next reply ends with one. Starts on the
peon-en pack (a Warcraft III orc peon) — change it any time (see Use it).
Codex CLI
Codex has no plugin system, so it uses a small installer + one config line.
git clone https://github.com/foxtrotdev/agent-sound-packs.git
cd agent-sound-packs
./install.sh
Then add the notify line to ~/.codex/config.toml. Codex needs an absolute path
and TOML won't expand $HOME — so let the shell write it for you (no username to
type):
echo "notify = [\"bash\", \"$HOME/.claude/sounds/scripts/integrations/codex-notify.sh\"]" >> ~/.codex/config.toml
Restart Codex. You'll get a "task done" chime on each turn. (Codex only exposes the
stop event — full details in docs/codex.md.)
Other agents
Aider, Cursor, Cline, or any CLI with a post-turn shell hook → docs/other-tools.md.
Requirements: macOS, Linux, or Windows via WSL (not PowerShell/cmd — it's a
Bash toolkit). The player auto-detects on every platform; no audio setup needed on a
standard machine.
Use it
Inside your agent, one slash command does everything:
| Command | What it does |
|---|
/sound-pack | List packs + show the active one |
/sound-pack switch <name> | Switch theme |
/sound-pack volume <0-100> | Set playback volume |
/sound-pack mute · unmute | Silence / re-enable all sounds |
/sound-pack test | Play one clip from each event |
/sound-pack add <name> | Install another pack from the catalog |
/sound-pack remote | Browse the catalog |
/sound-pack new <name> | Start your own pack |
/sound-pack update [--all] | Refresh installed packs |
/sound-pack validate <name> | Check a pack is well-formed |
Slash commands need a one-time copy: Claude Code examples/commands-claude/sound-pack.md → ~/.claude/commands/; Codex examples/commands-codex/sound-pack.md → ~/.codex/prompts/.
Prefer the terminal? The same actions are plain scripts (standalone/Codex install):
~/.claude/sounds/switch-pack.sh # list / show active
~/.claude/sounds/switch-pack.sh futurama # switch theme
~/.claude/sounds/scripts/test-sounds.sh # play one of each event
~/.claude/sounds/scripts/add-pack.sh dbz # install another pack
Or source ~/.claude/sounds/scripts/aliases.sh from your shell rc for sp, sp-test,
sp-play <event>, sp-new <name>.
Volume & mute
Easiest: /sound-pack volume 70, /sound-pack mute, /sound-pack unmute (or the
sp alias). These write the config file for you.
Prefer editing by hand? It all lives in ~/.config/agent-sound-packs/config.json:
{ "enabled": 1, "volume": 70, "pack": "futurama" }
enabled: 0 mutes. Or per-shell: CCSP_ENABLED=0 claude. Full options in
docs/claude-code.md.
Make your own pack
A pack is just a folder of clips plus a pool.conf that says which clip plays for which
event. No coding required.