The fast answer: you can remove the macOS Caps Lock delay for free with one Terminal command — hidutil property --set '{"CapsLockDelayOverride":0}'. It works instantly, with no sudo and no restart.
The catch: it resets every time you reboot, and it ignores keyboards you connect afterward. To make the fix permanent and automatic — across restarts, sleep, and every keyboard — use FastKey, a menu-bar app that keeps the override applied.
At a glance
- Free method
- One
hidutilcommand. Nosudo, no restart. Resets on reboot. - The property
CapsLockDelayOverride, set to0.- Works on
- Current macOS, including Sonoma and Sequoia. macOS 13+.
- Permanent method
- FastKey — re-applies automatically, one-click on/off, £4.99, 14-day free trial.
- Fully reversible
- Reboot (free method) or toggle off (FastKey). Nothing permanent is written.
Method 1: Remove the delay for free with hidutil
macOS has a built-in tool called hidutil that can change how the system handles keyboard input. One command tells it to override the Caps Lock delay and set it to zero. This is the free method, and it takes under a minute.
- Open Terminal. Find it in Applications → Utilities, or press
Command-Space, type "Terminal", and press Return. - Paste the command and press Return. No password is needed.
- Tap Caps Lock quickly. It should now toggle instantly — no delay, no swallowed taps.
hidutil property --set '{"CapsLockDelayOverride":0}'
That's it — the delay is gone for now. This command doesn't need sudo, doesn't touch any files, and doesn't require a restart. If you ever want the delay back immediately, run the same command with 75 instead of 0, or just reboot.
You may see advice online to turn on Accessibility → Slow Keys to fix this. Don't. Slow Keys makes you hold down every key before it registers and breaks key-repeat — it's an unrelated accessibility feature, not the right fix, and it degrades normal typing.
The catch with the free method
The hidutil override is real, but it's temporary and narrow. This is the part most articles leave out, and it's exactly why people say "the fix stopped working":
- It resets on every reboot. The setting lives in memory only. Restart your Mac and Caps Lock is back to 75 ms — you have to run the command again.
- It ignores keyboards you connect later. The override applies only to keyboards attached at the moment you run it. Plug in an external keyboard, re-pair a Bluetooth one, or dock into a KVM afterward, and that keyboard still has the delay until you run the command again.
- There's no on/off and no feedback. It's a raw command with no indicator. To check whether it's active you'd run
hidutil property --get CapsLockDelayOverrideand read the output.
Making the free fix permanent yourself
You can make the command survive reboots without any app, but it's manual. The do-it-yourself route is to write a root-owned LaunchDaemon — a small .plist file in /Library/LaunchDaemons that re-runs the command automatically at every boot. This does require root to install.
It works, but two things to know: it only fires at boot, so it still misses any keyboard you hot-plug mid-session, and hand-editing system daemon files is more than most people want to do to fix one key. If you're comfortable with all of that, it's a legitimate free solution. If you're not, that's what FastKey automates.
Method 2: FastKey (permanent, one click, every keyboard)
FastKey is a small macOS menu-bar app that applies the same CapsLockDelayOverride — and then keeps it applied so you never think about it again. It's built to close every gap the free method leaves open:
- Survives restarts and sleep. It re-applies the override automatically, so Caps Lock stays instant after every reboot and wake.
- Covers every keyboard. Built-in, USB, or Bluetooth — plug one in and FastKey makes it instant too, with nothing to configure.
- One-click on and off. Toggle it from the menu bar; your Mac's default behavior returns the moment you turn it off.
- Proof it's working. A built-in Tap Test measures your real key presses so you can see the difference on your own keyboard.
- Safe and honest. Signed and notarized by Apple, nothing written permanently, and reversible by restart. It only asks for Input Monitoring, and only to run the Tap Test on the Caps Lock key.
Set it once and forget it exists
FastKey keeps Caps Lock instant through restarts, sleep, and every keyboard. 14-day free trial, everything unlocked, then £4.99 once — one license covers 3 Macs.
Download the free trialWhich method should you use?
Both are legitimate. Pick by how much friction you're willing to carry:
- Use the free command if you only type on your Mac's built-in keyboard, you're comfortable in Terminal, and you don't mind re-running it after reboots — or writing a LaunchDaemon to do it for you.
- Use FastKey if you want it to simply work forever, on every keyboard, with a visible on/off, proof that it's active, and one-click undo — no Terminal, ever.
Want to see how these stack up against Karabiner-Elements and the other apps too? Read the full comparison.
How to undo the change
Nothing here is permanent, so undoing is easy:
- Free method: restart your Mac and the 75 ms delay comes back on its own, or run
hidutil property --set '{"CapsLockDelayOverride":75}'to restore it immediately. - FastKey: toggle it off from the menu bar, or quit the app. Your Mac returns to its default behavior instantly.
Frequently asked questions
Do I need sudo to run the command?
No. The interactive hidutil property --set command runs without sudo or a password. Root is only needed if you install a system-wide LaunchDaemon to re-apply the setting at boot.
Does this work on macOS Sonoma and Sequoia?
Yes. The CapsLockDelayOverride property and the hidutil command work on current macOS. FastKey supports macOS 13 and later on Apple Silicon Macs.
Is changing this safe?
Yes. You're switching a documented, in-memory keyboard setting. Nothing is written to firmware or permanent storage, so a restart always restores the default. FastKey is additionally signed and notarized by Apple.
Why did my fix stop working after connecting a new keyboard?
The free command only affects keyboards attached when you run it. A keyboard connected or re-paired afterward keeps the delay until you run the command again. FastKey handles this automatically by re-applying the override to new keyboards.