|
16 | 16 | ## 📖 Contents |
17 | 17 |
|
18 | 18 | - [🚀 5-minute start (non-developer friendly)](#-5-minute-start-non-developer-friendly) |
| 19 | +- [🎯 Right after install — first use](#-right-after-install--first-use) |
| 20 | + - [① Browser web UI](#-browser-web-ui) |
| 21 | + - [② Container CLI](#-container-cli) |
| 22 | + - [③ Terminal REPL chat](#-terminal-repl-chat) |
| 23 | + - [Verify](#verify) |
| 24 | + - [🌐 Temporarily opening external network](#-temporarily-opening-external-network) |
19 | 25 | - [🤖 Automation trio — at a glance](#-automation-trio--at-a-glance) |
20 | 26 | - [📚 Documentation map](#-documentation-map) |
21 | 27 | - [🤔 What is this?](#-what-is-this) |
@@ -97,6 +103,85 @@ You may see system dialogs for Docker Desktop / Xcode CLT — just accept them. |
97 | 103 |
|
98 | 104 | --- |
99 | 105 |
|
| 106 | +## 🎯 Right after install — first use |
| 107 | +
|
| 108 | +When `./openclaw install` ends with `✓ install complete!` and `🛡 sandbox active (default)`, two containers are already running: |
| 109 | +
|
| 110 | +| Container | Role | Exposed on | |
| 111 | +|---|---|---| |
| 112 | +| `openclaw-openclaw-gateway-1` | Web UI · REST gateway · healthz | `127.0.0.1:18789` | |
| 113 | +| `openclaw-openclaw-cli-1` | In-container shell (where `claude` CLI runs) | (shares gateway's network namespace) | |
| 114 | +
|
| 115 | +Pick whichever entry point fits. |
| 116 | +
|
| 117 | +### ① Browser web UI |
| 118 | +
|
| 119 | +```bash |
| 120 | +open http://127.0.0.1:18789 |
| 121 | +``` |
| 122 | +
|
| 123 | +The most visual / approachable path. Safari or Chrome — either works. Do **not** include `open` in the address bar; `open` is a terminal command, not a URL. |
| 124 | + |
| 125 | +> If you see **"Safari can't connect" / "Empty reply"**, run `./openclaw doctor` first. Containers might be up but healthz might still be initializing — confirm with `docker compose ps` and look for `(healthy)`. |
| 126 | +
|
| 127 | +### ② Container CLI |
| 128 | + |
| 129 | +The most stable path. Drop into the isolated container shell and run `claude` directly. |
| 130 | + |
| 131 | +```bash |
| 132 | +cd ~/DEV/openclaw |
| 133 | +docker compose exec openclaw-cli bash |
| 134 | +# then, inside the container: |
| 135 | +claude |
| 136 | +``` |
| 137 | + |
| 138 | +### ③ Terminal REPL chat |
| 139 | + |
| 140 | +Talk to the agent through host Ollama directly — no container, no web UI. The workspace personality files (`IDENTITY.md` · `SOUL.md` · `USER.md`, …) get auto-loaded into the system prompt. |
| 141 | + |
| 142 | +```bash |
| 143 | +./openclaw chat # default model + auto personality |
| 144 | +./openclaw chat -m llama3.1:8b # pick a model |
| 145 | +./openclaw chat --no-system # ignore personality, pure model |
| 146 | +``` |
| 147 | + |
| 148 | +Slash commands (`/exit` `/reset` `/model` `/history` `/help`) and full details: see [💬 Terminal chat (`chat`)](#-terminal-chat-chat). |
| 149 | + |
| 150 | +### Verify |
| 151 | + |
| 152 | +```bash |
| 153 | +./openclaw doctor |
| 154 | +# Key rows to check: |
| 155 | +# ✓ OpenClaw repo /Users/<you>/DEV/openclaw |
| 156 | +# ✓ Containers running 2 (gateway + cli) |
| 157 | +# ✓ Network isolation isolated (outbound blocked) |
| 158 | +# ✓ Ollama daemon / models (host-side ready) |
| 159 | +``` |
| 160 | + |
| 161 | +Any ✗? Just rerun `./openclaw install` — [`validate_state`](#idempotency-state-file) detects missing artifacts and re-runs the affected steps automatically. |
| 162 | + |
| 163 | +### 🌐 Temporarily opening external network |
| 164 | + |
| 165 | +Default is `isolated` (outbound blocked). For model downloads / code updates / `pip install` style work, briefly switch to `online`, then close it again — that's the standard cycle. |
| 166 | + |
| 167 | +```bash |
| 168 | +./openclaw network online --restart # open + restart containers |
| 169 | +# (do the work — ollama pull · pip install · git clone …) |
| 170 | +./openclaw network isolated --restart # lock it back down |
| 171 | +``` |
| 172 | + |
| 173 | +| Situation | What to do | |
| 174 | +|---|---| |
| 175 | +| `./openclaw update` (code · images · models refresh) | **Automatic** — `update` flips to `online` briefly and restores the previous mode. No manual toggle needed. | |
| 176 | +| `ollama pull <model>` from the host shell | Keep `isolated` — Ollama runs on the host, unaffected by container networking. | |
| 177 | +| `pip install` / `npm install` / `apt-get` / `git clone` **inside** the container | Need `online --restart` for the duration. | |
| 178 | +| Container reaching the host Ollama (`host.docker.internal:11434`) | Need `online --restart` — `isolated` blocks this too. | |
| 179 | +| Normal chatting / work (no new downloads) | **Stay `isolated`** — no exfil channel exists, which is the whole point. | |
| 180 | + |
| 181 | +For the security rationale and full blocked-actions list, see [🔒 Network isolation modes](#-network-isolation-modes-explicit-outbound-kill-switch). |
| 182 | + |
| 183 | +--- |
| 184 | + |
100 | 185 | ## 🤖 Automation trio — at a glance |
101 | 186 |
|
102 | 187 | > **⚠️ Setup first, then use.** Each command below requires its setup script to be run *once* before first use. Tools that need an account (nano-banana / Figma / Miricanvas / CapCut) also need a one-time `*-login` to capture a session. |
|
0 commit comments