CHANGELOG

Every release, documented.

From first commit to latest. See the velocity.

10 releases · 304+ commits · Apache-2.0 license · Active development
v0.8.0

Video Recording

Record browser sessions as polished MP4 videos with auto-zoom, cursor tracking, markers, and Screen Studio-quality rendering.

Added

  • 8 new MCP tools: start_recording, stop_recording, add_marker, list_recordings, get_recording, delete_recording, render_recording
  • Motion interpolation: 10fps capture to 30fps output via ffmpeg
  • Physics-based cursor overlay with spring animation, glow, click ripple
  • Auto-zoom: 1.8x zoom into click/fill targets via post-processing
  • Animated typing: character-by-character fill with visible caret
  • Page transition fades on navigation
  • Window chrome: gradient background, rounded corners, padding
  • SRT subtitles + burned-in text overlays via ImageMagick
  • Auto-record mode and configurable retention cleanup

Fixed

  • get_content: added 15-second timeout and textContent fallback for heavy SPAs
View on GitHub →
v0.7.1

Secret Store Fix

Fixes secret storage storing JSON wrapper instead of plain value.

Fixed

  • store_as_secret was storing the entire CDP JSON object instead of the raw token value. Now correctly extracts the plain string via result["value"].
View on GitHub →
v0.7.0

Daemon Hardening: Crash Recovery, Sleep/Wake, Session Health

Sessions auto-recover from Chrome crashes, survive macOS sleep/wake, and expose a health state machine.

Added

  • CDP reconnection with exponential backoff when the WebSocket drops
  • Sessions auto-recover from Chrome crashes: new Chrome process, checkpoint restore, session ID preserved
  • IOKit-based macOS sleep/wake detection: checkpoints saved before sleep, reconnection on wake
  • Session health state machine: Alive, Reconnecting, Recovering, Dead
  • Graceful shutdown: all sessions checkpointed on SIGTERM/SIGINT
  • Persistent daemon logging to ~/.pagerunner/daemon.log

Fixed

  • Session not found in standalone CLI mode: registry reconciliation on each invocation
  • Chrome port timeout: profile lock detection before spawn
  • Dangling symlink check uses symlink_metadata()
  • Pending CDP requests drained on transport replacement
View on GitHub →
v0.6.1

Menu Bar Reliability & Onboarding Fixes

Hardened the macOS menu bar app against transient failures and smoothed onboarding friction from v0.6.0.

Fixed

  • Sessions and tabs preserved on transient poll failures (empty daemon response no longer wipes UI)
  • Optimistic UI: closing sessions/tabs, opening tabs, restoring checkpoints all update instantly
  • Concurrent poll guard prevents duplicate in-flight requests
  • Discovery cache invalidated after attaching Chrome instance
  • install-launchd.sh detects binary via which pagerunner (Homebrew/Cargo/binary)
  • Standalone mode status no longer shows false alarm about daemon
  • 14 new regression tests for all fixed menu bar behaviors
View on GitHub →
v0.6.0

Session Persistence & TCP-Only Chrome

Chrome now runs independently of the daemon via TCP transport and survives restarts. Sessions persist across daemon reboots.

Added

  • TCP-only CDP transport: Chrome survives daemon restarts
  • Session registry persists metadata to DB for auto-reattach
  • Startup reconciliation: auto-reattach to surviving Chrome instances
  • Auto-checkpoint on every close_session
  • Periodic auto-checkpoint background task (default every 5 minutes)
  • Configurable retention: [checkpoints] and [retention] config sections

Changed

  • Chrome spawn fully TCP-based (removed pipe transport)
  • Graceful shutdown leaves Chrome alive for reattach
View on GitHub →
v0.5.0

macOS Menu Bar, Session Checkpoints & Site Intelligence

Native Swift menu bar app, full session checkpoint system, and the Site Intelligence tier with adapters and auth detection.

Added

  • Native macOS menu bar app: profiles, sessions, tabs, daemon control at a glance
  • One-click session management, checkpoint saving, and daemon control
  • Agent profiles with distinct icon and separate section
  • Add Profile flow: auto-discovers unconfigured Chrome profiles
  • save_session_checkpoint / restore_session_checkpoint / list_session_checkpoints / delete_session_checkpoint
  • attach_session: attach to already-running Chrome via remote debugging port
  • close_tab and get_console_log tools
  • Runtime console error surfacing in evaluate responses
View on GitHub →
v0.4.0

Site Intelligence Tier

Persistent per-site knowledge, JS adapters for direct API calls, auth token detection, and selector stability tracking.

Added

  • site_knowledge encrypted ReDB table: persistent per-origin store
  • register_adapter / call_site_api / generate_adapter: JS adapters for direct API calls in browser tabs
  • Auth token detection at network ingestion: Bearer, Basic, X-API-Key, session cookies
  • Selector stability tracking: fragility warnings when failure rate exceeds 30%
  • Seed adapters for GitHub, Linear, Jira, Notion, Gmail
  • Real-time Page.frameNavigated tab URL tracking
View on GitHub →
v0.3.0

Network Logging, Structured Errors & Session Health

CDP network log capture, structured JSON error types for all 27 tools, session death detection, and pagerunner init scaffolding.

Added

  • get_network_log: CDP network request capture via ring buffer
  • pagerunner init --json: project setup with CLAUDE.md/AGENTS.md scaffolding
  • Structured error types and consistent JSON envelopes for all 27 tools
  • Session death detection with get_live() and SessionDead error
  • stability_ms parameter for wait_for
View on GitHub →
v0.2.0

Foundations

Incremental improvements and stabilization between the initial release and structured error handling.

Changed

  • Internal stabilization and refinements building toward v0.3.0
View on GitHub →
v0.1.1

Hallucination Prevention

Semantic metadata on every tool response prevents LLM hallucination when interpreting ambiguous data like unlabeled arrays.

Added

  • Array ambiguity detection: warns when returning unlabeled arrays
  • Condition clarity for wait_for: exposes condition type and whether condition was met
  • Schema information in list_tabs, list_sessions, list_profiles
  • All responses include _tool, _result_type, _hint, _warning metadata fields
  • New ToolResponse struct with build_tool_metadata() function
View on GitHub →
v0.1.0

Initial Release

The first public release. 27 MCP tools, encrypted local state, SSRF protection, PII anonymization, daemon mode, and full Chrome profile support.

Added

  • Chrome browser automation via CDP with your existing user profiles (cookies, saved passwords, history)
  • 27 MCP tools over stdio transport, each with matching CLI subcommand
  • Session, tab, navigation, content, interaction, and state management tools
  • Encrypted local database (ReDB, AES-256-GCM) with macOS Keychain key storage
  • Snapshots: save/restore page cookies + localStorage per origin
  • Persistent namespaced KV store
  • SSRF protection: blocks private IPs, loopback, file://, javascript:// URLs
  • Prompt injection sanitization: strips hidden elements, zero-width Unicode
  • Domain allowlisting and navigation budgets
  • PII anonymization with tokenize and redact modes
  • Daemon mode for multi-window Claude Code
  • macOS launchd service installer
  • Stealth mode: hides automation signals
View on GitHub →

Follow development

Star the repo and watch releases to stay in the loop.

Star on GitHub