Satisfying keyboard sounds as you write code in VS Code
Features
- 4 sound themes — Mechanical, Typewriter, Bubble, Soft
- Per-event sounds — distinct sounds for typing, Enter, Backspace/Delete, Save (Ctrl+S), and Paste
- Terminal sounds — plays a sound when you execute a command in the integrated terminal (shell integration)
- Live equalizer — animated waveform reacts to every keystroke in real time
- Session stats — tracks keys typed, lines added, deletes, and saves
- Works everywhere in VS Code — code editors, rename inputs, search boxes, git commit messages
Getting Started
-
Install the extension from a
.vsixfile:- Open the Extensions sidebar (
Ctrl+Shift+X) - Click
···→ Install from VSIX… - Select
key-sound-1.0.0.vsix
- Open the Extensions sidebar (
-
The Key Sound panel opens automatically in the Activity Bar on first launch.
-
Click "🎹 Key Sound" in the Activity Bar any time to open the settings panel.
Audio activation: On first open, the panel audio engine starts automatically. If you see the yellow "audio inactive" warning, click the pill once to activate.
Settings Panel
Click the 🎹 icon in the Activity Bar to access:
| Control | Description |
|---|---|
| Status pill | Green = audio active, Yellow = click to activate |
| Sounds enabled toggle | Master on/off switch |
| Live Activity waveform | Animated equaliser showing real-time activity |
| Sound Theme cards | Mechanical / Typewriter / Bubble / Soft |
| Volume slider | 0–100% |
| Save sound toggle | Chime on Ctrl+S |
| Paste sound toggle | Burst of clicks on paste / AI completion |
| Terminal sound toggle | Sound on command execution in the integrated terminal (requires shell integration) |
| Session Stats | Keys / Lines / Deletes / Saves counter |
Commands
Open with Ctrl+Shift+P:
| Command | Action |
|---|---|
Key Sound: Toggle On/Off |
Enable / disable all sounds |
Key Sound: Change Sound Theme |
Pick a theme via quick pick |
The status bar item (🔊 Keys / 🔇 Keys) also toggles sounds on click.
Sound Themes
| Theme | Icon | Feel |
|---|---|---|
| Mechanical | ⌨️ | Crisp, punchy clicks like a mechanical keyboard |
| Typewriter | 📜 | Classic clack-clack with carriage return swoosh |
| Bubble | 🫧 | Soft bubbly pops — easy on the ears |
| Soft | 🌙 | Barely-there gentle taps for quiet environments |
Settings (settings.json)
{
"keySound.enabled": true,
"keySound.theme": "mechanical",
"keySound.volume": 0.5,
"keySound.playSaveSound": true,
"keySound.playPasteSound": true,
"keySound.playTerminalSound": true
}
How It Works
All audio synthesis happens inside a VS Code Webview using the built-in Web Audio API — no sound files, no native binaries. This means it works seamlessly across:
- WSL / Remote SSH / Dev Containers
- Windows, Linux, and macOS
The extension hooks into:
- The VS Code
typecommand (one event per keystroke in editors) onDidChangeTextDocument(deletions, pastes, AI completions)onDidSaveTextDocument(save chime)window.onDidStartTerminalShellExecution(fires on Enter/command execution in the terminal)
Terminal note: VS Code's
onDidWriteTerminalDatais a permanently-proposed API and cannot be used by installed extensions. Terminal sounds therefore fire on command execution rather than per-keystroke. Shell integration must be active in the terminal (enabled by default for bash, zsh, fish, PowerShell).
General note: Copilot Chat and other webview panels (browser preview, etc.) are sandboxed by VS Code and cannot be intercepted by any extension.
License
MIT © k11e3r — published by yna