How to Record Keystrokes on Mac
If you type the same thing over and over — a block of text, a sequence of shortcuts, a login-and-tab dance — you can record those keystrokes once and have your Mac replay them. macOS does not include a keystroke recorder you can play back, so this is a job for a macro recorder.
What gets recorded
A keystroke recorder captures each key press as an action, including any modifiers held down. AutoClick records keys together with ⌘, ⌥, ⌃ and ⇧, so a combination like ⌘V is stored as one step, not as separate keys. It records clicks and scrolling in the same pass, so you can mix typing and pointing in a single sequence.
Record a key sequence
- Open AutoClick and grant Input Monitoring and Accessibility when prompted on first run.
- Press F6 to start recording.
- Type the keys and shortcuts you want captured. The function keys F6, F7 and F8 are reserved as controls and are not recorded.
- Press F6 to stop. Each key press shows up as a numbered step with its timing.
Adjust the timing
Typing speed is part of the recording. AutoClick reproduces the gaps between your key presses by default, which keeps fast UI shortcuts working. If you would rather have an even cadence, turn Match timing off and set a single fixed delay. Insert a pause where an app needs a moment to catch up, for example after a shortcut that opens a dialog.
Replay, save, reuse
Set a repeat count or 0 to loop, press F7 to play, and F8 to stop. Save the sequence by name so the next time you need it, you load it instead of retyping. Everything stays on your Mac as plain JSON.
A quick note on trust, since recording keys sounds alarming: this is nothing like a keylogger. It only records when you turn recording on, it shows you every captured step, and it keeps the result on your own machine. For the full editing and saving workflow, see the macro recorder guide.
Related
Macro Recorder for Mac →AutoClick is a free macro recorder for Mac. Record mouse clicks, keystrokes, scrolls and pauses, then replay the macro on a loop with exact timing.