Record keyboard + mouse macros on your desktop, edit them as JSON, replay at any speed with loop counts, a dry-run preview, and an Esc abort.
Capture keystrokes, clicks and timing with pynput — saved as editable JSON. Press Esc to stop; the Esc press itself is stripped from the recording.
Filter noise, trim a time range, drop mouse moves, remap keys — macros are data. The editor below validates every event before you download.
Loop counts, 0.25×–4× speed control, dry-run preview that touches nothing, Esc aborts instantly. Simulate first, here or with --dry-run.
Edit the sample (it uses the real schema: key_down, key_up, mouse_move, mouse_down, mouse_up — the same schema python cli.py validate enforces). Invalid files are refused with the exact problem, not silently accepted.
Remap applies to the preview, the simulation, and the download. Nothing is uploaded anywhere.
SIMULATION ONLY — no keys are pressed, nothing is clicked. Steps fire after the macro's real gaps between events ÷ speed (the old demo used fixed 600 ms steps; this one doesn't). Press Esc on this page to stop the simulation.
The same numbers python cli.py play --dry-run reports: exact step count and total time, before anything touches your inputs. Run the command shown on your machine to confirm.
pip install -r requirements.txt # pynput — record / live playback only python cli.py record --out demo.json python cli.py validate demo.json python cli.py info demo.json python cli.py play demo.json --loops 2 --speed 1.5 --dry-run # safe: touches nothing python cli.py play demo.json --loops 2 --speed 1.5 # live: Esc stops python test_macro.py # 45 headless checks, no display needed