An advanced local macro recorder and desktop automation framework for complex workflows.
Project description
Python Macro Studio
Limitless automation, powered by Python.
Macro Studio is a robust automation framework that bridges the gap between simple macro recorders and complex software development. Unlike traditional click-recorders, this engine allows you to script logic in pure Python, giving you access to the full power of the language—from computer vision (OpenCV) to API requests—while managing the lifecycle of your tasks through a sleek, user-friendly GUI.
⌨️ Code Example
Automating a simple click-loop is as easy as writing a Python generator:
def checkHealth(controller):
# Sample a pixel and react in sub-milliseconds
if captureScreenColor(controller.getVar("health_bar_pt")) == COLORS.RED:
# Hold the key for 1 second, guaranteeing its release
with holdKey("q"):
yield from taskSleep(1)
👉 Watch the Showcase on YouTube 👈
Main Page of the UI:
📚 Official Documentation
Read the full documentation here!
To keep this README clean, all tutorials, API references, and advanced guides have been moved to our official documentation site. Visit the link above to find:
- ⚙️ Engine API & Task Controllers: How to run, pause, and stop threaded Python tasks safely.
- 🖱️ Actions Library: Thread-safe mouse and keyboard simulators.
- 👁️ Vision Library: OpenCV and Tesseract OCR integration.
- 💡 Runnable Examples: Copy-pasteable scripts to jumpstart your development.
🚀 Key Features
- ♾️ Infinite Possibilities: Other macro recorders give you a tricycle; we are handing you the keys to a Saturn V rocket. If you can code it in Python, you can automate it.
- 🎛️ Visual Task Manager: Real-time, graphical interface for monitoring and controlling the execution flow of background threads.
- 📂 Profile & Variable Management: Expose script variables directly to the GUI so users can tweak settings without touching your code.
- 🎥 Visual Task Recorder: A built-in, no-code recorder that can export sequences directly into standalone Python scripts.
🧠 Why I Built Macro Studio
If you've ever tried to build a desktop bot in Python, you already know the pain points.
Standard automation libraries rely on sluggish screen-grabbing methods, and managing concurrent tasks usually means fighting Python's Global Interpreter Lock (GIL). You end up with heavy OS threads, time.sleep() bottlenecks, and a macro that either stutters or completely freezes your computer.
The alternative? Paying for expensive, clunky, closed-source macro recorders that haven't been updated in a decade and trap you in proprietary scripting languages.
I wanted an engine that respected Python's capabilities. Macro Studio was built to solve this by rethinking the architecture:
- Stackless Coroutines: Instead of heavy OS threads, basic tasks use a generator-based
yieldarchitecture for cooperative multitasking. This allows the engine to pause, resume, and interrupt tasks in fractions of a millisecond without burning CPU cycles. - O(1) Memory Polling: By bypassing artificial library delays and hooking directly into the Windows GDI via
mss, pixel-scanning happens at raw hardware speed. - 100% Python: No proprietary syntax. If you can write Python, you can integrate APIs, AI, or custom computer vision straight into your macros.
I built Macro Studio to be the tool I wished I had, and I'm keeping it free and open-source so the community finally has a modern, high-performance automation framework.
📦 Installation
Option 1: Install via pip (Recommended)
pip install macro-studio
Option 2: Standalone Executable (Windows)
If you prefer not to use Python environments, you can download the latest pre-compiled .exe from the GitHub Releases page.
- Download the
MacroStudio-Win64.zipfile. - Extract the ZIP folder.
- Double-click
MacroStudio.exeto launch.
(Note: You must install Tesseract OCR separately if you plan to use text-reading computer vision features!)
🤝 Contributing & Support
Contributions are welcome! Whether you are fixing bugs, adding new features, or creating example tasks, I would love to see your work.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you find this studio helpful and want to support its development, consider buying me a coffee! It helps keep the updates coming.
📄 License
Distributed under the GNU GPLv3 License. See LICENSE for more information.
This means that if you modify and distribute this engine or build a product on top of it, you must keep it open-source.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file macro_studio-0.2.0.tar.gz.
File metadata
- Download URL: macro_studio-0.2.0.tar.gz
- Upload date:
- Size: 338.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62cfe75625872866df09d172c5ecbc733d00251a0611a2a1f60a21a21021ec4f
|
|
| MD5 |
9571f9f92aaf9a6642298e5e7b908e99
|
|
| BLAKE2b-256 |
29819db11652c1cbd7a5cde0aa0f8d44d2cc2445f716607d741f151d0170e971
|
Provenance
The following attestation bundles were made for macro_studio-0.2.0.tar.gz:
Publisher:
python-publish.yml on theeman05/MacroStudio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
macro_studio-0.2.0.tar.gz -
Subject digest:
62cfe75625872866df09d172c5ecbc733d00251a0611a2a1f60a21a21021ec4f - Sigstore transparency entry: 1053166355
- Sigstore integration time:
-
Permalink:
theeman05/MacroStudio@05ad85e585150f8c2744552f0c393da63642e4ad -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/theeman05
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@05ad85e585150f8c2744552f0c393da63642e4ad -
Trigger Event:
release
-
Statement type:
File details
Details for the file macro_studio-0.2.0-py3-none-any.whl.
File metadata
- Download URL: macro_studio-0.2.0-py3-none-any.whl
- Upload date:
- Size: 358.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dde3bd725bb6c8387578ced119918bca285841e03584902b7bec2af30e3bdc7a
|
|
| MD5 |
de8fe7f1c641a4d6aff328936410c679
|
|
| BLAKE2b-256 |
5b729a1f9162202bdc8e7975f072bf074517dfc1bec9f5b29e695f5a28e41bac
|
Provenance
The following attestation bundles were made for macro_studio-0.2.0-py3-none-any.whl:
Publisher:
python-publish.yml on theeman05/MacroStudio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
macro_studio-0.2.0-py3-none-any.whl -
Subject digest:
dde3bd725bb6c8387578ced119918bca285841e03584902b7bec2af30e3bdc7a - Sigstore transparency entry: 1053166358
- Sigstore integration time:
-
Permalink:
theeman05/MacroStudio@05ad85e585150f8c2744552f0c393da63642e4ad -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/theeman05
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@05ad85e585150f8c2744552f0c393da63642e4ad -
Trigger Event:
release
-
Statement type: