# Agent Browser Runtime

> Deploy and verify Agent Browser Runtime locally for agents that need a compose-managed real Chrome runtime. Use when this capability is needed.

- Skill: `tomevault-io/agent-browser-runtime` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/agent-browser-runtime`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/agent-browser-runtime/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/agent-browser-runtime

---


# Agent Browser Runtime Deploy

## Description

Deploy and verify Agent Browser Runtime locally for agents that need a compose-managed real Chrome runtime.

## Requirements

- Docker with Compose v2
- Node.js 20+ on the host for the CLI and syntax checks
- Python 3 for smoke-test JSON validation
- Ports available on loopback: `17890`, `19223`, `16080`

## First Deploy

From the repository root:

```bash
cp .env.example .env
docker compose up --build -d
./scripts/smoke-test.sh
```

To use a local `fingerprint-chromium` binary, set `BRS_FINGERPRINT_CHROMIUM_HOST_PATH` and start with:

```bash
docker compose -f docker-compose.yml -f docker-compose.fingerprint.yml up --build -d
```

Expected endpoints:

- Broker: `http://127.0.0.1:17890`
- CDP proxy: `http://127.0.0.1:19223`
- noVNC: `http://127.0.0.1:16080/vnc.html?autoconnect=true&resize=remote`
- TLS gateway: `http://tls-gateway:8080` inside compose, surfaced through `./cli/brs.js status`

## Verification

```bash
./cli/brs.js status
./cli/brs.js fetch https://example.com --agent deploy-check --task smoke --screenshot --humanize enhanced
./cli/brs.js extract example.extract.js https://example.com --agent deploy-check --task extractor-smoke --screenshot --save-html
```

`status` should report `extensionConnected: true`, `stealth.mode: trusted-real-browser`, `stealth.enabled: false`, and `platformPacing.enabled: true`.

The default browser identity preset is `BRS_RUNTIME_PRESET=trusted-real-browser`; legacy JS/CDP stealth is opt-in with `BRS_STEALTH_MODE=legacy-js`, and browser-binary identity work uses `BRS_STEALTH_MODE=patched-browser`.

## Repair Loop

1. `docker compose ps`
2. `./cli/brs.js status`
3. If broker is up but `extensionConnected` is false, restart with `docker compose up --build -d`.
4. If ports are occupied, change `BROKER_HOST_PORT`, `CDP_HOST_PORT`, or `NOVNC_HOST_PORT` in `.env`.
5. If profile state is corrupt, stop the stack, back up or remove `runtime/profile/`, then start again.

---
> Source: [energypantry/agent-browser-runtime](https://github.com/energypantry/agent-browser-runtime) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-07-04 -->

