Skip to content

v0.4.0 — Browser + MCP

Choose a tag to compare

@rullopat rullopat released this 29 May 12:19
3d82c7e

Minor release. Three packages bumped in lockstep and published to npm with provenance:

What's new

This release gives agents eyes, hands, and reach: a real browser, Model Context Protocol servers, and files flowing both directions across every client.

  • Browser automation (Playwright). Agents get a browser_* tool suite (navigate, snapshot, click, type, hover, select, fill_form, press_key, go_back, tabs, take_screenshot, console, network) backed by a persistent per-agent Chromium session that survives across turns. Perception is accessibility-tree-firstbrowser_snapshot returns an aria tree with [ref=eN] element refs, so no vision model is needed; screenshots are a secondary multimodal escape hatch rendered inline in chat. A network-layer SSRF guard blocks loopback/private targets (override with BROWSER_ALLOW_PRIVATE_NETWORK for local dev). Configure on /config (Browser Automation) or via env, then run pnpm exec playwright install chromium once.
  • MCP client. Connect the daemon to Model Context Protocol servers over stdio (local subprocess), Streamable-HTTP, or SSE (with optional bearer auth). Each enabled server's tools are discovered and injected into every agent turn, namespaced mcp__<server>__<tool>. Manage with bazilion mcp add|list|show|rm|enable|disable|test or the /config/mcp page.
  • Bidirectional attachments across all clients. Send any file in and receive any file out, on web, Telegram, and CLI. Inbound files travel as one generic attachment; the daemon classifies each at turn assembly — image/* goes to the model as vision, everything else is stored under the agent's home and referenced by path so the agent opens it with its tools. Attach via the web composer (📎 / paste / drag-and-drop), a Telegram photo/document, or bazilion agent chat <id> --image <path> / --file <path>.
  • Outbound deliverables. Tool-produced images (browser screenshots, MCP image results) surface as first-class deliverables — a standalone image block in the web chat and a photo on Telegram. Agents send arbitrary files back with the new deliver_file tool — a download link on web, a document on Telegram, saved to disk on the CLI. 25 MB per file.

Both the browser and MCP run as long-lived daemon-side resources (idle-reaped, closed on shutdown) reached from the stateless per-turn worker over IPC. Tool results are now multimodal (text + images). Audio and video are intentionally deferred — pi and every wired provider are text+image only today.

Under the hood

  • pi 0.75.4 → 0.77.0, which ships an expanded built-in LLM model catalog. The /config provider catalog is data-driven off pi, so new models surface automatically; the example hints were refreshed to mirror the 0.77 catalog (claude-opus-4-8, gpt-5.5, gemini-3-pro-preview, …).
  • In-range dependency upgrades across the tree, and CI/release GitHub Actions bumped to their Node-24 majors.

Install

npx bazilion serve

Upgrading from 0.3.0

No breaking changes. New DB migrations (MCP servers table, etc.) run automatically on bazilion serve. Browser automation and MCP are entirely opt-in — nothing changes until you enable them under /config. For browser tools, run pnpm exec playwright install chromium once.