PlainTake turns a committed TypeScript scenario into one captioned MP4 and a verifiable evidence bundle. Chromium records it. FFmpeg renders it. Your app stays on your machine.
Free for commercial use. No account. No cloud renderer. More demo videos on YouTube.
A sixty-two-second PlainTake quickstart recorded at 1920 by 1080 and 30 frames per second — install, write the scenario, validate, run, and the verifiable output bundle — with spoken narration, a selectable caption track, a synthetic cursor, and a closing “Made with PlainTake” credit card. The whole tutorial was recorded by PlainTake itself.
1920 × 1080fixed Chromium canvas
30 fpsconstant video rate
1 MP4unambiguous deliverable
Offlinerecord and render path
One file in. One proof bundle out.
The scenario names the actions, narration, assertions, pauses, privacy masks, and chapters. A run captures what happened and freezes everything needed to inspect or re-render it.
The scenario is the edit.
Review the same TypeScript you commit. There is no visual timeline to drift from the product.
Validate before Chromium startsSchema and scenario errors fail early, before recording time is spent.
Record the semantic timelineSteps, narration, assertions, masks, and cursor targets stay aligned to one monotonic clock.
Render once with FFmpegA selectable caption track by default, burned-in on request, with SRT and VTT sidecars always included.
Verify every artifactA SHA-256 manifest makes changed, missing, or substituted files visible.
A recorder with a narrow contract.
PlainTake chooses repeatability over knobs. The constraints are visible and testable.
Browser
One Chromium context, one active page
Playwright 1.62.1
Canvas
1920 × 1080, UI scale 1, 1.5 or 2
asserted per frame
Video
30 fps H.264 MP4
one output/demo.mp4
Captions
Selectable caption track by default; burn-in on request; SRT and VTT sidecars
silent unless narrated
Renderer
FFmpeg with libass and deterministic arguments
no cloud render
Interfaces
Interactive terminal, CLI, and local stdio MCP server
no account required
Private input stays outside the recording path.
Register a CSS mask before a sensitive element exists. For apps behind a login, pre-flight handoff gives you the real browser before video and tracing begin; a session handoff can keep a human decision in the recorded flow. You act in the browser, and PlainTake never receives a secret as a terminal value.
Persistent CSS-selector masks apply across navigations and future documents.
preflight
Authentication can finish before screencast and trace capture start.
verify
The manifest records what the bundle contains so omissions and changes are explicit.
Free records everything. Pro changes the finish.
Both tiers produce videos you own, with every recording and caption feature. Free keeps a three-second PlainTake credit. Pro is the polish pass: it removes the credit and adds the finishing touches.
Free
No key required
Every recording, rendering, CLI, and MCP feature
A selectable caption track, or captions burned into the pixels
SRT and VTT sidecar files on every run
Narrate every caption — a local voice model or your own audio
MP4 chapter markers to skip between steps
Multiple actors, each with their own browser context
Cut away to a full-frame, narrated explain scene mid-recording
Optionally, and free on every tier. --speech on reads each caption aloud with a voice model that runs on your own machine — no network, no account, no API key — and --speech file speaks WAV recordings you supply. Captions are there either way. A selectable track is the default; pass --subtitles hard to burn them into the pixels, which is what keeps them visible in browsers, social feeds, and documentation embeds.
Does recording contact a cloud service?
No. Recording and rendering have no runtime network dependency beyond the app you explicitly point Chromium at. Pro activation is one separate, user-initiated licence check; later runs use the cached result.
Can it record an authenticated app?
Yes. A scenario can declare a pre-flight handoff so you sign in through the real browser before screencast and trace capture begin.
Can an AI coding agent run it?
Yes. PlainTake ships a local stdio MCP server with validate, run, render, and verify tools, plus matching CLI commands.
Can I re-render without opening Chromium?
Yes. The frozen render plan and raw capture are part of the bundle. Re-rendering verifies the source hash before FFmpeg starts.