The short version: the free hidutil command is best for a quick one-off fix. FastKey is the least-effort way to make it permanent on every keyboard with no Terminal. Karabiner-Elements also removes the delay, but it installs a system driver extension and is really built for full keyboard remapping — powerful, but heavy for one key. CapsLockNoDelay is a free single-purpose app, but it isn't notarized by Apple, so Gatekeeper blocks it by default.
The comparison, at a glance
Every option below genuinely removes the delay. The differences are in whether the fix survives a reboot, whether it covers keyboards you plug in later, how much setup it takes, and what it installs on your Mac.
| Capability | hidutil command | hidutil + LaunchDaemon | CapsLockNoDelay | Karabiner-Elements | FastKey |
|---|---|---|---|---|---|
| Survives a reboot | No — resets to 75 ms | Yes — at boot | Yes | Yes | Yes |
| Covers keyboards plugged in later | No | No — misses mid-session | Yes | Yes | Yes |
| No Terminal required | No | No | Yes | Yes | Yes |
| No system / driver extension | Yes — nothing installed | Yes | Yes | No — DriverKit driver | Yes — no driver |
| One-click on / off | No | No | Partly | Automatic, not a toggle | Yes |
| Built-in way to verify it works | No | No | No | No | Yes — Tap Test |
| Signed & notarized by Apple | Built into macOS | Built into macOS | No — Gatekeeper blocks it | Yes | Yes |
| Permissions it asks for | None | Root to install | Accessibility + Input Monitoring | Accessibility + driver-extension approval | Input Monitoring only |
| Price | Free | Free | Free | Free | £4.99 once (14-day trial) |
The free hidutil command
The hidutil command is the simplest fix and installs nothing. One line sets CapsLockDelayOverride to 0 and the delay is gone. It needs no sudo and no restart.
Its limits are just as clear: the setting is held in memory, so it resets on every reboot, and it only affects keyboards attached the moment you run it. It's ideal for a quick test or a one-off fix on a single built-in keyboard. See the step-by-step how-to for the exact command.
hidutil plus a LaunchDaemon (the DIY route)
You can make the command survive reboots yourself by writing a root-owned LaunchDaemon in /Library/LaunchDaemons that re-runs it at every boot. It's free and effective, but it's manual, requires root to install, and — because it only fires at boot — still misses any keyboard you hot-plug during a session. This is essentially the persistence layer that an app automates for you.
CapsLockNoDelay (free, open-source app)
CapsLockNoDelay is a small, single-purpose background app that removes the delay and re-applies it. It's free and open-source, which is genuinely nice. The caveats: it isn't notarized by Apple, so macOS Gatekeeper blocks it until you right-click to open, and it asks for both Accessibility and Input Monitoring — two fairly broad permissions for one narrow job.
Karabiner-Elements (the power tool)
Karabiner-Elements is a respected, free, open-source keyboard customizer — the standard tool for deep remapping on macOS. Per its documentation, it disables the Caps Lock delay automatically once it's running, so it fixes the delay as a side effect.
The trade-off is footprint. To work, Karabiner installs a system-level DriverKit virtual-keyboard driver that grabs and re-emits all of your keyboard input, and it requires granting Accessibility plus approving a driver extension in System Settings. That's a lot of machinery for removing one delay, and the driver approval has occasionally regressed on new macOS releases. If you also want full remapping, Karabiner is excellent and worth it. If you only want the delay gone, it's more tool than the job needs.
None of this is a knock on Karabiner's quality — it's a superb, general-purpose engine. The point is simply matching the tool to the task: a driver extension is a big commitment for a one-line change.
FastKey (purpose-built for this one thing)
FastKey applies the same CapsLockDelayOverride the free command does, then keeps it applied — across restarts, sleep, and every keyboard — without a driver extension. It adds the things the raw command and the DIY route can't: a one-click on/off in the menu bar, a built-in Tap Test to prove it's working on your real keyboard, and Apple notarization. It asks for a single permission, Input Monitoring, and only to run the Tap Test on the Caps Lock key.
The honest trade-offs: it costs £4.99 (with a 14-day full trial), and it does one thing — if you want general keyboard remapping, that's Karabiner's job, not FastKey's.
The all-green row, for the price of a coffee
Permanent, every keyboard, one-click, notarized, with proof it works. Try FastKey free for 14 days, then £4.99 once — 3 Macs per license.
Download the free trialOur honest recommendation
- Just want to test it, or only use your built-in keyboard? Run the free
hidutilcommand. If you don't mind a little setup, add a LaunchDaemon so it survives reboots. - Already use Karabiner, or want deep keyboard remapping anyway? Let Karabiner handle the delay too — it already does, for free.
- Want the delay gone permanently on every keyboard, with a visible on/off, proof it works, and zero Terminal? That's exactly what FastKey is for.
Frequently asked questions
What's the best way to remove the Caps Lock delay on a Mac?
For a free one-off fix, the hidutil command. For a permanent, no-Terminal fix on every keyboard, a purpose-built app like FastKey. Karabiner-Elements works too but installs a driver extension and is aimed at full remapping.
Does Karabiner-Elements remove the delay?
Yes — automatically, once installed. It does so by running a DriverKit virtual-keyboard driver that intercepts all keyboard input, which is a large footprint for a single delay.
Is CapsLockNoDelay safe to use?
It's open-source and single-purpose, but it isn't notarized by Apple (so Gatekeeper blocks it by default) and it needs both Accessibility and Input Monitoring. Weigh that against a notarized app or the built-in command.
Why would I pay for FastKey when hidutil is free?
You're paying to never think about it again: automatic persistence across reboots and every keyboard, a one-click on/off, a built-in test, notarization, and no Terminal. If you're happy re-running a command or maintaining a LaunchDaemon, the free route is entirely valid.