Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>PushSoundNew to Visual Studio Code? Get it now.
PushSound

PushSound

Ivan Gusev

|
3 installs
| (0) | Free
Plays a sound on git events: commit, push, pull, fetch, merge, rebase, checkout, reset, branch, tag, clone.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

PushSound

Icon

Plays a sound on git events (commit, push, pull, fetch, merge, rebase, checkout, reset, branch, tag, clone) in any git repository opened in VS Code.

Marketplace

Features

  • Play a custom sound on each git event: commit, push, pull, fetch, merge, rebase, checkout, reset, branch, tag, clone.
  • Configure each event independently – leave a sound empty and that event stays silent.
  • Optional text-to-speech: read the commit message aloud before the commit sound, using offline OS voices. See Text-to-speech.
  • Provide a single file or a list of files – a random one is picked on each event.
  • Works for actions made from anywhere: VS Code Source Control panel, integrated terminal, external terminal, third-party git GUIs. The only requirement is that the repository is opened as a folder in a VS Code window.
  • No UI, no popups – plays sound through the system audio stack (afplay on macOS, PowerShell on Windows, paplay/aplay on Linux).

Detection is heuristic: events are inferred from VS Code's git state (HEAD, ahead/behind, refs, merge/rebase state), not by intercepting git commands. Some operations are indistinguishable through the API – e.g. a clean (fast-forward) merge reads as pull/commit, and a reset in a repo without an upstream reads as commit. merge fires on merge/conflict state.

Configuration

Open settings (Cmd+, / Ctrl+,) and search for "PushSound", or edit settings.json directly:

{
  "pushsound.enabled": true,
  "pushsound.volume": 0.8,
  "pushsound.sounds.commit": "/absolute/path/to/commit.wav",
  "pushsound.sounds.push": [
    "/absolute/path/to/push1.mp3",
    "/absolute/path/to/push2.wav"
  ],
  "pushsound.sounds.pull": "/absolute/path/to/pull.wav"
}
Setting Type Default Description
pushsound.enabled boolean true Enable/disable sound playback.
pushsound.volume number 0.8 Volume 0..1.
pushsound.sounds.commit string | string[] "" Audio file(s) for commit. Empty – silent.
pushsound.sounds.push string | string[] "" Audio file(s) for push. Empty – silent.
pushsound.sounds.pull string | string[] "" Audio file(s) for pull. Empty – silent.
pushsound.sounds.fetch string | string[] "" Audio file(s) for fetch. Empty – silent.
pushsound.sounds.merge string | string[] "" Audio file(s) for merge. Empty – silent.
pushsound.sounds.rebase string | string[] "" Audio file(s) for rebase. Empty – silent.
pushsound.sounds.checkout string | string[] "" Audio file(s) for checkout / branch switch. Empty – silent.
pushsound.sounds.reset string | string[] "" Audio file(s) for reset. Empty – silent.
pushsound.sounds.branch string | string[] "" Audio file(s) for branch create/delete. Empty – silent.
pushsound.sounds.tag string | string[] "" Audio file(s) for tag create/delete. Empty – silent.
pushsound.sounds.clone string | string[] "" Audio file(s) for clone / opening a repo. Empty – silent.

Every event is silent until you set its sound, so you can enable only the ones you want.

Text-to-speech (TTS)

When enabled, PushSound reads the commit message aloud (its first line) right before the commit sound plays. No files, no network, no models – it uses the built-in OS voices (say on macOS, System.Speech on Windows, spd-say/espeak on Linux), so it is offline and lightweight.

{
  "pushsound.tts.enabled": true,
  "pushsound.tts.voice": "Samantha",
  "pushsound.sounds.commit": "/absolute/path/to/commit.wav"
}

With the config above, committing “fix login bug” first says “fix login bug”, then plays commit.wav.

Tip: open Settings (Cmd+, / Ctrl+,), search pushsound tts, and just toggle the Tts: Enabled checkbox – no need to edit settings.json.

Setting Type Default Description
pushsound.tts.enabled boolean false Read the commit message aloud before the commit sound.
pushsound.tts.voice string "" Voice name (e.g. Samantha, Milena). Empty – system default.

Notes:

  • Only the commit event is spoken (the commit message); other events just play their sound.
  • On macOS list available voices with say -v '?'; the spoken language follows the chosen voice (use a Russian voice like Milena for Russian commit messages).
  • macOS has no per-call volume flag, so pushsound.volume is applied inline ([[volm …]]); on Windows it maps to the synthesizer volume.
  • Linux requires spd-say (speech-dispatcher) or espeak to be installed; without them TTS is silently skipped.

Commands

  • PushSound: Play sound (pick event)… – pick any event from the list and play its configured sound (for testing).
  • PushSound: Play commit sound – plays the configured commit sound (for testing).
  • PushSound: Play push sound – plays the configured push sound (for testing).

Supported formats

  • macOS: anything afplay accepts – wav, mp3, aiff, m4a, caf.
  • Windows: wav always; mp3 and other formats via Windows Media (PresentationCore).
  • Linux: paplay accepts most formats; fallback aplay is wav-only.

Requirements

  • VS Code 1.85 or newer.
  • macOS / Windows: works out of the box.
  • Linux: requires paplay (PulseAudio) or aplay (ALSA) to be installed.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft