auc is a high-performance, lightweight, cross-platform, thread-safe and dependency-minimal auto-clicker written in C11. This project utilises libuiohook library to interact with native input events directly at the operating system level, which in turn provides a robust, low-latency framework for automating mouse interactions across the entire desktop environment.
-
[NATIVE INPUT HANDLING] — Uses
libuiohookto intercept and inject mouse events directly at the operating system level for high-precision, low-latency performance -
[THREADED EXECUTION] — Operates with a dedicated background thread for click execution. This keeps it entirely decoupled from the main input-listening loop and hence ensures maximum responsiveness.
-
[ATOMIC CONCURRENCY] — Manages state across threads with C11
<stdatomic.h>primitives. This prevents race conditions and ensures stability during high-frequency operations. -
[BURST CLICKING] — Allows you to define specific click counts per iteration. This allows for burst clicks instead of ordinary clicks. For example, when you set this to
100and set an interval of1second, auc would click a hundred times per second. -
[PRECISE TIMING] — Allows you to set intervals between bursts upto millisecond-precision. This feature is provided via the flexible case-insensitive command-line interface.
-
[HOTKEY TRIGGER] — Uses
F6as the hotkey to toggle the auto-clicker. An emergency hotkeyESCis provided for immediate termination.
PREREQUISITES:
-
Standard C11-compliant compiler
-
CMake
-
libuiohook
Obtain a local copy of this repository
% git clone https://github.com/vs-123/auc.gitCreate a build/ directory inside the project root and use to build
% cd auc
% mkdir build
% cmake ..
% cmake --build .You may now use the generated binary auc
% ./auc --helpauc uses a simple positional argument system combined with optional flags.
% ./auc [FLAGS] <INTERVAL_MS> <CLICKS_PER_ITER>-
<INTERVAL_MS> — The delay between click-bursts in milliseconds (minimum 100ms).
-
<CLICKS_PER_ITER> — The number of individual clicks executed during one interval (minimum 1).
[EXAMPLE] To perform 50 right-clicks every 200 milliseconds:
% ./auc --right 200 50
[STATUS] AUC STARTED.
* INTERVAL -- 200
* CLICKS PER INTERVAL -- 50
* PRESS F6 TO TOGGLEThis project is licensed under the GNU Affero General Public License version 3.0 or later.
NO WARRANTY PROVIDED
For full terms, visit https://www.gnu.org/licenses/agpl-3.0.en.html.