Tell your coding agent to make a demo of your app. It drives the real thing and returns a polished MP4 with a smooth cursor and cinematic zoom, plus an editable composition you refine by asking your agent for changes in plain language.
npm create open-take@latest my-demo # new project in ./my-demo
npm create open-take@latest # in your app's root: adds it thereThen ask your agent:
Make a demo of localhost:3000 for Twitter.
The initializer adds Open Take and its project skill — package.json (only if
the directory has none), node_modules/, and .agents/skills/open-take/ plus
.claude/skills/open-take/; it lists what it wrote when it finishes. Outside an
app root it asks which directory to create rather than writing into the one you
are standing in. On the first demo, Open Take downloads and caches its own
Chrome for Testing under ~/.open-take/browsers; later runs reuse it.
Two things per demo, in demos/: myapp.mp4 — the one to post — and
myapp.take/ beside it, holding the editable composition, the kept recording,
and every draft copy. Post the mp4; ignore, .gitignore (*.take/) or delete
the folder. Deleting it keeps the video and gives up re-rendering (the recording
is not regenerable). Demos stay in one folder so their videos sit side by side.
Watch the review copy and give notes in plain language: “beat 3: no zoom”, “tighter on beat 2”, or “look: slate”. Your agent re-renders from the saved capture, so visual changes do not re-record your app.
Requires Node.js 22+. For agent-facing commands, run npx open-take --help.
The same demo with nobody at the desk: open-take ci boots your app, hands
the wheel to a headless agent, and refuses to call the run a success unless
the delivered master passes its proof gates — a missing demo is a fine CI
outcome, a bad one is not. The bundled GitHub Action wires it to
the pull requests that change your UI, and to releases:
- uses: pascal910107/open-take/action@main
with:
url: http://localhost:3000
start: npm run dev
anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}Read the action's README before adopting — it carries the security model (what the agent may and may not touch, why fork PRs are refused) and honest wall-clock and cost numbers.
pnpm install
pnpm build
pnpm -r test # `pnpm test` at the root runs nothingSetup, the full gate list, and what to open an issue about before writing code: CONTRIBUTING.md. Security reports go through SECURITY.md, not the issue tracker.
MIT.