🔊 AFKiller
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 Settings from 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 Hooks manually.
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 .flac files 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
.vsix file 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 .flac files 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.json with 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 Hooks from the Command Palette
- Check the Output panel (select "AFKiller") for error messages
- Verify
~/.claude/settings.json contains entries with afkiller in 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