{"_id":"@boe-ventures/agent-replay","_rev":"4-de9623b42ff8f727975ef2618a9c6bb7","name":"@boe-ventures/agent-replay","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@boe-ventures/agent-replay","version":"0.1.0","keywords":["session-recording","rrweb","ai-agent","developer-tools","debugging","console-log","network-capture","react","nextjs","local-development","devtools"],"author":{"url":"https://github.com/Boe-Ventures","name":"Boe Ventures","email":"hello@boe.ventures"},"license":"MIT","_id":"@boe-ventures/agent-replay@0.1.0","maintainers":[{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"}],"homepage":"https://boe-ventures.github.io/agent-replay","bugs":{"url":"https://github.com/Boe-Ventures/agent-replay/issues"},"bin":{"agent-replay":"dist/cli/index.js"},"dist":{"shasum":"20c1baedf2f56577d5f6e51a00a7aac3776a1954","tarball":"https://registry.npmjs.org/@boe-ventures/agent-replay/-/agent-replay-0.1.0.tgz","fileCount":68,"integrity":"sha512-YcAvQ25lFZqrI2kYFbEXxSW42zvSR9cIuqqxsJ+pu8RAdKPP0nyJOnurFW7Gkd2Z2plr9YNYVtNIfuEgtNj78Q==","signatures":[{"sig":"MEYCIQD8ZvCGrdbc6vmEsxa13CfopVJ6QhqdWM6ivb1G+89TMAIhAM5L+rO014P4vPPVO3HmI6ZZ66yWY6soYcBlgZEeOhSe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156253},"main":"./dist/index.js","type":"module","_from":"file:boe-ventures-agent-replay-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","default":"./dist/cli/index.js"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.js","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js"}},"scripts":{"dev":"tsc --watch","test":"playwright test","build":"tsc","test:ui":"playwright test --ui","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"},"_resolved":"/private/var/folders/v1/_f6902ds3l9960xg40k1mnp40000gn/T/5db730ef94eb28b80d4a05611ac16a39/boe-ventures-agent-replay-0.1.0.tgz","_integrity":"sha512-YcAvQ25lFZqrI2kYFbEXxSW42zvSR9cIuqqxsJ+pu8RAdKPP0nyJOnurFW7Gkd2Z2plr9YNYVtNIfuEgtNj78Q==","repository":{"url":"git+https://github.com/Boe-Ventures/agent-replay.git","type":"git"},"_npmVersion":"11.6.2","description":"Local session recording for AI coding agents — captures DOM mutations, console logs, network requests, and errors from your dev server into structured JSONL files that agents can read directly","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^3.23.0","rrweb":"^2.0.0-alpha.4","@rrweb/types":"^2.0.0-alpha.20","@rrweb/rrweb-plugin-console-record":"^2.0.0-alpha.20"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@playwright/test":"^1.59.1"},"peerDependencies":{"next":">=14.0.0","react":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-replay_0.1.0_1777155845142_0.2609594475766679","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@boe-ventures/agent-replay","version":"0.1.1","keywords":["session-recording","rrweb","ai-agent","developer-tools","debugging","console-log","network-capture","react","nextjs","local-development","devtools"],"author":{"url":"https://github.com/Boe-Ventures","name":"Boe Ventures","email":"hello@boe.ventures"},"license":"MIT","_id":"@boe-ventures/agent-replay@0.1.1","maintainers":[{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"}],"homepage":"https://boe-ventures.github.io/agent-replay","bugs":{"url":"https://github.com/Boe-Ventures/agent-replay/issues"},"bin":{"agent-replay":"dist/cli/index.js"},"dist":{"shasum":"0fa924a64244a10dbc7dd84ce3c676db16941aa9","tarball":"https://registry.npmjs.org/@boe-ventures/agent-replay/-/agent-replay-0.1.1.tgz","fileCount":68,"integrity":"sha512-yKxYhhAoiaGZmJjsdI0aZSXbAlqHv3QUrgyzghPin92D77ukQi+EK+uheJOltOma6DtKauSrX8ssyt7rZu9KbQ==","signatures":[{"sig":"MEUCIQD4VVtzVrvw0PiQ5VJUfSDkRiWDiSmm9dy8y7YvvTW89QIgbfSKmkM5eTZlRixVA3BKDZFRBV2eapGvQX2K7vKOyZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157399},"main":"./dist/index.js","type":"module","_from":"file:boe-ventures-agent-replay-0.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","default":"./dist/cli/index.js"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.js","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js"}},"scripts":{"dev":"tsc --watch","test":"playwright test","build":"tsc","test:ui":"playwright test --ui","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"},"_resolved":"/private/var/folders/v1/_f6902ds3l9960xg40k1mnp40000gn/T/3087795bcc5e119a3a69876eb318b630/boe-ventures-agent-replay-0.1.1.tgz","_integrity":"sha512-yKxYhhAoiaGZmJjsdI0aZSXbAlqHv3QUrgyzghPin92D77ukQi+EK+uheJOltOma6DtKauSrX8ssyt7rZu9KbQ==","repository":{"url":"git+https://github.com/Boe-Ventures/agent-replay.git","type":"git"},"_npmVersion":"11.6.2","description":"Local session recording for AI coding agents — captures DOM mutations, console logs, network requests, and errors from your dev server into structured JSONL files that agents can read directly","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^3.23.0","rrweb":"^2.0.0-alpha.4","@rrweb/types":"^2.0.0-alpha.20","@rrweb/rrweb-plugin-console-record":"^2.0.0-alpha.20"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@playwright/test":"^1.59.1"},"peerDependencies":{"next":">=14.0.0","react":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-replay_0.1.1_1777159074097_0.6697297109327798","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@boe-ventures/agent-replay","version":"0.2.0","keywords":["session-recording","rrweb","ai-agent","developer-tools","debugging","console-log","network-capture","react","nextjs","local-development","devtools"],"author":{"url":"https://github.com/Boe-Ventures","name":"Boe Ventures","email":"hello@boe.ventures"},"license":"MIT","_id":"@boe-ventures/agent-replay@0.2.0","maintainers":[{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"}],"homepage":"https://boe-ventures.github.io/agent-replay","bugs":{"url":"https://github.com/Boe-Ventures/agent-replay/issues"},"bin":{"agent-replay":"dist/cli/index.js"},"dist":{"shasum":"68a1b9527179f43f8bbb197fb3c5df14999a2560","tarball":"https://registry.npmjs.org/@boe-ventures/agent-replay/-/agent-replay-0.2.0.tgz","fileCount":68,"integrity":"sha512-vEvPl7mLdd74HRMtI6oL5ArGHfy3eQYNxJvdTOTRbWO2lkLaR1oM1YbV8uMf3B/7/kn6K14lDY+XpaG+atLeUg==","signatures":[{"sig":"MEUCIQCeRQPc4FCToXr2XQFTuMVEhoV9+wjjEpL8QdCBcNDFWwIge+SY12GEmNMMa8YGXlCV5zrZjB2sJVVM6AEyjNxg1VU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174990},"main":"./dist/index.js","type":"module","_from":"file:boe-ventures-agent-replay-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","default":"./dist/cli/index.js"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.js","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js"}},"scripts":{"dev":"tsc --watch","test":"playwright test","build":"tsc","test:ui":"playwright test --ui","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"},"_resolved":"/private/var/folders/v1/_f6902ds3l9960xg40k1mnp40000gn/T/6efc555581565a043cb721a24604f183/boe-ventures-agent-replay-0.2.0.tgz","_integrity":"sha512-vEvPl7mLdd74HRMtI6oL5ArGHfy3eQYNxJvdTOTRbWO2lkLaR1oM1YbV8uMf3B/7/kn6K14lDY+XpaG+atLeUg==","repository":{"url":"git+https://github.com/Boe-Ventures/agent-replay.git","type":"git"},"_npmVersion":"11.6.2","description":"Local session recording for AI coding agents — captures DOM mutations, console logs, network requests, and errors from your dev server into structured JSONL files that agents can read directly","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^3.23.0","rrweb":"^2.0.0-alpha.4","@rrweb/types":"^2.0.0-alpha.20","@rrweb/rrweb-plugin-console-record":"^2.0.0-alpha.20"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@playwright/test":"^1.59.1"},"peerDependencies":{"next":">=14.0.0","react":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-replay_0.2.0_1777186877549_0.42912800463610035","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@boe-ventures/agent-replay","version":"0.2.1","description":"Local session recording for AI coding agents — captures DOM mutations, console logs, network requests, and errors from your dev server into structured JSONL files that agents can read directly","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"agent-replay":"dist/cli/index.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.js","default":"./dist/next/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js","default":"./dist/cli/index.js"}},"keywords":["session-recording","rrweb","ai-agent","developer-tools","debugging","console-log","network-capture","react","nextjs","local-development","devtools"],"homepage":"https://boe-ventures.github.io/agent-replay","repository":{"type":"git","url":"git+https://github.com/Boe-Ventures/agent-replay.git"},"bugs":{"url":"https://github.com/Boe-Ventures/agent-replay/issues"},"author":{"name":"Boe Ventures","email":"hello@boe.ventures","url":"https://github.com/Boe-Ventures"},"license":"MIT","engines":{"node":">=18"},"dependencies":{"@rrweb/rrweb-plugin-console-record":"^2.0.0-alpha.20","@rrweb/types":"^2.0.0-alpha.20","rrweb":"^2.0.0-alpha.4","zod":"^3.23.0"},"devDependencies":{"@playwright/test":"^1.59.1","@types/node":"^22.0.0","@types/react":"^19.0.0","next":"^15.0.0","react":"^19.0.0","typescript":"^5.7.0"},"peerDependencies":{"next":">=14.0.0","react":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"next":{"optional":true}},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","dev":"tsc --watch","test":"playwright test","test:ui":"playwright test --ui"},"_id":"@boe-ventures/agent-replay@0.2.1","_integrity":"sha512-5Y86cKAtLJyt9N7AzsJDGOMWQg7Xt56k/ZZzGfANDj0zwn6lmrAcBLbXLbvPL53Ljd/42gfj7SiWM6AK2LOXnw==","_resolved":"/private/var/folders/v1/_f6902ds3l9960xg40k1mnp40000gn/T/699a49ed4237de6395196a852c13f71b/boe-ventures-agent-replay-0.2.1.tgz","_from":"file:boe-ventures-agent-replay-0.2.1.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-5Y86cKAtLJyt9N7AzsJDGOMWQg7Xt56k/ZZzGfANDj0zwn6lmrAcBLbXLbvPL53Ljd/42gfj7SiWM6AK2LOXnw==","shasum":"bba7324a466b26b39df4631f10eaea30956a8500","tarball":"https://registry.npmjs.org/@boe-ventures/agent-replay/-/agent-replay-0.2.1.tgz","fileCount":68,"unpackedSize":189916,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG6yKV6z80NOPG0FT0Sd69Ls1kHCoyoXisTSTi7GxtAaAiEAp47ZVq8g6yf2dbkc8eC26uoRl7PFi172jFSiVToHifc="}]},"_npmUser":{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"},"directories":{},"maintainers":[{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-replay_0.2.1_1777188323394_0.13753616128709778"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-25T22:24:05.048Z","modified":"2026-04-26T07:25:23.655Z","0.1.0":"2026-04-25T22:24:05.292Z","0.1.1":"2026-04-25T23:17:54.253Z","0.2.0":"2026-04-26T07:01:17.694Z","0.2.1":"2026-04-26T07:25:23.539Z"},"bugs":{"url":"https://github.com/Boe-Ventures/agent-replay/issues"},"author":{"name":"Boe Ventures","email":"hello@boe.ventures","url":"https://github.com/Boe-Ventures"},"license":"MIT","homepage":"https://boe-ventures.github.io/agent-replay","keywords":["session-recording","rrweb","ai-agent","developer-tools","debugging","console-log","network-capture","react","nextjs","local-development","devtools"],"repository":{"type":"git","url":"git+https://github.com/Boe-Ventures/agent-replay.git"},"description":"Local session recording for AI coding agents — captures DOM mutations, console logs, network requests, and errors from your dev server into structured JSONL files that agents can read directly","maintainers":[{"name":"kristianeboe","email":"kristian.e.boe@gmail.com"}],"readme":"# @boe-ventures/agent-replay\n\n[![npm version](https://img.shields.io/npm/v/@boe-ventures/agent-replay.svg)](https://www.npmjs.com/package/@boe-ventures/agent-replay)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/)\n[![GitHub stars](https://img.shields.io/github/stars/Boe-Ventures/agent-replay.svg?style=social)](https://github.com/Boe-Ventures/agent-replay)\n\nLocal session recording for AI-assisted development. Gives coding agents the same observability into a running web app that a human developer gets — console errors, network requests, DOM state, React component tree — but structured, programmatic, and cheap.\n\n## Why\n\nAI coding agents today debug web apps by taking screenshots and feeding them to a vision model. That's expensive, slow, and lossy — you can't see network errors, console logs, or timing from a screenshot.\n\nSession recording captures *everything* that happens inside the app. The agent gets structured data instead of pixels. The human developer gets a video-like replay for review.\n\n## How it works\n\n```\nAgent writes code → Dev server reloads\n                         ↓\n            AgentReplayProvider captures:\n            • DOM mutations (rrweb)\n            • Console logs/errors\n            • Network requests/responses\n            • React component tree + state\n            • User interactions (clicks, inputs, navigation)\n                         ↓\n            Events written to .agent-replay/\n                         ↓\n    ┌────────────────────┴────────────────────┐\n    │                                         │\nAgent reads structured events            Human views replay\n(file, CLI, or MCP tool)                (npx agent-replay view)\n```\n\n## Quick start\n\n```bash\nnpm install @boe-ventures/agent-replay\n```\n\n### React (Next.js, Vite, Remix)\n\n```tsx\n// app/layout.tsx\nimport { AgentReplayProvider } from \"@boe-ventures/agent-replay/react\";\n\nexport default function Layout({ children }) {\n  return (\n    <html>\n      <body>\n        <AgentReplayProvider>\n          {children}\n        </AgentReplayProvider>\n      </body>\n    </html>\n  );\n}\n```\n\nThe provider auto-disables in production. Only records in development.\n\n### Sidecar server (framework-agnostic)\n\n```bash\n# Run alongside your dev server\nnpx agent-replay dev\n\n# Or with a specific port\nnpx agent-replay dev --port 3700\n```\n\nThe sidecar receives events from the browser and writes them to `.agent-replay/`.\n\n### Next.js optimized\n\n```ts\n// next.config.ts\nimport { withAgentReplay } from \"@boe-ventures/agent-replay/next\";\n\nexport default withAgentReplay(nextConfig);\n```\n\nAuto-injects the provider and API route. Zero config.\n\n## Agent consumption\n\n### Flat files (works with any agent)\n\n```\n.agent-replay/\n  sessions/\n    2026-04-25T1430Z/\n      events.jsonl       # Full rrweb event stream\n      console.jsonl      # Console logs/errors only\n      network.jsonl      # Network requests/responses only\n      errors.jsonl       # Errors only (highest signal)\n      react-tree.json    # React component tree snapshot\n      summary.md         # LLM-friendly text summary\n  latest -> sessions/2026-04-25T1430Z/\n```\n\nTell the agent: \"Check `.agent-replay/latest/errors.jsonl` for recent errors\" or \"Read `.agent-replay/latest/summary.md` for a session overview.\"\n\nSeparate files so the agent can choose what to look at without exhausting context.\n\n### CLI\n\n```bash\n# Get a text summary of the last session\nnpx agent-replay summary\n\n# Get just errors\nnpx agent-replay errors\n\n# Get network failures\nnpx agent-replay network --failures\n\n# Watch for new events (streaming)\nnpx agent-replay watch\n```\n\n### MCP tool (future)\n\n```json\n{\n  \"tool\": \"agent_replay_session\",\n  \"description\": \"Get the latest session recording events\",\n  \"parameters\": {\n    \"type\": { \"enum\": [\"summary\", \"errors\", \"network\", \"console\", \"all\"] }\n  }\n}\n```\n\n## What gets captured\n\n| Signal | Source | File | Agent value |\n|--------|--------|------|-------------|\n| DOM mutations | rrweb | events.jsonl | Full page reconstruction |\n| Console logs | rrweb console plugin | console.jsonl | Errors, warnings, debug output |\n| Network requests | rrweb network plugin | network.jsonl | API failures, slow responses |\n| Errors | window.onerror + unhandledrejection | errors.jsonl | **Highest signal — read this first** |\n| User interactions | rrweb | events.jsonl | Clicks, inputs, navigation |\n| React tree | React DevTools hook | react-tree.json | Component state, props, context |\n| Route changes | Next.js router / History API | console.jsonl | Navigation flow |\n\n## Video replay\n\nRecordings can be converted to video for human review:\n\n```bash\n# Generate video from a session\nnpx agent-replay video .agent-replay/latest\n\n# Or decompose into frames (for vision model analysis via vidgrid)\nnpx agent-replay frames .agent-replay/latest --fps 1\n```\n\n## Chrome Extension (zero-config)\n\nThe Chrome extension records any `localhost` page automatically — no npm install, no provider component, no code changes.\n\n### Install from source\n\n```bash\ncd extension\npnpm install\npnpm build\n```\n\nThen load in Chrome:\n1. Open `chrome://extensions`\n2. Enable \"Developer mode\"\n3. Click \"Load unpacked\"\n4. Select `extension/.output/chrome-mv3/`\n\n### What it does\n\n- Auto-injects rrweb + console/network recording on `localhost:*` and `127.0.0.1:*`\n- Streams events to the sidecar server (`npx agent-replay dev`) every 2 seconds\n- Shows recording status, event count, and sidecar connection in the popup\n- Badge shows \"REC\" on tabs being recorded\n\n### Works with the npm package\n\nIf `<AgentReplayProvider>` is already active on the page (sets `window.__AGENT_REPLAY_ACTIVE__`), the extension defers — no double recording. Both write to the same `.agent-replay/` directory via the sidecar.\n\n### Development\n\n```bash\ncd extension\npnpm dev  # starts WXT dev mode with hot reload\n```\n\n## Design principles\n\n- **Local-first.** No cloud, no accounts, no telemetry. Files on disk.\n- **Dev-only.** Auto-disabled in production. Zero runtime cost when off.\n- **Agent-first, human-friendly.** Structured data for agents, visual replay for humans.\n- **Separate files per signal.** Agent picks what it needs. No context exhaustion.\n- **Framework-agnostic core.** Next.js adapter for convenience. Works with Vite, Remix, CRA.\n- **Composable with agent-browser.** Agent-browser gives the outside view (accessibility tree, element refs). Agent-replay gives the inside view (errors, network, state). Together they're complete.\n\n## Interplay with agent-browser / Puppeteer\n\n```\nagent-browser ←→ Browser ←→ agent-replay\n   (outside)                   (inside)\n\nagent-browser: \"Click button @e3\"\n               \"Snapshot accessibility tree\"\n               \"Get page title\"\n\nagent-replay:  \"Console error at checkout.tsx:47\"\n               \"POST /api/checkout returned 500\"\n               \"React state: cart.items = []\"\n```\n\nAgent-browser drives the browser. Agent-replay observes what happens inside. The agent uses both.\n\n## License\n\nMIT — [Boe Ventures](https://github.com/Boe-Ventures)\n","readmeFilename":"README.md"}