Local-first Windows tray soundboard for Valorant, CS, Overwatch, Google Meet, Zoom, and virtual microphone routing.
Install from the landing page · How it works · MyInstants supplier
⭐ Star this repo if MemeBlip is useful
MemeBlip is a local-first Windows tray soundboard for games, calls, and meetings. It lets you import clips, search for new meme sounds through a MyInstants-powered supplier page, organize clips into soundboards, trigger them with hotkeys, and route clip audio plus optional voice passthrough into apps through VB-CABLE.
Install MemeBlip from the landing page only: https://memeblip.dawnlightlabs.com/
If MemeBlip helps your games, calls, meetings, or comms, star the repo so more people can find it: https://github.com/amaansyed27/meme-blip
windows-soundboard soundboard tray-soundboard valorant-soundboard csgo-soundboard overwatch-soundboard google-meet-soundboard zoom-soundboard virtual-microphone mic-routing vb-cable audio-routing hotkey-soundboard myinstants rust react vite
MyInstants API
-> React dashboard supplier page
-> local companion API
-> Rust downloader/importer
-> local sound storage
-> soundboards + hotkeys
Physical mic -> MemeBlip mic passthrough -> CABLE Input
MemeBlip clips -> CABLE Input
CABLE Output -> game/call microphone
Monitor preview -> headphones/speakers
The project has four parts:
- Web dashboard: React/Vite UI for sounds, boards, hotkeys, routing, settings, and the MyInstants supplier page.
- Native companion: Rust app that owns playback, local API, tray integration, hotkeys, audio devices, remote imports, and persistent storage.
- Sound supplier: MyInstants search/trending/recent/best integration for finding and importing new sounds.
- Landing page: Minimal public site under
site/, deployable on Vercel.
Reliable MVP flow:
Physical mic -> MemeBlip mic passthrough -> CABLE Input
MemeBlip clips -> CABLE Input
CABLE Output -> game/call microphone
Monitor output -> headphones/speakers
System-wide audio routing is intentionally not part of the product path right now because plain VB-CABLE does not monitor cleanly to headphones while also sending to the call.
- Import local audio clips.
- Search MyInstants from inside MemeBlip.
- Preview MyInstants sounds before importing.
- Import remote MyInstants MP3 sounds into local MemeBlip storage.
- Preview library sounds locally through normal headphones/speakers.
- Rename clips and assign them to boards.
- Create boards automatically from clip metadata.
- Activate one soundboard so only that board owns hotkeys.
- Assign hotkeys with presets or press-to-record controls.
- Route clips to
CABLE Inputfor apps that useCABLE Outputas microphone. - Optional local monitor playback to your headphones/speakers.
- Optional physical mic passthrough into the same virtual route, so your voice and clips share one mic path.
- First-run VB-CABLE setup gate with check/retry actions.
- Local companion API protected by a local token header.
- GitHub Release update check/download support.
- Windows MSI packaging scripts.
- Public single-page landing site with a download button for the Windows setup.
The Sounds → Get more page uses the community MyInstants API wrapper by abdipr/myinstants-api.
Frontend client:
app/src/services/myInstantsClient.js
Supported supplier calls:
GET https://myinstants-api.vercel.app/search?q=<query>
GET https://myinstants-api.vercel.app/trending?q=us
GET https://myinstants-api.vercel.app/recent
GET https://myinstants-api.vercel.app/best?q=us
Import flow:
User searches/previews sound
-> dashboard sends title + MyInstants MP3 URL to local companion
-> companion validates MyInstants media URL
-> companion downloads MP3
-> companion stores the file locally
-> clip appears in the active MemeBlip board
Remote imports are not streamed directly into the app during hotkey playback. They are downloaded once and then treated like normal local clips.
- Windows for the current production path.
- Node.js 22 or newer.
- Rust stable.
- VB-CABLE installed for virtual microphone routing.
- Internet connection only when using the MyInstants supplier or update checks.
Install dependencies:
npm installRun the native companion:
npm run companionRun the dashboard in another terminal:
npm run devOpen:
http://127.0.0.1:48321
Run the landing page locally:
npm run site:devOpen:
http://127.0.0.1:48330
Companion API and packaged dashboard run on:
http://127.0.0.1:48322
If the companion executable is locked or the port is busy:
npm run companion:stop
npm run companionCheck whether VB-CABLE is installed:
npm run cable:checkInstall helper:
npm run cable:installAfter install, reboot Windows.
Expected route:
MemeBlip route/output: CABLE Input
Target app microphone: CABLE Output
Monitor output: normal headphones/speakers
Build the web dashboard:
npm run buildBuild the landing site:
npm run site:buildBuild the native companion:
npm run build:companionPackage Windows build:
npm run package:windowsThis creates local build outputs:
release/MemeBlip-Windows.zip
release/MemeBlip-Setup.msi
Public installs should go through:
https://memeblip.dawnlightlabs.com/
- Architecture
- How MemeBlip works
- MyInstants supplier
- Project index
- Release guide
- Vercel deploy guide
- Changelog
- Code review notes
- TODO
- Logo and icon placement
- Contributing
- Security
- Support
MIT. See LICENSE.