Core Concepts

Recordings

Record agent browser sessions for debugging, review, and documentation. Recordings capture tab activity with timestamps, and can be rendered into annotated markdown with screenshots.

Recording tools

ToolDescription
start_recordingStart recording a tab. Captures page activity with timestamps.
stop_recordingStop the active recording on a session.
add_markerAdd a timestamped marker to the active recording (e.g., "clicked submit").
render_recordingRender an annotated version with marker overlays and screenshots.
list_recordingsList saved recordings.
get_recordingGet details about a specific recording.
delete_recordingDelete a recording and its files.

Basic workflow

recording session
// 1. Start recording
start_recording(session_id, target_id)
// 2. Do work (navigate, click, fill, etc.)
navigate(session_id, target_id, "https://app.com/login")
fill(session_id, target_id, "#email", "user@example.com")
click(session_id, target_id, "#submit")
// 3. Add markers at key moments
add_marker(session_id, label="Login submitted")
// 4. Stop recording
stop_recording(session_id)
// 5. Render for review
render_recording(recording_id)
→ annotated markdown with screenshots

Use cases

Debugging failed workflows

When an agent fails partway through a multi-step workflow, the recording shows exactly what happened — what pages it visited, what it clicked, and where things went wrong. Much faster than reading through logs.

Creating documentation

Record a workflow, render it, and you get step-by-step documentation with screenshots. Useful for onboarding guides, SOPs, or bug reproduction steps.

Audit trail

Keep a record of what the agent did during sensitive operations. Recordings provide timestamped evidence of every action taken.

Agent improvement

Review recordings to identify patterns where the agent makes mistakes, then update your CLAUDE.md or adapters to prevent recurrence.

Managing recordings

manage recordings
// List all recordings
list_recordings()
// Get details about a specific recording
get_recording(recording_id="rec_abc123")
// Delete a recording
delete_recording(recording_id="rec_abc123")

CLI access

Recordings are also accessible from the command line:

terminal
pagerunner list-recordings
pagerunner get-recording <recording-id>
pagerunner render-recording <recording-id>
pagerunner delete-recording <recording-id>

Next: Daemon Mode →