make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
# AnyBot
|
|
|
|
|
|
|
English entry point: README.en.md, docs/en/*, demo recording guide (P2)
- README.en.md: full English front door (install table, quick start,
deployment, security-in-one-paragraph, license) + a positioning table
against OpenClaw / OpenHands / Khoj / UI-TARS
- docs/en/{architecture,install,multi-device,protocol}.md: faithful English
summaries of the Chinese docs, each linking to the canonical version
- docs/demo/README.md: how to record the GIF/MP4 the README reserves space for
- language switch line at the top of the Chinese README
2026-11-09 09:56:16 +00:00
|
|
|
|
中文 · [English →](README.en.md)
|
|
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
你自己的 AI Bot。可以聊天,也能幫你動手做事:處理檔案、執行指令、操作瀏覽器和螢幕、跑例行任務。
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
- 每個 Bot 可以用不同的 AI:xAI Grok、OpenAI、Claude、Gemini、OpenRouter、OpenCode Go、Ollama(本機),或任何 OpenAI 相容的服務
|
|
|
|
|
|
- 桌面 App(macOS、Linux)+手機網頁版(可加到主畫面、收通知)
|
|
|
|
|
|
- 多台電腦一起用:一台當**大腦**,其他電腦當它的**手腳**
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 安裝
|
|
|
|
|
|
|
|
|
|
|
|
先決定你要裝哪一種,複製那一行到終端機執行就好。需要的東西(系統套件、Rust、Docker)腳本會自己裝。
|
|
|
|
|
|
|
|
|
|
|
|
| 我要… | 在哪台執行 | 指令 |
|
|
|
|
|
|
|---|---|---|
|
|
|
|
|
|
| **桌面 App** | Mac、有螢幕的 Linux | `curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh \| sh` |
|
|
|
|
|
|
| **架伺服器**(帳號伺服器+大腦+HTTPS) | 有網域的 Linux 主機 | `curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh \| sh -s -- server` |
|
|
|
|
|
|
| **加一台電腦當手腳** | 任何 Linux(有沒有螢幕都可以) | 在 AnyBot 按「加一台電腦」,貼上它給你的那一行 |
|
|
|
|
|
|
|
|
|
|
|
|
> 想先看腳本做什麼:[install.sh](install.sh)。它只會裝 AnyBot 需要的套件,程式裝在你的使用者資料夾(不用 root),原始碼放在 `~/AnyBot`。
|
|
|
|
|
|
|
|
|
|
|
|
**第一次要多久?** 腳本會在你的電腦上編譯,第一次大約 5–15 分鐘(看電腦快慢),之後更新只要 1–2 分鐘。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 開始使用
|
|
|
|
|
|
|
|
|
|
|
|
### 只用一台電腦
|
|
|
|
|
|
|
|
|
|
|
|
1. 裝好桌面 App,打開。
|
|
|
|
|
|
2. 設定 › 模型,貼上你的 API 金鑰(例如 xAI、OpenAI)。
|
|
|
|
|
|
3. 開始聊天。
|
|
|
|
|
|
|
|
|
|
|
|
### 手機和多台電腦一起用
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
手機(網頁) 筆電(螢幕) 沒螢幕的 Linux(手腳)
|
|
|
|
|
|
\ | /
|
|
|
|
|
|
└──────── 帳號伺服器(每台都連過來)─────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
大腦:Bot、聊天、記憶、例行任務都在這裡
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**步驟 1:架伺服器**(只做一次)
|
|
|
|
|
|
|
2026-11-05 00:35:47 +00:00
|
|
|
|
需要:一台 Linux 主機(2 GB 以上記憶體),加上一個網域(A 紀錄指到這台、80 和 443 埠打開)或 Tailscale(不用網域,只有你的裝置連得到)。
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
|
|
|
|
|
```sh
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh | sh -s -- server
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-11-05 00:35:47 +00:00
|
|
|
|
只會問三件事:**網址(網域或 Tailscale)、帳號、密碼**。它會自動裝 Docker、申請 HTTPS 憑證、建立帳號、啟動大腦。完成畫面會告訴你網址。
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
|
|
|
|
|
|
> 沒有伺服器?也可以先拿一台 Mac 當大腦,見 [docs/multi-device.md](docs/multi-device.md)(做法 B)。
|
|
|
|
|
|
|
|
|
|
|
|
**步驟 2:手機**:用瀏覽器打開你的網址並登入,再「加入主畫面」。
|
|
|
|
|
|
|
|
|
|
|
|
**步驟 3:其他電腦**
|
|
|
|
|
|
|
|
|
|
|
|
- **有螢幕的電腦**:裝好桌面 App,到 設定 › 一般 › 手機與帳號 登入,在「大腦」那一欄選伺服器。
|
|
|
|
|
|
- **沒螢幕的 Linux**:在手機 AnyBot 右上角按「⋯ › 加一台電腦」(或在電腦的 設定 › 一般 › 手機與帳號),會出現一行像這樣的指令:
|
|
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
|
curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh | sh -s -- hands https://你的網域 482913
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
貼到那台電腦執行,就會自動裝好、接上大腦,之後開機也會自動執行。不用帳號密碼,這組碼 10 分鐘內有效、只能用一次。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 更新和移除
|
|
|
|
|
|
|
|
|
|
|
|
| 要做什麼 | 指令 |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| 更新桌面 App 或手腳 | 再執行一次安裝的那一行 |
|
|
|
|
|
|
| 更新伺服器 | 在伺服器上 `cd ~/AnyBot && make server`,選「用現有設定,更新並重新啟動」 |
|
|
|
|
|
|
| 移除程式 | `cd ~/AnyBot && make uninstall`(你的 Bot 和聊天會留著) |
|
|
|
|
|
|
| 停掉手腳 | `systemctl --user disable --now anybot` |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 出問題時
|
|
|
|
|
|
|
|
|
|
|
|
先執行這個,它會告訴你缺什麼:
|
|
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
|
cd ~/AnyBot && make doctor
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
| 看到 | 怎麼辦 |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| 編譯到一半被中斷、`Killed` 或 `signal: 9` | 記憶體不夠。加 2 GB swap 再試:`sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile` |
|
|
|
|
|
|
| `Rust 太舊` 或 `requires rustc 1.95` | `rustup update stable`。用 apt 裝的 rustc 太舊,請改用 rustup |
|
|
|
|
|
|
| `alsa` 或 `pkg-config` 找不到 | 少了系統套件,執行 `make deps` |
|
|
|
|
|
|
| 伺服器的網址連不到 | 網域是不是指到這台?80、443 埠有沒有被防火牆擋?`cd ~/AnyBot/deploy/server && docker compose logs caddy` |
|
|
|
|
|
|
| 大腦登不進帳號 | `cd ~/AnyBot/deploy/server && docker compose logs anybot` |
|
|
|
|
|
|
| Mac 說「無法驗證開發者」 | 對 AnyBot 按右鍵 › 打開,只有第一次需要 |
|
|
|
|
|
|
| 手機上看到「大腦目前離線」 | 大腦那台關機、睡眠,或 AnyBot 沒開。詳見 [docs/multi-device.md](docs/multi-device.md) 的「連不上時」 |
|
|
|
|
|
|
|
|
|
|
|
|
還是不行:把 `make doctor` 的結果和錯誤訊息的最後幾行貼給維護的人。
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 自己從原始碼建置
|
|
|
|
|
|
|
|
|
|
|
|
適合想改程式的人。一般使用請用上面的一行安裝。
|
|
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
|
git clone https://code.30cm.net/daniel.w/AnyBot.git
|
|
|
|
|
|
cd AnyBot
|
|
|
|
|
|
make deps # 裝好系統套件和 Rust(只要一次;Linux 會問 sudo 密碼)
|
|
|
|
|
|
make # 建置
|
|
|
|
|
|
make install # 安裝:Mac → ~/Applications/AnyBot.app;Linux → ~/.local/bin/anybot 和應用程式選單
|
|
|
|
|
|
```
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
|
|
|
|
|
| 指令 | 做什麼 |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| `make run` | 不安裝,直接打開 |
|
|
|
|
|
|
| `make test` | 跑測試 |
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
| `make doctor` | 檢查這台缺什麼 |
|
|
|
|
|
|
| `make serve` | 不開視窗執行(一直開著的電腦) |
|
|
|
|
|
|
| `make setup` | 把這台接到你的大腦(終端機裡的引導畫面) |
|
|
|
|
|
|
| `make server` | 在這台架伺服器(同上面的 `install.sh server`) |
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
| `make dist` | 打包發行檔到 `dist/` |
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
| `make help` | 列出全部 |
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
需要:Rust 1.95 以上、C 編譯器、git;Linux 另外需要 `pkg-config` 和 ALSA 開發套件(`libasound2-dev`)。`make deps` 會全部裝好。各平台細節:[docs/install.md](docs/install.md)。
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 部署方式
|
|
|
|
|
|
|
|
|
|
|
|
| 方式 | 用在 | 說明 |
|
|
|
|
|
|
|---|---|---|
|
2026-11-05 00:35:47 +00:00
|
|
|
|
| **Docker Compose**(預設) | 伺服器 | `install.sh server` 用的就是它:帳號伺服器、大腦、Caddy(自動 HTTPS)三個容器,資料放在 Docker 磁碟區,重開機自動啟動。用 Tailscale 網址時不開 Caddy,改由 `tailscale serve` 提供 HTTPS。設定檔:[deploy/server/docker-compose.yml](deploy/server/docker-compose.yml) |
|
|
|
|
|
|
| 免問安裝(腳本、Ansible…) | 伺服器 | 答案用環境變數給:`ANYBOT_SETUP_USER=me ANYBOT_SETUP_PASSWORD=… [ANYBOT_SETUP_DOMAIN=網域] sh install.sh server`;不給網域時用這台的 Tailscale 網址 |
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
| Portainer、Coolify、Dokploy… | 已經在用這些管理工具的伺服器 | 它們都吃標準的 `docker-compose.yml`:把 repo 加進去、指定 `deploy/server/docker-compose.yml`、在環境變數填 `ANYBOT_USER`、`ANYBOT_PASSWORD`、`ANYBOT_RELAY_PUBLIC_URL`。若工具自己處理 HTTPS,就拿掉 `caddy` 那一段,把網域導到 `relay` 的 8080 埠 |
|
|
|
|
|
|
| **systemd**(使用者服務) | 手腳、沒螢幕的 Linux 大腦 | `anybot setup` 會自動建立 `anybot.service`;登出後也要繼續跑:`sudo loginctl enable-linger $USER` |
|
|
|
|
|
|
| **launchd** | Mac 當大腦或帳號伺服器 | 見 [docs/multi-device.md](docs/multi-device.md) |
|
|
|
|
|
|
| Gitea Actions | 推 tag 自動打包發行檔 | 見 [docs/release.md](docs/release.md) |
|
|
|
|
|
|
|
|
|
|
|
|
不需要另外架資料庫:資料是幾個 JSON 檔,寫入時不會寫一半。要備份伺服器,備份 Docker 磁碟區 `server_relay-data`、`server_anybot-data` 就好。
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
---
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
|
|
|
|
|
## 文件
|
|
|
|
|
|
|
|
|
|
|
|
| 文件 | 內容 |
|
|
|
|
|
|
|---|---|
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
| [docs/install.md](docs/install.md) | 安裝細節:各平台需求、手動步驟、常見問題 |
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
| [docs/multi-device.md](docs/multi-device.md) | 大腦、手腳、螢幕:怎麼架、怎麼接、連不上時看什麼 |
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
| [docs/architecture.md](docs/architecture.md) | 技術架構:程式分層、資料存放、安全設計 |
|
|
|
|
|
|
| [docs/protocol.md](docs/protocol.md) | 帳號伺服器的介面與長連線格式 |
|
|
|
|
|
|
| [docs/release.md](docs/release.md) | 打包和自動建置 |
|
|
|
|
|
|
| [FEATURES.md](FEATURES.md) | 所有功能 |
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
|
2026-11-09 08:36:36 +00:00
|
|
|
|
## 授權
|
|
|
|
|
|
|
|
|
|
|
|
AnyBot 以 **Apache License 2.0** 授權(見 [LICENSE](LICENSE))散布:著作權屬本 repo 的貢獻者(The AnyBot contributors)。程式碼由本專案獨立撰寫;對第三方服務(xAI、OpenAI 等)的呼叫都走各家的公開 API,請遵守各服務的使用條款與你自己的金鑰合約。
|
|
|
|
|
|
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
## 專案結構
|
|
|
|
|
|
|
|
|
|
|
|
```
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
install.sh 一鍵安裝(桌面 App、手腳、伺服器)
|
|
|
|
|
|
src/ AnyBot:桌面 App、無視窗模式、anybot setup
|
|
|
|
|
|
relay/ 帳號伺服器
|
|
|
|
|
|
mobile/ 手機網頁
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
box/ Bot 自己的電腦(Docker 容器)
|
One-step install: install.sh, fixed Linux and server builds, clearer README
- install.sh (curl | sh): app, hands, server and deps modes; installs system packages
(right names per release, e.g. libasound2t64 on Ubuntu 24.04), Rust via rustup (1.95+),
Docker for the server; limits parallel compiles on small machines
- Server Docker image: add the ALSA build/runtime packages (the build failed), cache the
cargo registry and target between rebuilds, JOBS build arg
- 加一台電腦 now gives a line that installs AnyBot on a blank computer before joining it
- Makefile: make deps installs Rust too, make doctor, clear message when Rust is missing/old
- README rewritten: one line per use, getting started, update/remove, troubleshooting,
deployment options; docs/install.md and multi-device.md follow it
- Tested on fresh ubuntu:24.04 (app) and debian:12 (curl | sh hands) containers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 16:52:10 +00:00
|
|
|
|
deploy/ 各平台的安裝和部署檔:mac/、linux/、server/、ci/
|
make, README and docs: build and install from source
- Makefile: make / run / install / uninstall / deps / test / serve / setup /
hands / relay-run / server / dist / clean (macOS and Linux).
- README.md and docs/: install (all platforms, data locations, troubleshooting),
multi-device (brain, hands, screens, pairing, what the offline messages mean),
architecture (layers, data, security, sync, keys, hands, picture helper),
protocol (relay and AnyBot endpoints, WebSocket frames, sync ops), release
(packaging, Gitea Actions, Linux and Mac runners).
- install.sh --deps-only, bundle.sh KEEP_APP=1 (used by make deps / install).
- FEATURES.md: the multi-device part is done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha3oEtWeHh58zA7ErHa
2026-11-04 14:16:45 +00:00
|
|
|
|
docs/ 技術文件
|
|
|
|
|
|
```
|