A Raycast extension for playing ambient sounds and white noise to help you focus, relax, or sleep. Mix multiple sounds, control per-track volume, save presets, and enjoy seamless gapless looping — all without leaving your keyboard.
- 70+ ambient sounds across 8 categories: Noise, Nature, Rain, Animals, Urban, Places, Transport, Things
- Seamless gapless looping via the Web Audio API — no click or pop at the loop boundary, even for MP3 files
- Multi-sound mixing — play several sounds simultaneously at independent volumes
- Per-sound volume control with keyboard shortcuts
- Global volume affecting all playing sounds at once
- Pause / Resume all with a single command or shortcut
- Presets — save your favourite mix and reload it instantly
- Random mix — pick 3 random sounds with one keystroke
- Offline playback — sounds are cached locally after the first download
- Toggle Playback no-view command for pausing/resuming from anywhere in Raycast
| Command | Description |
|---|---|
| Browse Sounds | Main view: browse categories, play/stop individual sounds, manage volume, presets |
| Toggle Playback | No-view command to pause or resume all currently playing sounds |
| Shortcut | Action |
|---|---|
↵ Enter |
Play / Stop the selected sound |
⌘ ↑ / ⌘ ↓ |
Sound volume +10% / −10% |
⌘ ⌥ ↑ / ⌘ ⌥ ↓ |
Global volume +10% / −10% |
⌘ ⇧ P |
Pause / Resume all sounds |
⌘ ⇧ S |
Stop all sounds |
⌘ S |
Save current mix as a preset |
⌘ R |
Play a random 3-sound mix |
⌘ . |
Refresh state |
Ambient sounds loop continuously using the Web Audio API's AudioBufferSourceNode with hardware-accurate loop points. For MP3 files this extension also parses the LAME gapless header (the Xing/Info + LAME extension block in the first VBR frame) to extract the encoder delay and trailing padding inserted by the MP3 encoder, and adjusts loopStart/loopEnd accordingly. This eliminates the audible gap or click that would otherwise occur when the loop wraps around.
WAV files and MP3 files without a LAME header fall back to looping the full decoded buffer.
- macOS (the extension uses macOS system APIs via Raycast's Electron runtime)
- Raycast 1.79.0 or later
# Install dependencies
npm install
# Run in development mode (Raycast hot-reload)
npm run dev
# Run tests
npm test
# Lint
npm run lint
npm run fix-lint
# Build for distribution
npm run buildAll sounds are sourced from Moodist and are used under their respective licenses.