Autotyping tool that types text on a timer with adjustable WPM, custom hotkeys, and anti-AFK keystroke runs for games and chat apps.
The project's README from github.com/ebmeivktlmmj/autotyping-script. As one markdown file: README.md.

Load a profile, pick the window, hit the start hotkey.
Yes โ it bypasses the obvious heuristic detectors. Yes โ it runs on Windows 10/11 x64 with admin or without. Yes โ it's free and there's no license server phone-home. Everything else is in the tables below.
This is an autotyping tool. It sends keystrokes to whatever window is focused โ chat windows, console boxes, text fields, game inputs, terminal panes. Nothing exotic about the core premise. What makes it worth caring about is the timing engine: keystroke intervals are humanized per-key with variance jitter, fatigue drift, and burst/rest cadence, instead of a fixed sleep() between characters. The 2026 rewrite rips out the old loop entirely and stitches the emitter to a scheduling layer that models typing as a non-uniform stochastic process.
Built solo, tested obsessively across AFK farms, long-form text floods, ledger-style key spamming in MMOs, and one very boring afternooon translating Lorem Ipsum into a Discord channel 12,000 times. It's documented because I hated every other tool that shipped a binary and told me to trust it.
| Category | Details |
|---|---|
| Tool type | Standalone Windows .exe โ no installer, no runtime deps |
| Core function | Emulated keyboard input with human-variance timing |
| Emitter backends | SendInput, WM_KEYUP/WM_KEYDOWN message posting, per-keystroke raw HID pass-through |
| Config format | Portable .ini or JSON profile alongside the exe |
| Focus target | Foreground window, hotkey-pinned window, or PID-pinned window |
| Distribution | Download โ extract โ run (portable, no persistence outside app folder) |
Three questions dominate every message I get, so let me answer them bluntly.
sleep(n) between keys reads like a machine on any input-timing heuristic worth its salt.SendInput only โ target windows that ignore it get zero output.Rebuilt from scratch. Not a patch. The event loop is gone; the emitter now ticks off a scheduler that draws intervals from a bounded distribution with hard maxima and minima.
| Problem | Solution |
|---|---|
Fixed sleep() intervals |
Lognormal-drawn gaps + per-key jitter + session-level fatigue drift |
Emitter lock-in to SendInput |
Three selectable backends, hot-swappable mid-session |
| Broken UTF-8 handling | Unicode-safe send paths per backend; skip-gracefully on unsupported glyphs |
| Hotkey clashes | Explicit hotkey capture layer with modifier guard and debounce |
| Synchronous key up/down | Async release scheduling with per-key hold durations 20โ180ms |
| No visibility | Rolling 24h session log + live throughput counters |
| Interpreter dependency | Single portable .exe โ zero runtime to install |
| Component | Minimum | Recommended |
|---|---|---|
| OS | Windows 10 build 1809 x64 | Windows 11 23H2+ x64 |
| CPU | Any x64 dual-core | Modern quad-core (irrelevant to perf, cosmetic) |
| RAM | 200 MB free | 1 GB free |
| Disk | 15 MB free | 60 MB (session logs + profiles) |
| Privilege | Standard user | Run-as-admin for elevated target apps |
| Runtime | None | None |
Program Files; keep the app folder writable.default.ini for backend + profile presets, or skip and configure via UI. There is no setup wizard because setup wizards are for people who like being trained to click Next..exe. If the target app is elevated, run the .exe as admin too โ otherwise the emitter gets silently dropped by UIPI.35 modules across six categories. Each one shipped this build or is explicitly labeled otherwise.
The timing engine is where the whole product lives. Every gap between keystrokes is drawn at runtime โ never a fixed number. There are three concurrent layers of variance: per-key jitter (Gaussian noise around the base delay), per-character carryover (slow wave pulses through long strings so identical phrases aren't reproducible), and per-session fatigue drift (mean interval slowly climbs the longer you run, resets on window switch pause or restart). If you flip on humanized hold durations, the release-timestamp for each keystroke is separately scheduled โ same idea, so the waveform of "down/up" gaps isn't a uniform wall of zeros.

Every gap drawn at runtime โ never a fixed number.
uniform(a,b), matches empirical human typing distributions far closer for both very short and very long intervals.The text layer is what actually produces glyphs โ and it's been split from the timing layer deliberately. Emitter knows nothing about when, timing knows nothing about what. Extending either in isolation is trivial.
SendInput correctly; flags toasts for true codepoints the backend refuses.Paste when sensitive content contains characters an active backend can't emit.Blunt honesty: a .exe running as a separate process is invisible or nearly so to anticheat from a detection standpoint if it strictly uses legitimate windows APIs. What CAN be detected is behavioral โ input-timing fingerprints, per-process EDR signatures, keystroke entropy metrics. This section deals with behavior. It is not a general "make-me-invincible" grab bag โ it is disciplined detection-resistance, every claim tested in the open, everything that doesn't hold up not shipped.

Every run produces a shareable log.
.csv is appended per session with exact run/stall; every run produces a shareable log._ names.Named alternatives are from reading forum threads, not from shipping any of them. Fair framing as I see it.
| Aspect | Typing-class competitor #1 | Typing-class competitor #2 | Command-line script | This Tool |
|---|---|---|---|---|
| Timing variance | Fixed range reset after every char | Randomized per-word only (fail |
Autotyping tool that types text on a timer with adjustable WPM, custom hotkeys, and anti-AFK keystroke runs for games and chat apps.