By strml
Automatically record browser demo videos of pull requests using agent-browser
npx claudepluginhub strml/cc-pr-videos --plugin cc-pr-videosMedia generation capabilities for terminal recordings (VHS), browser recordings (Playwright), GIF processing, and media composition
Run E2E browser tests using natural language test definitions powered by Claude Code SDK and agent-browser with video recording
Quality assurance - E2E testing, PR review, browser automation
Self-serve QA for your PR — browser-based verification of ticket requirements before you push.
Qiushi Skill: methodology skills for AI agents guided by seeking truth from facts, with Claude Code, Cursor, OpenClaw, Codex, OpenCode, and Hermes guidance.
Share bugs, ideas, or general feedback.
A Claude Code plugin that automatically records browser demo videos of your pull requests.
When you run gh pr create, a background process analyzes your PR, opens the running dev server in a headed browser, interacts with the new feature, and saves a .webm recording to .tmp/pr-videos/ in your project.
gh pr create succeeds, Claude writes the PR URL to a sentinel file.claude/demo.json has auth config.webm video to .tmp/pr-videos/pr-<num>-<repo>-<topic>.webmAdd the marketplace, then install the plugin (project-scope recommended):
claude plugin marketplace add https://github.com/STRML/cc-pr-videos
claude plugin install cc-pr-videos --scope project
Then run the init command to configure your project:
/pr-videos:init
This creates .claude/demo.json (auth, base URL, hints) and adds the sentinel file instruction to your project's CLAUDE.md.
gh CLI authenticated.claude/demo.json in your project root:
{
"baseUrl": "http://localhost:3000",
"auth": {
"loginUrl": "/login",
"username": "test@example.com",
"password": "testpass"
},
"browserState": ".claude/demo-browser-state.json",
"outputDir": ".tmp/pr-videos",
"hints": "The new feature is at /settings/billing"
}
| Field | Description |
|---|---|
baseUrl | Dev server URL (overrides auto-detection) |
auth | Login credentials. Omit entirely if no auth needed. |
auth.loginUrl | Path to login page |
auth.username | Login username/email |
auth.password | Login password |
browserState | Path to persist browser cookies between recordings |
outputDir | Where to save recordings (default: .tmp/pr-videos). Videos are named pr-{num}-{repo}-{topic}.webm. |
hints | Free-text guidance for the recorder |
Each recording appends a summary to .claude/demo-feedback.log. Subsequent recordings read this log to avoid repeating mistakes — the recorder gets better over time.
.claude-plugin/
plugin.json # Plugin manifest
marketplace.json # Marketplace metadata
hooks/
hooks.json # Stop hook definition
scripts/
stop-trigger.sh # Reads sentinel, launches recorder
recorder-run.sh # Gathers PR context, runs nested Claude + agent-browser
commands/
init.md # /pr-videos:init command
MIT
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claim