Fahhh — Test Failure Sound
A VS Code extension that plays a sound whenever your tests fail. Because silence after a failing test is just too peaceful.

How it works
The extension listens for test failures through two channels:
| Channel |
Description |
| Task system |
Watches VS Code tasks — any task named/grouped as test that exits with a non-zero code triggers the sound |
| Shell integration |
Watches commands typed in VS Code's integrated terminal — if a test command (jest, vitest, npm test, node --test, pytest, etc.) fails, the sound plays |
Getting started
1. Clone and install
git clone https://github.com/mhmzdev/faahhh-test-failed-extension.git
cd faahhh-test-failed-extension
npm install
2. Run the extension
Open the folder in VS Code and press F5. This launches an Extension Development Host — a second VS Code window with the extension loaded and active.
3. Trigger the sound
Option A — Manual (quickest):
Open the Command Palette (Cmd+Shift+P) and run:
Fahhh: Play Test Failure Sound (Manual Trigger)
Option B — Via VS Code task:
Terminal > Run Task > Run Example Tests (node:test)
The included example tests intentionally fail and the sound will play on the non-zero exit.
Option C — In the integrated terminal:
In the Extension Development Host window, open the integrated terminal and run:
node --test examples/sample.test.js
Shell integration picks up the failed exit code and triggers the sound automatically.
Note: Options B and C must be run inside the Extension Development Host window (the one opened by F5), not your regular terminal.
Example tests
examples/sample.test.js uses Node's built-in test runner (requires Node 18+) and contains intentionally failing assertions to demo the extension:
node --test examples/sample.test.js
▶ Math operations
✔ addition works correctly
✖ subtraction result is wrong # triggers sound
✖ multiplication gone wrong # triggers sound
▶ String operations
✔ string concatenation works
✖ string length is miscounted # triggers sound
Supported test runners
The shell integration channel recognises these commands out of the box:
jest · vitest · mocha · jasmine · karma · pytest · go test · cargo test · phpunit · rspec · bun test · node --test · npm test · yarn test · pnpm test
| Platform |
Audio backend |
| macOS |
afplay (built-in) |
| Windows |
PowerShell + Windows Media Player |
| Linux |
mpg123 — install with sudo apt install mpg123 |
Project structure
├── assets/
│ └── fahhh.mp3 # the sound
├── src/
│ └── extension.ts # extension logic
├── examples/
│ └── sample.test.js # demo failing tests
└── .vscode/
├── launch.json # F5 launcher
└── tasks.json # build + test tasks
License
MIT