Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Waifu ScoldNew to Visual Studio Code? Get it now.
Waifu Scold

Waifu Scold

softwarewithnick

|
1 install
| (0) | Free
When your Python code errors, a waifu appears and scolds you about it — out loud.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Waifu Scold

A VS Code extension. When your Python code fails at runtime, an anime image appears beside your editor and a voice scolds you about the specific kind of mistake you made.

It watches two places:

  • Terminal runs — anything matching the command pattern (python, pytest, uv run, …) that exits nonzero. Uses VS Code's shell-integration API, so it sees the ▶ Run button, the debug console, and anything you type at a prompt.
  • Notebook cells — reads cell error outputs directly, since those never reach a terminal.

The exception is sorted into one of 15 categories and the scold is written for that category, so a KeyError on a mistyped dataframe column gets a different line than a numpy broadcast failure.

Install it for real

npm install
npm run install-local     # packages a .vsix and installs it

Then reload the window (Ctrl+Shift+P → "Developer: Reload Window"). The extension activates on onStartupFinished, so it is live in every window from then on.

Re-run npm run install-local and reload after any code change. To remove it:

code --uninstall-extension local.waifu-scold

Or run it in a sandbox

Press F5 for an Extension Development Host with fixtures/ open. Changes need only a rebuild plus a restart of that window, and nothing touches your real editor — better while editing the code.

First run

In whichever window it is running:

  1. Waifu Scold: Set Fish Audio API Key — get a key from fish.audio. It is stored in VS Code's SecretStorage, never in settings.json.
  2. Waifu Scold: Choose Voice — searches the Fish Audio voice library and plays a sample of whatever you pick.
  3. Run fixtures/missing_key.py.

The first scold of a session shows a "Click to hear it" button: browsers block audio until you have interacted with the panel once. One click and it stays unlocked.

Without an API key the extension still works — you get the image and the written line, just no voice.

Settings

Setting Default
waifuScold.enabled true Master switch
waifuScold.muted false Image and text, no speech
waifuScold.commandPattern \b(python3?\|py\|pytest\|uv run\|…)\b Which terminal commands to watch
waifuScold.cooldownSeconds 30 Suppress repeats of the same category
waifuScold.watchNotebooks true Watch .ipynb cell errors
waifuScold.waifu.tags ["waifu"] See https://api.waifu.im/tags
waifuScold.waifu.allowNsfw false
waifuScold.fishAudio.referenceId 98655a12… (E-girl) Change via the Choose Voice command
waifuScold.fishAudio.model s2.1-pro-free TTS backbone. Only the -free one costs nothing
waifuScold.audioCacheSize 100 Clips kept on disk

Editing the personality

All the lines live in media/scolds.json, keyed by category. Edit them and reload the window — no rebuild needed. Run Waifu Scold: Test a Scold Category to hear one on demand.

Synthesized clips are cached on disk by sha256(model + voice + text), so repeat scolds cost nothing and play instantly. Editing a line just produces a new cache key. Waifu Scold: Clear Audio Cache wipes it.

Tests

npm test

Covers the traceback parser and the category mapper against real captured tracebacks, including ANSI-coloured pytest output, chained pandas exceptions, and cases that must not be treated as errors.

Notes

  • waifu.im needs no API key. is_nsfw=false is sent unless you opt in, and the response is re-checked before display.
  • Fish Audio /v1/tts is called with a plain JSON body; the response is chunked mp3. A failure there never blocks the image — you still get the text.
  • Ctrl+C is not scolded. A shell reporting no exit code is treated as a cancellation, not a failure.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft