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 →