VS Code Extension

Faah

Your Error Drama Alarm for VS Code

Never miss errors in VS Code. Faah plays instant alerts for terminal failures and editor diagnostics, with one-click status bar controls.

terminal - zsh
Free & Open Source|MIT License

The Problem

Silent errors are the worst kind of errors

Without Faah

Sad developer staring at silent logs and a quiet Problems panel

Error happened 10 minutes ago. Nobody noticed.

The project is on fire. Everything is fine.

You find out during the demo. In front of the client.

$ npm run build && tsc --watch
// ...silence...
// ...more silence...
ERROR: failure reported 12 minutes ago

With Faah

Developer gets an instant audio alert

Checks status bar mode and source toggles in one click

Catches the error immediately

Saves the day. Feels like a superhero.

The client never knows it almost broke.

$ npm run build
ERROR: ts(2322) in page.tsx
Status: Faah T+E
>>> FAAH! <<<
Fixed in 30 seconds

Features

Everything you need to hear and control your errors

Default Faah + custom sound

Uses bundled `faah` by default, with optional uploaded custom sound override.

Source-aware monitoring

Toggle terminal output and active-file diagnostics independently.

Terminal detection mode

Choose output match only, non-zero exit only, or either signal.

Severity mode control

Choose strict Error-only alerts or include warnings too.

Per-source cooldown

Set separate cooldown values for terminal and diagnostics alerts.

Settings UI + regex preview

Validate custom and exclude regex lines before auto-save applies changes.

Snooze controls

Pause alerts for 15m/30m/1h/2h and clear snooze anytime.

Quiet hours

Suppress alerts during preset or custom `HH:mm` quiet windows.

Save scope + import/export

Save to User or Workspace scope, then export/import full settings snapshots.

False-positive presets

Apply built-in exclude preset packs for commit lines, lint summaries, snapshots, and package-manager noise.

Quick actions + commands

Use status bar or Command Palette for settings, test sound, and control flows.

Perfect For...

Every developer's worst nightmare, now with sound

$ rm -rf /wrong-folder

When you rm -rf the wrong folder

$ docker build . --no-cache

When your Docker build fails for the 12th time

$ const x = y + ;

When a quick edit introduces a syntax error

$ ts(2322) page.tsx:40:24

When the Problems panel lights up while you switched tabs

$ Faah: Show Quick Actions

When you need to flip terminal/editor monitoring without opening settings

$ Faah: Snooze Alerts

When you need temporary silence during a noisy debugging session

$ Faah: Set Quiet Hours

When you want overnight errors logged but not shouted

$ git push origin main

When your deploy fails at 2 AM

$ python manage.py migrate

When migrations break everything

Settings UI

Control room matches live extension now

Open Quick Actions from Faah status bar, then launch Open Faah Settings. Docs mock below mirrors current Control Room structure and actions.

Faah Control Room
Tune alert behavior without opening VS Code settings JSON.
Settings auto-save instantly to keep everything in sync.

Terminal monitoring is fully available in this host.

Show Compatibility Status

Turn error sound monitoring on or off.

Terminal Output
Play alerts for terminal command output.
Editor Diagnostics
Play alerts for problems in active editor file.
Error only
Output match or non-zero exit
1500ms

Delay between terminal-triggered alerts.

1500ms

Delay between diagnostics-triggered alerts.

70%

`0%` mutes. `100%` uses max playback volume.

Show warning popup when Faah detects issue.

User (Global) ▾

Choose where auto-saved settings should be stored.

Suppress alerts during selected hours.

22:00
to
07:00
Using default: faah
Override built-in patterns
Append to built-in patterns

Built-in pattern preview appears in append mode.

\berror\b
\bfailed\b
\bfailure\b
\bfatal\b
\bexception\b
\bcritical\b
\berr(or)?[:!\]]
\buncaught\b
UnhandledPromiseRejection
Traceback \(most recent call last\):
\btypeerror\b
\bcannot\s+find\s+module\b
\bmodule\s+not\s+found\b
\btimeout(?:\s+exceeded)?\b
\bconnection\s+(?:refused|reset|timed\s*out)\b
^\[[^\]]+\s[0-9a-f]{7,40}\]\s(?:feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\([^)]+\))?!?:\s.+$
^(?:feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\([^)]+\))?!?:\s.+$
Conventional Commits - Ignore commit summary lines that mention error-like words.
Lint Summaries - Ignore summary banners that report counts without real failure lines.

Presets add built-in exclude regex groups without manual editing.

All regex entries look valid.
Invalid regex lines pause auto-save until corrected.
Changes auto-saved to user settings.
“Coding is already dramatic.
Faah just makes sure you hear it.”