v0.4.0 — Browser + MCP
Minor release. Three packages bumped in lockstep and published to npm with provenance:
bazilion@0.4.0— CLI + bundled daemon@bazilion/client@0.4.0— hermetic HTTP client@bazilion/api-types@0.4.0— zero-dep wire types
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-first —browser_snapshotreturns 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 withBROWSER_ALLOW_PRIVATE_NETWORKfor local dev). Configure on/config(Browser Automation) or via env, then runpnpm exec playwright install chromiumonce. - 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 withbazilion mcp add|list|show|rm|enable|disable|testor the/config/mcppage. - 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, orbazilion 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_filetool — 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
/configprovider 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 serveUpgrading 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.