> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Webbläsare (OpenClaw-hanterad)

# Webbläsare (openclaw-hanterad)

OpenClaw kan köra en **dedikerad Chrome/Brave/Edge/Chromium-profil** som agenten kontrollerar.
Den är isolerad från din personliga webbläsare och hanteras genom en liten lokal
kontrolltjänst inne i Gateway (loopback endast).

Nybörjarvy:

* Tänk på den som en **separat, agent‑endast webbläsare**.
* Profilen `openclaw` rör **inte** din personliga webbläsarprofil.
* Agenten kan **öppna flikar, läsa sidor, klicka och skriva** i en säker zon.
* Standardprofilen `chrome` använder **systemets standard‑Chromium‑webbläsare** via
  tilläggsreläet; växla till `openclaw` för den isolerade hanterade webbläsaren.

## Vad du får

* En separat webbläsarprofil med namnet **openclaw** (orange accent som standard).
* Deterministisk flikkontroll (lista/öppna/fokusera/stäng).
* Agentåtgärder (klicka/skriva/dra/välja), ögonblicksbilder, skärmdumpar, PDF:er.
* Valfritt stöd för flera profiler (`openclaw`, `work`, `remote`, ...).

Denna webbläsare är **inte** din dagliga förare. Det är en säker, isolerad yta för
agentautomatisering och verifiering.

## Snabbstart

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
```

Om du får ”Browser disabled”, aktivera den i konfigen (se nedan) och starta om
Gateway.

## Profiler: `openclaw` vs `chrome`

* `openclaw`: hanterad, isolerad webbläsare (inga tillägg krävs).
* `chrome`: tilläggsrelä till din **systemwebbläsare** (kräver att OpenClaw‑
  tillägget är kopplat till en flik).

Ställ in `browser.defaultProfile: "openclaw"` om du vill ha hanterat läge som standard.

## Konfiguration

Webbläsarinställningar finns i `~/.openclaw/openclaw.json`.

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  browser: {
    enabled: true, // default: true
    // cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override
    remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms)
    remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms)
    defaultProfile: "chrome",
    color: "#FF4500",
    headless: false,
    noSandbox: false,
    attachOnly: false,
    executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
    profiles: {
      openclaw: { cdpPort: 18800, color: "#FF4500" },
      work: { cdpPort: 18801, color: "#0066CC" },
      remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },
    },
  },
}
```

Noteringar:

* Webbläsarens kontrolltjänst binder till loopback på en port som härrör från `gateway.port`
  (standard: `18791`, som är gateway + 2). Reläet använder nästa port (`18792`).
* Om du åsidosätter Gateway‑porten (`gateway.port` eller `OPENCLAW_GATEWAY_PORT`),
  flyttas de härledda webbläsarportarna för att stanna i samma ”familj”.
* `cdpUrl` använder som standard reläporten när den inte är satt.
* `remoteCdpTimeoutMs` gäller kontroller av fjärr‑CDP‑åtkomlighet (icke‑loopback).
* `remoteCdpHandshakeTimeoutMs` gäller kontroller av fjärr‑CDP WebSocket‑åtkomlighet.
* `attachOnly: true` betyder ”starta aldrig en lokal webbläsare; anslut endast om den redan körs”.
* `color` + per‑profil `color` färgar webbläsar‑UI:t så att du ser vilken profil som är aktiv.
* Standardprofilen är `chrome` (förlängningsrelä). Använd `defaultProfil: "openclaw"` för den hanterade webbläsaren.
* Automatisk detekteringsordning: systemets standardwebbläsare om Chromium‑baserad; annars Chrome → Brave → Edge → Chromium → Chrome Canary.
* Lokala `openclaw`‑profiler tilldelar automatiskt `cdpPort`/`cdpUrl` — sätt dem endast för fjärr‑CDP.

## Använd Brave (eller annan Chromium‑baserad webbläsare)

Om din **systemstandard** webbläsare är Chromium-baserad (Chrome/Brave/Edge/etc), använder
OpenClaw den automatiskt. Set `browser.executablePath` to override
auto-detection:

CLI‑exempel:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw config set browser.executablePath "/usr/bin/google-chrome"
```

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
// macOS
{
  browser: {
    executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
  }
}

// Windows
{
  browser: {
    executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
  }
}

// Linux
{
  browser: {
    executablePath: "/usr/bin/brave-browser"
  }
}
```

## Lokal vs fjärrkontroll

* **Lokal kontroll (standard):** Gateway startar loopback‑kontrolltjänsten och kan starta en lokal webbläsare.
* **Fjärrkontroll (node‑värd):** kör en node‑värd på maskinen som har webbläsaren; Gateway proxyar webbläsaråtgärder till den.
* **Fjärr-CDP:** sätt `browser.profiles.<name>.cdpUrl` (eller `browser.cdpUrl`) till
  bifoga till en fjärrbaserad Chromium-baserad webbläsare. I detta fall kommer OpenClaw inte att starta en lokal webbläsare.

Fjärr‑CDP‑URL:er kan inkludera autentisering:

* Frågepolletter (t.ex., `https://provider.exempel?token=<token>`)
* HTTP Basic auth (t.ex., `https://user:pass@provider.exempel`)

OpenClaw bevarar auth när du ringer `/json/*` slutpunkter och när du ansluter
till CDP WebSocket. Föredrar miljövariabler eller hemligheter chefer för
tokens istället för att överlåta dem till konfigurationsfiler.

## Node‑webbläsarproxy (nollkonfig‑standard)

Om du kör en **nod värd** på maskinen som har din webbläsare, OpenClaw kan
automatiskt dirigera webbläsarverktygets samtal till den noden utan någon extra webbläsarkonfiguration.
Detta är standardsökvägen för fjärr-gateways.

Noteringar:

* Node‑värden exponerar sin lokala webbläsarkontrollserver via ett **proxykommando**.
* Profiler kommer från nodens egen `browser.profiles`‑konfig (samma som lokalt).
* Inaktivera om du inte vill ha det:
  * På noden: `nodeHost.browserProxy.enabled=false`
  * På gatewayen: `gateway.nodes.browser.mode="off"`

## Browserless (hostad fjärr‑CDP)

[Browserless](https://browserless.io) är en hostad krom tjänst som exponerar
CDP-slutpunkter över HTTPS. Du kan peka en OpenClaw webbläsarprofil på en
Webbläsarlös regionslutpunkt och autentisera med din API-nyckel.

Exempel:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  browser: {
    enabled: true,
    defaultProfile: "browserless",
    remoteCdpTimeoutMs: 2000,
    remoteCdpHandshakeTimeoutMs: 4000,
    profiles: {
      browserless: {
        cdpUrl: "https://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",
        color: "#00AA00",
      },
    },
  },
}
```

Noteringar:

* Ersätt `<BROWSERLESS_API_KEY>` med din riktiga Browserless‑token.
* Välj regionsendpoint som matchar ditt Browserless‑konto (se deras dokumentation).

## Säkerhet

Grundidéer:

* Webbläsarkontroll är endast loopback; åtkomst går via Gatewayns autentisering eller node‑parning.
* Håll Gateway och eventuella node‑värdar på ett privat nätverk (Tailscale); undvik publik exponering.
* Behandla fjärr‑CDP‑URL:er/tokens som hemligheter; föredra miljövariabler eller en hemlighetshanterare.
* Behandla fjärr‑CDP‑URL:er/tokens som hemligheter; föredra miljövariabler eller en hemlighetshanterare.

Tips för fjärr‑CDP:

* Föredra HTTPS‑endpoints och kortlivade tokens där det är möjligt.
* Undvik att bädda in långlivade tokens direkt i konfigfiler.

## Profiler (flera webbläsare)

OpenClaw stöder flera namngivna profiler (routingkonfigurationer). Profiler kan vara:

* **openclaw‑managed**: en dedikerad Chromium‑baserad webbläsarinstans med egen användardatakatalog + CDP‑port
* **remote**: en explicit CDP‑URL (Chromium‑baserad webbläsare som körs någon annanstans)
* **extension relay**: dina befintliga Chrome‑flikar via det lokala reläet + Chrome‑tillägg

Standarder:

* Profilen `openclaw` skapas automatiskt om den saknas.
* Profilen `chrome` är inbyggd för Chrome‑tilläggsreläet (pekar på `http://127.0.0.1:18792` som standard).
* Lokala CDP‑portar allokeras från **18800–18899** som standard.
* Att ta bort en profil flyttar dess lokala datakatalog till Papperskorgen.

Alla kontrollendpoints accepterar `?profile=<name>`; CLI använder `--browser-profile`.

## Chrome‑tilläggsrelä (använd din befintliga Chrome)

OpenClaw kan också styra **dina befintliga Chrome‑flikar** (ingen separat ”openclaw”‑Chrome‑instans) via ett lokalt CDP‑relä + ett Chrome‑tillägg.

Fullständig guide: [Chrome‑tillägg](/tools/chrome-extension)

Flöde:

* Gateway kör lokalt (samma maskin) eller en node‑värd körs på webbläsarmaskinen.
* En lokal **reläserver** lyssnar på en loopback `cdpUrl` (standard: `http://127.0.0.1:18792`).
* Du klickar på tilläggets ikon **OpenClaw Browser Relay** på en flik för att ansluta (det ansluter inte automatiskt).
* Agenten styr den fliken via det vanliga verktyget `browser` genom att välja rätt profil.

Om Gateway kör någon annanstans, kör en node‑värd på webbläsarmaskinen så att Gateway kan proxyera webbläsaråtgärder.

### Sandboxade sessioner

Om agenten sessionen är sandlåda, "webbläsare" verktyget kan standard till "target="sandbox"\` (sandlåda webbläsare).
Chrome extension relay takeover kräver värd webbläsarkontroll, så antingen:

* kör sessionen utan sandbox, eller
* sätt `agents.defaults.sandbox.browser.allowHostControl: true` och använd `target="host"` när du anropar verktyget.

### Konfigurering

1. Ladda tillägget (dev/uppackat):

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw browser extension install
```

* Chrome → `chrome://extensions` → aktivera ”Developer mode”
* ”Load unpacked” → välj katalogen som skrivs ut av `openclaw browser extension path`
* Fäst tillägget och klicka sedan på det på fliken du vill styra (märket visar `ON`).

2. Använd det:

* CLI: `openclaw browser --browser-profile chrome tabs`
* Agentverktyg: `browser` med `profile="chrome"`

Valfritt: om du vill ha ett annat namn eller reläport, skapa din egen profil:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw browser create-profile \
  --name my-chrome \
  --driver extension \
  --cdp-url http://127.0.0.1:18792 \
  --color "#00AA00"
```

Noteringar:

* Detta läge förlitar sig på Playwright‑on‑CDP för de flesta operationer (skärmdumpar/ögonblicksbilder/åtgärder).
* Koppla från genom att klicka på tilläggsikonen igen.

## Isoleringsgarantier

* **Dedikerad användardatakatalog**: rör aldrig din personliga webbläsarprofil.
* **Dedikerade portar**: undviker `9222` för att förhindra kollisioner med utvecklingsarbetsflöden.
* **Deterministisk flikkontroll**: rikta flikar via `targetId`, inte ”senaste fliken”.

## Val av webbläsare

Vid lokal start väljer OpenClaw den första tillgängliga:

1. Chrome
2. Brave
3. Edge
4. Chromium
5. Chrome Canary

Du kan åsidosätta med `browser.executablePath`.

Plattformar:

* macOS: kontrollerar `/Applications` och `~/Applications`.
* Linux: letar efter `google-chrome`, `brave`, `microsoft-edge`, `chromium`, etc.
* Windows: kontrollerar vanliga installationsplatser.

## Kontroll‑API (valfritt)

Endast för lokala integrationer exponerar Gateway ett litet loopback‑HTTP‑API:

* Status/start/stop: `GET /`, `POST /start`, `POST /stop`
* Flikar: `GET /tabs`, `POST /tabs/open`, `POST /tabs/focus`, `DELETE /tabs/:targetId`
* Ögonblicksbild/skärmdump: `GET /snapshot`, `POST /screenshot`
* Åtgärder: `POST /navigate`, `POST /act`
* Hooks: `POST /hooks/file-chooser`, `POST /hooks/dialog`
* Nedladdningar: `POST /download`, `POST /wait/download`
* Felsökning: `GET /console`, `POST /pdf`
* Felsökning: `GET /errors`, `GET /requests`, `POST /trace/start`, `POST /trace/stop`, `POST /highlight`
* Nätverk: `POST /response/body`
* Tillstånd: `GET /cookies`, `POST /cookies/set`, `POST /cookies/clear`
* Tillstånd: `GET /storage/:kind`, `POST /storage/:kind/set`, `POST /storage/:kind/clear`
* Inställningar: `POST /set/offline`, `POST /set/headers`, `POST /set/credentials`, `POST /set/geolocation`, `POST /set/media`, `POST /set/timezone`, `POST /set/locale`, `POST /set/device`

Alla endpoints accepterar `?profile=<name>`.

Om gateway-autentisering är konfigurerad kräver webbläsarens HTTP-rutter också autentisering:

* `Authorization: Bearer <gateway token>`
* `x-openclaw-password: <gateway password>` eller HTTP Basic-autentisering med det lösenordet

### Playwright‑krav

Vissa funktioner (navigera/agera/AI-ögonblicksbilder/rollbilder, elementskärmdumpar, PDF) kräver
Playwright. Om Playwright inte är installerat, dessa slutpunkter returnerar en tydlig 501
fel. ARIA ögonblicksbilder och grundläggande skärmbilder fungerar fortfarande för openclaw-managed Chrome.
För Chrome-tilläggsrelä drivrutinen kräver ARIA-ögonblicksbilder och skärmbilder Playwright.

Om du ser `Playwright is not available in this gateway build`, installera hela
Playwright‑paketet (inte `playwright-core`) och starta om gatewayen, eller installera om
OpenClaw med webbläsarstöd.

#### Docker‑installation av Playwright

Om din Gateway körs i Docker, undvik `npx playwright` (npm åsidosätta konflikter).
Använd den medföljande CLI istället:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
docker compose run --rm openclaw-cli \
  node /app/node_modules/playwright-core/cli.js install chromium
```

För att hålla fast vid webbläsarhämtningar, sätt `PLAYWRIGHT_BROWSERS_PATH` (till exempel,
`/home/node/.cache/ms-playwright`) och se till att `/home/node` är ihållande via
`OPENCLAW_HOME_VOLUME` eller ett bindfäste. Se [Docker](/install/docker).

## Hur det fungerar (internt)

Denna design håller agenten på ett stabilt, deterministiskt gränssnitt samtidigt som
du kan byta lokala/fjärrwebbläsare och profiler.

* En liten **kontrollserver** tar emot HTTP‑förfrågningar.
* Den ansluter till Chromium‑baserade webbläsare (Chrome/Brave/Edge/Chromium) via **CDP**.
* För avancerade åtgärder (klicka/skriva/ögonblicksbild/PDF) använder den **Playwright** ovanpå
  CDP.
* När Playwright saknas är endast icke‑Playwright‑operationer tillgängliga.

Denna design håller agenten på ett stabilt, deterministiskt gränssnitt samtidigt som
du kan byta lokala/fjärrwebbläsare och profiler.

## CLI‑snabbreferens

Alla kommandon accepterar `--browser-profile <name>` för att rikta en specifik profil.
Alla kommandon accepterar också `--json` för maskinläsbar utdata (stabila nyttolaster).

Inspektion:

* `openclaw browser status`
* `openclaw browser start`
* `openclaw browser stop`
* `openclaw browser tabs`
* `openclaw browser tab`
* `openclaw browser tab new`
* `openclaw browser tab select 2`
* `openclaw browser tab close 2`
* `openclaw browser open https://example.com`
* `openclaw browser focus abcd1234`
* `openclaw browser close abcd1234`

Åtgärder:

* `openclaw browser screenshot`
* `openclaw browser screenshot --full-page`
* `openclaw browser screenshot --ref 12`
* `openclaw browser screenshot --ref e12`
* `openclaw browser snapshot`
* `openclaw browser snapshot --format aria --limit 200`
* `openclaw browser snapshot --interactive --compact --depth 6`
* `openclaw browser snapshot --efficient`
* `openclaw browser snapshot --labels`
* `openclaw browser snapshot --selector "#main" --interactive`
* `openclaw browser snapshot --frame "iframe#main" --interactive`
* `openclaw browser console --level error`
* `openclaw browser errors --clear`
* `openclaw browser requests --filter api --clear`
* `openclaw browser pdf`
* `openclaw browser responsebody "**/api" --max-chars 5000`

Tillstånd:

* `openclaw browser navigate https://example.com`
* `openclaw browser resize 1280 720`
* `openclaw browser click 12 --double`
* `openclaw browser click e12 --double`
* `openclaw browser type 23 "hello" --submit`
* `openclaw browser press Enter`
* `openclaw browser hover 44`
* `openclaw browser scrollintoview e12`
* `openclaw browser drag 10 11`
* `openclaw browser select 9 OptionA OptionB`
* `openclaw browser download e12 report.pdf`
* `openclaw browser waitfordownload report.pdf`
* `openclaw browser upload /tmp/openclaw/uploads/file.pdf`
* `openclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'`
* `openclaw browser dialog --accept`
* `openclaw browser wait --text "Done"`
* `openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"`
* `openclaw browser evaluate --fn '(el) => el.textContent' --ref 7`
* `openclaw browser highlight e12`
* `openclaw browser trace start`
* `openclaw browser trace stop`

Noteringar:

* `openclaw browser cookies`
* `openclaw browser cookies set session abc123 --url "https://example.com"`
* `openclaw browser cookies clear`
* `openclaw browser storage local get`
* `openclaw browser storage local set theme dark`
* `openclaw browser storage session clear`
* `openclaw browser set offline on`
* `openclaw browser set headers --json '{"X-Debug":"1"}'`
* `openclaw browser set credentials user pass`
* `openclaw browser set credentials --clear`
* `openclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"`
* `openclaw browser set geo --clear`
* `openclaw browser set media dark`
* `openclaw browser set timezone America/New_York`
* `openclaw browser set locale en-US`
* `openclaw browser set device "iPhone 14"`

Noteringar:

* `upload` och `dialog` är **armerings**‑anrop; kör dem före klick/tryck
  som utlöser väljaren/dialogen.
* Nedladdnings- och trace-utdatavägar är begränsade till OpenClaw temp-rötter:
  * traces: `/tmp/openclaw` (reserv: `${os.tmpdir()}/openclaw`)
  * downloads: `/tmp/openclaw/downloads` (reserv: `${os.tmpdir()}/openclaw/downloads`)
* Uppladdningsvägar är begränsade till en temp-rot för uppladdningar i OpenClaw:
  * uploads: `/tmp/openclaw/uploads` (reserv: `${os.tmpdir()}/openclaw/uploads`)
* `upload` kan också sätta filinmatningar direkt via `--input-ref` eller `--element`.
* `snapshot`:
  * `--format ai` (standard när Playwright är installerat): returnerar en AI‑ögonblicksbild med numeriska refar (`aria-ref="<n>"`).
  * `--format aria`: returnerar tillgänglighetsträdet (inga refar; endast inspektion).
  * `--efficient` (eller `--mode efficient`): kompakt roll‑ögonblicksbild‑preset (interaktiv + kompakt + djup + lägre maxChars).
  * Konfig‑standard (endast verktyg/CLI): sätt `browser.snapshotDefaults.mode: "efficient"` för att använda effektiva ögonblicksbilder när anroparen inte anger ett läge (se [Gateway‑konfiguration](/gateway/configuration#browser-openclaw-managed-browser)).
  * Alternativ för roll‑ögonblicksbild (`--interactive`, `--compact`, `--depth`, `--selector`) tvingar en rollbaserad ögonblicksbild med refar som `ref=e12`.
  * `--frame "<iframe selector>"` begränsar roll‑ögonblicksbilder till en iframe (paras med rollrefar som `e12`).
  * `--interactive` ger en platt, lättplockad lista över interaktiva element (bäst för att driva åtgärder).
  * `--labels` lägger till en skärmdump av endast viewporten med överlagrade refetiketter (skriver ut `MEDIA:<path>`).
* `click`/`type`/etc kräver en `ref` från `snapshot` (antingen numerisk `12` eller rollref `e12`).
  CSS-selektorer stöds avsiktligt inte för åtgärder.

## Ögonblicksbilder och refar

Ref‑beteende:

* Refar är **inte stabila över navigeringar**; om något misslyckas, kör `snapshot` igen och använd en ny ref.
  * Utdata: en textögonblicksbild som inkluderar numeriska refar.
  * Åtgärder: `openclaw browser click 12`, `openclaw browser type 23 "hello"`.
  * Internt löses refen via Playwrights `aria-ref`.

* Om roll‑ögonblicksbilden togs med `--frame` är rollrefar begränsade till den iframen tills nästa roll‑ögonblicksbild.
  * Utdata: en rollbaserad lista/träd med `[ref=e12]` (och valfri `[nth=1]`).
  * Åtgärder: `openclaw browser click e12`, `openclaw browser highlight e12`.
  * Internt löses refen via `getByRole(...)` (plus `nth()` för dubbletter).
  * Lägg till `--labels` för att inkludera en viewport‑skärmdump med överlagrade `e12`‑etiketter.

Ref‑beteende:

* Refar är **inte stabila över navigeringar**; om något misslyckas, kör `snapshot` igen och använd en ny ref.
* Om roll‑ögonblicksbilden togs med `--frame` är rollrefar begränsade till den iframen tills nästa roll‑ögonblicksbild.

## Vänt‑power‑ups

Dessa kan kombineras:

* Vänta på URL (globs stöds av Playwright):
  * `openclaw browser wait --url "**/dash"`
* Vänta på laddningsläge:
  * `openclaw browser wait --load networkidle`
* Vänta på ett JS‑predikat:
  * `openclaw browser wait --fn "window.ready===true"`
* Vänta på att en selektor blir synlig:
  * `openclaw browser wait "#main"`

Dessa kan kombineras:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw browser wait "#main" \
  --url "**/dash" \
  --load networkidle \
  --fn "window.ready===true" \
  --timeout-ms 15000
```

## Felsökningsarbetsflöden

När en åtgärd misslyckas (t.ex. “inte synligt”, “strikt läge kränkning”, “täckt”):

1. `openclaw browser snapshot --interactive`
2. Använd `click <ref>` / `type <ref>` (föredra rollrefar i interaktivt läge)
3. Om det fortfarande misslyckas: `openclaw browser highlight <ref>` för att se vad Playwright riktar in sig på
4. Om sidan beter sig konstigt:
   * `openclaw browser errors --clear`
   * `openclaw browser requests --filter api --clear`
5. För djup felsökning: spela in en trace:
   * `openclaw browser trace start`
   * reproducera problemet
   * `openclaw browser trace stop` (skriver ut `TRACE:<path>`)

## JSON‑utdata

`--json` är för skriptning och strukturerade verktyg.

Roll‑ögonblicksbilder i JSON inkluderar `refs` plus ett litet `stats`‑block (rader/tecken/refar/interaktivt) så att verktyg kan resonera om payload‑storlek och täthet.

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw browser status --json
openclaw browser snapshot --interactive --json
openclaw browser requests --filter api --json
openclaw browser cookies --json
```

Dessa är användbara för arbetsflöden av typen ”få webbplatsen att bete sig som X”:

## Tillstånds‑ och miljöreglage

Dessa är användbara för arbetsflöden av typen ”få webbplatsen att bete sig som X”:

* Cookies: `cookies`, `cookies set`, `cookies clear`
* Lagring: `storage local|session get|set|clear`
* Offline: `set offline on|off`
* Håll Gateway/node‑värd privat (loopback eller endast tailnet).
* Fjärr‑CDP‑endpoints är kraftfulla; tunnla och skydda dem.
* Geolokalisering: `set geo <lat> <lon> --origin "https://example.com"` (eller `--clear`)
* Media: `set media dark|light|no-preference|none`
* Tidszon / språk: `set timezone ...`, `set locale ...`
* Enhet / viewport:
  * `set device "iPhone 14"` (Playwright‑enhetsförinställningar)
  * `set viewport 1280 720`

## Felsökning

* Webbläsarprofilen openclaw kan innehålla inloggade sessioner; behandla den som känslig.
* `browser act kind=evaluate` / `openclaw browser evaluate` och `wait --fn`
  kör godtyckligt JavaScript i sidsammanhanget. Snabb injektion kan styra
  detta. Inaktivera det med `browser.evaluateEnabled=false` om du inte behöver det.
* För inloggningar och anti‑bot‑noteringar (X/Twitter, etc.), se [Webbläsarinloggning + X/Twitter‑postning](/tools/browser-login).
* Håll Gateway/node‑värd privat (loopback eller endast tailnet).
* Fjärr‑CDP‑endpoints är kraftfulla; tunnla och skydda dem.

## Agentverktyg + hur kontroll fungerar

Agenten får **ett verktyg** för webbläsarautomation:

## Agentverktyg + hur kontroll fungerar

Hur det mappas:

* `browser snapshot` returnerar ett stabilt UI‑träd (AI eller ARIA).

Detta håller agenten deterministisk och undviker sköra selektorer.

* `browser snapshot` returnerar ett stabilt UI‑träd (AI eller ARIA).
* `browser act` använder ögonblicksbildens `ref`‑ID:n för att klicka/skriva/dra/välja.
* `browser screenshot` fångar pixlar (hel sida eller element).
* `browser` accepterar:
  * `profile` för att välja en namngiven webbläsarprofil (openclaw, chrome eller fjärr‑CDP).
  * `target` (`sandbox` | `host` | `node`) för att välja var webbläsaren finns.
  * I sandboxade sessioner kräver `target: "host"` `agents.defaults.sandbox.browser.allowHostControl=true`.
  * Om `target` utelämnas: sandboxade sessioner använder som standard `sandbox`, icke‑sandboxade sessioner använder som standard `host`.
  * Om en webbläsarkapabel nod är ansluten kan verktyget autorouta till den om du inte fäster `target="host"` eller `target="node"`.

Detta håller agenten deterministisk och undviker sköra selektorer.
