Supervision & Compliance
Watch a fleet of agent browsers, take over any slot, and verify a tamper-evident audit trail.
Supervision & Compliance
Running many agent browsers in parallel raises two operator questions: what is each agent doing right now? and can I prove what happened afterwards? Shade answers both without feeding every page tree back through a model.
Fleet console
The Fleet Console (shade-browser-mcp dashboard, fronted by the hosted product
at your account URL) shows a live, tenant-filtered view of your slots:
- one card per claimed slot with its URL/title, liveness, and a structured event stream (navigation, clicks, form edits, downloads, wallet prompts, leak checks, takeover state);
- a usage rollup (
/api/usage): slot-hours and per-tool call counts; - strict tenant isolation: each customer key sees only its own slots and
events, and no slot's CDP
auth_tokenis ever exposed to the browser — only a booleantoken_present.
The console reconstructs activity from the structured event log, so watching a busy fleet does not cost a full accessibility snapshot per page.
Human takeover
When an agent needs a human in the loop — a CAPTCHA, a login, a judgment call —
the console can take over a slot: it focuses that slot's live browser so a
person drives the same session the agent is using, and records takeover /
resume markers in the audit trail. Takeover is a shared-live-view handoff, not
a hard automation lock: coordinate so the agent pauses while a human drives.
Tamper-evident audit trail
Every browser action is appended to a per-engagement JSONL log with sensitive values redacted (bearer tokens, cookies, auth headers never persist). Each entry is hash-chained:
entry_hash = sha256(prev_hash + canonical-content-of-this-entry)
Editing, deleting, reordering, or truncating any earlier entry changes every
following entry_hash, so silent tampering is detectable. Verify a log:
shade-browser-mcp audit-verify /path/to/browser-events.jsonl
# {"ok": true, "broken_at": null} -> exit 0
# {"ok": false, "broken_at": 42} -> exit 1 (first broken entry id)
This supports record-keeping obligations such as the EU AI Act's Article 12 logging expectations for high-risk AI systems.
Honest scope: this is tamper-evident, not tamper-proof. A party who can
rewrite the entire log tail can recompute valid hashes. For end-to-end
assurance, periodically export the latest entry_hash to the customer or a
write-once store and check it back against the live log — any divergence proves
the log was altered after that anchor.