AnyBot
跑在你自己電腦上的 AI 助理。
會聊天,也會做事:整理檔案、跑指令、看網頁、操作螢幕、到點自己排。
中文 · English
模型用你自己的金鑰:xAI、OpenAI、Claude、Gemini、OpenRouter、OpenCode Go、家裡的 Ollama,或任何講 OpenAI 那套介面的服務。聊天記錄、檔案、密碼留在你的機器上,不會先存進別人的帳號伺服器。左邊每一行都是一個 Bot:研究、寫作、管電腦,可以各用各的模型。
---
## 30 秒裝好
打開終端機,貼一行。
```sh
# macOS、Linux(不限 Ubuntu:apt、dnf、yum、pacman、zypper、apk、xbps 都認得)
curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh | sh
```
```powershell
# Windows 10/11(x64、arm64)
irm https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.ps1 | iex
```
它會自己裝好需要的東西、問你要裝哪一種,然後做第一次設定。第一次編譯 5–15 分鐘,之後更新 1–2 分鐘;裝在你的使用者資料夾,不需要系統管理員。
裝好打開 AnyBot(Mac 第一次要對圖示按右鍵 › 打開),「設定 › 模型」貼上 API 金鑰,建一個 Bot 就能開始聊。沒有金鑰可以選 Ollama,在你自己的電腦上跑。
**帳號伺服器 + 大腦**(任何有 Docker 的 Linux,2 GB 以上;只問網址、帳號、密碼,HTTPS 它自己處理):
```sh
curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh | sh -s -- server
```
**無頭手腳**(給 Bot 操控的電腦,沒螢幕也行)。網址和配對碼在 AnyBot 按「加一台電腦」就會看到:
```sh
curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh \
| sh -s -- hands https://你的網址 482913
```
```powershell
# Windows 手腳
$env:ANYBOT_MODE='hands'
$env:ANYBOT_PAIR_URL='https://你的網址'
$env:ANYBOT_PAIR_CODE='482913'
irm https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.ps1 | iex
```
給代理程式跑、不要出現問句:`sh install.sh --print` 先問這台適合什麼,再用環境變數,見 [install/AGENT.md](install/AGENT.md)。
---
## 它會先問你,再動手
你說「在我的電腦上做」,它不會默默執行。畫面上出現要做的事,你按允許才繼續。付款、寄出、刪除這類動作,每次都會再問一次,即使你關掉了別的詢問。
- **整理檔案、跑指令** — 做之前先問。也可以只讓它用「它自己的電腦」,一個跟你隔開的小桌面。
- **看網頁、填表** — 用它自己的瀏覽器。密碼和卡號由程式直接填,不會先念給模型聽。
- **操作你正在用的畫面** — 看截圖上的按鈕再點。點不到,或是要你登入時,把畫面交給你。
- **到點自己做** — 「每個工作日早上 9 點整理三則新聞」變成例行任務。
- **手機隨時插手** — 瀏覽器打開你的網址、登入,就是同一個聊天。
---
## 一台想,幾台被用
一台負責想和記(**大腦**),其他電腦負責被操作(**手腳**),手機只是一個視窗。它們都連到你自己的**帳號伺服器**,所以家裡的電腦不用開連接埠、也不用固定 IP。
```
你在手機上說話 你在筆電上說話 沒螢幕的電腦也行
\ | /
└──────── 帳號伺服器(只負責把大家接起來)────────┘
|
大腦:Bot、聊天、記憶、例行任務在這裡
|
手腳:大腦叫它看畫面、點擊、讀檔、開瀏覽器
```
| 角色 | 你要做的 |
|---|---|
| 大腦 | 架一次伺服器,或先用一台常開的 Mac |
| 螢幕 | 裝桌面 App,登入同一個帳號 |
| 手腳 | 按「加一台電腦」,把那一行貼過去 |
| 手機 | 瀏覽器打開你的網址,加入主畫面 |
沒有伺服器也可以先拿一台 Mac 當大腦,見 [docs/multi-device.md](docs/multi-device.md) 的做法 B。
---
## 一句話進去之後
```mermaid
flowchart TD
you[你:桌面 App 或手機]
relay[帳號伺服器
只轉送,不保存聊天]
brain[大腦上的 AnyBot]
model[你選的模型]
ask[要動電腦?先問你]
box[Bot 自己的電腦
Docker 裡的小桌面]
hands[某一台手腳
你的 Mac、Linux 或 Windows]
you --> relay --> brain
brain --> model
brain --> ask
ask --> box
ask --> hands
```
1. 你在桌面或手機送出訊息。手機不自己想,它看的是大腦上的同一份聊天。
2. 大腦把這句話、這個 Bot 的指示、它能用的工具,交給你選的模型。
3. 模型只要回答就直接寫回來;要讀檔、開網頁、點畫面,就提出一個動作。
4. 這個動作先過 AnyBot 自己的規則,不讓模型決定能不能做。
5. 你允許之後,動作在**你指定的那台電腦**上做:隔離桌面、你正在用的這台,或一台配對過的手腳。
6. 結果回到聊天。手機、筆電看到同一份,因為都在看大腦。
三支程式就夠了,沒有資料庫伺服器:`anybot`(桌面、背景 `anybot --serve`、終端機設定 `anybot setup` 都這一支)、`anybot-relay`(帳號伺服器,電腦主動連過去)、手機網頁(一個檔案,做在程式裡)。實作細節在 [docs/architecture.md](docs/architecture.md)。
---
## 文件
| 你想… | 看 |
|---|---|
| 手機、大腦、手腳、連不上 | [docs/multi-device.md](docs/multi-device.md) |
| 某個平台裝失敗、要自己編譯 | [docs/install.md](docs/install.md) |
| 程式怎麼分層 | [docs/architecture.md](docs/architecture.md) |
| 帳號伺服器的介面 | [docs/protocol.md](docs/protocol.md) |
| 信任邊界、金鑰放哪 | [SECURITY.md](SECURITY.md) |
| 功能一條條清單 | [FEATURES.md](FEATURES.md) |
| 打包、自動建置 | [docs/release.md](docs/release.md) |
| 改這份 README(不跑版的寫法) | [docs/readme-style.md](docs/readme-style.md) |
英文摘要在 `docs/en/`。
## 一起改
```sh
git clone https://code.30cm.net/daniel.w/AnyBot.git
cd AnyBot
make deps && make && make install
```
`make run` 直接打開,`make test` 跑測試,`make help` 看全部。
## 授權
Apache-2.0,見 [LICENSE](LICENSE)。