Faaaahhh
When your code screams "Faaaahhh!" so you don't have to!
A hilariously useful VS Code extension that yells "FAAAAHHH!" whenever your Django/Python code fails, tests bomb, or errors appear. Because every bug deserves a dramatic response!
Get instant audio feedback without constantly checking your browser or terminal. Your code fails, the extension screams. Simple.

✨ Features
🎯 Smart Error Detection
- Automatic Detection: Monitors VS Code diagnostics in real-time
- Python Errors: SyntaxError, ImportError, NameError, TypeError, ValueError, and more
- Django-Specific: Internal Server Error, Bad Request, template errors
- Test Failures: Detects pytest and unittest failures instantly
- Exception Tracking: Catches unhandled exceptions and assertion errors
🔧 Fully Configurable
- Enable/Disable: Toggle sound playback via command palette or settings
- Volume Control: Adjust audio level from 0.0 (silent) to 1.0 (maximum)
- Custom Sounds: Use your own WAV file as the notification
- Smart Debouncing: Prevents multiple sounds for the same error
- macOS: Native
afplay integration
- Windows: PowerShell Media.SoundPlayer
- Linux:
paplay or aplay support
🚀 Zero Configuration
- Works out of the box with the included "Faaaahhh!" sound
- Integrates seamlessly with existing Python/Django workflows
- No additional dependencies required
📋 Requirements
- VS Code 1.75.0 or higher
- Python extension (recommended for best error detection)
- Python linting tools like pylint, flake8, or Pylance (optional but recommended)
📦 Installation
From VS Code Marketplace (Recommended)
- Open VS Code
- Go to Extensions (Ctrl/Cmd + Shift + X)
- Search for "Faaaahhh"
- Click Install
From VSIX File
- Download the
.vsix file from releases
- Open VS Code
- Extensions → "..." menu → Install from VSIX
- Select the downloaded file
From Source
git clone https://github.com/HassanR24/django-error-sound.git
cd django-error-sound
npm install
npm run esbuild
Then press F5 to launch in development mode.
🎮 Usage
The extension automatically activates when you open a workspace. It monitors diagnostics from Python language servers, linters, and test runners.
Commands
Access these via Command Palette (Ctrl/Cmd + Shift + P):
Django Error Sound: Enable - Enable sound playback
Django Error Sound: Disable - Disable sound playback
Extension Settings
Configure in VS Code Settings (File → Preferences → Settings):
| Setting |
Type |
Default |
Description |
django-error-sound.enabled |
boolean |
true |
Enable/disable sound playback |
django-error-sound.volume |
number |
0.5 |
Volume level (0.0 to 1.0) |
Example settings.json:
{
"django-error-sound.enabled": true,
"django-error-sound.volume": 0.7
}
Typical Workflow
- 💻 Edit your Django/Python code
- 💾 Save the file (Ctrl/Cmd + S)
- 🎵 Hear a sound if there's an error
- 🔍 Check Problems panel (Ctrl/Cmd + Shift + M) for details
- 🛠️ Fix the issue
- 🎉 Silence means success!
🎵 Customizing Your Sound
The extension comes with the dramatic "Faaaahhh!" sound, but you can replace it with anything!
Using Your Own Sound
- Find or create a WAV audio file (0.5-2 seconds recommended)
- Navigate to the extension installation folder
- Replace
assets/faahh.wav with your file (keep the filename faahh.wav)
- Reload VS Code
Free Sound Resources
Sound Recommendations
✅ Good choices:
- Short beeps (0.5-1 second)
- Alert tones or chimes
- Distinctive sounds different from system notifications
- Dramatic screams or funny sound effects like "Faaaahhh!"
❌ Avoid:
- Long sounds (>3 seconds)
- Music or complex audio
- Very loud or jarring sounds
🔍 How It Works
┌─────────────────┐
│ You Edit Code │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Save File │
└────────┬────────┘
│
▼
┌─────────────────────────────┐
│ Language Servers/Linters │
│ (Pylance, pylint, flake8) │
└────────┬────────────────────┘
│
▼
┌─────────────────────────┐
│ VS Code Diagnostics │
│ (Problems Panel) │
└────────┬────────────────┘
│
▼
┌─────────────────────────┐
│ Extension Detects │◄── Error patterns matched!
│ Error Patterns │
└────────┬────────────────┘
│
▼
┌─────────────────────┐
│ 🔊 Sound Plays! │
└─────────────────────┘
Error Sources
The extension monitors diagnostics from:
- Language Servers: Pylance, Python LSP
- Linters: pylint, flake8, black, isort
- Type Checkers: mypy, pyright
- Test Runners: pytest, unittest outputs
- Django: Server error messages
- macOS: Native
afplay command-line tool
- Windows: PowerShell Media.SoundPlayer API
- Linux:
paplay (PulseAudio) or aplay (ALSA)
Development
npm install
npm run esbuild-watch # Watch mode for development
npm run esbuild # Build once
npm run vscode:prepublish # Build for publication
Notes
- The extension detects errors via VS Code's diagnostic system
- For best results, make sure your Django project has proper linting configured (pylint, flake8, etc.)
- Uses WAV audio format for maximum cross-platform compatibility
🤝 Contributing
Contributions are welcome! Here are some ideas:
- 🎯 Improve error pattern detection
- 🎵 Add support for MP3, OGG and other audio formats
- 🌈 Add visual notifications alongside audio
- 🔧 Add per-project configuration
- 🌍 Localization support
Development Setup
git clone https://github.com/HassanR24/django-error-sound.git
cd django-error-sound
npm install
npm run esbuild-watch
Press F5 to launch the extension in debug mode.
Submitting Changes
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
📄 License
MIT License - see LICENSE file for details.
👨💻 Author
Hassan Raza
⭐ If you find this extension helpful, please star the repository!
Made with ❤️ by Hassan Raza