High-precision, modern desktop auto-clicker for Windows, macOS, and Linux.
Built with CustomTkinter, Win32 SendInput, 1 ms multimedia timing (timeBeginPeriod), and an Obsidian & Porcelain UI palette.
Unified Workspace — Dark Mode
|
Unified Workspace — Light Mode
|
Windows Programs Setup
|
Automatic Update Prompt
|
ClickForge opens directly into one unified workspace with ready-to-use defaults:
- Follow Cursor by Default: Clicks land wherever your pointer is immediately on launch (switch to Fixed XY + multi-monitor Pick anytime).
10 ms(~100 CPS) Default Speed: Snappy out of the box, scalable from 1 click/hour up to1,000 CPS(1 msinterval).- Working
F6Trigger &EscPanic: PressF6immediately on launch to start/stop (ToggleorHold), bind Mouse4 / Mouse5 or Numpad keys, or hitEsc/ fling pointer to(0, 0)for instant emergency stop. - Fast Startup (~1.2 s): Folder-based distribution (
_internal/), single-pass layout construction, and cached icons launch cleanly without single-file extraction delays.
| Platform | Package | Notes |
|---|---|---|
| Windows (Installer) | ClickForge-Setup.exe |
Recommended. Installs to %LOCALAPPDATA%\Programs\ClickForge, adds Start Menu shortcuts & Windows Installed Apps entry with no UAC/admin prompt, and enables automatic self-updates. |
| Windows (Portable) | ClickForge-Windows.zip |
Extract and run ClickForge.exe. Includes a Setup button in the header to install into Windows Programs anytime. |
| macOS | ClickForge-macOS.zip |
Unzip ClickForge.app. Grant Accessibility access under System Settings → Privacy & Security so global hotkeys and mouse injection work. |
| Linux (X11) | ClickForge-Linux.zip |
Unzip and run ./ClickForge. Requires an X11 session for global keyboard/mouse hooks. |
- Run
ClickForge-Setup.exe(if Windows SmartScreen prompts on an unsigned release, click More info → Run anyway). - Launch ClickForge from the Start Menu (
Follow Cursor,10 ms/~100 CPS, andF6are ready immediately). - Press
F6(or click START) to start/stop clicking; pressEscor move the cursor to the top-left corner(0, 0)to panic-stop anytime.
| Preset | Rate | Position Target | Click Type & Repeat | Humanizer |
|---|---|---|---|---|
| Default | 10 ms (~100 CPS) |
Follow Cursor |
Left · 1x · Infinite |
Off |
| Fast | 500 CPS |
Keeps current mode | Left · 1x · Infinite |
Off |
| Humanized | 12 CPS |
Keeps current mode | Left · 1x · Infinite |
±15 % σ jitter, 18–42 ms hold duty, ±2 px spread |
| Custom | User-defined (ms / sec / min / CPS) |
Follow Cursor or Fixed XY |
Left / Right / Middle · 1x / 2x · Infinite / Fixed |
Optional |
- Windows
SendInputFast Path: Pre-allocatedctypesINPUTstructures avoid per-click allocation overhead, sustaining up to1,000 CPS. - Sub-Millisecond Scheduler (
timing.py): AcquirestimeBeginPeriod(1)only while clicking is active and pairs interruptibleEvent.waitwith a light final spin (1.5 msthreshold). - Thread-Safe Guaranteed Release: Stopping mid-hold or closing during a run always emits
mouseUpso mouse buttons never remain stuck. - Live Telemetry & Persistent Config: Real-time rolling 1-second Live CPS readout, total click counter, and schema-validated JSON settings stored per user via
platformdirs.
- Windows Setup Integration: Official
ClickForge-Setup.exewizard plus an in-app Setup button when running uninstalled on Windows. - Automatic Startup Update Check: Checks GitHub Releases on launch, previews
"What's New"release notes, verifies download byte size +SHA-256digest, and installs rollback-safe updates automatically on frozen Windows builds (opens the release page on macOS, Linux, or source runs). - Header Quick Controls: Toggle Sound start/stop chimes, cycle System / Dark / Light theme, toggle Always-on-Top, or manually check for updates.
Requires Python 3.9+ (CI verified on Python 3.11; local development tested up to 3.13).
git clone https://github.com/efeartn/ClickForge.git
cd ClickForge
pip install -r requirements.txt
python main.pyRun tests:
python -m unittest discover -v testsBuild release bundle (ClickForge-Windows.zip and, with Inno Setup 6, ClickForge-Setup.exe):
python build.py --zip --installerClickForge/
├── clickforge/
│ ├── __init__.py # App name, version, and release codename
│ ├── __main__.py # Module entrypoint (`python -m clickforge`)
│ ├── app.py # Window launch entrypoint
│ ├── core/
│ │ ├── clicker.py # Worker thread engine, Humanizer, corner failsafe
│ │ ├── config.py # Schema-validated persistent config & profile presets
│ │ ├── hotkeys.py # Global keyboard & Mouse4/5 listener with VK normalization
│ │ ├── input_backend.py # Win32 SendInput backend + pynput fallback
│ │ ├── installer.py # Windows Programs & Start Menu installer helpers
│ │ ├── sound.py # Non-blocking start/stop chimes
│ │ ├── system.py # DPI awareness, multi-monitor bounds, asset paths
│ │ ├── timing.py # HighResolutionTimer + precision wait_until
│ │ ├── updater.py # GitHub Releases updater with SHA-256 & rollback
│ │ └── validation.py # Numeric parsing and speed/unit conversions
│ └── ui/
│ ├── main_window.py # Primary application window & event poll loop
│ ├── picker.py # Multi-monitor fixed XY coordinate picker overlay
│ ├── theme.py # Light/Dark Obsidian & Porcelain palette tokens
│ └── widgets.py # Reusable cards, segmented pills, modal dialogs
├── docs/
│ └── screenshots/ # Dark, light, Windows setup, and updater previews
├── installer/
│ └── ClickForge.iss # Inno Setup 6 script for ClickForge-Setup.exe
├── scripts/
│ └── generate_assets.py # Vector-rendered app icons (.ico, .icns, .png, .svg)
├── tests/
│ └── test_clickforge.py # Unit & UI test suite
├── CHANGELOG.md
├── CONTRIBUTING.md
└── pyproject.toml
Licensed under the GNU General Public License v3.0.



