A modern, reliable successor to TinyTask.
Record your mouse and keyboard once — replay it exactly, as often as you like.
SentinelTask keeps what people love about TinyTask — one click to record, one
click to play, a single portable .exe — and fixes the things that made it
unreliable for long runs and games. Every design decision comes from
researching TinyTask's known problems and the Windows APIs behind them; the
full write-up is in docs/RESEARCH.md.
| TinyTask problem | What SentinelTask does |
|---|---|
| Clicks land in the wrong place on 125 % / 150 % scaling or a second monitor | Per-monitor DPI aware; positions stored in physical pixels with the screen layout; multi-monitor and negative coordinates handled exactly |
| Doesn't work in many games | Keys sent as hardware scan codes (what DirectInput/Raw Input games read); Relative mouse mode replays raw motion for 3D cameras — auto-detected when the cursor was locked |
| Keys or mouse buttons stay stuck down | Everything held is tracked and released on stop, pause, error, crash and exit; recordings are normalised so every press has a release |
| Long loops drift and slow down | Every event has an absolute deadline (no accumulated error) and a high-resolution waitable timer; if the PC stalls, timing re-syncs instead of firing a burst of clicks |
| Hotkey keystrokes / Stop-button clicks end up in the macro | The stop chord is stripped precisely; clicks on SentinelTask itself are never recorded; replayed input is never re-recorded |
| Nothing happens in apps running as administrator | Detects the elevated target window and offers Restart as administrator |
| PC sleeps or screen turns off during an overnight run | Keeps the PC and display awake while playing |
| Macro clicks the wrong window after you alt-tab | Optional focus guard: pauses while the target program isn't in front, resumes when it is — re-pressing any held keys |
| Fixed hotkeys, conflicts with other apps | Every hotkey rebindable (single keys like F8 work), with conflict detection |
| Can't edit a recording | Full editor: timeline, per-event delays and positions, trim idle time, cap long pauses, remove movement, rescale to a new screen, undo/redo |
| Mouse jumps to a corner during keyboard-only macros | The mouse is only touched if the macro contains mouse events |
| Recording silently stops on a busy PC | Hook callbacks return instantly (Windows removes slow hooks without warning) and hooks are reinstalled for every session |
-
Record & play with global hotkeys (TinyTask defaults:
Ctrl+Alt+Shift+R/Ctrl+Alt+Shift+P) -
Pause / resume (
F9) and an always-available emergency stop (Pausekey) -
Speed 0.1×–100×; repeat once, N times, forever, or for a duration; pause between loops; "stop after this loop"
-
Library of macros — recordings are auto-saved so nothing is lost
-
Editor with timeline, event table, multi-select, undo/redo and clean-up tools
-
Auto Clicker: any mouse button or key, single/double, fixed spot or cursor, by count or time (
F6) -
Click-through status overlay that never steals clicks or focus
-
Compact mode: a tiny always-on-top toolbar, like TinyTask
-
Import TinyTask
.recfiles -
Export a standalone
.exeplayer for a macro (TinyTask's "Compile EXE") -
Command line for scripts and Windows Task Scheduler
-
Automatic updates: the installed version updates itself in the background when you close it; the portable version asks before replacing its
SentinelTask.exe -
Portable mode, dark & light themes, UI zoom
-
Optional safety stops: stop when you touch the mouse or keyboard
-
Readable, versioned JSON macro files (
.stmacro)
- Download one of these from the latest release (or the latest successful
CI run's SentinelTask-setup-and-zip artifact):
SentinelTask-<version>-setup.exe— installer. Per-user, no administrator rights needed; adds Start menu / desktop shortcuts and lets you double-click.stmacrofiles. Uninstall from Settings → Apps; your macros are kept.SentinelTask-<version>-portable.zip— unzip anywhere and runSentinelTask.exe. Settings and macros stay in that folder (deleteportable.txtto store them in your profile instead).
- Press Record (or
Ctrl+Alt+Shift+R), do what you want automated, then press it again to stop. The recording is saved to your library automatically. - Press Play (or
Ctrl+Alt+Shift+P). Choose speed and repeat options on the Recorder page. PressPauseat any time to stop everything.
Tips
- 3D games: if the camera doesn't turn on playback, choose Mouse → Relative (3D games). SentinelTask switches automatically when it detects a locked cursor during recording.
- Run as administrator only if the program you automate runs as administrator — SentinelTask tells you when that's the case.
- Different screen? Turn on Fit to current screen, or use the editor's Rescale tool.
- Portable: create an empty file named
portablenext toSentinelTask.exeto keep settings and macros beside it (e.g. on a USB stick).
SentinelTask checks this repository's latest release when it starts and every few hours (turn this off in Settings → Updates).
- Installed: the new installer is downloaded in the background and runs silently when you close SentinelTask. Or click Restart now to update straight away. A running macro is never interrupted, and your shortcuts, file associations, settings and macros are kept.
- Portable: you're asked first: Replace and restart, Not now or
Skip this version. The new
SentinelTask.exereplaces the old one in the same folder, so settings and macros there stay put.
Every download is checked against the SHA-256 checksum GitHub publishes for
the release file before anything is replaced. A release needs a
…-portable.zip and a …-setup.exe or …-installer.zip named like the
ones packaging/make-dist.sh builds, and its tag must be a higher version
number (for example 1.1.0 or v1.1.0).
SentinelTask.exe open the app
SentinelTask.exe macro.stmacro open a macro (or a TinyTask .rec)
SentinelTask.exe play macro.stmacro --loops 10 --speed 2
SentinelTask.exe play macro.stmacro --for 2h --delay 500
SentinelTask.exe record out.stmacro --seconds 30
SentinelTask.exe info macro.stmacro
SentinelTask.exe convert old.rec new.stmacro
SentinelTask.exe update update to the newest release
SentinelTask.exe update --check just say whether one exists
Headless playback honours the emergency-stop hotkey and Ctrl+C, and always
releases held keys before exiting.
Requires Rust 1.85 or newer.
cargo build --releaseThe executable is target/release/SentinelTask.exe. To build the portable
zip and the installer into dist/ (needs zip and nsis):
packaging/make-dist.sh # cross-compiles with MinGW
packaging/make-dist.sh path/to/SentinelTask.exeRun the tests with:
cargo test --workspaceCross-compiling from Linux works with MinGW
(rustup target add x86_64-pc-windows-gnu, apt install mingw-w64, then
cargo build --release --target x86_64-pc-windows-gnu). On non-Windows
systems the app builds with a stub backend that shows the UI but records and
plays nothing — useful for development.
Every push runs, on GitHub's real Windows machines:
- Unit tests for the engine (scheduler, coordinates, file formats, recording clean-up, editing) and stress/fuzz tests: hundreds of random recordings, edits and playback settings, thousands of corrupted files, and a one-hour 1000 Hz recording (3.6 million events).
- A real-input end-to-end test that sends actual keystrokes and mouse input: hotkeys fire exactly once (and not with the wrong modifiers), rebinding and Esc, recording keys/clicks/wheel with scan codes, our own input never being recorded, pixel-exact positioning, and a full playback that leaves nothing held down.
- A GUI self-test that drives the real app through 15 scenarios —
hotkeys while minimized, emergency stop, pause/resume, loop accuracy,
rebinding the Record hotkey, the auto-clicker, compact mode, file
save/open/rename/import/export and settings — and fails the build if
any of them breaks. Run it yourself with
SENTINEL_SELFTEST=result.txt SentinelTask.exe.
| Path | What's there |
|---|---|
crates/sentinel-core |
Platform-independent engine: macro model, .stmacro format, TinyTask .rec import, drift-free scheduler, recording clean-up, editing, settings. Fully unit-tested. |
crates/sentineltask/src/platform/windows.rs |
Low-level hooks, Raw Input, SendInput, high-resolution timers, hotkeys, elevation, keep-awake |
crates/sentineltask/src/engine |
Playback, recording and auto-clicker threads |
crates/sentineltask/src/ui |
The egui interface |
docs/RESEARCH.md |
The research behind every design decision |
Any program that records and replays keystrokes can look like a keylogger to
heuristic antivirus engines, and unsigned executables are treated with extra
suspicion — TinyTask has the same problem. SentinelTask is open source and its
release binaries are built by GitHub Actions from this repository, so you can
verify exactly what you run or build it yourself. Exported standalone players
are just SentinelTask.exe with a JSON macro appended.
SentinelTask automates your own mouse and keyboard. Many online games prohibit automation in their terms of service — check the rules before using it there. SentinelTask deliberately contains no anti-cheat evasion.





