42 lines
2.3 KiB
Markdown
42 lines
2.3 KiB
Markdown
---
|
||
title: Browser Automation
|
||
type: concept
|
||
status: active
|
||
created: 2026-07-22
|
||
updated: 2026-08-02
|
||
verified_on: 2026-08-02
|
||
confidence: high
|
||
tags: [concept, browser, camofox, steel]
|
||
sources: [live-probe, session-history]
|
||
---
|
||
|
||
# Browser Automation
|
||
|
||
## Idea
|
||
Giving an agent a real, controllable web browser — as opposed to just an HTTP-fetch tool — so it can handle JS-heavy pages, logins, and visual verification.
|
||
|
||
## How this install implements it
|
||
- **Engine:** Camoufox (Firefox-based, fingerprint-resistant) — see [[comparisons/camoufox-vs-chrome]] for why this over stock Chrome.
|
||
- **Connection:** REST API at `localhost:9093` (profile `anthony`) + CDP WebSocket at `localhost:9377`
|
||
- **Display:** headed, not truly headless — runs under `Xvfb :99` (1600×1200×24) with `fluxbox` as window manager, viewable live over VNC (see [[systems/headless-server]]).
|
||
- **Config:** `cloud_provider: camofox`, `camera_provider: camofox` in `~/.hermes/config.yaml`
|
||
- **Auth:** Persistent profile `anthony` — authenticated into Uber Eats, LinkedIn, etc. No cookie files needed.
|
||
|
||
## Why headed-under-Xvfb instead of headless
|
||
Running a real X display (rather than a headless browser flag) lets a human watch/intervene via VNC and tends to reduce automation-detection fingerprints compared to headless-mode flags — consistent with using Camoufox in the first place. The tradeoff, flagged in [[systems/headless-server]], is that the VNC exposing this display currently has no password.
|
||
|
||
## The Steel Experiment (Jul 29–30)
|
||
Steel Browser (Chromium 140 on CT201) was briefly the primary backend. It offered full CDP access and a built-in session viewer, but was reverted after:
|
||
- CDP URL normalization issues (Docker internal networking required a plugin patch)
|
||
- Empty-stream errors from the `opencode-go/deepseek-v4-flash` provider path
|
||
- DeepSeek 0731's stricter tool name validation affected all providers
|
||
|
||
**Lesson:** A local browser backend (same host, no network hop) has fewer failure modes than a remote Docker container. The `browser-steel` plugin is still present but disabled. See [[comparisons/steel-vs-camoufox]] and [[decisions/rollback-steel-to-camofox]].
|
||
|
||
## Related
|
||
- [[systems/browser-backend]]
|
||
- [[comparisons/steel-vs-camoufox]]
|
||
- [[comparisons/camoufox-vs-chrome]]
|
||
- [[systems/headless-server]]
|
||
- [[concepts/tool-calling]]
|