One Truth Cue
One Truth Cue is a small VS Code extension that plays character-style sound cues when a VS Code terminal command succeeds, fails, or emits warnings.
What it does
- Watches terminal command completion through VS Code Terminal Shell Integration
- Plays a sound when the command exit code is non-zero
- Plays a sound when the command succeeds by default
- Switches between named sound modes from the command palette
- Plays a sound for warning-only output by default
- Detects common terminal failure patterns from output text:
- command not found
- permission denied
- syntax error
- runtime exception
- test failure
- build failure
- package manager error
- git command failure
- Warning detection
Requirements
This extension depends on VS Code Terminal Shell Integration.
If Shell Integration is disabled or unsupported by the current shell, the extension may not receive command-level events or exit codes.
Development
npm install
npm run compile
Open this folder in VS Code and press F5.
In the Extension Development Host window, run a failing command:
npm run this-script-does-not-exist
or:
node -e "throw new Error('boom')"
Settings
| Setting |
Default |
Description |
oneTruthCue.enabled |
true |
Enable the extension |
oneTruthCue.playOnSuccess |
true |
Play a sound for successful commands |
oneTruthCue.includeWarnings |
true |
Play a sound for warning-only output |
oneTruthCue.treatUnknownExitCodeAsError |
false |
Treat undefined exit code as an error |
oneTruthCue.showNotification |
false |
Show notification when an issue is detected |
oneTruthCue.errorSoundFile |
error.mp3 |
Error sound file under media/ |
oneTruthCue.warningSoundFile |
warning.mp3 |
Warning sound file under media/ |
oneTruthCue.successSoundFile |
warning.mp3 |
Success sound file under media/ |
oneTruthCue.soundMode |
default |
Active cue mode |
oneTruthCue.soundModes |
object |
Named cue mode definitions |
oneTruthCue.cooldownMs |
800 |
Minimum interval between sounds |
oneTruthCue.maxOutputChars |
60000 |
Maximum output kept per command |
oneTruthCue.ignoredCommands |
[] |
Command substrings to ignore |
Sound modes
Use these commands from the command palette:
One Truth Cue: Select Cue Mode
One Truth Cue: Next Cue Mode
One Truth Cue: Toggle Success Cue
One Truth Cue: Toggle Warning Cue
You can also run registered VS Code commands from automation or the VS Code CLI when your code command supports --command:
code --command oneTruthCue.toggleSuccessCue
code --command oneTruthCue.toggleWarningCue
code --command oneTruthCue.toggleEnabled
Example settings:
{
"oneTruthCue.soundMode": "mode1",
"oneTruthCue.soundModes": {
"mode1": {
"errorSoundFile": "mode1/error.mp3",
"warningSoundFile": "mode1/warning.mp3",
"successSoundFile": "mode1/success.mp3"
},
"mode2": {
"errorSoundFile": "mode2/error.mp3",
"warningSoundFile": "mode2/warning.mp3",
"successSoundFile": "mode2/success.mp3"
}
}
}
Audio files
Put your own files here:
media/mode1/error.mp3
media/mode1/warning.mp3
media/mode1/success.mp3
Add more folders such as media/mode2/ and point oneTruthCue.soundModes at those files when you want more modes.
Packaging
npm install -g @vscode/vsce
vsce package
Publishing
- Create a publisher on Visual Studio Marketplace.
- Create an Azure DevOps Personal Access Token.
- Login and publish:
vsce login your-publisher-id
vsce publish
License
MIT