Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>FAAAHNew to Visual Studio Code? Get it now.
FAAAH

FAAAH

shoaib korai

|
21 installs
| (0) | Free
Plays the FAAAH meme sound whenever a test fails
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

FAAAH

Plays the FAAAH meme sound whenever your tests fail. Because nothing motivates you to fix broken tests quite like public humiliation from your own editor.

Works with every test framework. No configuration required -- just install and break a test.

How It Works

FAAAH uses two stable VS Code APIs to detect test failures:

  1. Terminal Shell Integration -- When you run a test command (e.g. npm test, pytest, cargo test) in the integrated terminal and it exits with a non-zero code, FAAAH plays the sound.
  2. Task Process End -- When a VS Code task containing test-related keywords finishes with a non-zero exit code, FAAAH plays the sound.

No proposed/unstable APIs are used, so the extension works on the VS Code Marketplace without any special flags.

Supported Test Frameworks

FAAAH recognizes the following commands out of the box:

Language/Runtime Commands
Node.js npm test, npm run test, npx jest, npx vitest, npx mocha
Yarn / pnpm / Bun yarn test, pnpm test, bun test
Python pytest, python -m pytest
Rust cargo test
Go go test
C# / .NET dotnet test
Java mvn test, gradle test
Ruby rspec, bundle exec rspec
Elixir mix test
PHP phpunit
Dart / Flutter dart test, flutter test

You can add your own patterns via the faaah.testCommandPatterns setting.

Platform Support

macOS

Works out of the box. Uses afplay which is pre-installed on all Macs. Volume control is fully supported.

Linux

The extension bundles a WAV file for maximum compatibility. It tries players in this order: ffplay, mpg123, mpg321, mplayer, mpv, aplay. Install at least one:

# Option 1: ffplay (recommended -- part of ffmpeg, handles all formats + volume)
sudo apt install ffmpeg         # Debian/Ubuntu
sudo dnf install ffmpeg         # Fedora
sudo pacman -S ffmpeg           # Arch

# Option 2: mpg123 (lightweight, supports volume control)
sudo apt install mpg123        # Debian/Ubuntu
sudo dnf install mpg123        # Fedora
sudo pacman -S mpg123          # Arch

# Option 3: mpv
sudo apt install mpv

# Option 4: aplay (usually pre-installed, WAV only, no volume control)
# aplay is included with ALSA (alsa-utils)

Note: aplay only supports WAV files. The bundled default sound is WAV so it works, but if you set a custom .mp3 via faaah.soundFilePath, you'll need ffplay, mpg123, or mpv.

Windows

Uses PowerShell's built-in System.Media.SoundPlayer via the play-sound package. No additional installation needed, though note that SoundPlayer only supports WAV natively. For MP3 playback on Windows, install one of:

  • mpg123 for Windows and add it to your PATH
  • Or set faaah.soundFilePath to a .wav file

Installation

From VSIX (local)

git clone <repo-url> && cd FAAAH
npm install
npm run compile
npx vsce package
code --install-extension faaah-0.0.2.vsix

Development

git clone <repo-url> && cd FAAAH
npm install
npm run compile

Then press F5 in VS Code to launch the Extension Development Host.

Commands

Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and type:

Command Description
FAAAH: Toggle Sound On/Off Enable or disable the sound
FAAAH: Play Test Sound Play the sound immediately (useful for testing your audio setup)

Settings

All settings are under the faaah.* namespace. Open Settings (Ctrl+, / Cmd+,) and search for "faaah".

Setting Type Default Description
faaah.enabled boolean true Enable/disable the sound
faaah.soundFilePath string "" Path to a custom sound file. Leave empty to use the built-in FAAAH sound.
faaah.volume number 0.5 Volume level from 0.0 (silent) to 1.0 (full). Works with afplay (macOS), ffplay, mpg123, mpg321, and mpv.
faaah.cooldownMs number 3000 Minimum milliseconds between sounds. Prevents the sound from firing repeatedly when multiple test processes fail at once.
faaah.detectViaTerminal boolean true Detect test failures from terminal commands
faaah.detectViaTasks boolean true Detect test failures from VS Code tasks
faaah.testCommandPatterns string[] (see below) List of command substrings that identify a test run in the terminal

Example: Custom Settings

// settings.json
{
  "faaah.volume": 0.8,
  "faaah.cooldownMs": 5000,
  "faaah.soundFilePath": "/home/me/sounds/custom-faaah.mp3",
  "faaah.testCommandPatterns": [
    "npm test",
    "pytest",
    "cargo test",
    "my-custom-test-runner"
  ]
}

Requirements

  • VS Code 1.93 or later
  • Terminal shell integration must be enabled (it is by default) for terminal-based detection to work. If you've disabled it, re-enable with:
    // settings.json
    {
      "terminal.integrated.shellIntegration.enabled": true
    }
    
  • A system audio player (see Platform Support)

Troubleshooting

No sound plays when tests fail:

  1. Run FAAAH: Play Test Sound from the Command Palette. If you hear the sound, detection is the issue, not playback.
  2. Make sure shell integration is active -- look for the colored circle/chevron at the start of your terminal prompt.
  3. Check that your test command matches one of the patterns in faaah.testCommandPatterns.

"Could not play sound" warning:

  • Install a supported audio player for your OS (see Platform Support).
  • Make sure the player binary is on your PATH.

Sound is scratchy or distorted (Linux):

  • You're likely using aplay with an MP3 file. Install ffplay (sudo apt install ffmpeg) or mpg123 for proper MP3 support. The bundled default sound is WAV and should work fine with aplay.

Sound plays too often / not often enough:

  • Adjust faaah.cooldownMs. The default is 3000ms (3 seconds).

Want to use a custom sound:

  • Set faaah.soundFilePath to the absolute path of any .mp3 or .wav file.

Project Structure

FAAAH/
  package.json              Extension manifest
  tsconfig.json             TypeScript configuration
  esbuild.mjs              Build script
  media/
    faaah.wav              The sound file (WAV for universal compatibility)
    faaah.mp3              The sound file (MP3)
  src/
    extension.ts           Entry point (activate/deactivate)
    testFailureDetector.ts Terminal + task listeners
    audioPlayer.ts         Cross-platform audio playback
    config.ts              Settings reader

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft