Chrome extension
Record narrated product demos, with sensitive content hidden as it happens.
View as MarkdownThe Autoplans Demo Recorder is a Chrome extension that records a browser tab into a product demo, hides anything sensitive before the frame is stored, and hands the recording to autoplans.dev to be narrated. An AI agent can drive the whole thing over MCP.
Installing
Install Autoplans Demo Recorder from the Chrome Web Store, then open it and sign in. The sign-in happens in a browser tab on autoplans.dev and hands the extension an API key scoped to your account; you can revoke it at any time from Settings → API keys.
What it captures, and what it does not
Capture starts only when you start it, and only on the tab you chose. Nothing is recorded before that, and nothing is recorded from other tabs.
Before a frame is stored, the extension blurs sensitive content in the page itself, so those pixels never enter the video at all:
- password, one-time-code and payment fields;
- fields whose name or label says
api key,secret,token,cvv,iban,ssnand similar; - text that looks like an API key, an access token, a JWT, an email address or a card number that passes a Luhn check;
- anything matching a CSS selector you add, in the extension's settings or with
the
privacy_masktool.
A second pass in the recording pipeline covers what a page cannot blur for itself — canvas, video, cross-origin frames — and it fails closed: if a mask update arrives late, the previous regions are kept and widened rather than dropped.
Typed text is never recorded. The action log stores that typing happened, into which field, and how many characters — never the characters.
Recording
With you at the keyboard. Click the extension and choose Record this tab. Chrome requires a user gesture before any extension may capture a tab, so this is always one click.
With an agent driving. An agent calls recording_start. In the default mode
the extension asks you to click once to allow it — Chrome has no way around
that, and it means a page cannot be recorded without someone deciding to. On a
paid plan you can enable unattended recording, where the extension captures
through Chrome's debugger instead. Two things to know about that mode: Chrome
shows a "started debugging this browser" banner on every tab while it runs,
and Chrome stops producing frames when the tab is not visible, so the recording
pauses and tells the agent to bring the tab forward.
Narration, and why the script never comes back
When you produce a video, the server reads the action log — never a frame — writes a narration script, and speaks it with your own ElevenLabs account. Add your key under Demo Recorder settings; it is verified with ElevenLabs, encrypted at rest, and used only by the render pipeline.
The script is stored encrypted and is never returned to any client. The extension and the MCP tools receive a job status and a link to the finished video, and there is no tool that returns the words. Two honest limits on that: the text does reach your own ElevenLabs account, because that is what speaks it, and anyone holding the audio can transcribe it. The promise is that Autoplans never hands the script to the browser, not that the words are unrecoverable.
Captions are deliberately not offered — a caption track is the script.
Talking avatars
On paid plans a talking-head clip can be composited into the corner of the video. Three providers are supported, each on your own key:
| Provider | What it needs |
|---|---|
| ElevenLabs | An ElevenLabs Pro plan and a presenter image. Same key as the voice. |
| HeyGen | A HeyGen key and an avatar or talking-photo id. |
| Sync Labs | A Sync Labs key and a short presenter clip to lip-sync. |
Driving it with an agent
claude mcp add --transport stdio autoplans-browser -- npx -y autoplans-browser-mcp
For Claude Desktop or Cursor, add the same command to the client's MCP config:
{ "mcpServers": { "autoplans-browser": { "command": "npx", "args": ["-y", "autoplans-browser-mcp"] } } }
A Chrome extension cannot accept connections, so autoplans-browser-mcp listens
on loopback and the extension dials out to it. The first time a client connects,
the extension asks you to approve it — a local process asking to drive your
browser is a decision for you, not something granted because it managed to
connect. Approved clients are listed in the extension's settings and can be
revoked there.
The tools
| Tool | What it does |
|---|---|
browser_tabs | List open tabs |
browser_navigate | Open a URL |
browser_snapshot | The page's interactive elements, each with a ref. Sensitive values are redacted |
browser_click, browser_type, browser_press, browser_scroll | Act on the page by ref |
browser_wait | Wait for a delay, or for text to appear |
browser_screenshot | A screenshot, already masked |
recording_start, recording_step, recording_stop, recording_status | Control the recording |
privacy_mask, privacy_rules | Add and inspect masking rules |
video_produce, video_status, video_list | Produce a narrated video and follow it |
recording_step is worth using: the steps you mark become the structure of the
narration, and a demo narrated from marked steps reads far better than one
narrated from raw clicks.
Plans
| Free | Starter | Pro | |
|---|---|---|---|
| Recording, privacy masking, local download | ✓ | ✓ | ✓ |
| Longest recording | 3 min | 10 min | 30 min |
| Narrated productions | 3 / month | 30 / month | unlimited |
| Talking avatar | — | ✓ | ✓ |
| Unattended (agent-started) recording | — | ✓ | ✓ |
| Cursor styles and click effects | — | ✓ | ✓ |
| Watermark on the output | yes | no | no |
Troubleshooting
"Chrome refused to capture that tab." Internal pages — chrome://, the Web
Store, PDF viewer — cannot be captured by any extension.
Unattended recording will not start. Close DevTools on that tab; Chrome allows one debugger at a time.
The recording paused on its own. In unattended mode Chrome stops producing frames for a tab that is not visible. Bring the tab forward.
The agent's tools are missing. Open the extension and approve the
connection. Until then the relay offers a single autoplans_connect_browser
tool that explains this.
"Add your ElevenLabs API key." Productions need one; add it under Demo Recorder settings.