Never miss your AI agent waiting for input again.
Play pop culture sound effects when your Claude Code agent needs your attention — so you can focus on other things while it works.
🚀 How to Use
- Install the extension — it activates automatically on startup
- Open the Settings Panel: run
AFKiller: Open Settingsfrom the Command Palette (Ctrl+Shift+P/Cmd+Shift+P) - Choose your mode:
- 🔀 Shuffle — plays a random sound from the library each time
- 🎯 Fixed Per Event — assign a different sound to each agent event
- In Fixed mode, expand each event card and click ☆ on a sound to assign it. Selecting a sound automatically enables that event.
- Toggle individual events ON/OFF using the switch on each event card
- The extension auto-configures Claude Code hooks on first launch. You can also run
AFKiller: Setup Claude Code Hooksmanually.
Tip: A 🔊 icon in the status bar shows the current mode. Click it to toggle between Shuffle and Fixed.
✨ Features
- 🎵 32 built-in sounds — Gaming icons (MGS, Mario, Zelda, Sonic, Street Fighter, CS:GO), internet memes (Vine Boom, Bruh, Emotional Damage), and Kenney CC0 game sounds
- 🔀 Shuffle mode — random sound every time an event fires
- 🎯 Fixed Per Event mode — assign a different sound to each of the 4 agent events
- 📁 Custom sounds — add your own
.wav,.mp3,.ogg, or.flacfiles with hot-reload - 🤖 Claude Code integration — hooks into Stop, Notification, Permission Request, and Tool Failure events
- 🖥️ Cross-platform — macOS, Windows, and Linux
📥 Installation
From Marketplace
Search for "AFKiller" in the VS Code Extensions panel, or install from the Marketplace page.
From VSIX
- Download the
.vsixfile from Releases - Open VS Code → Extensions →
...→ Install from VSIX - Select the downloaded file
System Requirements
| OS | Audio Dependency | Install |
|---|---|---|
| macOS | None (afplay built-in) |
— |
| Windows | None (PowerShell built-in) | — |
| Linux (PulseAudio) | paplay |
sudo apt install pulseaudio-utils |
| Linux (PipeWire) | pw-play |
sudo apt install pipewire |
| Linux (ALSA) | aplay |
sudo apt install alsa-utils |
| Linux (fallback) | ffplay |
sudo apt install ffmpeg |
The extension auto-detects the available backend. If none is found on Linux, it shows installation instructions.
🎵 Sound Library
🎮 Gaming (12 sounds)
| Sound | Game |
|---|---|
| MGS Alert (!) | Metal Gear Solid |
| Mario Coin | Super Mario |
| Zelda Secret | Legend of Zelda |
| Sonic Ring | Sonic the Hedgehog |
| Pokemon Encounter | Pokémon |
| Mario Death | Super Mario |
| Street Fighter KO | Street Fighter |
| Hadouken | Street Fighter |
| Navi Listen | Legend of Zelda |
| Undertale Damage | Undertale |
| Bomb Planted | CS:GO |
| Toasty! | Mortal Kombat |
😂 Memes & Internet (10 sounds)
Vine Boom, Bruh, Emotional Damage, Bob Esponja Fail, Cat Laugh, Brain Rot, Anime Wow, Technologia, Fahhh Pump, Mercado Livre
🔔 Classic (2 sounds)
Zap Estourado, Boxing Bell
🎬 Movies & TV (1 sound)
Windows Error
✨ Kenney CC0 (7 sounds)
Bling, Coin, Confirm, Impact, Jingle, Power Up, Zap — from kenney.nl, free to use.
📁 Custom Sounds
- Create
~/.afkiller/(or set a custom path in settings) - Add subfolders for categories (e.g.,
anime/,custom/) - Drop
.wav,.mp3,.ogg, or.flacfiles inside - Sounds appear instantly via hot-reload
Or use AFKiller: Import Custom Sound from the Command Palette.
⚙️ Configuration
The recommended way to configure the extension is through the Settings Panel (
AFKiller: Open Settings). The settings below are also available in VS Code's native settings editor.
| Setting | Default | Description |
|---|---|---|
afkiller.enabled |
true |
Enable or disable the extension |
afkiller.cooldownMs |
3000 |
Minimum ms between sounds |
afkiller.volume |
0.7 |
Volume (0.0–1.0) |
afkiller.mode |
"shuffle" |
"shuffle" or "fixed" |
afkiller.selectedSound |
"mgs-alert" |
Fallback fixed sound (when no per-event sound is set) |
afkiller.playOnAgentStop |
true |
Fire on Agent Stopped event |
afkiller.stopSound |
"mgs-alert" |
Sound for Agent Stopped (Fixed mode) |
afkiller.playOnAgentNotification |
true |
Fire on Notification event |
afkiller.notificationSound |
"kenney-bling" |
Sound for Notification (Fixed mode) |
afkiller.playOnAgentPermissionRequest |
true |
Fire on Permission Request event |
afkiller.permissionSound |
"kenney-confirm" |
Sound for Permission Request (Fixed mode) |
afkiller.playOnAgentToolFailure |
true |
Fire on Tool Failure event |
afkiller.toolFailureSound |
"vine-boom" |
Sound for Tool Failure (Fixed mode) |
afkiller.customSoundsPath |
"~/.afkiller" |
Custom sounds folder (hot-reloaded) |
afkiller.linuxAudioBackend |
"auto" |
Linux audio backend |
🤖 Claude Code Integration
The extension integrates with Claude Code's native lifecycle hooks. On first activation it configures them automatically. You can also manage hooks manually:
AFKiller: Setup Claude Code Hooks— writes hooks to~/.claude/settings.jsonwith a safe merge (never overwrites existing config)AFKiller: Remove Claude Code Hooks— removes only this extension's hooks, preserving everything else
Supported events:
| Event | When it fires |
|---|---|
| Agent Stopped | Claude finishes generating / completes a task |
| Notification | Claude sends a desktop notification |
| Permission Request | Claude asks you to approve an action (Yes/No) |
| Tool Failure | A command execution or file edit fails |
📖 Commands
| Command | Description |
|---|---|
AFKiller: Open Settings |
Open the visual settings panel |
AFKiller: Test Sound |
Play a test sound |
AFKiller: Enable |
Enable the extension |
AFKiller: Disable |
Disable the extension |
AFKiller: Toggle Shuffle/Fixed Mode |
Switch between modes |
AFKiller: Select Sound |
Pick a sound via QuickPick with preview |
AFKiller: Import Custom Sound |
Import audio files into the library |
AFKiller: Setup Claude Code Hooks |
Configure Claude Code hooks |
AFKiller: Remove Claude Code Hooks |
Remove Claude Code hooks |
🔧 Troubleshooting
No sound on Linux
- Check installed backends:
which paplay pw-play aplay ffplay - Install one:
sudo apt install pulseaudio-utils - Or set a specific backend:
afkiller.linuxAudioBackend→"paplay" - Restart VS Code
Claude Code hooks not working
- Run
AFKiller: Setup Claude Code Hooksfrom the Command Palette - Check the Output panel (select "AFKiller") for error messages
- Verify
~/.claude/settings.jsoncontains entries withafkillerin the command
Sound plays too frequently
Increase afkiller.cooldownMs (e.g., 5000 for 5 seconds between sounds).
Sound plays but agent events are not detected
Ensure the Claude Code hooks are configured — run AFKiller: Setup Claude Code Hooks.
📝 License
MIT