refactor: rename clawdbot to moltbot with legacy compat
This commit is contained in:
@@ -8,7 +8,7 @@ read_when:
|
||||
|
||||
# Browser (clawd-managed)
|
||||
|
||||
Clawdbot can run a **dedicated Chrome/Brave/Edge/Chromium profile** that the agent controls.
|
||||
Moltbot can run a **dedicated Chrome/Brave/Edge/Chromium profile** that the agent controls.
|
||||
It is isolated from your personal browser and is managed through a small local
|
||||
control service inside the Gateway (loopback only).
|
||||
|
||||
@@ -32,10 +32,10 @@ agent automation and verification.
|
||||
## Quick start
|
||||
|
||||
```bash
|
||||
clawdbot browser --browser-profile clawd status
|
||||
clawdbot browser --browser-profile clawd start
|
||||
clawdbot browser --browser-profile clawd open https://example.com
|
||||
clawdbot browser --browser-profile clawd snapshot
|
||||
moltbot browser --browser-profile clawd status
|
||||
moltbot browser --browser-profile clawd start
|
||||
moltbot browser --browser-profile clawd open https://example.com
|
||||
moltbot browser --browser-profile clawd snapshot
|
||||
```
|
||||
|
||||
If you get “Browser disabled”, enable it in config (see below) and restart the
|
||||
@@ -44,14 +44,14 @@ Gateway.
|
||||
## Profiles: `clawd` vs `chrome`
|
||||
|
||||
- `clawd`: managed, isolated browser (no extension required).
|
||||
- `chrome`: extension relay to your **system browser** (requires the Clawdbot
|
||||
- `chrome`: extension relay to your **system browser** (requires the Moltbot
|
||||
extension to be attached to a tab).
|
||||
|
||||
Set `browser.defaultProfile: "clawd"` if you want managed mode by default.
|
||||
|
||||
## Configuration
|
||||
|
||||
Browser settings live in `~/.clawdbot/clawdbot.json`.
|
||||
Browser settings live in `~/.clawdbot/moltbot.json`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@@ -92,13 +92,13 @@ Notes:
|
||||
## Use Brave (or another Chromium-based browser)
|
||||
|
||||
If your **system default** browser is Chromium-based (Chrome/Brave/Edge/etc),
|
||||
Clawdbot uses it automatically. Set `browser.executablePath` to override
|
||||
Moltbot uses it automatically. Set `browser.executablePath` to override
|
||||
auto-detection:
|
||||
|
||||
CLI example:
|
||||
|
||||
```bash
|
||||
clawdbot config set browser.executablePath "/usr/bin/google-chrome"
|
||||
moltbot config set browser.executablePath "/usr/bin/google-chrome"
|
||||
```
|
||||
|
||||
```json5
|
||||
@@ -129,19 +129,19 @@ clawdbot config set browser.executablePath "/usr/bin/google-chrome"
|
||||
- **Local control (default):** the Gateway starts the loopback control service and can launch a local browser.
|
||||
- **Remote control (node host):** run a node host on the machine that has the browser; the Gateway proxies browser actions to it.
|
||||
- **Remote CDP:** set `browser.profiles.<name>.cdpUrl` (or `browser.cdpUrl`) to
|
||||
attach to a remote Chromium-based browser. In this case, Clawdbot will not launch a local browser.
|
||||
attach to a remote Chromium-based browser. In this case, Moltbot will not launch a local browser.
|
||||
|
||||
Remote CDP URLs can include auth:
|
||||
- Query tokens (e.g., `https://provider.example?token=<token>`)
|
||||
- HTTP Basic auth (e.g., `https://user:pass@provider.example`)
|
||||
|
||||
Clawdbot preserves the auth when calling `/json/*` endpoints and when connecting
|
||||
Moltbot preserves the auth when calling `/json/*` endpoints and when connecting
|
||||
to the CDP WebSocket. Prefer environment variables or secrets managers for
|
||||
tokens instead of committing them to config files.
|
||||
|
||||
## Node browser proxy (zero-config default)
|
||||
|
||||
If you run a **node host** on the machine that has your browser, Clawdbot can
|
||||
If you run a **node host** on the machine that has your browser, Moltbot can
|
||||
auto-route browser tool calls to that node without any extra browser config.
|
||||
This is the default path for remote gateways.
|
||||
|
||||
@@ -155,7 +155,7 @@ Notes:
|
||||
## Browserless (hosted remote CDP)
|
||||
|
||||
[Browserless](https://browserless.io) is a hosted Chromium service that exposes
|
||||
CDP endpoints over HTTPS. You can point a Clawdbot browser profile at a
|
||||
CDP endpoints over HTTPS. You can point a Moltbot browser profile at a
|
||||
Browserless region endpoint and authenticate with your API key.
|
||||
|
||||
Example:
|
||||
@@ -193,7 +193,7 @@ Remote CDP tips:
|
||||
|
||||
## Profiles (multi-browser)
|
||||
|
||||
Clawdbot supports multiple named profiles (routing configs). Profiles can be:
|
||||
Moltbot supports multiple named profiles (routing configs). Profiles can be:
|
||||
- **clawd-managed**: a dedicated Chromium-based browser instance with its own user data directory + CDP port
|
||||
- **remote**: an explicit CDP URL (Chromium-based browser running elsewhere)
|
||||
- **extension relay**: your existing Chrome tab(s) via the local relay + Chrome extension
|
||||
@@ -208,14 +208,14 @@ All control endpoints accept `?profile=<name>`; the CLI uses `--browser-profile`
|
||||
|
||||
## Chrome extension relay (use your existing Chrome)
|
||||
|
||||
Clawdbot can also drive **your existing Chrome tabs** (no separate “clawd” Chrome instance) via a local CDP relay + a Chrome extension.
|
||||
Moltbot can also drive **your existing Chrome tabs** (no separate “clawd” Chrome instance) via a local CDP relay + a Chrome extension.
|
||||
|
||||
Full guide: [Chrome extension](/tools/chrome-extension)
|
||||
|
||||
Flow:
|
||||
- The Gateway runs locally (same machine) or a node host runs on the browser machine.
|
||||
- A local **relay server** listens at a loopback `cdpUrl` (default: `http://127.0.0.1:18792`).
|
||||
- You click the **Clawdbot Browser Relay** extension icon on a tab to attach (it does not auto-attach).
|
||||
- You click the **Moltbot Browser Relay** extension icon on a tab to attach (it does not auto-attach).
|
||||
- The agent controls that tab via the normal `browser` tool, by selecting the right profile.
|
||||
|
||||
If the Gateway runs elsewhere, run a node host on the browser machine so the Gateway can proxy browser actions.
|
||||
@@ -232,21 +232,21 @@ Chrome extension relay takeover requires host browser control, so either:
|
||||
1) Load the extension (dev/unpacked):
|
||||
|
||||
```bash
|
||||
clawdbot browser extension install
|
||||
moltbot browser extension install
|
||||
```
|
||||
|
||||
- Chrome → `chrome://extensions` → enable “Developer mode”
|
||||
- “Load unpacked” → select the directory printed by `clawdbot browser extension path`
|
||||
- “Load unpacked” → select the directory printed by `moltbot browser extension path`
|
||||
- Pin the extension, then click it on the tab you want to control (badge shows `ON`).
|
||||
|
||||
2) Use it:
|
||||
- CLI: `clawdbot browser --browser-profile chrome tabs`
|
||||
- CLI: `moltbot browser --browser-profile chrome tabs`
|
||||
- Agent tool: `browser` with `profile="chrome"`
|
||||
|
||||
Optional: if you want a different name or relay port, create your own profile:
|
||||
|
||||
```bash
|
||||
clawdbot browser create-profile \
|
||||
moltbot browser create-profile \
|
||||
--name my-chrome \
|
||||
--driver extension \
|
||||
--cdp-url http://127.0.0.1:18792 \
|
||||
@@ -265,7 +265,7 @@ Notes:
|
||||
|
||||
## Browser selection
|
||||
|
||||
When launching locally, Clawdbot picks the first available:
|
||||
When launching locally, Moltbot picks the first available:
|
||||
1. Chrome
|
||||
2. Brave
|
||||
3. Edge
|
||||
@@ -307,7 +307,7 @@ For the Chrome extension relay driver, ARIA snapshots and screenshots require Pl
|
||||
|
||||
If you see `Playwright is not available in this gateway build`, install the full
|
||||
Playwright package (not `playwright-core`) and restart the gateway, or reinstall
|
||||
Clawdbot with browser support.
|
||||
Moltbot with browser support.
|
||||
|
||||
## How it works (internal)
|
||||
|
||||
@@ -327,76 +327,76 @@ All commands accept `--browser-profile <name>` to target a specific profile.
|
||||
All commands also accept `--json` for machine-readable output (stable payloads).
|
||||
|
||||
Basics:
|
||||
- `clawdbot browser status`
|
||||
- `clawdbot browser start`
|
||||
- `clawdbot browser stop`
|
||||
- `clawdbot browser tabs`
|
||||
- `clawdbot browser tab`
|
||||
- `clawdbot browser tab new`
|
||||
- `clawdbot browser tab select 2`
|
||||
- `clawdbot browser tab close 2`
|
||||
- `clawdbot browser open https://example.com`
|
||||
- `clawdbot browser focus abcd1234`
|
||||
- `clawdbot browser close abcd1234`
|
||||
- `moltbot browser status`
|
||||
- `moltbot browser start`
|
||||
- `moltbot browser stop`
|
||||
- `moltbot browser tabs`
|
||||
- `moltbot browser tab`
|
||||
- `moltbot browser tab new`
|
||||
- `moltbot browser tab select 2`
|
||||
- `moltbot browser tab close 2`
|
||||
- `moltbot browser open https://example.com`
|
||||
- `moltbot browser focus abcd1234`
|
||||
- `moltbot browser close abcd1234`
|
||||
|
||||
Inspection:
|
||||
- `clawdbot browser screenshot`
|
||||
- `clawdbot browser screenshot --full-page`
|
||||
- `clawdbot browser screenshot --ref 12`
|
||||
- `clawdbot browser screenshot --ref e12`
|
||||
- `clawdbot browser snapshot`
|
||||
- `clawdbot browser snapshot --format aria --limit 200`
|
||||
- `clawdbot browser snapshot --interactive --compact --depth 6`
|
||||
- `clawdbot browser snapshot --efficient`
|
||||
- `clawdbot browser snapshot --labels`
|
||||
- `clawdbot browser snapshot --selector "#main" --interactive`
|
||||
- `clawdbot browser snapshot --frame "iframe#main" --interactive`
|
||||
- `clawdbot browser console --level error`
|
||||
- `clawdbot browser errors --clear`
|
||||
- `clawdbot browser requests --filter api --clear`
|
||||
- `clawdbot browser pdf`
|
||||
- `clawdbot browser responsebody "**/api" --max-chars 5000`
|
||||
- `moltbot browser screenshot`
|
||||
- `moltbot browser screenshot --full-page`
|
||||
- `moltbot browser screenshot --ref 12`
|
||||
- `moltbot browser screenshot --ref e12`
|
||||
- `moltbot browser snapshot`
|
||||
- `moltbot browser snapshot --format aria --limit 200`
|
||||
- `moltbot browser snapshot --interactive --compact --depth 6`
|
||||
- `moltbot browser snapshot --efficient`
|
||||
- `moltbot browser snapshot --labels`
|
||||
- `moltbot browser snapshot --selector "#main" --interactive`
|
||||
- `moltbot browser snapshot --frame "iframe#main" --interactive`
|
||||
- `moltbot browser console --level error`
|
||||
- `moltbot browser errors --clear`
|
||||
- `moltbot browser requests --filter api --clear`
|
||||
- `moltbot browser pdf`
|
||||
- `moltbot browser responsebody "**/api" --max-chars 5000`
|
||||
|
||||
Actions:
|
||||
- `clawdbot browser navigate https://example.com`
|
||||
- `clawdbot browser resize 1280 720`
|
||||
- `clawdbot browser click 12 --double`
|
||||
- `clawdbot browser click e12 --double`
|
||||
- `clawdbot browser type 23 "hello" --submit`
|
||||
- `clawdbot browser press Enter`
|
||||
- `clawdbot browser hover 44`
|
||||
- `clawdbot browser scrollintoview e12`
|
||||
- `clawdbot browser drag 10 11`
|
||||
- `clawdbot browser select 9 OptionA OptionB`
|
||||
- `clawdbot browser download e12 /tmp/report.pdf`
|
||||
- `clawdbot browser waitfordownload /tmp/report.pdf`
|
||||
- `clawdbot browser upload /tmp/file.pdf`
|
||||
- `clawdbot browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'`
|
||||
- `clawdbot browser dialog --accept`
|
||||
- `clawdbot browser wait --text "Done"`
|
||||
- `clawdbot browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"`
|
||||
- `clawdbot browser evaluate --fn '(el) => el.textContent' --ref 7`
|
||||
- `clawdbot browser highlight e12`
|
||||
- `clawdbot browser trace start`
|
||||
- `clawdbot browser trace stop`
|
||||
- `moltbot browser navigate https://example.com`
|
||||
- `moltbot browser resize 1280 720`
|
||||
- `moltbot browser click 12 --double`
|
||||
- `moltbot browser click e12 --double`
|
||||
- `moltbot browser type 23 "hello" --submit`
|
||||
- `moltbot browser press Enter`
|
||||
- `moltbot browser hover 44`
|
||||
- `moltbot browser scrollintoview e12`
|
||||
- `moltbot browser drag 10 11`
|
||||
- `moltbot browser select 9 OptionA OptionB`
|
||||
- `moltbot browser download e12 /tmp/report.pdf`
|
||||
- `moltbot browser waitfordownload /tmp/report.pdf`
|
||||
- `moltbot browser upload /tmp/file.pdf`
|
||||
- `moltbot browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'`
|
||||
- `moltbot browser dialog --accept`
|
||||
- `moltbot browser wait --text "Done"`
|
||||
- `moltbot browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"`
|
||||
- `moltbot browser evaluate --fn '(el) => el.textContent' --ref 7`
|
||||
- `moltbot browser highlight e12`
|
||||
- `moltbot browser trace start`
|
||||
- `moltbot browser trace stop`
|
||||
|
||||
State:
|
||||
- `clawdbot browser cookies`
|
||||
- `clawdbot browser cookies set session abc123 --url "https://example.com"`
|
||||
- `clawdbot browser cookies clear`
|
||||
- `clawdbot browser storage local get`
|
||||
- `clawdbot browser storage local set theme dark`
|
||||
- `clawdbot browser storage session clear`
|
||||
- `clawdbot browser set offline on`
|
||||
- `clawdbot browser set headers --json '{"X-Debug":"1"}'`
|
||||
- `clawdbot browser set credentials user pass`
|
||||
- `clawdbot browser set credentials --clear`
|
||||
- `clawdbot browser set geo 37.7749 -122.4194 --origin "https://example.com"`
|
||||
- `clawdbot browser set geo --clear`
|
||||
- `clawdbot browser set media dark`
|
||||
- `clawdbot browser set timezone America/New_York`
|
||||
- `clawdbot browser set locale en-US`
|
||||
- `clawdbot browser set device "iPhone 14"`
|
||||
- `moltbot browser cookies`
|
||||
- `moltbot browser cookies set session abc123 --url "https://example.com"`
|
||||
- `moltbot browser cookies clear`
|
||||
- `moltbot browser storage local get`
|
||||
- `moltbot browser storage local set theme dark`
|
||||
- `moltbot browser storage session clear`
|
||||
- `moltbot browser set offline on`
|
||||
- `moltbot browser set headers --json '{"X-Debug":"1"}'`
|
||||
- `moltbot browser set credentials user pass`
|
||||
- `moltbot browser set credentials --clear`
|
||||
- `moltbot browser set geo 37.7749 -122.4194 --origin "https://example.com"`
|
||||
- `moltbot browser set geo --clear`
|
||||
- `moltbot browser set media dark`
|
||||
- `moltbot browser set timezone America/New_York`
|
||||
- `moltbot browser set locale en-US`
|
||||
- `moltbot browser set device "iPhone 14"`
|
||||
|
||||
Notes:
|
||||
- `upload` and `dialog` are **arming** calls; run them before the click/press
|
||||
@@ -416,16 +416,16 @@ Notes:
|
||||
|
||||
## Snapshots and refs
|
||||
|
||||
Clawdbot supports two “snapshot” styles:
|
||||
Moltbot supports two “snapshot” styles:
|
||||
|
||||
- **AI snapshot (numeric refs)**: `clawdbot browser snapshot` (default; `--format ai`)
|
||||
- **AI snapshot (numeric refs)**: `moltbot browser snapshot` (default; `--format ai`)
|
||||
- Output: a text snapshot that includes numeric refs.
|
||||
- Actions: `clawdbot browser click 12`, `clawdbot browser type 23 "hello"`.
|
||||
- Actions: `moltbot browser click 12`, `moltbot browser type 23 "hello"`.
|
||||
- Internally, the ref is resolved via Playwright’s `aria-ref`.
|
||||
|
||||
- **Role snapshot (role refs like `e12`)**: `clawdbot browser snapshot --interactive` (or `--compact`, `--depth`, `--selector`, `--frame`)
|
||||
- **Role snapshot (role refs like `e12`)**: `moltbot browser snapshot --interactive` (or `--compact`, `--depth`, `--selector`, `--frame`)
|
||||
- Output: a role-based list/tree with `[ref=e12]` (and optional `[nth=1]`).
|
||||
- Actions: `clawdbot browser click e12`, `clawdbot browser highlight e12`.
|
||||
- Actions: `moltbot browser click e12`, `moltbot browser highlight e12`.
|
||||
- Internally, the ref is resolved via `getByRole(...)` (plus `nth()` for duplicates).
|
||||
- Add `--labels` to include a viewport screenshot with overlayed `e12` labels.
|
||||
|
||||
@@ -438,18 +438,18 @@ Ref behavior:
|
||||
You can wait on more than just time/text:
|
||||
|
||||
- Wait for URL (globs supported by Playwright):
|
||||
- `clawdbot browser wait --url "**/dash"`
|
||||
- `moltbot browser wait --url "**/dash"`
|
||||
- Wait for load state:
|
||||
- `clawdbot browser wait --load networkidle`
|
||||
- `moltbot browser wait --load networkidle`
|
||||
- Wait for a JS predicate:
|
||||
- `clawdbot browser wait --fn "window.ready===true"`
|
||||
- `moltbot browser wait --fn "window.ready===true"`
|
||||
- Wait for a selector to become visible:
|
||||
- `clawdbot browser wait "#main"`
|
||||
- `moltbot browser wait "#main"`
|
||||
|
||||
These can be combined:
|
||||
|
||||
```bash
|
||||
clawdbot browser wait "#main" \
|
||||
moltbot browser wait "#main" \
|
||||
--url "**/dash" \
|
||||
--load networkidle \
|
||||
--fn "window.ready===true" \
|
||||
@@ -460,16 +460,16 @@ clawdbot browser wait "#main" \
|
||||
|
||||
When an action fails (e.g. “not visible”, “strict mode violation”, “covered”):
|
||||
|
||||
1. `clawdbot browser snapshot --interactive`
|
||||
1. `moltbot browser snapshot --interactive`
|
||||
2. Use `click <ref>` / `type <ref>` (prefer role refs in interactive mode)
|
||||
3. If it still fails: `clawdbot browser highlight <ref>` to see what Playwright is targeting
|
||||
3. If it still fails: `moltbot browser highlight <ref>` to see what Playwright is targeting
|
||||
4. If the page behaves oddly:
|
||||
- `clawdbot browser errors --clear`
|
||||
- `clawdbot browser requests --filter api --clear`
|
||||
- `moltbot browser errors --clear`
|
||||
- `moltbot browser requests --filter api --clear`
|
||||
5. For deep debugging: record a trace:
|
||||
- `clawdbot browser trace start`
|
||||
- `moltbot browser trace start`
|
||||
- reproduce the issue
|
||||
- `clawdbot browser trace stop` (prints `TRACE:<path>`)
|
||||
- `moltbot browser trace stop` (prints `TRACE:<path>`)
|
||||
|
||||
## JSON output
|
||||
|
||||
@@ -478,10 +478,10 @@ When an action fails (e.g. “not visible”, “strict mode violation”, “co
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
clawdbot browser status --json
|
||||
clawdbot browser snapshot --interactive --json
|
||||
clawdbot browser requests --filter api --json
|
||||
clawdbot browser cookies --json
|
||||
moltbot browser status --json
|
||||
moltbot browser snapshot --interactive --json
|
||||
moltbot browser requests --filter api --json
|
||||
moltbot browser cookies --json
|
||||
```
|
||||
|
||||
Role snapshots in JSON include `refs` plus a small `stats` block (lines/chars/refs/interactive) so tools can reason about payload size and density.
|
||||
@@ -505,7 +505,7 @@ These are useful for “make the site behave like X” workflows:
|
||||
## Security & privacy
|
||||
|
||||
- The clawd browser profile may contain logged-in sessions; treat it as sensitive.
|
||||
- `browser act kind=evaluate` / `clawdbot browser evaluate` and `wait --fn`
|
||||
- `browser act kind=evaluate` / `moltbot browser evaluate` and `wait --fn`
|
||||
execute arbitrary JavaScript in the page context. Prompt injection can steer
|
||||
this. Disable it with `browser.evaluateEnabled=false` if you do not need it.
|
||||
- For logins and anti-bot notes (X/Twitter, etc.), see [Browser login + X/Twitter posting](/tools/browser-login).
|
||||
|
||||
Reference in New Issue
Block a user