Skip to content

Releases: joshuavial/browserplex

v0.5.0 — headless by default + --headed

Choose a tag to compare

@joshuavial joshuavial released this 02 Jun 03:36

Changed

  • Consistent headless default ([#1]): all browser types now default to headless. Previously
    only chromium was headless-by-default while firefox/webkit opened a window. Electron always
    opens a real window regardless.

Added

  • --headed flag (and MCP headed param) on session create / storage load — opt into a
    visible window for any browser type. --headless still works as the explicit headless opt-in.

v0.4.0 — bp CLI + Electron

Choose a tag to compare

@joshuavial joshuavial released this 29 May 22:23

Added

  • bp CLI front-end (new bp bin) over a shared core, backed by a background daemon that
    holds live browser sessions across separate bp invocations (auto-spawned on first use; unix
    socket at ~/.browserplex/daemon.sock). All 28 tools are reachable as ergonomic subcommands
    (bp session …, bp navigate, bp screenshot -o, bp eval, bp fill --field, …).
  • electron session type — drive an Electron app's renderer through the existing action surface
    (session_create type="electron" with executablePath/electronArgs/cwd/env).
  • Daemon lifecycle: idle-exit (BROWSERPLEX_IDLE_MS, 0 disables), stale-socket recovery, and
    bp serve / bp daemon status / bp daemon stop.
  • BROWSERPLEX_DIR env to relocate the runtime dir (daemon socket/pid/log + stored sessions).
  • bp prime — prints an AI-agent primer (daemon model, ref workflow + gotchas, command reference) so
    an agent can drive the CLI correctly without external docs.
  • electron_evaluate — run JS in the Electron MAIN process (electron sessions only), e.g. to stub
    native dialogs.
  • Daemon IPC, CLI e2e, and protocol unit tests.

Changed

  • Minimal runtime footprint: only @modelcontextprotocol/sdk, playwright, and zod are required
    runtime dependencies. sharp (screenshot auto-resize) is now an optional dependency — installed
    by default so auto-resize keeps working, loaded lazily, and skippable via --omit=optional (falls
    back to full-size screenshots). camoufox-js (stealth engine) and electron are dev-only and loaded
    lazily — install camoufox-js to use that engine; drive Electron apps via the target app's own binary.
  • Internal refactor: framework-agnostic core under src/core; the MCP server moved to
    dist/mcp/server.js (the browserplex bin name and npx browserplex usage are unchanged). MCP
    tool surface is byte-identical.

Known limitations

  • The electron type opens a real window (not headless); Linux CI needs a virtual display (xvfb).
  • An abandoned/open client connection suppresses the daemon's idle-exit until it closes.
  • A non-socket file left at the socket path is not auto-recovered (a real dead-daemon leftover is a
    socket and is recovered); stale-socket recovery is best-effort/non-atomic (fine for single-user).