This release moves Realbrowser from 0.2.1 to 0.3.0. The release goal is
Claude Code support, faster and lower-token browsing, and a more stable plugin
runtime across macOS, Linux, and Windows.
Added:
- Claude Code plugin support via
.claude-plugin/plugin.json. - Claude Code skill layout under
skills/realbrowser/, with the CLI, wrappers,
skill instructions, and references colocated for plugin discovery. - Portable launch wrappers for macOS/Linux shells, Windows
cmd.exe, and
PowerShell. read tree: compact ARIA accessibility tree via CDP with refs for actions.
Use--interactive/-i,--compact/-c,--depth/-d,--diff/-D,
and--selectorto keep reads bounded.- Task and session tab registries so agents reuse one same-origin tab instead
of creating duplicate tabs after a failed action or across nested sessions. tab doneandtab close --minecleanup paths that only touch agent-owned
tabs.action scroll,read autocomplete, andread overlayfor generic browsing
flows that need scroll containers, transient UI, or overlay diagnostics.- Cross-platform focus capture/restore for explicit stopped-profile launches:
macOS via AppleScript, Linux viaxdotoolwhen present, and Windows via
PowerShell. - Windows process-tree cleanup for anonymous browser sessions.
Changed:
- The runtime version is now
0.3.0everywhere. - Browsing guidance is target-first and site-agnostic: acquire one target, read
compact state, act once, and verify with a diff or page wait. SKILL.mdstays concise and delegates command/reference detail to files under
references/.read tree -i -cis the default interaction reader; broad HTML, full-page
screenshots, and large body dumps are fallback/debug tools.- Large reads, network bodies, HAR files, screenshots, and traces are directed
to--outso local tools can inspect them without spending model context. tab ensure --backgrounduses only background-safe CDP/browser paths. It now
probes live browserContextIds withchrome://version, closes mismatches, and
refuses OS Chrome launch for already-running browser-scoped profiles.- Signed-in profile handling prefers direct
DevToolsActivePortWebSocket
reuse to avoid repeated Chrome approval prompts. - Profile ownership is monotonic once proven, preventing later label/cache
writes from downgrading a verified tab. - Profile routing uses
chrome://versionProfile Path readback when profile
ownership is not otherwise proven. Wrong-profile or unverifiable probe tabs
are closed before the requested URL is loaded. - Session-registry hits are reusable but not automatically considered
mine,
so cleanup commands do not close sibling task tabs. - Health checks report stale/dead CDP sockets accurately so callers can restart
the daemon instead of timing out repeatedly. - Help and workflow examples use neutral hosts and labels such as
example.com,app.example,app, andproject-a.
Fixed:
wait ready --screenshot <path>no longer treats the output path as a CSS
selector.action state --root <ref>resolves ref-based and CSS roots instead of always
falling back to the active root.- ARIA refs are assigned from finalized nodes, preventing ref mismatch when CDP
backend-id pushes partially fail. - ARIA role matching no longer misclassifies roles such as
tabpaneland
tablist. action submit,action click,action hover,action fill, and
action selectargument validation accepts explicit--refwhere supported.- Screenshot sizing env parsing no longer parses the same env var twice.
readTargetProfileDirhandles Chrome's newline-renderedProfile Path
output and paths with spaces.- CDP-created background tabs no longer fall through to OS profile launch after
a strict profile verification failure. - Dead code and duplicated in-page helper code were removed from the CLI.
Compatibility:
agents/openai.yamlremains for Codex compatibility.- The CLI remains a zero-dependency standalone Node script.
Validated:
node --check skills/realbrowser/scripts/realbrowser.mjsskills/realbrowser/scripts/realbrowser --versionskills/realbrowser/scripts/realbrowser self-testgit diff --check- Anonymous background browse smoke against
https://example.com