peek

peek is a skill for Claude Code from Cubenest/rrweb-stack. It costs 67 tokens per session (2,876 once invoked), scanned A, original, Apache-2.0.

A local browser-session inspector for coding agents. It reads masked recordings of recent Chrome activity and can inspect past page state or, with consent, interact with the open browser.

In plain words
What is it for?
Use it to review browser sessions, find the action that triggered an error, inspect the DOM as it looked then, or turn a manual reproduction into a Playwright test.
Why use it?
It helps investigate errors based on what actually happened during a recent manual reproduction, without sending the recordings to a cloud service.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the peekdev plugin — 1 skill shipped together

Good fit Use it to review browser sessions, find the action that triggered an error, inspect the DOM as it looked then, or turn a manual reproduction into a Playwright test.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/cubenest/rrweb-stack/peek
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Cubenest/rrweb-stack --skill peek
Clone the repo
git clone --depth 1 https://github.com/Cubenest/rrweb-stack

Made for: Claude Code.

Or install peekdev, the plugin that ships this one along with the rest of its 1 skill.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for peek

README.md
[![agentmods](https://agentmods.dev/badge/skills/cubenest/rrweb-stack/peek/github.svg)](https://agentmods.dev/skills/cubenest/rrweb-stack/peek)
Your own site
<a href="https://agentmods.dev/skills/cubenest/rrweb-stack/peek"><img src="https://agentmods.dev/badge/skills/cubenest/rrweb-stack/peek/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for peek

Your own site · 80×15
<a href="https://agentmods.dev/skills/cubenest/rrweb-stack/peek"><img src="https://agentmods.dev/badge/skills/cubenest/rrweb-stack/peek.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 67 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,876 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00067 $0.02876
Opus 5.5 $0.00027 $0.01150
Sonnet 5.5 $0.00013 $0.00575
Haiku 4.5 $0.00007 $0.00288

Measured 2mo ago against content hash 5e935ed320aa, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

peek scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/peek/skills/peek/SKILL.md · 219 lines

How it starts

The opening of the file, as written. The whole thing — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.

peek — local browser-session inspection

Peek is an OSS browser companion for AI coding agents. A Chrome MV3 extension records masked rrweb sessions to a local SQLite store (~/.peek/sessions.db); a stdio MCP server exposes 18 tools that let you inspect those sessions and (with consent) drive the live browser.

Peek itself uploads nothing — no telemetry, no cloud, no account; what your MCP client does with the session data peek returns is up to you. If ~/.peek/sessions.db is absent, peek isn't installed yet — direct the user to npx @peekdev/cli init and stop.

When to invoke

Reach for peek when the user mentions any of these:

  • "what happened in my last session" / "show me my recent sessions"
  • "investigate this error" alongside a manual repro they just performed
  • "what was the user doing when X failed" / "what action triggered X"
  • "what did the DOM look like when Y happened"
  • "turn what I just did into a Playwright test"
  • "click the foo button on this page" (write tools, with consent)
  • "fill in this form on the page open in my browser" (write tools, with consent)

Don't reach for peek when:

  • The user is asking about production / remote / non-local data
  • A test-runner integration is already in scope — use @tracelane/wdio (or the upcoming @tracelane/playwright-reporter) for test-failure capture instead
  • The user wants live page introspection at the current moment with no prior recording — peek is for replaying what was already captured, not a live debugger
  • The question is about static code, not runtime behavior

The 18 tools

Session-forensics read tools (9) — usable at permission Level 1 (Read-only) and above:

Tool When
list_recent_sessions Always the first call. Returns [{ sessionId, origin, startedAt, endedAt, eventCount, ... }] for the last N sessions.
search_sessions Find sessions by text in title/URL/origin plus facets (origin, date range, status, console/network errors); read-only, returns the same rows as list_recent_sessions. Use when the user says "find the session where..." or wants to narrow down by origin or date.
get_session_summary Narrative summary of one session — what the user did, top-level errors, key navigations. Start here after list_recent_sessions picks the target.
get_session_console_errors All console.error / uncaught exceptions in the session, with timestamps.
get_session_network_errors All ≥ 400 responses, with request URL, method, status, and (where deep-capture was enabled) redacted body.
get_user_action_before_error Walks rrweb input events backward from a given timestamp; returns the last meaningful user action (click target, form input, navigation). Use right after spotting a console/network error.
get_dom_snapshot Returns the DOM at a given timestamp as a serialized tree. Use to understand what was on screen when something happened.
query_dom_history Given a CSS selector + sessionId, returns every snapshot where that element changed. Good for "when did this element appear/disappear/change text".
generate_playwright_repro Turns a session (or a slice of one) into a runnable Playwright test stub. Selectors are best-effort from rrweb metadata; surface to the user for review before assuming they'll work.

Read the full file on GitHub · 219 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2mo ago First seen · 219 lines · 67 tokens per session scan A 5e935ed320aa

Subscribe to this mod's changes

peek is a skill published in the GitHub repository Cubenest/rrweb-stack (8 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 67 tokens to every session and 2,876 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

Console Error Hunter

Systematically detect, capture, and categorize browser console errors, warnings, and unhandled exceptions during automated test execution.

PramodDutta/qaskills · 26 tokens

playwright-e2e

Comprehensive end-to-end testing skill using Playwright for web applications, covering page objects, selectors, assertions, waits, fixtures, and test organization.

PramodDutta/qaskills · 36 tokens

e2e-testing-claude-code

Make Claude Code write and maintain end-to-end tests like a senior SDET — Playwright and Cypress flows with stable locators, the Page Object Model, fixtures, reused auth state, network mocking, and flake-free CI. Claude Code E2E testing, done right.

PramodDutta/qaskills · 65 tokens

Browser Agent QA Testing

Teach agents to use AI browser agents for exploratory and smoke QA with step budgets, evidence-based assertions, guardrails, and Playwright conversion.

PramodDutta/qaskills · 33 tokens

real-browser-control

Connect an AI coding agent to the user's REAL Chrome via Real Browser MCP (local MCP server + Chrome extension over localhost WebSocket). Use for live UI verification, already-open tabs, existing cookies/SSO/2FA, staging admin panels, and any task where headless Playwright or a cloud agentic browser would miss the…

ofershap/real-browser-mcp · 158 tokens

browser-automation

Control the user's real logged-in Chrome via Real Browser MCP (extension + local MCP). Use for live UI checks, existing SSO/cookies, and tabs already open. Triggers: real browser, my Chrome, not headless, verify in browser. Prefer over Playwright when session state matters. Prefer Playwright for CI.

ofershap/real-browser-mcp · 70 tokens