IDE Error Soundboard is a VS Code compatible extension for terminal-driven workflows. It listens for command failures in the integrated terminal and plays a configurable sound so errors are immediately noticeable.
This project is designed for editors that expose terminal shell execution events. In Antigravity, the full "typed terminal error text" experience currently depends on the proposed terminalDataWriteEvent API, so Antigravity must be launched with the appropriate proposed API flag for this extension.
- Overview
- Features
- How Detection Works
- Requirements
- Installation
- Antigravity Setup
- Commands
- Configuration
- Terminal CLI
- Bundled Sounds
- Adding Your Own Sounds
- Project Structure
- Packaging
- Publishing Notes
- Troubleshooting
- Development Notes
- License
The extension provides a soundboard for terminal failures. It supports:
- sound playback when terminal commands fail
- configurable active sound selection
- bundled meme and reaction sounds
- import of user-provided sound files
- status bar monitoring controls
- shared JSON configuration used by both the extension and the CLI
The extension is intentionally simple to operate from inside the IDE, while still exposing a terminal CLI for automation.
- Monitors terminal command failures in the integrated terminal.
- Plays the selected sound when an error is detected.
- Supports
.wav,.mp3,.ogg,.aac, and.m4afiles. - Automatically registers bundled sounds shipped with the extension.
- Lets users import custom sound files using a file picker.
- Lets users add sounds by manual file path.
- Shares one configuration file between the IDE UI and CLI.
- Provides a status bar toggle and diagnostics output.
- Includes a CLI for listing, importing, selecting, and testing sounds.
The extension currently uses multiple detection paths:
- Task process failures via task end events.
- Terminal shell execution start and end events.
- Terminal output text matching for error-like output.
Default error text matchers are:
errorfailedexceptiontracebackcommand not foundis not recognized
In Antigravity, direct terminal output inspection uses the proposed terminalDataWriteEvent API. That means full typo-style detection such as giit, npmm, or similar terminal mistakes requires launching Antigravity with:
antigravity --enable-proposed-api pareekshith-palat.ide-error-soundboardWithout that flag, the extension may still load, but arbitrary terminal text detection may be incomplete depending on what the host provides.
- Node.js for CLI usage and packaging tasks
- A VS Code compatible editor
- For Antigravity full terminal text detection:
- the updated
.vsix - Antigravity launched with
--enable-proposed-api pareekshith-palat.ide-error-soundboard
- the updated
Install the packaged extension file:
ide-error-soundboard-0.1.0.vsix
You can install it from your editor's Extensions view using "Install from VSIX".
- Close all Antigravity windows.
- Install the
.vsix. - Launch Antigravity from a terminal with:
antigravity --enable-proposed-api pareekshith-palat.ide-error-soundboardIf antigravity is not available in PATH, launch the executable directly:
& "C:\Path\To\Antigravity.exe" --enable-proposed-api pareekshith-palat.ide-error-soundboardThis extension uses the proposed terminalDataWriteEvent API for the best error-text detection behavior in Antigravity.
If you launch Antigravity normally without the proposed API flag:
- the extension may still activate
- status and configuration commands may still work
- terminal typo detection may not behave as expected
Recommended startup:
antigravity --enable-proposed-api pareekshith-palat.ide-error-soundboardIf you want this behavior every time, add the same argument to your Antigravity shortcut target.
All IDE commands are available from the Command Palette.
IDE Error Soundboard: Select Active SoundIDE Error Soundboard: Add SoundIDE Error Soundboard: Import Sound FilesIDE Error Soundboard: Remove SoundIDE Error Soundboard: Test Active SoundIDE Error Soundboard: Toggle MonitoringIDE Error Soundboard: Open Shared ConfigIDE Error Soundboard: Show Terminal CommandsIDE Error Soundboard: Check Diagnostic StatusIDE Error Soundboard: Import Workspace Sounds
Select Active Sound
: Opens a quick pick for choosing the sound that will play on failure.
Add Sound
: Lets the user either pick audio files from disk or manually enter a sound path.
Import Sound Files
: Opens a file picker and copies supported audio files into the extension's managed user sound library.
Remove Sound
: Removes a previously registered custom or bundled sound from the current config.
Test Active Sound
: Plays the currently selected sound immediately.
Toggle Monitoring
: Turns error monitoring on or off.
Open Shared Config
: Opens the shared JSON configuration file.
Show Terminal Commands
: Opens a terminal with example CLI commands.
Check Diagnostic Status
: Writes diagnostic details to the extension output channel.
Import Workspace Sounds
: Imports sound files from a sounds folder in the current workspace.
The extension contributes the following settings:
- Type:
boolean - Default:
true
Enable or disable terminal monitoring.
- Type:
number - Default:
3000 - Minimum:
250
The minimum gap between sound triggers.
- Type:
boolean - Default:
true
When enabled, the extension uses the shared JSON config so IDE and CLI actions stay in sync.
- Type:
string[] - Default:
[
"error",
"failed",
"exception",
"traceback",
"command not found",
"is not recognized"
]Fallback terminal text patterns that can trigger sound playback.
The project also includes a CLI entry point at bin/soundboard.js.
node .\bin\soundboard.js status
node .\bin\soundboard.js list
node .\bin\soundboard.js config-path
node .\bin\soundboard.js import-folder
node .\bin\soundboard.js add build-fail "C:\sounds\fail.wav"
node .\bin\soundboard.js remove build-fail
node .\bin\soundboard.js select yeet
node .\bin\soundboard.js play
node .\bin\soundboard.js play yeet
node .\bin\soundboard.js enable
node .\bin\soundboard.js disable
node .\bin\soundboard.js cooldown 1500statusprints the current config summarylistprints all registered soundsconfig-pathprints the shared config file pathimport-folderimports supported sound files from a folderaddregisters a sound by name and pathremoveremoves a soundselectchanges the active soundplayplays the active sound or a named soundenableanddisablechange monitoring statecooldownchanges the cooldown in milliseconds
The following sounds are currently present in the repository and packaged into the extension:
ackamong-us-roleanime-wowapple-paybone-crackbruhcharlie-kirk-loudcharlie-kirk-phonechicken-screamingdexter-memediddy-bludemotional-damagefaaahfaaahhhfahhhfahhh-altfahhhhhhhfartfart-buttonfbigranny-bazookahub-introive-got-this-faaaaaahlizard-buttonmetal-pipe-clangmovie-bruhphone-ringingrizz-effectromancesmoke-detector-beepspongebob-failtuco-get-outundertaker-bellvine-boomwhat-a-good-boyyeet
aayein-memeai-baiganamerica-kya-kehta-thaare-kehna-kya-chahte-hoawaz-nichychalti-firti-cocainegolmaal-hai-bhaihe-prabhupaisa-hi-paisarahul-gandhi-aloo-sonaso-beautifuluthale-re-devawah-sab-ji-wahwo-bulati-hai-magarye-baburao-ka-style-hai
Two files in the current repository are unusually small and may be placeholders or damaged:
sounds/emotional-damage.mp3sounds/fahhh.mp3
If either file fails during playback, replace it with a valid audio file and repackage the extension.
Users can add their own audio files in several ways.
Use:
IDE Error Soundboard: Import Sound Files- or
IDE Error Soundboard: Add Sound
Imported files are copied into the managed user sound library located under:
C:\Users\<your-user>\.ide-error-soundboard\sounds
The imported sound is then registered in the shared config and can be selected as the active sound.
If your current workspace contains a sounds folder, run:
IDE Error Soundboard: Import Workspace Sounds
Examples:
node .\bin\soundboard.js add custom-error "C:\sounds\custom-error.wav"
node .\bin\soundboard.js select custom-error
node .\bin\soundboard.js play custom-errorbin/
soundboard.js CLI entry point
scripts/
check-syntax.js Lightweight syntax verification
download_sounds.js Helper for downloading additional sound files
sounds/ Bundled audio files shipped in the VSIX
src/
extension.js Extension entry point and runtime controller
shared/
audio.js Cross-platform audio playback
config.js Shared config, managed sound library, import helpers
detector.js Terminal text matcher helpers
README.md
COLLABORATION.md
package.json
node .\scripts\check-syntax.jsnpx @vscode/vsce packagenpm run package:ovsxThis project currently uses the proposed terminalDataWriteEvent API for full Antigravity terminal text detection.
That means:
- it is suitable for local
.vsixdistribution and controlled installs - it is not a normal "publish once and works everywhere" Marketplace extension as-is
- stable/public distribution may require a second build variant without proposed APIs
If you plan to publish publicly, consider maintaining:
- a full-feature Antigravity build
- a stable Marketplace-safe build with reduced detection behavior
Check:
- monitoring is enabled
- the active sound is valid
- the sound file exists
- audio works normally on the system
- Antigravity was launched with the proposed API flag
Run:
IDE Error Soundboard: Test Active SoundIDE Error Soundboard: Check Diagnostic Status
Check that the extension is installed and active. If needed, restart the editor and reinstall the .vsix.
Launch Antigravity with:
antigravity --enable-proposed-api pareekshith-palat.ide-error-soundboardThe extension writes files under:
C:\Users\<your-user>\.ide-error-soundboard
Common files:
config.jsondebug.logactivation-error.log
From the IDE:
IDE Error Soundboard: Open Shared Config
From CLI:
node .\bin\soundboard.js config-path- The extension is implemented in CommonJS JavaScript.
- Config is intentionally shared between the IDE and CLI.
- Bundled sounds are auto-registered at activation time.
- User-imported sounds are copied into a managed config-local sound library.
- Playback on Windows uses PowerShell-backed audio playback.
The helper script scripts/download_sounds.js currently references external audio sources used to populate the local sound pack. Review audio ownership and distribution rights before distributing those files publicly.
This project is licensed under the terms of the MIT License.