An agentic browser driver for AI — few tools, full control, real stealth, god-tier token efficiency. Stealth browser driver with five tools for page interaction, observation, state management, batch execution, and screenshots.
Bladebro defines 5 tools with detailed input schemas and descriptions. The 'act' tool is exceptionally comprehensive with 20+ action types and sophisticated parameter handling (ref, text, label, role, nth, fields array for forms). Descriptions are verbose but informative. However, output schemas are not documented, LLMs cannot predict what fields to expect from responses. The 'state' tool description is truncated mid-sentence ('set-co'). Error handling guidance is mentioned in 'act' but not formalized across tools. Tool composition is strong (act, see, state, run, vision are well-separated), but missing output documentation and incomplete descriptions lower the score.
Do something on the page. Returns verdict + delta. navigate returns refs + content preview — usually enough to act without a separate see call. ADDRESSING (priority): text="Sign in" (fastest, no see needed) > ref="e5" (from a prior response, self-heals) > label="Email" (for click/type/fill/hover) > x,y. Add role= or nth= if ambiguous. ACTIONS: navigate(url), click, type(label+text), fill(fields+submit, multi-field forms in ONE call), select, press, scroll, hover, wait(condition), eval(js), download(url= fetches via JS, no page navigation), collect(url= navigates first, infinite-scroll auto-extract), pdf, batch(steps, continues through navigation, stops on error only), back/forward/reload. url= on any action (except download/state ops) navigates first — fill/type/click on a fresh page in one call. fill REQUIRES fields=[{ref|label, text|option, check}] array — NOT ref+text at top level. submit is the button ref or text. Submit gets JS click fallback if mouse click fails. batch: use text/label addressing in steps (not ref) — refs go stale after navigation. Auto-settles after each navigation (500ms + recapture). Use fill for forms (not individual type calls). Use batch for multi-step sequences. Use run instead of batch for branching or state ops that change tabs. slim=true skips the delta. Errors include page state for recovery.
Execute batch JavaScript on the page. Runs like the DevTools console: statements allowed, the LAST expression's value is returned. Variables are scoped per call (no leakage or collisions between calls).
Observe WITHOUT acting. Three read modes: mode=content: page text as clean markdown. For READING articles, docs. Use budget=N to cap output, scope=eN for one element's subtree. mode=outline: title + heading hierarchy only. Cheapest "what's on this page" check. mode=model (default): interactive elements with refs. Use when you need to ACT. For structured list data (products, posts, search results, listings): use extract=auto FIRST — extracts all items with fields (title, price, url, rating, score) in ONE call. Cheaper than clicking into each item. eval (act eval) is for custom JS extraction when extract=auto does not cover your use case. Runs like the DevTools console: statements allowed, the LAST expression's value is returned (e.g. 'var x=5; x+7' -> 12), IIFEs work. Variables are scoped per call (no leakage or collisions between calls). Other params: filter (zoom by role), find (search by text → refs), extract=json+template (custom), extract=links|forms, logs=console|network. Big data (>12KB) goes to a file path with inline preview. Truncation: model output over budget ends with '…(N more: X link, Y button)' — roles sorted by count desc, then alphabetically (deterministic).
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Tools 'state', 'run', 'vision' lack input schemas entirely.
'state' tool description is truncated mid-sentence ('set-co'). Incomplete documentation prevents LLM understanding of cookies/storage/session management.
'run' and 'vision' tools have minimal descriptions (<50 chars). LLMs cannot determine when to use 'run' vs 'act eval', or what 'vision' returns (screenshot format, dimensions, etc.).
No error handling guidance formalized across tools. 'act' mentions errors include page state, but no recovery patterns (retryable vs fatal, actionable error messages) documented.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Browser state: tabs, cookies, sessions, storage, resource blocking. LOGIN PERSISTENCE: save <name> after login → load <name> in a later session (restores cookies+storage, then navigate to site). TABS: tabs (list), open-tab <url> (returns tab ID — save it for switch-tab), switch-tab <id>, close-tab <id>. COOKIES/STORAGE: cookies, set-co
Take a screenshot of the current page or a specific element.
Parameter descriptions in 'act' are terse (e.g., 'Element ref id (e.g. 'e5'). Self-heals.', 35 chars). Baseline is 72 chars. Missing guidance on when to use ref vs text vs label.