RepeatMe is a small macro editor + runner for simple, repeatable keyboard/mouse sequences.
It provides:
- A modern-ish Tkinter/ttk editor (macro list on the left, properties on the right)
- German/English UI
- JSON persistence for user macros (
macros.json) - Global hotkeys: start/pause/stop
Important: this app sends keyboard and mouse input. Test carefully.
- Create a venv and install requirements
pip install -r requirements.txt- Start the app (development)
python sbmac.pyMore details: docs/RUN_AND_BUILD.md
- Development (
python sbmac.py): the file is created in the project root next tosbmac.py. - Packaged
.exe(PyInstaller onefile / frozen): the app stores user data in a per-user directory so it does not write next to the executable.- Windows:
%APPDATA%\\RepeatMe\\macros.json(e.g.C:\\Users\\<you>\\AppData\\Roaming\\RepeatMe\\macros.json) - macOS:
~/Library/Application Support/RepeatMe/macros.json - Linux:
$XDG_DATA_HOME/repeatme/macros.jsonor~/.local/share/repeatme/macros.json
- Windows:
This behavior is implemented in repeatme/paths.py.
- Macro model/behavior overview: docs/MACRO_UNDERSTANDING.md
- Field-by-field parameter explanation: docs/PARAMETERS.md
If you want to bundle the docs/ folder or individual .md files into a PyInstaller build, pass them as data files. On Windows use a semicolon separator:
pyinstaller --onefile --add-data "docs;docs" sbmac.pyOn macOS/Linux use a colon separator:
pyinstaller --onefile --add-data "docs:docs" sbmac.pyNote: data bundled inside a onefile exe is read-only at runtime. User-editable files like macros.json should live in the per-user data directory (see above).
MIT © 2025 Rollocraft, see LICENSE.txt