A powerful and user-friendly GUI automation tool for simulating keyboard and mouse inputs. Built with Python and CustomTkinter for a stunning modern dark UI. Perfect for gaming macros, testing, or automating repetitive input tasks.
- ๐ฎ Game-Reliable Input: Mouse and keyboard actions are sent via PyDirectInput (SendInput / scancodes) so clicks, moves and drags register inside games
- ๐ฎ Action Sequencing: Create and run sequences of keyboard presses and mouse actions
- ๐ Control Flow:
repeat(N)โฆendrepeatblocks andifcolor/ifnotcolorconditionals - โ๏ธ Per-Action Enable/Disable: Mute any row without deleting it โ great for tuning macros
- โฑ๏ธ Customizable Timing: Set delays after each action and hold durations, plus random delay ranges (
0.3-0.8) - ๐ง Humanize Movement: Optional curved, eased, jittered mouse paths instead of instant teleports
- ๐ Repetition Control: Run sequences indefinitely or for a specific number of times
- ๐ Live Stats: Loop/action counters, elapsed time, CPS, and an ETA + progress bar for limited runs
- โฏ๏ธ Pause / Resume: Pause mid-sequence and resume from the same step (keeps your place)
- ๐ Modern Dark UI: Sleek dark theme with 7 selectable accent colors and an always-on-top pin
- ๐ฑ๏ธ Advanced Mouse Control: Click, move and drag at specific coordinates
- ๐ฏ Coordinate/Color Capture: Built-in tool to capture mouse position and pixel color
- ๐จ Color Detection: Wait for / branch on specific colors at designated coordinates
- ๐พ Save/Load + Auto-Restore: Export sequences as JSON, and your last session auto-restores on launch
- ๐ก๏ธ Safety Features: Safe Mode blocks dangerous keys; customizable emergency stop
- โ Inline Validation: Invalid timing/action fields are flagged with a red border before you run
- โจ๏ธ Global Hotkeys: Start, Pause, Stop and Emergency Stop โ all fully customizable
Download the latest Windows EXE here
Or build from source (see below).
๐ Using SimpleKeyClicker? It's free and open-source, built and maintained in spare time. If it's saved you time on repetitive input tasks โ or you'd like to see it keep growing โ a coffee genuinely helps. See Support the Project.
- Python 3.8+
-
Clone the repository:
git clone https://github.com/timoinglin/SimpleKeyClicker.git cd SimpleKeyClicker -
Create and activate virtual environment:
python -m venv .venv # Windows: .venv\Scripts\activate # macOS/Linux: # source .venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
To create a standalone executable:
pip install pyinstaller
pyinstaller --onefile --windowed --icon=logo.ico --add-data "logo.ico;." --add-data "logo.png;." --name "SimpleKeyClicker" main.pyThe EXE will be created in the dist/ folder.
- Click "+ Add Action" to create steps for your sequence
- For each row:
- Enter a Key/Button or command (see Available Actions below)
- Use the ๐ฏ button to capture coordinates/colors
- Set Hold Time (how long to hold the key/button)
- Set Delay (pause after the action; supports ranges like
0.3-0.8) - Untick the checkbox to temporarily skip a row
- Use โฒ โผ โ โ buttons to organize rows
- Select run mode: Indefinitely or X Times
- Click โถ START or press
Ctrl+F2 - โธ PAUSE (
Ctrl+F4) to pause/resume, โน STOP (Ctrl+F3) orESCto halt
| Action | Description |
|---|---|
a, b, 1, 2 |
Single key press |
space, enter, tab, esc |
Special keys |
up, down, left, right |
Arrow keys |
f1 - f12 |
Function keys |
shift, ctrl, alt, win |
Modifier keys (use Hold Time) |
ctrl+c, alt+f4 |
Key combos (modifiers held automatically) |
Hello World! |
Type text string |
| Action | Description |
|---|---|
click |
Left click at current position |
rclick |
Right click at current position |
mclick |
Middle click at current position |
click(x,y) |
Left click at coordinates |
rclick(x,y) |
Right click at coordinates |
moveto(x,y) |
Move cursor to coordinates |
drag(x1,y1,x2,y2) |
Drag from point A to point B |
| Action | Description |
|---|---|
waitcolor(r,g,b,x,y) |
Wait until color RGB appears at (x,y) |
ifcolor(r,g,b,x,y) |
Run the next row only if the color matches |
ifnotcolor(r,g,b,x,y) |
Run the next row only if the color is absent |
| Action | Description |
|---|---|
repeat(N) |
Repeat the rows below this marker N timesโฆ |
endrepeat |
โฆup to this marker (blocks may be nested) |
| Value | Description |
|---|---|
0.5 |
Fixed delay in seconds |
0.3-0.8 |
Random delay between min and max |
- Blocks potentially dangerous keys:
alt,ctrl,shift,win,f4,delete,tab - Toggle via the switch in the control panel
- Press
ESCat any time to immediately halt automation
| Hotkey | Action |
|---|---|
Ctrl+F2 |
Start automation (default) |
Ctrl+F4 |
Pause / resume (default) |
Ctrl+F3 |
Stop automation (default) |
ESC |
Emergency stop (default) |
All hotkeys are fully customizable. Click โ Settings in the header to open the keybind editor, then click โบ Record next to any hotkey and press your preferred key combination. Changes take effect immediately and are saved/loaded with your configuration files.
- Python 3.8+
- customtkinter>=5.2.0
- keyboard>=0.13.5
- PyDirectInput>=1.0.4
- pyautogui>=0.9.54
- Pillow>=10.0.0
- pynput>=1.8.1
Contributions are welcome! Feel free to submit issues and pull requests.
This project is free and open-source, built and maintained in spare time. If SimpleKeyClicker has saved you time โ or you'd just like to see it keep growing โ a coffee is hugely appreciated and helps keep this and other free tools maintained and improving.
Every contribution also funds more free open-source tools โ thank you! ๐
MIT License - Copyright (c) 2025 Timo Inglin
See LICENSE for details.
- Modern UI built with CustomTkinter
- Input simulation by PyDirectInput and PyAutoGUI
- Screen capture via Pillow (PIL)
- Global hotkeys by keyboard
- Mouse capture by pynput
