Windows autoclicker. Python 3.13, PySide6.
Features:
- Up to 100 CPS using a
QueryPerformanceCounterscheduler withtimeBeginPeriod(1)and sleep-then-spin waiting. - Global hotkeys (F1 to F12, default F6) in toggle or hold mode, via
RegisterHotKeyand low-level keyboard hooks. - Follow-cursor or fixed-point click target. Left, right, or middle button.
- Optional duration and click-count stop conditions.
- Qt is confined to the UI layer; the engine has no Qt dependency.
Windows only. Uses SendInput, RegisterHotKey, WH_KEYBOARD_LL, WH_MOUSE_LL, and QPC.
Needs uv and Python 3.13.
uv sync
uv run python -m auto_clickerAfter uv sync the console script is also on the path:
uv run auto-clicker- Launch the app. A small window opens.
- Set clicks per second, mouse button, cursor mode (follow or fixed point), and trigger mode (toggle or hold).
- Pick a hotkey (F1 to F12). Default is F6.
- Optionally enable a duration limit and/or a click-count limit.
- Press the hotkey (or click START) to begin. In toggle mode, press again to stop. In hold mode, clicks fire while you hold the key.
For fixed-point mode, click Capture next to the cursor mode and then click where you want the clicks to land.
uv sync
uv run pytest
uv run pytest --cov
uv run ruff check
uv run ruff formatuv sync
uv run pyinstaller --onefile --windowed --name auto_clicker src/auto_clicker/__main__.pyThe single-file build lands at dist/auto_clicker.exe (~46 MB). Prebuilt binaries for tagged releases are attached to the GitHub Releases.
Layout:
| Layer | Contents |
|---|---|
src/auto_clicker/win32/ |
ctypes bindings for SendInput, RegisterHotKey, hooks, QPC timing |
src/auto_clicker/engine/ |
Scheduler, click engine, sources, sinks, stop conditions. No Qt. |
src/auto_clicker/hotkeys/ |
Hotkey controller with a pluggable backend (fake for tests, Win32 for real) |
src/auto_clicker/ui/ |
PySide6 main window, widgets, dark theme |
UI and win32/ are excluded from coverage. They depend on the Windows event loop and aren't worth simulating in CI. Engine and hotkeys are covered.
Meant for legitimate uses (testing, accessibility, automating your own software). Don't use it to violate any service's terms or get around anti-cheat. That's on you.
MIT, 2026 Noel Kleen.