Disclosure up front: Purplelink, which publishes this site, makes Keyfeel, a Mac menu-bar app sold as a free 7-day trial and then $9.99 once. I wrote this guide because people who search for Mechvibes on a Mac often end up needing an alternative, and Keyfeel is one. Everything about the other apps comes from their own pages, repositories and release notes, read on October 8, 2026. I did not install them. For Keyfeel's importer I read the app's source code and ran its config parser on sample files. I have not yet imported a set of real packs from the Mechvibes library, so "what carries over" below is read from the code, not seen on screen.
The short answer
- Classic Mechvibes packs import into Keyfeel. That is a
config.jsonwith adefinessection and either one longsoundfile sliced by time or one audio file per key. Keyfeel takes the pack as a folder, a zip or theconfig.jsonitself, and each key keeps the sound the pack gave it. - MechvibesDX packs do not. Their
config.jsonusesdefinitionsand key names, a layout Keyfeel does not parse. From the code, such a folder is treated as a pile of sounds instead, not a keyboard. See what carries over. - If you want MechvibesDX packs on a Mac, use MechvibesDX itself. It reads both formats, is free, and its own notes say the Mac build is not notarized.
What Mechvibes is
Mechvibes plays a recorded sound when you press a key, so any keyboard sounds like the one in the recording. Its site calls it free and says it is available on Windows, macOS and Linux, with community-made sound packs. It is MIT-licensed, and its repository says it will become legacy once MechvibesDX is stable. MechvibesDX is a rewrite in Rust by the same author, also MIT-licensed, with keyboard and mouse sounds. Its latest release when I read it was 0.8.3, on October 7, 2026.
What a pack contains, and the two formats
A pack is a folder with a config.json and audio files, usually shared as a zip. There are two layouts of that file in use, and the difference decides where a pack will work.
Classic, the original Mechvibes format. Keys are numbered, and each number maps to a slice of one long recording (a start and a length in milliseconds) or to its own file:
{
"id": "example-pack",
"name": "Example pack",
"key_define_type": "single",
"sound": "sound.ogg",
"defines": {
"1": [0, 120],
"30": [500, 140],
"57": [900, 200]
}
}
Here 1 is Escape, 30 is A and 57 is Space. A pack that gives each key its own file has "key_define_type": "multi" and lists a file name instead of a pair of numbers.
MechvibesDX, called V2. Keys are named after the browser's key codes, each with a list of start and end times, and the audio file is named in audio_file. This is the layout in the MechvibesDX format document:
{
"config_version": "2",
"name": "Example pack",
"author": "Your Name",
"definition_method": "single",
"audio_file": "click.ogg",
"definitions": {
"KeyA": { "timing": [[0, 50]] }
}
}
MechvibesDX converts a classic pack to V2 when you import it, keeps a backup of the original config.json, and can also export V2 packs from its editor. So a V2 pack comes from MechvibesDX, and a classic pack comes from the original Mechvibes or from anyone who made one before.
The pack list on mechvibes.com labels packs "config-v1" or "config-v2". I could not find where that site defines those labels. Do not rely on them: open the config.json and look for defines (classic) or definitions (V2).
Why people look for another way on a Mac
Searches such as "Mechvibes Mac not working" have no single cause, and I did not find a report that explains all of them. These are the facts on the Mac side that I could read.
- The original app has not been updated recently. The newest release not marked as a pre-release on GitHub is 2.3.4, from December 8, 2023. A 2.3.6 hotfix from January 2025 is marked pre-release. The macOS downloads on mechvibes.com do not say whether they are built for Intel or Apple silicon.
- The Homebrew cask is disabled. Homebrew's data for the Mechvibes 2.3.4 cask shows it disabled on September 1, 2026, with the reason "fails_gatekeeper_check". The cask is an Intel build, and Apple silicon Macs need Rosetta 2 to run it. If
brew install --cask mechvibesfails, that is why. - MechvibesDX on a Mac is labeled rough by its own author. The README says macOS support is experimental, the build is ad-hoc signed and not notarized, and it targets Apple silicon only, with Intel builds on request. On first launch you right-click the app and choose Open. The macOS readme in release 0.8.3 still opens with "EXPERIMENTAL, UNTESTED" and says the build has never been run on a real Mac by the maintainer, while the release notes themselves drop that wording. Check the current release before you rely on either.
- It needs two permissions. MechvibesDX documents Accessibility for key capture while its window is focused and Input Monitoring for when another app is in front. Without Input Monitoring it is silent unless its window has focus. Because the app is ad-hoc signed, its permissions can show as on and stop working after an update. Its fix is to remove and re-add the app in both lists.
If a keyboard sound app is silent on your Mac, check these before anything else: the app is switched on under System Settings, Privacy & Security, Input Monitoring; the output device and volume are the ones you expect; and, for an app you installed from outside the Mac App Store, you opened it once with right-click and Open if macOS blocked it. Bluetooth headphones add delay, often 100 milliseconds or more, which no app can remove.
Where packs come from
The pack list on mechvibes.com had dozens of packs when I read it, mostly switch sounds plus novelty and game sounds, each with a "Try Pack" link. I did not find a download link on that page. The MechvibesDX pack page listed 24 packs with Download buttons whose links were placeholders in the page I read, and its guide says you download a zip and import it into the app. Many packs also sit in repositories on GitHub and in forum threads.
A pack is data, not a program, but a zip can hold anything. Open it first and look. A pack should contain one config.json and audio files such as .ogg or .wav, and little else. Get packs from the pack's author or a list you trust, not from a search ad. I did not download any pack for this guide.
Import a pack into Keyfeel
These steps are for a classic pack.
- Check the pack's format. Open the pack's folder, or unzip it, and open its
config.jsonin any text editor. If it contains adefinessection, it is a classic pack and Keyfeel can read it. If it containsdefinitionswith key names such asKeyA, it is a MechvibesDX pack and Keyfeel cannot. - Open the import dialog. Click the Keyfeel icon in the menu bar and choose Import sound pack, or open Settings, Sounds, and click Import a sound pack.
- Choose the pack. Pick the pack's folder, its zip file or its
config.json, then click Import. Keyfeel converts the audio once. - Listen to the preview. When the import finishes, Keyfeel selects the pack and plays a short phrase of presses in it. If the dialog says it could not import the pack, the message says whether no sounds were found or the audio could not be read.
- Allow Input Monitoring if macOS asks. The first time Keyfeel runs, macOS asks you to allow it under System Settings, Privacy & Security, Input Monitoring. Without that permission Keyfeel cannot hear your keyboard, and the pack stays silent.
- Switch or remove the pack later. Imported packs are listed under Imported in Settings, Sounds. Click a pack to use it, or Remove to delete Keyfeel's converted copy. Your original files are never changed.
What Keyfeel does behind the dialog: it unpacks a zip into a temporary folder and deletes that folder afterwards, looks for config.json in the folder you chose or one folder below it, decodes the audio (.ogg with its own decoder, .wav, .mp3 and .m4a with the system's), and writes small WAV files into a library of its own in your user Library folder, under Application Support, Keyfeel, Imported. If it finds no config.json with a defines section, it falls back to treating the audio files in the folder as a pool of sounds for every key.
What carries over, and what does not
Read from Keyfeel's importer code on October 8, 2026, not from a test of real packs.
| Pack feature | In Keyfeel |
|---|---|
| Classic, one sound file sliced by time | Supported. Each slice becomes its own sound, cut to at most 1.5 seconds. |
| Classic, one audio file per key | Supported. |
| Audio formats | .ogg, .wav, .mp3, .m4a. A folder import without a config also accepts .aif, .aiff, .caf and .flac. |
| Which key plays which sound | Pack key numbers are matched to the same physical keys on a US keyboard. Keys the pack does not define, and some keys Keyfeel has no match for, such as the number pad digits, play a random sound from the whole pack. |
| Key release sounds | None. An imported pack plays when a key goes down. The release is silent. |
| Mouse clicks | If click sounds are on, they play a random sound from the pack. |
| Loudness | Each sound is evened out to a common peak level, so a pack made deliberately quiet or loud plays at Keyfeel's level. Use the volume controls. |
| Pack settings such as recommended volume or random pitch | Not read. |
| MechvibesDX V2 packs | Not supported. The file has no defines section, so Keyfeel does not take the key mapping. From the code, a folder with one long recording would be cut to its first 1.2 seconds and used as the sound for every key. I have not run that case in the app. |
| MechvibesDX mouse packs | Not supported, for the same reason. |
My sample-file run behaved as the table says: a classic sliced config and a classic one-file-per-key config both parsed, a V2 config was rejected for having no definitions, and the number pad 7 key had no match. The importer's own tests cover the parsing and key mapping, not the audio conversion of real packs.
Other ways to play the same packs on a Mac
Prices and requirements as listed on October 8, 2026. "Not stated" means the pages I read did not say.
| App | Price | Mechvibes packs | Mac state, as documented |
|---|---|---|---|
| Mechvibes 2.3.4 | Free, MIT | Native format | Homebrew cask is Intel and disabled; site lists .dmg files without saying which chip |
| MechvibesDX 0.8.3 | Free, MIT | Reads classic and V2 | Apple silicon .dmg, not notarized, Accessibility and Input Monitoring |
| Keyfeel | $9.99 once, 7-day trial | Classic only | macOS 13 or later, Apple silicon and Intel, notarized, Input Monitoring |
| Klack | $4.99, Mac App Store | Not stated | macOS 15 or later per the listing; macOS 27 support in 2.2.0 |
| Thock | Free, MIT | Not stated; its own JSON profiles | macOS 13.5 or later |
| KeyOpera | $3 | Not stated; its own .keypak packs | Not stated |
- Klack plays keys with up and down sounds and switch sets you choose. Its changelog lists mouse click sounds since version 1.7 (January 29, 2025) and, in version 2.2 (July 21, 2026), scroll sounds with haptic ticks and macOS 27 support. I found no mention of importing your own sounds or Mechvibes packs on its site, changelog or Mac App Store listing, which shows $4.99 and no data collected. Pick it for a polished keyboard app, not for packs.
- Thock is open source with a command line and a Raycast extension. Its README describes custom switch profiles written in its own JSON structure and does not mention Mechvibes packs. Its latest release when I read it was 1.23.0, from March 28, 2026.
- KeyOpera installs
.keypakpacks from its Sound Effects panel, per the developer's page, which does not mention Mechvibes packs. - Keyfeel is the paid one here that reads classic Mechvibes packs and also plays mouse click sounds, scroll ticks and optional trackpad haptics. It is new and costs the most of these. The full comparison says where each of the others is the better choice.
I did not find another Mac app that advertises importing Mechvibes packs, but I did not search every app, so I will not say Keyfeel is the only one.
The permission, and what it can see
Any app that plays a sound when you press a key in another app needs the macOS Input Monitoring permission. Apple describes it as letting an app see what you type on the keyboard and monitor input from your mouse or trackpad. Keyfeel uses it to get the key code, which says which key was pressed, and not the character. It works offline, and its only network use is checking for updates. The Keyfeel page says that when a password field has focus, macOS stops delivering keystrokes to apps like Keyfeel, so it hears nothing there. Do not assume the same of every app. The permissions guide covers what each of the Full Disk Access, Input Monitoring and Accessibility permissions allows and how to review them.
Sound pack licenses
"Free" on a pack list describes the price. It does not tell you what you may do with the sounds. The mechvibes.com list I read named a creator for only some packs and stated no license for any. A recording of a real keyboard is someone's work, and a pack made from a game or a film may contain material its maker did not own.
- Keyfeel's import makes a converted copy on your Mac for your own use. It does not upload the pack.
- Do not post a pack, or the converted WAV files in Keyfeel's library, to another site unless the pack's author says you may.
- If you want to use a pack in a video, a stream or something you sell, ask its author first.
- If a pack ships with a license file, that file decides. I am not a lawyer and this is not legal advice.
Keyfeel's own recordings are different: every one is licensed CC0, with credits listed in the app.
Frequently asked
Do MechvibesDX packs work in Keyfeel?
No. MechvibesDX packs use a V2 layout with definitions and key names, and Keyfeel reads only the original layout with defines. Read from the code, not tested in the app: a V2 folder would be treated as a pool of sounds, not a keyboard. Classic packs, including ones MechvibesDX has not converted, do import.
Is Mechvibes safe to install?
Its code is open and MIT-licensed, so anyone can read it, and I have not audited it. It needs a permission that lets it see which keys you press, so install it only from the project's own GitHub releases. The MechvibesDX releases list a SHA256SUMS file you can check a download against. On a Mac the builds I read about are not notarized, so macOS will warn you the first time you open one.
Why is Mechvibes silent on my Mac?
Check that the app is switched on under System Settings, Privacy & Security, Input Monitoring, and that the output device and volume are right. MechvibesDX also needs Accessibility, and its permissions can stop working after an update until you remove and re-add the app in both lists. The original app has had no stable release since December 2023, and I did not find a report that ties its silence to a macOS version.
Does Mechvibes work on macOS 27?
I did not find a statement of macOS 27 support from Mechvibes or MechvibesDX. Klack's changelog says version 2.2.0 was updated for macOS 27. Keyfeel's stated requirement is macOS 13 or later, and I have not tested it on macOS 27.
Can Klack or Thock use Mechvibes packs?
I found no statement that either does. Thock describes its own JSON switch profiles, and Klack's pages mention no way to add your own sounds.
Is Keyfeel free?
It is free for 7 days, the full app with no account, then $9.99 once with a license key. I make it. Mechvibes and MechvibesDX are free, and so is Thock.
Related guides
- Keyfeel: the Purplelink Mac menu-bar app described above.
- Best keyboard sound apps for Mac (2026): Klack, KeyOpera, Thock, Mechvibes and others compared by price, sounds and permissions.
- Is it safe to allow Full Disk Access, Input Monitoring or Accessibility on a Mac?: what each permission allows and how to review it.
- Purplelink's privacy page, all products and all guides.