autoMate
by yuruotong1
README.md
# autoMate
> **A smart NAS for AI.** Notes · files · reminders · memory · 40+ tools.
> Plug it into OpenClaw / Claude Desktop / Cursor / Cline as a tool
> source, or use it standalone via its built-in web chat.
```
┌─ OpenClaw ─────┐ ┌─ notes / memory ── survives every chat
├─ Claude Desktop├──── MCP ────┐ ├─ files ─────────── your file vault (NAS)
├─ Cursor / Cline├──── HTTP ───┤ ├─ reminders ─────── push to your phone
├─ Kimi / GPT ├──── bridge ─┤ ├─ memory ────────── cross-session facts
└─ your scripts ┘ │ ├─ search.find ───── BM25 over notes+files
▼ │
┌──────────────────┐ ┌─ shell · script · browser
│ autoMate │ ── ┤ desktop · 31 SaaS APIs
│ (your machine) │ └─ your real Chrome (extension)
└────────┬─────────┘
▼
~/.automate/ · SQLite + Fernet
```
## What's the deal
Every AI vendor wants to be your chat tool. Most can call tools.
**None of them remember anything across vendors, store your files, or
ping your phone when something matters.**
autoMate is the layer behind the chat: a warehouse you own. Pick a
chat client you like (OpenClaw for IM, Claude Desktop for serious
work, Cursor for code), point it at autoMate via MCP, and **that
client** can write into your notes, drop files, schedule reminders,
search your library, and call your real-world tools — and tomorrow's
client can read all of it back the same way.
## Two ways to use it
| Mode | Who's the brain | When |
|---|---|---|
| **As a tool inside another AI client** | Your client (OpenClaw / Claude / Cursor / ...) | Most use cases — IM, coding, research |
| **Standalone via autoMate's web chat** | autoMate's own agent loop | Quick local queries, no other client |
Same backend. Same data. Pick the entry point.
## Connecting to OpenClaw / Claude Desktop / Cursor / Cline (v4.5.7)
After install, open **Settings → Connect to AI clients** and click
**"Copy install text"**. You get a single markdown blob with the
URL + token already filled in, and per-client sections for OpenClaw,
Claude Desktop, Cursor, Cline, generic MCP, and non-MCP gateways.
Three ways to use it:
- Read it and edit your client's config file by hand.
- **Paste it into another AI** — "Cursor, here's autoMate, set it up
for me." The text is written so an AI reader can find the right
section and edit the right config.
- For OpenClaw specifically, paste into your OpenClaw config under
`bundle-mcp` — the section spells it out.
After the client picks up the new server, it gets all autoMate's
tools (`search.find`, `notes.read`, `files.list`, `audio.transcribe`,
...) plus a top-level `automate` tool that runs autoMate's own
agent loop on demand.
See [docs/channels.md](./docs/channels.md) for details.
## Install
| Path | Get | When |
|---|---|---|
| `pip install automate-hub` | Python package | Have Python, want it small |
| Standalone binary (Win / macOS / Linux) | [Releases](https://github.com/yuruotong1/autoMate/releases/latest) | No Python, double-click |
| Docker | `docker run -p 8765:8765 ghcr.io/yuruotong1/automate:latest` | Headless box / NAS |
| Browser extension | [`extension/`](./extension/) | Drive your real Chrome |
| Phone (PWA) | Open the hub URL in mobile Chrome / Safari → Add to Home Screen | iOS or Android, no app store |
After install:
```bash
automate # double-click on Windows/macOS does the same thing
```
Browser opens to `http://127.0.0.1:8765`. The wizard walks you through
picking a model, pasting a key, and (optionally) wiring up an AI client.
## What's in the box
**Personal data**
- `notes.*` — markdown documents with tags, search, pinning
- `files.*` — content-addressed blob vault, deduplication, **configurable storage path** (point it at an external SSD or NAS mount)
- `search.find` — Coze-style hybrid retrieval (SQLite FTS5 BM25) across notes + files in one call
- `reminders.*` — scheduler thread fires Web Push to your PWA
- `memory.*` — long-term key-value facts that any AI can read/write
- `audio.transcribe` — voice → text via Tencent ASR / OpenAI Whisper, with custom vocabulary mined from your notes (Pro tier)
**Local executors**
- `shell.*`, `script.*` (Python/Bash/Node), `desktop.*` (pyautogui)
- `browser.*` (Playwright, fresh Chromium tab)
- `bx.*` (your real browser via the [Chrome extension](./extension/README.md))
**SaaS integrations** — 31 platforms: GitHub · GitLab · Gitee · Notion ·
Slack · Linear · Jira · Confluence · Trello · Asana · Monday.com · HubSpot ·
Airtable · Stripe · Shopify · Telegram · Discord · MS Teams · Zoom ·
Twitter/X · SendGrid · Mailchimp · Twilio · Sentry · 飞书 · 钉钉 · 企业微信 ·
微信公众号 · 微博 · 语雀 · 高德地图.
**LLM providers** — 25 in the catalog: OpenAI · Anthropic · Gemini · xAI Grok ·
Mistral · Cohere · OpenRouter · Groq · Together · Fireworks · DeepInfra ·
DeepSeek · Moonshot Kimi · 通义 · 豆包 · GLM · 百川 · Yi · MiniMax · 阶跃 ·
混元 · 硅基流动 · Ollama · LM Studio · any OpenAI-compatible.
## IM channels (WeChat / Telegram / WhatsApp / ...)
We don't ship per-platform bots ourselves. Run [OpenClaw](https://github.com/openclaw/openclaw)
alongside autoMate. The **Bots tab** in the SPA walks you through it
step-by-step:
1. Install OpenClaw + the [openclaw-wechat](https://github.com/freestylefly/openclaw-wechat) plugin
2. Drop the auto-generated `bundle-mcp` config snippet into `~/.openclaw/openclaw.json5` — autoMate's MCP URL + bearer token are pre-filled
3. `openclaw config set channels.wechat.*` — apiKey, proxyUrl, webhookHost
4. `openclaw gateway start` — scan the QR with WeChat
OpenClaw also speaks Telegram / Slack / Discord / Signal / iMessage —
same step 2 (autoMate as MCP tool source) applies.
The legacy bots in `automate/bots/` (telegram / wechat_oa / wecom) are
direct-webhook adapters, kept for users who can't run OpenClaw. They
appear under **Bots → Direct platform webhooks (advanced / legacy)**.
## Project layout
```
autoMate/
├─ automate/ # the package
│ ├─ server/ # FastAPI app, REST + WS + MCP-over-HTTP
│ │ └─ mcp_bridge.py # FastMCP exposure, mounted at /mcp/
│ ├─ agent/ # NL → tool-call loop
│ ├─ providers/ # LLM provider catalog + clients
│ ├─ tools/ # shell · script · browser · desktop · bx
│ │ # plus notes · files · reminders · memory
│ │ # · search · audio
│ ├─ integrations/ # 31 SaaS connectors
│ ├─ frontend/ # static SPA — PWA installable
│ │ └─ local-store.js # IndexedDB store: notes / memory / files
│ ├─ channels.py # external IM gateway bridge
│ ├─ audio.py # transcription provider abstraction
│ ├─ auth.py # autoMate Cloud session (Pro tier hook)
│ └─ {notes,files,reminders,memory,push}.py
├─ extension/ # Chrome MV3 extension
├─ docs/{channels,cloud,relay,mobile,sync}.md
├─ Dockerfile
└─ pyproject.toml
```
## Privacy & safety
- Server binds to `127.0.0.1`. Network access is opt-in (`--host 0.0.0.0`).
- API keys, OAuth tokens, push subscriptions: encrypted with Fernet,
key at `~/.automate/secret.key` (chmod 600).
- LLM calls go directly from autoMate to the provider you chose. Nothing
else sees them.
- The MCP endpoint at `/mcp/` requires a Bearer token. Treat it like a
password — anyone with this token can call autoMate's tools, including
`shell.exec`. Regenerate from Settings → Channels.
- autoMate Cloud (paid tier) is opt-in. Without `AUTOMATE_CLOUD_URL` set,
no data leaves your machine. See [docs/cloud.md](./docs/cloud.md) for
the open-client / closed-server boundary.
## Status
**v4.5.7** — autoMate is now an MCP-over-HTTP tool source for any
OpenClaw / Claude Desktop / Cursor / Cline / Cline / Kimi setup. Settings
gives you a one-click "Copy install text" for any AI client. Personal
infra is filled out: Coze-style retrieval, audio transcription,
configurable storage path, in-app auto-update, login hook for the
upcoming autoMate Cloud Pro tier.
中文版: [README_CN.md](./README_CN.md)
## License
MIT.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessUnresponsive