Goal
Python-based automation toolkit for Windows that replaces AutoHotKey with a more maintainable, modern, and extensible architecture.
Features
- Virtual-env first workflow (
.venv) - Keyboard and mouse control via
pyautogui,pydirectinput, andpynput - YAML-defined input sequences
- Optional timing jitter for more human-like delays
- Simple, extensible project layout ready for vision-based triggers
How it works
Input sequences are defined as YAML files and executed in order.
Each step can define:
- The type of input (
mouse_click,key_press) - The method (e.g.,
pyautogui,pynput) - Timing between repeats or after steps (
interval,post_delay) - Optional randomness (
interval_jitter,post_jitter)
YAML format
sequence:
- type: mouse_click
method: pyautogui
button: right
post_delay: 1.0
- type: key_press
key: ctrl+a
repeat: 3
interval: 0.5
interval_jitter: 0.1
post_delay: 0.5
post_jitter: 0.1Architecture Overview
-
Language: Python
-
Environment:
venv-based, platform-focused on Windows -
Core Libraries:
pyautogui– basic automationpydirectinput– bypass some game input protectionspynput– low-level input controlopencv-python(planned) – image recognition and detection
-
Modular Design:
input_controller.py– encapsulates input simulation logic- Future:
screenshot.py,trigger_logic.py,main.py
Phases of Development
-
Project Setup
- Python project using
venv README.mdwith setup instructions, usage examples, and key bindings
- Python project using
-
Basic Input Automation
- Simulate keyboard and mouse presses in timed loops
-
Mouse Movement
- Programmatic cursor movement with pixel precision
-
Window Screenshot Capture
- Capture screenshots of specific windows or regions
-
Image-Based Action Triggers
- Use image processing (e.g. OpenCV) to detect visual cues and trigger input
Backlog
- Integrate
opencv-pythonfor basic template/image matching - Add
screenshot.pymodule for window or region capture - Add basic trigger config (JSON or YAML)
- CLI interface or simple GUI toggle