A lightweight SwiftUI app that records and plays back keyboard & mouse events on your Mac.
Events are stored as a human-readable JSON file and can be triggered via the UI or global hot-keys.
- Download the .zip file here: https://github.com/kchenGH/Macorder/releases/tag/v1.0
- Unzip Macorder.zip
- Run the app. If it says unidentified developer or such, go to Privacy and Security, scroll down and Open Anyway
- Grant the app Accessibility & Input Monitoring permissions when prompted.
- Press ⌃⌘R to start recording; press again to stop.
- Press ⌃⌘P to start playback; press again to stop.
- Use the File > Save… menu item or ⌘S to save your macro to JSON.
- Use File > Open… or ⌘O to load an existing macro file.
-
Accessibility / Input Monitoring
- Open System Settings → Privacy & Security
- Add your built app under Accessibility and Input Monitoring.
-
File Access
- In Xcode’s Signing & Capabilities, add User Selected File Read/Write.
This lets the Save/Open panel appear correctly.
- In Xcode’s Signing & Capabilities, add User Selected File Read/Write.
- Record & Playback
– Capture keyboard & mouse events with millisecond accuracy.
– Play back macros exactly as recorded. - Global Hot-Keys
– ⌃⌘R to start/stop recording
– ⌃⌘P to start/stop playback - JSON Storage
– Macros saved as~/Documents/macro_recording.json
– Easy to inspect or edit by hand. - Minimal UI
– Lightweight SwiftUI interface shows event count & status. - Privacy-First
– All data stays local; no cloud or App Store distribution. - AppleScript / CLI Hooks
– Integrate with external automation workflows.
- macOS 10.15 Catalina or later
- Xcode 13 or later
- Swift 5.5+ (uses
async/awaitfor timing)
- Lint & Format
- Run SwiftLint if configured.
- Testing
- Manual testing via the UI & hot-keys.
- Inspect the JSON file for correct event data.
This project is released under the MIT License.
See LICENSE for details.