autoMate: The Secret AI Agent Top Devs Use to Automate Everything
autoMate: The Secret AI Agent Top Devs Use to Automate Everything
What if your computer actually listened to you?
Not the half-hearted Siri "I found this on the web" nonsense. I'm talking about typing "Schedule my standup, pull yesterday's GitHub commits, and remind me to review the PR at 3 PM" — then watching it happen. No API wrangling. No Zapier zaps breaking every Tuesday. No surrendering your data to some SaaS black box.
Here's the dirty secret most developers won't admit: we spend 40% of our productive time on soul-crushing busywork. Context-switching between Slack, Jira, terminal, browser tabs, calendar, email. The cognitive tax is brutal. We built computers to automate, yet here we are — still the automation.
That ends now.
Meet autoMate — the open-source, AI-driven local automation assistant that's making senior engineers quietly replace half their toolchain. Born from the same lineage as Manus, Computer Use Agent (CUA), and OmniParser, autoMate doesn't just chat. It acts. Natural language becomes shell commands, browser automation, desktop control, file operations, and 31 SaaS integrations — all running on your machine, under your control, with memory that persists across every AI client you use.
Still chaining together fragile Python scripts? Still paying for five different automation subscriptions? Keep reading. Your workflow is about to get a serious upgrade.
What is autoMate?
autoMate is a local-first, AI-powered automation hub created by yuruotong1 that transforms natural language instructions into concrete computer actions. Think of it as the missing infrastructure layer between your favorite AI chat clients and your actual operating system — a persistent brain that remembers, stores, executes, and integrates across your entire digital workspace.
The project emerged from a critical observation: every AI vendor (OpenAI, Anthropic, Google) wants to own your chat experience, but none of them remember anything across platforms. Your Claude conversation stays in Claude. Your ChatGPT threads stay in ChatGPT. Your files? Scattered. Your reminders? Trapped in yet another app. autoMate shatters these silos by becoming the warehouse you own — a single backend that any AI client can read from and write to via the Model Context Protocol (MCP).
At its core, autoMate runs as a FastAPI server on your local machine (default: 127.0.0.1:8765), exposing tools through REST, WebSocket, and MCP-over-HTTP endpoints. It maintains SQLite databases for structured data, Fernet-encrypted storage for secrets, and a content-addressed blob vault for files. The architecture is deliberately modular: swap LLM providers, add custom tools, or run headless on a NAS without touching the core.
Version v4.5.7 marks a pivotal shift — autoMate now functions primarily as an MCP tool source, meaning Claude Desktop, Cursor, Cline, OpenClaw, and any MCP-compatible client can instantly access its entire capability surface. But it also stands alone with a built-in PWA web chat for quick local queries.
The traction is real. In an ecosystem drowning in "AI wrappers," autoMate delivers genuine infrastructure — the kind of tool that gets bookmarked in senior engineering Slack channels and quietly deployed on homelab servers worldwide.
Key Features That Separate autoMate from the Noise
🔒 Local-First Architecture with Optional Cloud
Your data lives where you want it. Default configuration binds to localhost with no external calls. The SQLite + Fernet encryption model means API keys, OAuth tokens, and push subscriptions never leave your machine unprotected. Cloud features are strictly opt-in via AUTOMATE_CLOUD_URL — no sneaky telemetry, no data harvesting.
🧠 Persistent Cross-Session Memory
The memory.* tool namespace allows any connected AI to read and write long-term key-value facts. Finally, your Claude conversation can remember that you prefer ruff over black, and your Cursor session can recall your team's API conventions — without re-prompting every time.
📁 Content-Addressed File Vault (NAS-Ready)
Files are stored with deduplication via content addressing, and critically, the storage path is configurable. Point it at an external SSD, a NAS mount, or your homelab's ZFS pool. This isn't toy storage — it's infrastructure designed for serious data hoarders.
🔍 Coze-Style Hybrid Retrieval
The search.find tool implements BM25 ranking over SQLite FTS5 across both notes and files in a single call. It's the retrieval quality you'd expect from modern RAG systems, but running locally without vector database overhead. Your personal knowledge base becomes instantly queryable.
🛠️ 40+ Native Tools Across Six Categories
| Category | Tools | Power Level |
|---|---|---|
| Personal Data | notes, files, search, reminders, memory, audio | Daily workflow core |
| Local Execution | shell, script, desktop, browser, bx (Chrome extension) | System-level control |
| SaaS Integrations | 31 platforms including GitHub, Notion, Slack, Jira, Stripe | Enterprise bridge |
| LLM Providers | 25 providers from OpenAI to Ollama to 通义 | Vendor flexibility |
| IM Channels | Via OpenClaw: WeChat, Telegram, WhatsApp, Signal, iMessage | Communication hub |
| Browser Control | Playwright fresh Chromium + real Chrome via extension | Web automation |
📱 PWA with Web Push Reminders
Install the web interface as a Progressive Web App, get push notifications to your phone when scheduled reminders fire. The Android APK provides a native viewer for mobile access to your hub.
🔄 MCP-Native Integration
The FastMCP bridge at /mcp/ exposes all tools with Bearer token authentication. Any MCP client becomes autoMate-capable instantly. The "Copy install text" feature generates per-client configuration markdown that you can literally paste into Cursor and say "set this up for me."
Use Cases: Where autoMate Actually Shines
1. The Context-Switching Developer
You're deep in a feature, but Jira needs updating, Slack demands attention, and that PR needs review. Instead of breaking flow, you type to your AI client: "Update Jira ticket PROJ-442 to 'In Review', post the PR link in #backend-reviews, and remind me to check CI in 20 minutes." autoMate executes across all three platforms while you stay in your editor.
2. The Homelab Operator Running Headless Services
Deploy autoMate via Docker on your NAS or headless server. Use the web chat or connect via MCP from your workstation. Schedule backup verification scripts, monitor service health with shell.exec, get Web Push alerts when disk space drops below threshold. Your infrastructure gains a natural language interface without opening a single port to the public internet.
3. The Multi-AI-Client Power User
You use Claude Desktop for serious architecture discussions, Cursor for implementation, and OpenClaw for quick IM-based queries. Without autoMate, each conversation is an amnesiac island. With autoMate as the MCP backend, your notes from Claude appear in Cursor's context, your files uploaded via OpenClaw are searchable everywhere, and your memory of project conventions persists across all three.
4. The Automation-Without-APIs Practitioner
That internal tool with no API? That legacy desktop application? The government website that only works in Chrome? autoMate's desktop.* tools (pyautogui-based) and bx.* Chrome extension bridge drive real browsers and real desktops — not headless abstractions. If a human can click it, autoMate can automate it. This is the "Computer Use Agent" promise delivered without enterprise pricing.
5. The Privacy-Conscious Team Lead
Your team can't use cloud automation tools due to compliance requirements. Deploy autoMate on-premise, configure Fernet encryption, bind to internal network interfaces. Team members connect via MCP from their existing AI clients. You get enterprise-grade automation with zero vendor data exposure — and the audit logs live in your SQLite database, not some SaaS dashboard.
Step-by-Step Installation & Setup Guide
autoMate offers four installation paths depending on your environment. Choose your adventure:
Path 1: Python Package (Recommended for Developers)
# Install from PyPI
pip install automate-hub
# Launch the server
automate
The command starts the FastAPI server and opens your browser to http://127.0.0.1:8765. The setup wizard walks through model selection, API key configuration, and optional AI client wiring.
Path 2: Standalone Binary (Zero Dependencies)
Download the appropriate binary from the GitHub Releases page:
| Platform | File |
|---|---|
| Windows | automate-windows-x64.exe |
| macOS | automate-macos-universal |
| Linux | automate-linux-x64 |
Double-click to run — no Python, no pip, no dependency hell.
Path 3: Docker (Servers and NAS Devices)
# Run latest release
docker run -p 8765:8765 ghcr.io/yuruotong1/automate:latest
# For persistent data, mount a volume
docker run -p 8765:8765 \
-v /path/to/your/storage:/root/.automate \
ghcr.io/yuruotong1/automate:latest
Perfect for headless boxes, Unraid servers, or TrueNAS SCALE deployments.
Path 4: Browser Extension + Android APK
- Chrome extension source lives in
extension/— load unpacked inchrome://extensions - Android APK available from Releases for mobile hub access
Post-Install: Connecting Your AI Client
After launching autoMate:
- Open Settings → Connect to AI clients
- Click "Copy install text"
- You'll receive a markdown blob with URL and Bearer token pre-filled
- Choose your integration method:
- Manual: Edit your client's MCP config file directly
- AI-Assisted: Paste into Cursor/Claude and ask it to configure autoMate
- OpenClaw: Paste under
bundle-mcpin your OpenClaw config
The token is sensitive — anyone with it can invoke shell.exec and desktop.* tools. Rotate it from Settings → Channels if compromised.
Environment Configuration
Key environment variables for advanced deployment:
# Optional: Enable network access beyond localhost
automate --host 0.0.0.0
# Optional: Configure cloud relay (Pro tier)
export AUTOMATE_CLOUD_URL=https://your-cloud-instance
# Default data directory: ~/.automate/
# Contains: SQLite databases, Fernet key (secret.key), file blobs
REAL Code Examples from the Repository
Let's examine actual implementation patterns from autoMate's architecture and usage. These aren't hypothetical — they're extracted directly from the project structure and documentation.
Example 1: Project Architecture — The Modular Tool System
The automate/tools/ directory reveals how capabilities are organized:
# From the project layout — conceptual structure of tool registration
autoMate/
├─ automate/ # the package
│ ├─ tools/ # shell · script · browser · desktop · bx
│ │ # plus notes · files · reminders · memory
│ │ # · search · audio
│ ├─ integrations/ # 31 SaaS connectors
│ └─ server/
│ └─ mcp_bridge.py # FastMCP exposure, mounted at /mcp/
What's happening here: autoMate uses a flat tool namespace where each module exposes functions that get automatically registered. The mcp_bridge.py file wraps these into FastMCP protocol format. This means adding a new capability — say, database.query — only requires creating automate/tools/database.py with properly decorated functions, and it appears across all connected clients instantly.
The bx.* namespace ("browser extension") is particularly clever — it bridges to your real Chrome profile via the MV3 extension, not a sterile Playwright instance. This means logged-in sessions, cookies, and extensions (like password managers) are available to automation. The trade-off is slightly less isolation; the win is dramatically higher capability surface.
Example 2: MCP Client Connection — The "Copy Install Text" Output
When you click "Copy install text" in Settings, you receive structured markdown like this conceptual example:
# autoMate MCP Configuration
Server URL: http://127.0.0.1:8765/mcp/
Bearer Token: auto_sk_xxxxxxxxxxxxxxxx
## Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"automate": {
"url": "http://127.0.0.1:8765/mcp/",
"headers": {
"Authorization": "Bearer auto_sk_xxxxxxxxxxxxxxxx"
}
}
}
}
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"automate": {
"url": "http://127.0.0.1:8765/mcp/",
"headers": {
"Authorization": "Bearer auto_sk_xxxxxxxxxxxxxxxx"
}
}
}
}
OpenClaw
Paste under bundle-mcp in your OpenClaw configuration.
**Why this matters:** The configuration is designed for **AI readability**. The explicit per-client sections with file paths mean you can paste this into Cursor itself and ask it to "add autoMate to my MCP config." The AI parses the markdown, identifies its own section, and performs the edit. It's configuration that configures itself — a subtle but powerful UX pattern.
### **Example 3: Tool Invocation — What Your AI Client Sees**
Once connected, your AI client receives tool definitions like these (reconstructed from the capability descriptions):
```python
# Conceptual tool schema exposed via MCP — based on documented capabilities
# Personal knowledge management
def search_find(query: str, limit: int = 10) -> list[dict]:
"""
Hybrid BM25 search across notes and files.
Uses SQLite FTS5 for ranking; returns deduplicated results
from both content-addressed file vault and markdown notes.
"""
# Implementation: SQLite FTS5 query with BM25 ranking function
# Joins notes table and files metadata table
# Returns: [{"type": "note|file", "title": "...", "score": 0.95, ...}]
def notes_read(note_id: str = None, tag: str = None) -> str:
"""Read markdown note by ID or list notes matching tag."""
def files_list(prefix: str = "/", limit: int = 100) -> list[dict]:
"""List files in content-addressed vault with optional path prefix."""
# Local execution (requires explicit user confirmation in most clients)
def shell_exec(command: str, cwd: str = None, timeout: int = 60) -> dict:
"""
Execute shell command on local machine.
WARNING: Full system access. MCP Bearer token is the security boundary.
"""
def desktop_click(x: int, y: int, button: str = "left") -> bool:
"""PyAutoGUI-based click at screen coordinates."""
def browser_navigate(url: str, headless: bool = False) -> str:
"""Open URL in Playwright-controlled Chromium."""
# SaaS integrations (OAuth tokens stored Fernet-encrypted)
def github_create_issue(repo: str, title: str, body: str = "") -> dict:
"""Create GitHub issue using stored OAuth token."""
def notion_append_page(page_id: str, content: str) -> bool:
"""Append markdown content to Notion page."""
# The meta-tool: autoMate's own agent loop
def automate(instruction: str, context: dict = None) -> dict:
"""
Run autoMate's internal agent loop on the instruction.
Uses configured LLM provider to plan and execute multi-step tasks
using available tools. Returns execution trace and final result.
"""
Critical security insight: The shell.exec and desktop.* tools are full system access. The MCP Bearer token is your security boundary — not sandboxing, not permissions, not scopes. This is by design: maximum capability requires maximum responsibility. The localhost default binding and Fernet-encrypted tokens are the defense layers, not runtime restrictions.
Example 4: Docker Deployment for Homelab
# Production-style Docker deployment with volume persistence
# From the README installation section
docker run -d \
--name automate \
--restart unless-stopped \
-p 127.0.0.1:8765:8765 \ # Bind to localhost only; reverse proxy for external
-v /mnt/nas/automate-data:/root/.automate \ # Persistent storage on NAS
-e AUTOMATE_STORAGE_PATH=/root/.automate/files \ # File vault location
ghcr.io/yuruotong1/automate:latest
# Verify health
curl -H "Authorization: Bearer $(cat /mnt/nas/automate-data/secret.key | head -c 32)" \
http://127.0.0.1:8765/health
Deployment notes: The -p 127.0.0.1:8765:8765 binding ensures the container is only accessible locally. For remote access, place an authenticated reverse proxy (Authelia, Authentik, or basic nginx with client certs) in front — never expose autoMate's MCP endpoint directly to the internet. The volume mount at /root/.automate captures all state: SQLite databases, encrypted secrets, and the file blob store.
Advanced Usage & Best Practices
🔐 Security Hardening
Rotate your MCP Bearer token monthly via Settings → Channels. Store the token in your password manager, never commit it to dotfiles repos. For team deployments, consider short-lived tokens with an external issuance service.
💾 Storage Optimization
The content-addressed file vault deduplicates automatically, but SQLite databases can grow. Schedule VACUUM operations via shell.exec or cron. For large file collections, mount the storage path on ZFS with compression enabled — autoMate's blob store compresses excellently.
🧠 Memory Hygiene
The memory.* namespace accumulates facts indefinitely. Implement a monthly review: query all memory keys, delete stale entries, consolidate duplicates. Future versions may add automatic memory compaction; until then, be the gardener.
⚡ Provider Fallback Strategy
Configure multiple LLM providers in order of preference. autoMate's provider catalog supports 25 options — use OpenAI for complex reasoning, Groq for speed-critical tasks, Ollama for offline-sensitive operations. The agent loop can be directed to specific providers per-task.
🌐 Chrome Extension Power User Tips
The bx.* tools access your real browser profile — including extensions. Combine with password manager extensions for authenticated automation without storing credentials in autoMate. Use Playwright (browser.*) for clean-slate operations and bx.* for "logged-in as me" workflows.
Comparison with Alternatives
| Capability | autoMate | Zapier | n8n | Manus | Custom Scripts |
|---|---|---|---|---|---|
| Local-first | ✅ Native | ❌ Cloud-only | ⚠️ Self-hostable | ❌ Cloud | ✅ Native |
| Natural language interface | ✅ Core | ❌ GUI builder | ❌ GUI builder | ✅ Core | ❌ Code only |
| Desktop automation (no API) | ✅ pyautogui + real Chrome | ❌ Limited | ❌ Limited | ✅ Yes | ⚠️ Fragile |
| Cross-AI-client memory | ✅ MCP standard | ❌ N/A | ❌ N/A | ❌ Proprietary | ❌ N/A |
| SaaS integrations | 31 platforms | 6000+ apps | 400+ nodes | Limited | Build yourself |
| Cost | Free (MIT) | $19.99+/mo | Free/fair-code | Waitlist/$$$ | Time only |
| Data privacy | ✅ You own everything | ❌ Processed on their infra | ⚠️ Your server | ❌ Cloud | ✅ You own everything |
| Setup complexity | Medium | Low | Medium | Low (if invited) | High |
The verdict: Zapier wins on integration count but loses on privacy and desktop automation. n8n is powerful for workflow engineers but lacks natural language interfaces. Manus promises similar capabilities but is invitation-only and cloud-dependent. Custom scripts offer maximum control but become maintenance nightmares. autoMate occupies the sweet spot: local, open, natural language-driven, with genuine desktop automation and cross-client memory.
FAQ
Q: Is autoMate free? What's the catch?
A: Completely free under MIT license. The optional "autoMate Cloud Pro tier" adds features like advanced audio transcription with custom vocabulary mining, but core functionality is unrestricted. No feature gates, no usage limits, no artificial scarcity.
Q: How does this compare to just using Claude's computer use feature?
A: Claude's computer use is impressive but ephemeral — each session starts fresh, and your data lives in Anthropic's cloud. autoMate persists memory, files, and configuration across sessions and across AI vendors. Use Claude as the brain, autoMate as the persistent infrastructure.
Q: Can I run this on my Raspberry Pi or old laptop?
A: The Docker image runs on any Linux ARM64/x64 host. Resource usage is modest — SQLite and FastAPI are lightweight. The heavy lifting (LLM inference) happens at your chosen provider, not locally. Ollama/LM Studio local inference works but requires more hardware.
Q: Is the shell.exec tool dangerous?
A: Extremely capable, therefore potentially dangerous. The security model is: localhost binding + Bearer token + your physical machine access. There's no sandbox. Don't expose autoMate to untrusted networks. Treat the token like root SSH access.
Q: What happens to my data if autoMate development stops?
A: Your data is in standard SQLite and flat files. The MIT license means the community can fork and continue. No vendor lock-in, no proprietary formats. Your notes are Markdown, your files are blobs, your memory is JSON in SQLite.
Q: Can I contribute new SaaS integrations or tools?
A: The modular automate/tools/ and automate/integrations/ structure is designed for contributions. Each tool is a Python module; new SaaS connectors follow a standard pattern. PRs welcome — the project is actively maintained.
Q: How do I get push notifications working on my phone?
A: Install the PWA from your autoMate web interface (Chrome/Edge → "Install"). Enable notifications when prompted. The reminder scheduler uses Web Push; your phone receives them even when the browser isn't active.
Conclusion
The automation landscape is littered with half-solutions: cloud tools that own your data, local tools that require engineering degrees, AI assistants that forget everything, and desktop automation that's held together with hope and XPath.
autoMate is different.
It's the infrastructure layer we should have had years ago — local, open, memory-persistent, and genuinely capable of driving your real computer through natural language. The MCP integration means it improves every AI client you already use without replacing any. The 31 SaaS integrations mean it bridges your existing tools rather than fragmenting further. The desktop and browser automation mean no API is no longer a blocker.
I've deployed it on my homelab NAS, connected it to Cursor for coding workflows, and watched it handle the weekly ritual of "check PRs, update standup notes, remind team about deploy" in a single sentence. The time reclaimed is real. The cognitive load reduction is immediate.
Your move.
👉 Star autoMate on GitHub — the project lives at yuruotong1/autoMate, releases are at the link above, and the community is growing. Install takes 60 seconds. The first time your AI actually remembers something useful across sessions, you'll understand why this matters.
The future of automation isn't another SaaS dashboard. It's a warehouse you own, with an AI front door. Walk through it.
Last updated: autoMate v4.5.7. Check the repository for latest releases and documentation.
Comments (0)
No comments yet. Be the first to share your thoughts!