| Crates.io | aumate |
| lib.rs | aumate |
| version | 0.2.8 |
| created_at | 2025-11-30 19:45:03.025342+00 |
| updated_at | 2025-12-06 04:42:34.3069+00 |
| description | Cross-platform desktop automation library with GUI support |
| homepage | https://github.com/tegojs/bot |
| repository | https://github.com/tegojs/bot |
| max_upload_size | |
| id | 1958722 |
| size | 2,291,541 |
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.
Install and run the GUI controller:
cargo install aumate
aumate
This launches the Aumate Controller with:
enigo and rdevxcaparboardactive-win-pos-rsAdd to your Cargo.toml:
[dependencies]
aumate = "0.2"
Enable only what you need:
[dependencies]
# Core automation only (no GUI)
aumate = { version = "0.2", default-features = false, features = ["input", "clipboard", "window"] }
# Full GUI support (default)
aumate = "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)use aumate::prelude::*;
fn main() -> Result<(), AumateError> {
// Mouse control
let mouse = Mouse::new()?;
mouse.move_mouse(100, 200)?;
mouse.mouse_click(Some("left"), Some(false))?;
// Keyboard input
let keyboard = Keyboard::new()?;
keyboard.type_string("Hello, World!")?;
// Screen capture
let capture = capture_screen()?;
println!("Captured {}x{} screenshot", capture.width, capture.height);
// Clipboard
clipboard::set_text("Copied text")?;
let text = clipboard::get_text()?;
println!("Clipboard: {}", text);
Ok(())
}
| Platform | Status |
|---|---|
| macOS | Full support |
| Windows | Full support |
| Linux | Requires X11/Wayland dependencies |
# Ubuntu/Debian
sudo apt-get install libxcb1-dev libxrandr-dev libdbus-1-dev libpipewire-0.3-dev libasound2-dev
# Fedora
sudo dnf install libxcb-devel libXrandr-devel dbus-devel pipewire-devel alsa-lib-devel
Planned features (contributions welcome!):
Contributions are welcome! This project is in active development and we appreciate:
# Clone the repository
git clone https://github.com/tegojs/bot.git
cd bot/packages/aumate
# Build
cargo build
# Run tests
cargo test --all-features
# Run the GUI
cargo run
The monorepo includes TypeScript examples demonstrating all GUI features:
# Clone and setup
git clone https://github.com/tegojs/bot.git
cd bot
pnpm install
pnpm build
# Run examples (from project root)
pnpm ex:run gui-hello # Simple GUI window
pnpm ex:run gui-form # Form with inputs
pnpm ex:run gui-events # GUI event handling
pnpm ex:run gui-notification # Notification windows
pnpm ex:run gui-widgets # Dropdown, RadioGroup, TextArea, Tabs
pnpm ex:run gui-interactive-widgets # Link, SelectableLabel, DragValue, ColorPicker, Hyperlink, ImageButton
pnpm ex:run gui-file-dialogs # Native file open/save/folder dialogs
pnpm ex:run gui-font-picker # System font enumeration and font rendering
# Other examples
pnpm ex:run basic # Basic mouse/keyboard operations
pnpm ex:run clipboard # Clipboard operations
pnpm ex:run screenshot-basic # Basic screenshot
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.