A fast, native, open-source auto-clicker for Windows, macOS, and Linux.
QuadClicker is the definitive open-source auto-clicker: fully configurable, scriptable via CLI, accessibility-first, and distributed everywhere. Built as a monorepo with three separate native applications — no cross-platform frameworks, ever.
| Platform | Language | Framework | Min OS |
|---|---|---|---|
| Windows 10/11 | C# / .NET 10 | WPF | Windows 10 22H2 |
| macOS | Swift | SwiftUI | macOS 13 Ventura |
| Linux | C++ | Qt6 | Ubuntu 22.04 / Fedora 38 |
- Click Rate — Pick Delay (
ms/sec/min) or Frequency (per sec / per min / per hour) via radio. CLI also accepts free-form:100ms,5s,2min,10/s,10cps,600/min,600cpm,60/h,60cph, or a bare integer (ms). Bounds: 1 ms ≤ delay ≤ 360 min. - Mouse Button — Left, Right, or Middle
- Click Type — Single or Double (uses OS double-click interval)
- Location Modes
- Current cursor position
- Fixed XY coordinate
- Visual overlay picker — click anywhere on screen to capture coordinates
- Stop Conditions — After N clicks, after N seconds, or manual stop
- Idle Detection — Wait for N seconds of system idle before starting
- Hotkeys — Independently configurable start and stop hotkeys (global, works when minimized)
- System Tray — Minimize to tray; close button quits
- Always on Top — Optional float above all windows
- Settings Persistence — All settings saved and restored between launches
- CLI Mode — Same binary, full headless execution (see CLI Reference)
- Dark Theme — Native dark mode. Windows ships the new "Taneth" palette (deep-green hull, warm gold HUD accent); macOS and Linux still ship the original emerald-green palette in source until the redesign is ported.
QuadClicker/
├── windows/ ← WPF / C# / .NET 10
├── macos/ ← SwiftUI / Swift
├── linux/ ← Qt6 / C++
├── .github/workflows/ ← CI/CD per platform + release
├── Chocolatey/ ← Chocolatey package manifest
├── Scoop/ ← Scoop bucket manifest
├── CODE_SIGNING.md ← Signing and notarization guide
├── LICENSE
└── README.md
Requirements: .NET 10 SDK, Windows 10 22H2+
# Build
dotnet build windows/QuadClicker.csproj -c Release
# Run tests
dotnet test windows/Tests/QuadClicker.Tests.csproj
# Publish self-contained single-file (matches release.yml)
dotnet publish windows/QuadClicker.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true -o artifacts/windowsRequirements: Xcode 15+, macOS 13+, Apple Developer account (for signing/notarization)
# Open in Xcode
open macos/QuadClicker.xcodeproj
# Build from command line
xcodebuild -project macos/QuadClicker.xcodeproj \
-scheme QuadClicker \
-configuration Release \
-derivedDataPath artifacts/macos
# Run tests
xcodebuild test -project macos/QuadClicker.xcodeproj \
-scheme QuadClickerTests \
-destination 'platform=macOS'Note:
CGEventPostand global hotkeys require Accessibility permission. The app prompts on first launch when hotkeys are configured. Code signing and notarization are required for distribution — seeCODE_SIGNING.md.
Requirements: Qt 6.2+, CMake 3.20+, GCC 11+ or Clang 13+, libXtst, libXss, libX11
Verified: Ubuntu 24.04 LTS (Qt 6.4.2, GCC 13.3) — including under WSL2 with WSLg.
# Install dependencies (Ubuntu/Debian)
sudo apt install build-essential cmake ninja-build pkg-config \
qt6-base-dev qt6-base-dev-tools qt6-tools-dev \
libqt6svg6-dev libxtst-dev libxss-dev
# Configure and build
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release linux/
cmake --build build
# Run tests
ctest --test-dir build --output-on-failure
# Install
sudo cmake --install buildWhen any argument other than --minimized is passed, the app runs headless with no GUI.
quadclicker [OPTIONS]
| Argument | Type | Default | Description |
|---|---|---|---|
--rate <value> |
string | required | Click rate. Formats: 100ms · 5s · 2min · 10/s · 600/min · 60/h (1 ms – 360 min) |
--button <left|right|middle> |
enum | left |
Mouse button |
--type <single|double> |
enum | single |
Click type |
--location <x,y> |
int pair | cursor | Fixed screen coordinate |
--stop-after-clicks <n> |
int | 0 (unlimited) | Stop after N clicks |
--stop-after-seconds <n> |
float | 0 (unlimited) | Stop after N seconds |
--idle-wait <n> |
float | 0 (disabled) | Wait for N seconds of idle before starting |
--no-gui |
flag | auto | Force headless mode |
--minimized |
flag | off | Launch GUI minimized to tray |
--version |
flag | — | Print version and exit 0 |
--help |
flag | — | Print usage and exit 0 |
Exit codes: 0 success · 1 invalid argument · 2 runtime error · 130 Ctrl+C
Examples:
# Click at cursor, 10 times/second
quadclicker --rate 10/s
# Right-click at (500,300), stop after 100 clicks
quadclicker --rate 10/s --location 500,300 --button right --stop-after-clicks 100
# Double-click every 2 seconds for 30 seconds
quadclicker --rate 2000ms --type double --stop-after-seconds 30
# One click per minute, for an hour (using the new units)
quadclicker --rate 60/h --stop-after-seconds 3600
# One click every 5 minutes
quadclicker --rate 5min
# Click after 5 seconds of idle
quadclicker --rate 1000ms --idle-wait 5
# Launch GUI minimized to tray
quadclicker --minimizedThe Windows app ships the Taneth palette: a deep-green hull background with a warm gold HUD accent. macOS and Linux still ship the original emerald-green tokens in source — porting the new palette is tracked under the Phase 2/3 follow-ups.
| Token | Value | Usage |
|---|---|---|
| Accent | #E8B547 |
Start button, focus rings, active status (gold) |
| Accent Hover | #F5C75A |
Hover on accent elements |
| Accent Pressed | #B88A2A |
Pressed state |
| Accent Foreground | #0A1410 |
Dark text on accent fills |
| Danger | #E04030 |
Stop button, errors |
| Danger Hover | #C8331E |
Hover on danger elements |
| Background | #0A1410 |
Window background |
| Surface | #13211C |
Input backgrounds |
| Surface Elevated | #1B2E27 |
Raised surfaces (small buttons, hover items) |
| Border | #2D5448 |
Input borders |
| Text Primary | #E8DCB0 |
Main text |
| Text Secondary | #7A9088 |
Labels, helpers |
| Text Disabled | #3D5048 |
Disabled text |
| Status Waiting | #5BA89A |
Idle wait indicator |
Settings are persisted automatically on exit and loaded on launch. JSON format is identical across platforms for cross-platform compatibility.
| Platform | Path |
|---|---|
| Windows | %APPDATA%\QuadClicker\settings.json |
| macOS | ~/Library/Application Support/QuadClicker/settings.json |
| Linux | ~/.config/quadclicker/settings.json |
| Phase | Description | Status |
|---|---|---|
| 0 | Monorepo restructure + CI/CD skeleton | ✅ Done |
| 1 | Windows WPF — shipped at v0.1.1 as a single-file EXE; version label visible bottom-right of the window, tray tooltip "QuadClicker - now with 4x the clicks" | ✅ Done |
| 2 | macOS SwiftUI — code-complete, unverified (never compiled or run; build-macos.yml is a no-op placeholder) |
🔨 Pending Mac + Xcode |
| 3 | Linux Qt6/C++ — build verified on Ubuntu 24.04 (Qt 6.4.2) under WSL2/WSLg: clean compile, all unit tests pass, CLI happy + parse-error paths exercised, GUI launches and renders. CI (build-linux.yml) now runs the real build. No .deb / AppImage published yet. |
✅ Built + tested |
- The mode-based Click Rate redesign and the Taneth palette are now in all three platforms' source. Linux is verified end-to-end; macOS source has them but remains unbuilt pending an Xcode-equipped machine.
- Linux global hotkeys:
XGrabKey(X11) is used; Wayland support is limited to compositors that exposeorg.kde.kglobalaccel(KDE) — GNOME Wayland users will not get global hotkeys until a compositor-side API exists.
Latest builds are published on GitHub Releases:
github.com/Quadstronaut/QuadClicker/releases/latest
| Platform | Status | Notes |
|---|---|---|
| Windows x64 | QuadClicker.exe (v0.1.1) |
Self-contained single-file EXE — no .NET install required. Download and run. |
| macOS | Not yet released | Phase 2 build is unverified; no signed/notarized artifact yet. |
| Linux | Not yet released | Build verified on Ubuntu 24.04 (Qt 6.4.2). No signed .deb / .rpm / AppImage published yet — packaging is the next step. |
The Windows binary is currently unsigned — Windows SmartScreen will warn on first launch until an Authenticode certificate is in place (see CODE_SIGNING.md).
QuadClicker is being prepared for distribution through every major package manager. Manifests for these are already in the repo and pinned at v0.1.1:
| Channel | Manifest | Install command (once published) |
|---|---|---|
| Chocolatey (Windows) | Chocolatey/quadclicker.nuspec |
choco install quadclicker |
| Scoop (Windows) | Scoop/quadclicker.json |
scoop install quadclicker |
| winget (Windows) | planned | winget install Quadstronaut.QuadClicker |
| Homebrew Cask (macOS) | planned | brew install --cask quadclicker |
Snap, Flatpak, AppImage, .deb (Linux) |
planned | various |
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Push and open a Pull Request
Please open an issue first for major changes.
Copyright © 2026 Kyle Green / Quadstronaut. Licensed under the MIT License with an attribution clause: redistributions must retain credit to Kyle Green (Quadstronaut) and link back to github.com/Quadstronaut/QuadClicker.
Kyle Green (Quadstronaut) — github.com/Quadstronaut/QuadClicker
Inspired by Autoclick by Mahdi Bchatnia (2011–2021, GNU GPLv2)