GitHub

⚠️ WORK IN PROGRESS - NOT PRODUCTION READY ⚠️

This project is in active development and was made available on git for personal accessibility and version control purposes. It is not yet mature enough for general use.

What is MacroMaker?

MacroMaker is a Python package for recording and replaying mouse automation sequences with OCR support. It allows you to:

  • Record mouse clicks with timing and coordinates
  • Store sequences in human-readable YAML format
  • Replay sequences with runtime variable substitution
  • Use OCR to identify text locations near clicks

Current Status

  • ✅ Core recording and playback functionality implemented
  • ✅ OCR integration with tesseract
  • ✅ Cross-platform notification support
  • ⚠️ Limited testing across different environments
  • ⚠️ API may change without notice
  • ⚠️ Documentation incomplete

Installation

From source (for testing only)

pip install -e .

Using uv (no clone required)

You can run MacroMaker directly from the GitHub repository without cloning using uv:

# Run directly with uvx
uvx --from git+https://github.com/thiswillbeyourgithub/MacroMaker.git macromaker --help
# Or install globally with uv
uv tool install git+https://github.com/thiswillbeyourgithub/MacroMaker.git
macromaker --help

Usage

MacroMaker can be launched in several ways:

# Using the CLI command (after installation)
macromaker --record --ocr
macromaker --run sequence_20240120_143022.yaml
# Using python -m
python -m macromaker --record --ocr
python -m macromaker --run sequence_20240120_143022.yaml

Examples

# Record a sequence with OCR
macromaker --record --ocr
# Replay a sequence
macromaker --run sequence_20240120_143022.yaml
# Replay with variable substitution
macromaker --run sequence.yaml --name "John Doe"

Known Limitations

  • Not all edge cases have been tested
  • OCR accuracy depends on tesseract installation
  • May not work reliably across all screen configurations
  • No test suite yet

Contributing

This is a personal project in early stages. If you're interested in contributing or have feedback, please open an issue first to discuss.

Development

This project was developed using aider.chat.

License

See LICENSE file for details.

Read the original on github.com ↗