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 — Enter any format:
100ms,10/s,10cps,600/min,600cpm, or a bare integer (ms) - 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 with emerald green accent on all platforms
QuadClicker/
├── windows/ ← WPF / C# / .NET 10
├── macos/ ← SwiftUI / Swift
├── linux/ ← Qt6 / C++
├── .github/
│ └── workflows/ ← CI/CD for all three platforms + release
├── ref_imgs/ ← Design reference screenshots
├── PLAN.md ← Living design document
├── CODE_SIGNING.md ← Signing and notarization guide
└── 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
dotnet publish windows/QuadClicker.csproj -c Release -r win-x64 --self-contained false -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
# Install dependencies (Ubuntu/Debian)
sudo apt install qt6-base-dev libxt-dev libxtst-dev libxss-dev cmake build-essential
# Configure and build
cmake -B build -DCMAKE_BUILD_TYPE=Release linux/
cmake --build build --parallel
# Run tests
cd build && ctest --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 · 10/s · 600/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
# Click after 5 seconds of idle
quadclicker --rate 1000ms --idle-wait 5
# Launch GUI minimized to tray
quadclicker --minimized| Token | Value | Usage |
|---|---|---|
| Accent | #50C878 |
Start button, focus rings, active status |
| Accent Hover | #3DAF62 |
Hover state |
| Accent Pressed | #2E9150 |
Pressed state |
| Danger | #E05252 |
Stop button, errors |
| Background | #1A1A1A |
Window background |
| Surface | #242424 |
Input backgrounds |
| Border | #3A3A3A |
Input borders |
| Text Primary | #F0F0F0 |
Main text |
| Text Secondary | #9A9A9A |
Labels, helpers |
| Status Waiting | #E0A030 |
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 — feature-complete | ✅ Done |
| 2 | macOS SwiftUI — feature-complete | 🔨 Code written, needs Mac + Xcode to build |
| 3 | Linux Qt6/C++ — feature-complete | 🔨 Code written, needs Linux + Qt6 to build |
- 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 Quadstronaut (Kyle Green). Licensed under the GNU General Public License v3.0.
Kyle Green (Quadstronaut) — github.com/Quadstronaut/QuadClicker
Inspired by Autoclick by Mahdi Bchatnia (2011–2021, GNU GPLv2)