You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d3de545
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/comparison.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,11 +9,11 @@ ships almost daily, so this table ages fast. Corrections welcome via PR — it o
9
9
10
10
| Capability | Grok Bot | This stack | Notes |
11
11
|---|---|---|---|
12
-
| Always-on teammates | ✅ on xAI's cloud | ✅ one Docker container each | Yours runs where you say: Mac mini, NAS, $5 VPS |
12
+
| Always-on teammates | ✅ on xAI's cloud | ✅ a container, or a local sandbox, each | Yours runs where you say: Mac mini, NAS, $5 VPS |
13
13
| Whose computer | A cloud computer per member; xAI's wording says a member's bots share it | A separate container per teammate | Separate desks mean separate blast radii: one teammate's browser, files and logins are out of another's reach |
14
14
| Watch its screen / take over | ✅ status, side preview, full-screen takeover | ✅ noVNC panel from the thread ||
15
15
| Signing in | Secure Form fills logins from chat; 1Password on Mac; takeover as fallback | Takeover only: you sign in on its screen | Theirs is smoother; ours never lets a password pass through the gateway |
16
-
| Work on your own machine | ✅ "Your computer" in the desktop app; web traffic can leave through your desktop |❌ | A Docker-free local mode is planned ([local-computers.md](local-computers.md)) |
16
+
| Work on your own machine | ✅ "Your computer" in the desktop app; web traffic can leave through your desktop |✅ local computers (v0.4.0): a browser profile and a folder of its own on your machine, commands off until you allow them and sandboxed then | macOS and Linux; Windows still needs Docker ([local-computers.md](local-computers.md)) |
17
17
| Named bots, persistent memory | ✅ | ✅ | Rules live in `MEMORY.md` outside the bot's computer; every change is a diff chip |
18
18
| Forget a rule | ✅ | ✅ `forget_memory`, or remove it in the panel ||
19
19
| Approval gate on outward actions | ✅ draft cards, Auto-review by a separate model | ✅ Approve / Discard, or a bare 👍 | Ours is held by instruction, not a sandbox — see [security.md](security.md)|
@@ -38,7 +38,7 @@ ships almost daily, so this table ages fast. Corrections welcome via PR — it o
38
38
| Voice | ✅ voice chat and calls | ❌ ||
39
39
| Apps | macOS, Windows and Linux desktop; iOS | A web client in your browser, reachable from other machines through a tunnel | Not tuned for phones yet |
40
40
| Model choice | Grok only | Any OpenAI-compatible: Grok, Kimi, DeepSeek, local |`stub` runs with no key |
41
-
| Setup | Zero (their infra) |`pnpm install` + one `docker build`| This is the price of custody |
41
+
| Setup | Zero (their infra) |`pnpm install`; Docker only if you want sealed containers| This is the price of custody |
42
42
| Your credentials live | xAI's cloud | Your disk | The actual point |
43
43
44
44
## The other two: Meta Muse and OpenAI dots
@@ -73,7 +73,7 @@ today they cannot act, but they can still load any page.
73
73
| Item | Grok Bot | OpenGrokBot |
74
74
|---|---|---|
75
75
| Subscription | Comes with SuperGrok and Cursor plans from Pro up, with its own usage meter; past the included usage you upgrade or set an on-demand limit | $0 |
76
-
| Compute | included | hardware you own, or a ~$5/mo VPS (2GB RAM min for Docker builds) |
76
+
| Compute | included | hardware you own, or a ~$5/mo VPS (2GB RAM min if the teammates use Docker) |
77
77
| Model usage | included up to the plan's allowance | your API bill; moderate single-bot usage on grok-4.5 ≈ single-digit $/mo; local model = $0 |
Copy file name to clipboardExpand all lines: docs/faq.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,10 +22,10 @@ Read [comparison.md](comparison.md) — including the "what Grok Bot genuinely d
22
22
No. v0.2 runs its own gateway and its own containers, and never reads or writes an OpenClaw config. If you want the old v0.1 distribution path instead, it is in [openclaw-recipe/](openclaw-recipe/README.md) — and its `setup.sh` still refuses to overwrite an existing config, writing a merge file instead.
23
23
24
24
**Windows?**
25
-
WSL2, with Docker Desktop's WSL2 backend for the bot computers.
25
+
WSL2, with Docker Desktop's WSL2 backend for the bot computers. Local computers (no Docker) are macOS and Linux only for now.
26
26
27
27
**How much RAM does a VPS need?**
28
-
2GB minimum. Each bot's container runs a real Chromium, so budget roughly 300–500MB per teammate that is actually awake. Computers start on demand and stop after an hour without use (`OPENGROKBOT_IDLE_STOP_MINUTES`), so idle teammates cost disk, not memory. Their logins survive the stop.
28
+
2GB minimum. Each awake teammate runs a real Chromium — in its container, or headless on your machine — so budget roughly 300–500MB per teammate that is actually awake. Computers start on demand and stop after an hour without use (`OPENGROKBOT_IDLE_STOP_MINUTES`), so idle teammates cost disk, not memory. Their logins survive the stop.
29
29
30
30
**Why does it ask me to sign in?**
31
31
The gateway can drive browsers that hold your sessions, so nothing talks to it without its token — not other websites you visit, not other devices on your network, not the bots themselves. Open the sign-in link it prints at startup once per browser; the token is in `gateway/data/auth-token`. Details in [security.md](security.md).
Copy file name to clipboardExpand all lines: docs/local-computers.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Plan: teammates' computers without Docker
1
+
# Teammates' computers without Docker
2
2
3
3
> **Status: the local computer has shipped for macOS and Linux** (step 1 below). The desktop app, the first-run
4
4
> wizard and the Apple container backend are still plans. The two questions this page once left open were settled
@@ -27,16 +27,17 @@ The gateway chooses at startup — Docker when the daemon answers, local otherwi
27
27
28
28
-**Out of your way.** Teammates work in a headless browser in the background — no windows popping up.
29
29
-**Signing in gets simpler.** At a login wall, the teammate's browser reopens as a normal window on your desktop,
30
-
on the page it was stuck on; you sign in there, click *I'm done signing in* in the panel (or just send it the next
31
-
message), and it goes back to the background with the session in its own profile. No VNC in between.
30
+
on the page it was stuck on; you sign in there, click *I'm done signing in* in the panel (your next message to it does the same;
31
+
a routine firing meanwhile leaves the window alone), and it goes back to the background with the session in its own profile. No VNC in between.
32
32
-**Watching still works.** The computer panel shows the browser's screen as a live stream (CDP screencast), view
33
33
only.
34
34
-**The browser keeps its own sandbox.** On the host, Chromium runs with its sandbox on (inside containers it
35
35
cannot).
36
36
-**Commands are off by default.** A local teammate gets a browser and its own folder; most of the work people
37
37
hand off needs nothing more. You can turn commands on per teammate in its computer panel, and then they run in
38
38
an OS sandbox that confines them to that teammate's folder: Seatbelt on macOS, bubblewrap on Linux — the same
39
-
primitives developer agents use today. The switch refuses to turn on until the sandbox passes a self-check (a
39
+
primitives developer agents use today. Your home directory is hidden from them, except the runtime managers
40
+
(`~/.nvm`, `~/.volta`, `~/.pyenv`, `~/.cargo/bin`, …) they need to find `node` or `python`. The switch refuses to turn on until the sandbox passes a self-check (a
40
41
write outside the folder and a read of the gateway token must both fail). What the sandbox does and does not
41
42
promise is spelled out in [security.md](security.md#local-computers).
42
43
-**No Linux userland.** A local teammate cannot `apt install` tools. Teammates that need that get a sealed
Copy file name to clipboardExpand all lines: docs/security.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ injection — that follows an agent wherever it runs. This page is precise about
20
20
| Bots cannot reach each other | All bot computers share one Docker network with container-to-container traffic switched off. And because on Docker Desktop a container can still reach ports published on the host, everything a computer publishes wants that computer's own secret: its shell/file shim and its browser control port (CDP) a per-container token, its screen a per-container VNC password. |
21
21
| Each Docker computer is a cage | Its own container with memory, CPU and process limits, `no-new-privileges`, and only its own workspace mounted. Every port is published to `127.0.0.1` only. |
22
22
| A local computer's files stay in its folder |`read_file` and `write_file` resolve inside that teammate's folder — `/workspace` maps to it — and a path that leaves it by name or through a symlink is refused. Its browser profile lives outside that folder, so the teammate cannot read its own cookie store through the file tools. |
23
-
| A local computer's commands are off, then caged | Commands are off until you turn them on for that teammate in its panel. On, they run under Seatbelt (macOS) or bubblewrap (Linux): they can write only the teammate's folder and a private tmp; the data dir (gateway token, other teammates' folders and profiles) and your key folders (`~/.ssh`, `~/.aws`, `~/.gnupg`, the GitHub CLI, your own Chrome profile) are unreadable; `HOME` points at the folder and the environment is a short whitelist. The switch refuses to turn on until a self-check shows the sandbox blocks a write outside the folder and a read of the gateway token. A command that outlives its timeout, or that you stop, is killed with its whole process group. |
23
+
| A local computer's commands are off, then caged | Commands are off until you turn them on for that teammate in its panel. On, they run under Seatbelt (macOS) or bubblewrap (Linux): they can write only the teammate's folder and a private tmp; your whole home directory — keys, documents, other projects, your own browser profile, the gateway's data dir — is unreadable, except the runtime managers (`~/.nvm`, `~/.volta`, `~/.pyenv`, `~/.cargo/bin`, …) that are put back read-only; a data dir outside your home is hidden too; `HOME` points at the folder and the environment is a short whitelist. The switch refuses to turn on until a self-check shows the sandbox blocks a write outside the folder, a read of the gateway token and a listing of your home directory. A command that outlives its timeout, or that you stop, is killed with its whole process group. |
24
24
| A bot cannot put code in front of you | The screen page and its noVNC code are served by the gateway from its own copy; only the raw VNC stream comes from the bot's computer. Nothing a bot changes inside its container reaches your browser as a page. |
25
25
| Standing rules only change through the chip |`MEMORY.md` lives outside the bot's workspace. The only ways to change it are `save_memory`, `forget_memory` and the remove button in the computer panel, and each of them posts a diff chip; a `MEMORY.md` a bot writes into its own workspace is ignored. Screenshots — the evidence — are stored outside it too. |
26
26
| Handoffs are allowlisted | By default only the chief of staff can reach everyone. Peer directions need `OPENGROKBOT_A2A_ALLOW`, and relays stop after two hops. |
@@ -86,6 +86,9 @@ A local computer is weaker than a container in ways you should know before you g
86
86
system, not the network: a command can reach anything your machine can, including services on `localhost`. It
87
87
cannot read the gateway token, so it cannot drive the gateway — but a service of yours that trusts localhost
88
88
without a password is reachable.
89
+
-**System services stay reachable.** The sandbox confines files, not the operating system: a command can read
90
+
anything outside your home that your user can (system libraries, `/opt`, `/etc`), and on macOS it can talk to any
91
+
Mach service (the pasteboard among them).
89
92
-**No resource limits.** Nothing caps a local teammate's memory or CPU; a runaway command is killed only by its
90
93
timeout (ten minutes at most) or the stop button.
91
94
-**The profile is a file.** The teammate's cookies live under `<data>/bots/<id>/browser`, readable by any program
0 commit comments