Retake GitHub

your product changed. your demo is outdated.

Demos that
re-record themselves.

A demo is a small file your coding agent writes. When the UI changes, change one line and run it again — the client walkthrough on Tuesday and the launch video on Friday, from the same current take.

one prompt a YAML demo dry-run checked recorded rerun on the next release

MIT licensed · runs on your machine · no account, nothing uploaded

The release renamed a button. This is the whole fix
demos/checkout.yaml
{ action: click, selector: "button:has-text('Buy now')" }
{ action: click, selector: "button:has-text('Complete purchase')" }

one line changed · retake run · a new take of the same demo ↓

Built against three real workflows

Retake was built inside these, not for a landing page. All three are mine — there are no customer quotes here yet, and this page is not going to pretend otherwise.

capture.

A five-video launch set, drafted, corrected and re-cut in one afternoon. Re-doing a take stopped being a decision worth having.

Thought-sorting app · capture-playground.vercel.app

WATCHThree of those videos are live on Capture's own page, which credits Retake by name.

One repeatable flow across three portals, replacing a twenty-minute live walkthrough. The proof log catches a broken step before a client ever sees it.

Private aviation charter · avex-jets.com

SITEThe walkthrough itself is client-facing; the product it records is public.

TechBash

An agent operates the real Scratch editor, dragging the actual blocks. When a lesson changes, the same file produces the next walkthrough.

Coding school for young learners · bash.techtutor.academy

WATCHThe take, 19 seconds — four blocks dragged into one script, and the cat runs it.

Give it to your agent

The link is the instruction. The README tells your agent how to install, wire itself up, and open the window for you. You say what to show.

In Claude Code, Codex, Cursor — the agent you already use“github.com/glebbogachev00/retake — set this up, then record a demo of my app at localhost:3000 showing the checkout flow.”

Doing it yourself is two commands:

npm install -g retake-demos     # Node 20+; ffmpeg bundled, Chromium downloads once
mkdir demos && cd demos && retake install

How it works

You provide intent. The agent writes the flow. Retake verifies, records, and renders it.

You ask

"Record a demo of checkout." That sentence is the brief for the agent you already use.

Your agent builds and checks the flow

It reads your app, writes a small YAML demo, and dry-runs every selector and wait. Nothing records until the walkthrough works.

Retake records the real interaction

Real typing, real clicks, real waits. The result is demo.mp4, a still for each scene, and a proof log of what happened.

You revise without starting over

Change captions, zoom, layout, or format in seconds. When the UI changes, rerun the same flow instead of recording by hand.

What's in the box

Everything required to produce the same clean take again.

Scenes with captions

Captions timed from the actual run, placed under the app — never over it. Every scene also yields a crisp still.

Render-time camera

Zoom and framing applied after recording. Change your mind in seconds, no browser involved.

Presets that post well

Landscape, a true square, a true 9:16, docs GIF — the same take, re-rendered. Stubs and seeds keep it repeatable.

Behind the login, off camera

The agent asks for a demo account by name; you type it into the window and it stays in one local file. The sign-in runs before recording and is trimmed off. 2FA included.

Plain, or produced

mode: demo keeps everything but your product out of the frame. mode: launch adds a title card, cuts the waiting, and lets you pick the poster. Demo is the default; your agent never upgrades one on its own.

Not a recorder, not a test runner

A screen recording is pixels you can never edit; a browser test is a pass/fail nobody can watch. A Retake demo is both halves: a readable file that proves itself like a test and renders like a film — and reruns when the app changes. And it refuses to become a video editor: if a take needs editing, the file was wrong. Fix the file, run it again.

Record your first rerunnable demo

The demo outlives the video. When the next release moves a button, the fix is a line in a file — and landscape, square, vertical and the GIF all re-render from the same take.

Start with the sentence“github.com/glebbogachev00/retake — set this up, then record a demo of my app at localhost:3000 showing the checkout flow.”
MIT licensed. Source Built on Playwright, testreel, and ffmpeg. Report a bug