Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

nirajrajgor/keesound

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

26 Commits

Repository files navigation

Keesound

Native macOS menu-bar app that plays mechanical-keyboard switch sounds as you type.

  • Minimal latency
  • Fully offline, no telemetry
  • Free and open-source (MIT)

Requires macOS 14+ and Xcode 16+.

Quick start

A prebuilt, signed app is coming soon. Until then, build from source with Xcode (below).

brew install xcodegen
git clone https://github.com/nirajrajgor/keesound.git
cd keesound
cp Configs/Local.xcconfig.example Configs/Local.xcconfig # then set your Apple Team ID
xcodegen generate
open Keesound.xcodeproj # pick the Keesound scheme, ⌘R

On first launch macOS prompts for Input Monitoring — grant it in System Settings → Privacy & Security → Input Monitoring, then ⌘R again.

To install a Release copy to /Applications (launchable from Spotlight), run Scripts/install.sh (override the destination with KEESOUND_INSTALL_DIR).

Features

  • Four switch profiles: NovelKeys (NK) Cream (linear), Holy Panda (tactile), Cherry MX Blue and Kailh Turquoise (clicky)
  • 5 random generic variants per profile, plus optional space / enter / backspace overrides
  • Per-hit pitch (±5%) and gain (±25%) jitter so repeated strikes don't sound identical
  • Volume, profile, and enabled state persist across launches
  • Audio engine auto-suspends after 30 s idle and resumes on the next keystroke

Menu bar icon

The icon only changes for the one thing that needs attention — Input Monitoring permission:

Icon Meaning
+ ellipsis badge Permission not granted — open the popover to grant it
(filled) Running normally

Open the popover for the full runtime state (Active / Idle / Disabled / Permission missing).

Samples

Each profile ships real, MIT-licensed recordings from Mechvibes and kbsim. See Samples/README.md for sources, licenses, and how to swap in your own packs.

Architecture

×ばつ AVAudioPlayerNode → Varispeed → mixer) │ ▼ AVAudioEngine output">
CGEventTap ──▶ KeyEventTap ──▶ MenuBarController ──▶ AudioEngine
 │
 ▼
 VoicePool (8 ×ばつ AVAudioPlayerNode → Varispeed → mixer)
 │
 ▼
 AVAudioEngine output
  • KeyTap/ — system-wide event capture via Core Graphics
  • Audio/AVAudioEngine, voice pool, sample bank, jitter
  • Model/SwitchProfile, UserDefaults-backed Settings
  • UI/ — SwiftUI popover and permission views

Privacy

Keesound taps CGEventTap with .listenOnly: keystrokes are inspected to pick a sound and immediately discarded. Nothing is logged, stored, or sent anywhere — there's no network code in the binary.

FAQ

Does it work on any keyboard? Yes — it listens for key events, not for a specific device, so the built-in MacBook keyboard, a Magic Keyboard, or anything else all work.

Is it a free alternative to Klack or Mechvibes? That's the idea. MIT-licensed, no purchase, no account, runs entirely on-device.

Will it lag my typing? No. Sounds fire from an 8-voice pool on AVAudioEngine; the engine auto-suspends after 30 s idle and wakes on the next keystroke.

License

MIT for code (see LICENSE). Bundled audio is MIT, licensed per-pack — see Samples/README.md.

About

Free, open-source mechanical keyboard sounds for macOS. A native, low-latency menu-bar app that plays Cherry MX Blue, Holy Panda & NovelKeys Cream switch sounds as you type.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /