What's New

Changelog

Track all updates, improvements, and fixes to Owl Browser.
16 releases • 86 changes

New Feature(4)
  • render_mode on browser_create_context, one of 'pixel' (default, behaviour unchanged), 'agent', or 'both'. In agent mode the page is serialized into OwlMark, a compact hierarchical text view of what is actually rendered, with a handle table of every interactive element. On a Hacker News front page this is 753 tokens with 240 clickable handles, versus roughly 1,365 tokens for a screenshot the model still has to decode and aim at.
  • browser_observe returns the OwlMark render, the handle table, page metadata, and a token estimate, and blocks until the page is ready so there is no separate wait step. browser_expand re-serializes one collapsed region or template at higher detail, and browser_read_node returns the full uncompacted text of a single node.
  • Click and type by the handle token (for example b3, l5, x2) returned by browser_observe, with truthful action results so the agent knows whether a click actually navigated, changed the DOM, or did nothing. No coordinate guessing and no misfire retries.
  • detail='outline' on browser_observe returns a headings-only map of long reference pages, for cheap 'find the section' navigation before reading the full content.
Improvement(2)
  • The MCP server now advertises a curated, profile-scoped toolset via the new OWL_MCP_PROFILE setting (agent, automation, webdev, or full). The default agent profile exposes only the short observe-and-act loop plus screenshot, so smaller models are not flooded with a long tool list, and contexts created over MCP default to agent rendering.
  • Token reductions across content and documentation pages from the agent renderer's compaction: boilerplate folding, template dedup, code-block compaction, and link-river collapse keep page renders well under screenshot cost.
Bug Fix(2)
  • Encrypted profile export (browser_download_profile) now round-trips. The encrypted blob is self-contained, so restoring it via browser_create_context or browser_load_profile (string path or multipart upload) rebuilds the fingerprint and session cookies on the same install. Previously the encrypted artifact could be stored but not reloaded.
  • browser_create_context responses no longer include a duplicate context_id key.