Faah Sound is a premium, lightweight, and hilarious VS Code extension that plays the instant classic "faah!" sound effect whenever a terminal command fails (returns a non-zero exit code).
Keep debugging lighthearted and never miss a failed background command or build task again!
🚀 Features
- 🔊 Instant Audio Feedback: Hear a quick, funny "faah!" immediately when a terminal command exits with an error.
- 💻 Cross-Platform Compatibility: Native out-of-the-box support for macOS, Windows, and Linux without requiring external audio player packages.
- 🎵 Custom Sound Effects: Easily customize your workflow by specifying an absolute file path to any local audio file (
.mp3,.wav,.aiff, etc.). - 🛡️ Cooldown Protection: Smart anti-spam mechanism prevents the sound from playing multiple times if errors trigger in rapid succession (e.g., watch mode builds).
⚙️ Configuration
You can easily adjust the settings via the VS Code Settings UI (Preferences -> Settings -> search for Faah Sound):
| Setting | Type | Default | Description |
|---|---|---|---|
faahSound.enabled |
boolean |
true |
Enable or disable playing the failure sound effect. |
faahSound.customSoundPath |
string |
"" |
Absolute path to a custom sound file (.mp3, .wav, .aiff) to play instead of the default "faaah.mp3". |
faahSound.cooldownMs |
number |
1000 |
Cooldown in milliseconds to prevent repetitive sounds from rapid-fire errors. |
🛠️ Commands
Faah Sound: Play Test Sound: Manually play the sound to test your audio output levels and verify native system playback configuration.
📋 Requirements & Troubleshooting
VS Code Shell Integration
This extension relies on VS Code's built-in Shell Integration feature to detect when command executions start and finish.
- Shell integration is enabled by default in modern VS Code versions.
- If command failures do not trigger the sound, ensure shell integration is active in your terminal. You can check this by seeing if a small blue circle or indicator appears next to commands in your terminal prompt.
- Make sure
terminal.integrated.shellIntegration.enabledis set totruein yoursettings.json.
💻 Local Development
- Clone or open this repository folder in VS Code.
- Run
npm installto load dev dependencies. - Press
F5to start a new Extension Development Host window. - Run any command that fails (e.g.
exit 1orls non_existent_file) in the terminal of the new window, and enjoy the sound!
📦 Packaging
To package this extension into a .vsix bundle for manual installation:
- Install VS Code Extension Manager:
npm install -g @vscode/vsce - Package the extension:
vsce package