peek

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 CodeCodex

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.

agentmods
npx agentmods add skills/cubenest/rrweb-stack/peek
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, Codex.

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. Scan, not verified.
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 $0.00067 $0.02876
Opus 5 $0.00034 $0.01438
Sonnet 5 $0.00013 $0.00575
Haiku 4.5 $0.00007 $0.00288

Measured 2d ago against content hash 5e935ed320aa, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, 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 2d 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. 2d 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 (7 stars, last pushed 1mo 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. 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

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

browseweave

Use when installing, repairing, verifying, diagnosing, or safely operating the BrowseWeave systemd-based Linux developer preview with Chrome, Zen, or Firefox and a local MCP client. Do not use for store publication or bypassing site protections.

xenitV1/browseweave · 52 tokens

annotation-feedback-wait

通过 Annotation Overlay(浏览器标注扩展 + MCP server)收集用户视觉反馈并等待其提交时使用。核心是挂后台 watcher 轮询标注数量 —— MCP 是拉取模型,server 不能推送给 agent,不主动轮询就感知不到用户提交。Use when the agent needs the user to annotate a page in the browser and wait for the feedback submission to arrive.

cc10143/annotation-overlay-mcp · 90 tokens

annotation-browser-launch

拉起 agent 拥有的标注浏览器(Playwright chromium-956323 + Annotation Overlay 扩展 + 专用持久 profile + 固定 CDP 端口),供用户在页面上标注反馈。Use when the agent needs to show the annotation toolbar on a page for the user to annotate, in the flow where the agent owns the browser (方案 D 主流程).

cc10143/annotation-overlay-mcp · 86 tokens

thinkbrowse-cli

Control browsers via the ThinkBrowse CLI (the thinkbrowse / thinkrun command) — navigate pages, interact with elements, extract content, take screenshots. Use ONLY when the user explicitly names the thinkbrowse or thinkrun CLI, or asks to drive the browser from shell scripts / terminal commands. For general browse…

dundas/thinkrun · 98 tokens