{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "replayio-plugins", "homepage": "https://github.com/replayio/plugins", "items": [ { "name": "codex", "type": "registry:item", "title": "Replay QA Codex Plugin", "description": "Codex Replay QA app for running QA against production, staging, and PR preview URLs with packaged project, status, bug, journey, and exploration scripts.", "files": [ { "path": "codex/replay-qa/.codex-plugin/plugin.json", "type": "registry:file", "target": "~/.codex-plugin/plugin.json" }, { "path": "codex/replay-qa/LICENSE", "type": "registry:file", "target": "~/LICENSE" }, { "path": "codex/replay-qa/assets/replayio.svg", "type": "registry:file", "target": "~/assets/replayio.svg" }, { "path": "codex/replay-qa/skills/replay-qa/SKILL.md", "type": "registry:file", "target": "~/skills/replay-qa/SKILL.md" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/bootstrap.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/bootstrap.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/bug.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/bug.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/bugs.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/bugs.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/context.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/context.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/explorations.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/explorations.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/full-qa.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/full-qa.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/journeys.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/journeys.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/mark-bug.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/mark-bug.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/package.json", "type": "registry:file", "target": "~/skills/replay-qa/scripts/package.json" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/replay-qa-lib.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/replay-qa-lib.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/report-missing-bug.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/report-missing-bug.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/rerun-journeys.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/rerun-journeys.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/reverse-proxy.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/reverse-proxy.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/start-exploration.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/start-exploration.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/status.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/status.js" }, { "path": "codex/replay-qa/skills/replay-qa/scripts/test-runs.js", "type": "registry:file", "target": "~/skills/replay-qa/scripts/test-runs.js" } ] }, { "name": "codex-pro", "type": "registry:item", "title": "Replay.io Pro Codex Plugin", "description": "Codex Replay.io dev tools bundle for the direct Replay MCP server, Replay Chromium recordings, worker/critic proof loops, browser lifecycle screencast capture, ffmpeg-backed MP4 output, side-by-side video stitching, upload hooks, and debugging widgets.", "files": [ { "path": "codex/replayio/.app.json", "type": "registry:file", "target": "~/.app.json" }, { "path": "codex/replayio/.codex-plugin/plugin.json", "type": "registry:file", "target": "~/.codex-plugin/plugin.json" }, { "path": "codex/replayio/.mcp.json", "type": "registry:file", "target": "~/.mcp.json" }, { "path": "codex/replayio/hooks.json", "type": "registry:file", "target": "~/hooks.json" }, { "path": "codex/replayio/LICENSE", "type": "registry:file", "target": "~/LICENSE" }, { "path": "codex/replayio/assets/replayio.svg", "type": "registry:file", "target": "~/assets/replayio.svg" }, { "path": "codex/replayio/agents/openai.yaml", "type": "registry:file", "target": "~/agents/openai.yaml" }, { "path": "codex/replayio/scripts/browser-open.js", "type": "registry:file", "target": "~/scripts/browser-open.js" }, { "path": "codex/replayio/scripts/browser-close.js", "type": "registry:file", "target": "~/scripts/browser-close.js" }, { "path": "codex/replayio/scripts/stitch-videos.js", "type": "registry:file", "target": "~/scripts/stitch-videos.js" }, { "path": "codex/replayio/scripts/close_browsers_and_upload.sh", "type": "registry:file", "target": "~/scripts/close_browsers_and_upload.sh" }, { "path": "codex/replayio/scripts/replayio_browser_lifecycle_hook.sh", "type": "registry:file", "target": "~/scripts/replayio_browser_lifecycle_hook.sh" }, { "path": "codex/replayio/skills/replayio/SKILL.md", "type": "registry:file", "target": "~/skills/replayio/SKILL.md" }, { "path": "codex/replayio/skills/replayio/subagents/replay-worker.md", "type": "registry:file", "target": "~/skills/replayio/subagents/replay-worker.md" }, { "path": "codex/replayio/skills/replayio/subagents/replay-critic.md", "type": "registry:file", "target": "~/skills/replayio/subagents/replay-critic.md" }, { "path": "codex/replayio/skills/replayio/references/cli.md", "type": "registry:file", "target": "~/skills/replayio/references/cli.md" }, { "path": "codex/replayio/skills/replayio/references/workflows.md", "type": "registry:file", "target": "~/skills/replayio/references/workflows.md" }, { "path": "codex/replayio/skills/replayio/scripts/context.js", "type": "registry:file", "target": "~/skills/replayio/scripts/context.js" }, { "path": "codex/replayio/skills/replayio/scripts/package.json", "type": "registry:file", "target": "~/skills/replayio/scripts/package.json" } ] }, { "name": "cursor", "type": "registry:item", "title": "Replay.io Cursor Plugin", "description": "Cursor plugin bundle for Replay browser recording, Replay MCP configuration, hooks, scripts, worker/critic proof-loop prompts, and agent skill guidance.", "files": [ { "path": "cursor/replayio/.cursor-plugin/plugin.json", "type": "registry:file", "target": "~/.cursor-plugin/plugin.json" }, { "path": "cursor/replayio/LICENSE", "type": "registry:file", "target": "~/LICENSE" }, { "path": "cursor/replayio/assets/replayio.svg", "type": "registry:file", "target": "~/assets/replayio.svg" }, { "path": "cursor/replayio/hooks/hooks.json", "type": "registry:file", "target": "~/hooks/hooks.json" }, { "path": "cursor/replayio/mcp.json", "type": "registry:file", "target": "~/mcp.json" }, { "path": "cursor/replayio/scripts/post_bash_upload.sh", "type": "registry:file", "target": "~/scripts/post_bash_upload.sh" }, { "path": "cursor/replayio/scripts/stop_close_and_upload.sh", "type": "registry:file", "target": "~/scripts/stop_close_and_upload.sh" }, { "path": "cursor/replayio/skills/replayio/SKILL.md", "type": "registry:file", "target": "~/skills/replayio/SKILL.md" }, { "path": "cursor/replayio/skills/replayio/subagents/replay-worker.md", "type": "registry:file", "target": "~/skills/replayio/subagents/replay-worker.md" }, { "path": "cursor/replayio/skills/replayio/subagents/replay-critic.md", "type": "registry:file", "target": "~/skills/replayio/subagents/replay-critic.md" }, { "path": "cursor/replayio/skills/replayio/references/cli.md", "type": "registry:file", "target": "~/skills/replayio/references/cli.md" }, { "path": "cursor/replayio/skills/replayio/references/workflows.md", "type": "registry:file", "target": "~/skills/replayio/references/workflows.md" } ] }, { "name": "claude-code", "type": "registry:item", "title": "Replay.io Claude Code Plugin", "description": "Claude Code plugin bundle for Replay QA API scripts, slash commands, and agent skill guidance.", "docs": "After installing, start Claude Code from the project root. The plugin should load automatically from `.claude/skills/replay-qa`. If you want to force-load it for this session, run:\n\n```bash\nclaude --plugin-dir .claude/skills/replay-qa\n```\n\nReplay QA commands are provided by the plugin, including `/replay-qa:run-full-qa`, `/replay-qa:qa-status`, `/replay-qa:qa-bugs`, `/replay-qa:start-new-exploration`, `/replay-qa:rerun-journeys`, and `/replay-qa:report-missing-bug`.", "files": [ { "path": "claude-code/replay-qa/.claude-plugin/plugin.json", "type": "registry:file", "target": "~/.claude/skills/replay-qa/.claude-plugin/plugin.json" }, { "path": "claude-code/replay-qa/LICENSE", "type": "registry:file", "target": "~/.claude/skills/replay-qa/LICENSE" }, { "path": "claude-code/replay-qa/assets/replayio.svg", "type": "registry:file", "target": "~/.claude/skills/replay-qa/assets/replayio.svg" }, { "path": "claude-code/replay-qa/commands/qa-bugs.md", "type": "registry:file", "target": "~/.claude/skills/replay-qa/commands/qa-bugs.md" }, { "path": "claude-code/replay-qa/commands/qa-status.md", "type": "registry:file", "target": "~/.claude/skills/replay-qa/commands/qa-status.md" }, { "path": "claude-code/replay-qa/commands/report-missing-bug.md", "type": "registry:file", "target": "~/.claude/skills/replay-qa/commands/report-missing-bug.md" }, { "path": "claude-code/replay-qa/commands/rerun-journeys.md", "type": "registry:file", "target": "~/.claude/skills/replay-qa/commands/rerun-journeys.md" }, { "path": "claude-code/replay-qa/commands/run-full-qa.md", "type": "registry:file", "target": "~/.claude/skills/replay-qa/commands/run-full-qa.md" }, { "path": "claude-code/replay-qa/commands/start-new-exploration.md", "type": "registry:file", "target": "~/.claude/skills/replay-qa/commands/start-new-exploration.md" }, { "path": "claude-code/replay-qa/skills/replay-qa/SKILL.md", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/SKILL.md" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/bootstrap.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/bootstrap.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/bug.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/bug.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/bugs.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/bugs.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/context.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/context.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/explorations.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/explorations.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/full-qa.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/full-qa.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/journeys.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/journeys.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/mark-bug.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/mark-bug.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/package.json", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/package.json" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/replay-qa-lib.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/replay-qa-lib.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/report-missing-bug.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/report-missing-bug.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/rerun-journeys.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/rerun-journeys.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/reverse-proxy.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/reverse-proxy.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/start-exploration.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/start-exploration.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/status.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/status.js" }, { "path": "claude-code/replay-qa/skills/replay-qa/scripts/test-runs.js", "type": "registry:file", "target": "~/.claude/skills/replay-qa/skills/replay-qa/scripts/test-runs.js" } ] }, { "name": "claude-pro", "type": "registry:item", "title": "Replay.io Pro Claude Code Plugin", "description": "Claude Code Replay.io Pro bundle for Replay Chromium recordings, verified MP4 evidence, Replay MCP debugging, lifecycle hooks, and worker/critic proof-loop subagents.", "docs": "After installing, start Claude Code from the project root. The Pro skill should load from `.claude/skills/replayio`, and worker/critic subagents are installed at `.claude/agents/replay-worker.md` and `.claude/agents/replay-critic.md`. If you want to force-load it for this session, run:\n\n```bash\nclaude --plugin-dir .claude/skills/replayio\n```\n\nUse `/replayio:record-replay` for direct browser evidence or `/replayio:replay-proof-loop` for the worker/critic proof loop when commands are available.", "files": [ { "path": "claude-code/replayio/.claude-plugin/plugin.json", "type": "registry:file", "target": "~/.claude/skills/replayio/.claude-plugin/plugin.json" }, { "path": "claude-code/replayio/.mcp.json", "type": "registry:file", "target": "~/.claude/skills/replayio/.mcp.json" }, { "path": "claude-code/replayio/hooks/hooks.json", "type": "registry:file", "target": "~/.claude/skills/replayio/hooks/hooks.json" }, { "path": "claude-code/replayio/LICENSE", "type": "registry:file", "target": "~/.claude/skills/replayio/LICENSE" }, { "path": "claude-code/replayio/assets/replayio.svg", "type": "registry:file", "target": "~/.claude/skills/replayio/assets/replayio.svg" }, { "path": "claude-code/replayio/commands/record-replay.md", "type": "registry:file", "target": "~/.claude/skills/replayio/commands/record-replay.md" }, { "path": "claude-code/replayio/commands/replay-proof-loop.md", "type": "registry:file", "target": "~/.claude/skills/replayio/commands/replay-proof-loop.md" }, { "path": "claude-code/replayio/agents/replay-worker.md", "type": "registry:file", "target": "~/.claude/skills/replayio/agents/replay-worker.md" }, { "path": "claude-code/replayio/agents/replay-critic.md", "type": "registry:file", "target": "~/.claude/skills/replayio/agents/replay-critic.md" }, { "path": "claude-code/replayio/agents/replay-worker.md", "type": "registry:file", "target": "~/.claude/agents/replay-worker.md" }, { "path": "claude-code/replayio/agents/replay-critic.md", "type": "registry:file", "target": "~/.claude/agents/replay-critic.md" }, { "path": "claude-code/replayio/scripts/browser-open.js", "type": "registry:file", "target": "~/.claude/skills/replayio/scripts/browser-open.js" }, { "path": "claude-code/replayio/scripts/browser-close.js", "type": "registry:file", "target": "~/.claude/skills/replayio/scripts/browser-close.js" }, { "path": "claude-code/replayio/scripts/stitch-videos.js", "type": "registry:file", "target": "~/.claude/skills/replayio/scripts/stitch-videos.js" }, { "path": "claude-code/replayio/scripts/close_browsers_and_upload.sh", "type": "registry:file", "target": "~/.claude/skills/replayio/scripts/close_browsers_and_upload.sh" }, { "path": "claude-code/replayio/scripts/replayio_browser_lifecycle_hook.sh", "type": "registry:file", "target": "~/.claude/skills/replayio/scripts/replayio_browser_lifecycle_hook.sh" }, { "path": "claude-code/replayio/skills/replayio/SKILL.md", "type": "registry:file", "target": "~/.claude/skills/replayio/skills/replayio/SKILL.md" }, { "path": "claude-code/replayio/skills/replayio/references/cli.md", "type": "registry:file", "target": "~/.claude/skills/replayio/skills/replayio/references/cli.md" }, { "path": "claude-code/replayio/skills/replayio/references/workflows.md", "type": "registry:file", "target": "~/.claude/skills/replayio/skills/replayio/references/workflows.md" }, { "path": "claude-code/replayio/skills/replayio/scripts/context.js", "type": "registry:file", "target": "~/.claude/skills/replayio/skills/replayio/scripts/context.js" }, { "path": "claude-code/replayio/skills/replayio/scripts/package.json", "type": "registry:file", "target": "~/.claude/skills/replayio/skills/replayio/scripts/package.json" } ] }, { "name": "opencode", "type": "registry:item", "title": "Replay.io OpenCode Plugin", "description": "OpenCode plugin bundle with Replay MCP config, Replay workflow guidance, OpenCode hooks, and worker/critic proof-loop subagents.", "files": [ { "path": "opencode/replayio/.opencode/plugins/replayio.js", "type": "registry:file", "target": "~/.opencode/plugins/replayio.js" }, { "path": "opencode/replayio/AGENTS.md", "type": "registry:file", "target": "~/AGENTS.md" }, { "path": "opencode/replayio/opencode.json", "type": "registry:file", "target": "~/opencode.json" }, { "path": "opencode/replayio/.opencode/agent/replay-worker.md", "type": "registry:file", "target": "~/.opencode/agent/replay-worker.md" }, { "path": "opencode/replayio/.opencode/agent/replay-critic.md", "type": "registry:file", "target": "~/.opencode/agent/replay-critic.md" } ] }, { "name": "obvious-ai", "type": "registry:item", "title": "Replay.io Obvious Skills", "description": "Skills-only Obvious bundle for direct Replay QA API usage, Replay CLI token fallback, project reuse, and Obvious iframe artifacts.", "docs": "After installing, Obvious should load `replay-qa-api` from `.obvious/skills`. Use it for direct Replay QA REST API calls, Replay CLI token fallback through `~/.replay/profile/auth.json`, `.replay/config.json` project reuse, and Obvious iframe artifacts for Replay QA projects.", "files": [ { "path": "obvious-ai/.obvious/skills/replay-qa-api/SKILL.md", "type": "registry:file", "target": "~/.obvious/skills/replay-qa-api/SKILL.md" } ] } ] }