NEg-Cat
A small black cat roams across your VS Code window on Windows. It walks, jumps, grooms itself, and naps. There is no backdrop, scene, moon, or panel behind the roaming cat. New code errors make it jump and play one of the four bundled voice recordings.
Use the installed extension
- Install NEg-Cat from the Marketplace or use Extensions: Install from VSIX once.
- Open VS Code normally. On Windows, the transparent cat appears automatically and roams across the window. It is click-through and does not interrupt typing. No source folder, F5, terminal, WSL, or development window is required.
- The four bundled recordings work automatically. Run NEg-Cat: Test Error Reaction to preview a random clip.
- Optional: run NEg-Cat: Choose Your Voice Recordings to select replacement recordings. Clear both
neGcat.voicePaths and neGcat.voicePath to restore the bundled clips.
Run NEg-Cat: Hide Roaming Cat to hide it, or NEg-Cat: Show Cat to bring it back. Turn off neGcat.autoShow to start without a cat. The cat stays within the active VS Code window and becomes invisible when you switch to another app or minimize VS Code.
The four creator recordings are included in the extension package; users do not need the original OneDrive files. Custom recordings selected using the picker remain on that user's machine and are not uploaded.
Windows roaming uses a small WPF helper launched by Windows PowerShell in hidden mode. It draws only the cat in a transparent native window, leaves clicks to VS Code, and exits with the extension host. The extension uses process-local execution policy for its own packaged script; it does not change the machine's PowerShell policy or modify VS Code installation files. Managed machines that block PowerShell scripts may block this helper.
On macOS/Linux, or with neGcat.roaming disabled, the cat uses a normal VS Code panel. That fallback cannot roam outside its panel. The panel scenery has been removed as well.
Errors come from VS Code diagnostics (Problems), so install/enable a language validator for the language you use. Terminal output and runtime exceptions without diagnostics do not trigger it. Existing errors at startup do not immediately play audio. New errors are debounced by 700ms, with a configurable 10-second sound cooldown. Line movement and repeated diagnostic updates do not retrigger playback; additional occurrences of the same error do. Automatic reactions require VS Code to be focused in roaming mode, or the panel visible in fallback mode. Errors introduced while unfocused or during cooldown do not queue a later sound.
Settings: neGcat.roaming, neGcat.autoShow, neGcat.voicePaths, neGcat.soundEnabled, neGcat.volume, and neGcat.cooldownSeconds. A custom list takes priority, followed by the legacy single-file setting, then the four bundled recordings. Missing files are skipped. Keep any custom selected files in their original locations, or select them again after moving them. Native audio uses Windows media codecs; WAV or MP3 is recommended, and OGG support depends on installed codecs.
Validate and package
Run npm ci, then npm run check, npm test, npm run test:native, npm run test:browser, and npm run test:host. Native tests compile WPF, verify transparency and nonactivation, and exercise helper startup/cleanup. Browser tests cover the fallback panel. Host tests download an isolated stable VS Code. Results and previews are written under test/.
To produce an installable package, run npx @vscode/vsce package --allow-missing-repository from this folder. Install the resulting VSIX with Extensions: Install from VSIX. Publisher: NekoMatsu1, matching Ne-Codex Stats. See PUBLISHING.md for Marketplace upload instructions. The source is MIT licensed. No production dependencies are included in the package; the four creator recordings are included under media/voices/.
The rename changes the extension identifier and setting prefix from the early Midnight Cat prototype. Uninstall that prototype if installed, and choose your recording again in NEg-Cat.