Aumate
Work in Progress - This is a prototype package. APIs and features may change significantly between versions.
Cross-platform desktop automation library with GUI support, built in Rust. Originally developed as the Rust core for the @tego/bot Node.js automation library via napi-rs bindings.
Quick Start - GUI Application
Install and run the GUI controller:
This launches the Aumate Controller with:
- Floating window management with 18+ particle effects
- Region capture (screenshot) with annotation tools
- Menu bar item creation
- Clipboard manager with history tracking
- Settings panel
Features
Core Automation
- Input Control - Mouse and keyboard automation via
enigoandrdev - Screen Capture - Screenshot functionality via
xcap - Clipboard - Text and image clipboard operations via
arboard - Window Management - Find and manage windows via
active-win-pos-rs
GUI Framework (v0.2.0+)
- Floating Windows - Draggable, always-on-top windows with custom shapes
- 18+ Particle Effects - Aurora Wave, Matrix Rain, Silk Ribbon, Fire Glow, etc.
- Animation System - Smooth transitions with easing functions
- Screenshot Mode - Region selection with annotation tools (rectangle, ellipse, arrow, text, highlighter, mosaic, blur)
- Menu Bar & Tray - System tray icons and menu bar items
- Widget System - Declarative UI with 20+ widget types:
- Basic: label, button, textInput, checkbox, slider, progressBar, separator, spacer
- Layout: hbox, vbox, grid
- Containers: panel, scrollArea, group
- Advanced: dropdown, radioGroup, textArea, tabs, image
- Interactive: link, selectableLabel, dragValue, colorPicker, hyperlink, imageButton
- File Dialogs - Native open/save/folder picker dialogs with filters (Note: requires main thread on macOS)
- Font Enumeration - Get list of system font families
Clipboard Manager (v0.2.2+)
- History Tracking - Background monitoring with 500-entry limit
- Content Types - Text, images, and files
- Sensitive Detection - Auto-detect passwords, API keys, private keys, credit cards
- Search & Filter - Category filters and text search
- Export/Import - JSON format (sensitive entries excluded)
Installation
As a Library
Add to your Cargo.toml:
[]
= "0.2"
Feature Flags
Enable only what you need:
[]
# Core automation only (no GUI)
= { = "0.2", = false, = ["input", "clipboard", "window"] }
# Full GUI support (default)
= "0.2"
Available features:
input- Mouse and keyboard controlscreen- Screen capture (requires system libraries on Linux)clipboard- Clipboard operationswindow- Window managementgui- Full GUI framework with effects (includes screen, clipboard, and clipboard manager)
Library Usage
use *;
Platform Support
| Platform | Status |
|---|---|
| macOS | Full support |
| Windows | Full support |
| Linux | Requires X11/Wayland dependencies |
Linux Dependencies
# Ubuntu/Debian
# Fedora
Roadmap
Planned features (contributions welcome!):
- OCR Integration - Text recognition from screenshots
- Hotkey System - Global hotkey registration and handling
- Macro Recording - Record and replay mouse/keyboard actions
- Plugin System - Extensible action plugins
- Multi-monitor - Improved multi-display support
- Accessibility - Screen reader and accessibility API integration
- Scripting - Built-in scripting language for automation
Contributing
Contributions are welcome! This project is in active development and we appreciate:
- Bug reports and feature requests via GitHub Issues
- Pull requests for bug fixes and new features
- Documentation improvements
- Platform-specific testing and feedback
Development
# Clone the repository
# Build
# Run tests
# Run the GUI
Related Projects
- @tego/bot - Node.js bindings via napi-rs
- @tego/botjs - TypeScript wrapper with enhanced APIs
Running Examples
The monorepo includes TypeScript examples demonstrating all GUI features:
# Clone and setup
# Run examples (from project root)
# Other examples
License
MIT License - see LICENSE for details.
Note: This package is under active development. While we strive for stability, breaking changes may occur between minor versions during the prototype phase. Pin to a specific version if stability is critical for your project.