Ask your coding agent for a launch video.
Cutscene sends your agent a short questionnaire. It answers from your code, you approve what goes out, and about 20 minutes later you have a 1080p film with an original score. Your source code never leaves your machine.
Invite-only for now. Join the waitlist →
Made with Cutscene.
Four launch films briefed from repos and two explainers: one from a docs page, one from a topic and a reading list. Each is rendered from code, frame by frame.
How a film gets made.
Your agent does the briefing, because it already knows your app. Cutscene only ever sees the answers you approve.
- 01
You ask.
In Claude Code or Codex, in plain words. No install, no keys: your agent reads cutscene.dev and knows what to do.
- 02
You sign in once.
A browser tab opens. Type your email and the 6-digit code we send. Your agent keeps the sign-in for next time.
- 03
Cutscene asks back.
Eleven questions come back, each with a hint about where in a repo its answer usually lives.
- 04
Your agent answers from your code.
On your machine, it reads your theme, fonts, landing copy and key screens, and writes down facts: hex values, font names, a one-line pitch.
- 05
You approve what leaves.
Every answer and every file, shown once. Strike anything. Only this package crosses: no source, no config, no .env.
- 06
Cutscene makes the film.
In an isolated sandbox a director picks a concept and a tempo, builds each scene in React, scores it to the cuts and checks every frame. If every sandbox is busy, yours waits its turn.
- 07
Your film arrives.
About 20 minutes later: an email, and a private page with the 1080p film. Flip one switch to share it.
Illustrated with the Resy Rescue film. The colors, fonts and screens are from its brand kit.
Inside one film.
This is Resy Rescue as its director laid it out: 120 BPM, five scenes cut on the beat, a score whose chords change where the scenes do, and a sound on every click and stamp. Scrub the timeline.
src/props.json › scenes.hook
{
"durationInFrames": 90,
"statusPill": "Resy offline since 1:42 PM",
"headline": [
{ "text": "Your", "em": false },
{ "text": "reservations", "em": false },
{ "text": "aren't", "em": true },
{ "text": "lost.", "em": true }
],
"cues": {
"words": [2, 2.5, 3, 3.5]
}
}Every word, color and timing on screen is a typed prop. Ask for a change and Cutscene edits these, not a new film.
What leaves your machine.
Your agent is the only one that reads your code. You see the package before it goes.
Sent, after you approve
- A one-line pitch and 3–5 shipped features
- Brand colors as hex values, font names
- Your logo file
- Screenshots you approve, with demo data
- Plain-language descriptions of key screens
- The call to action and a public URL
Never sent
- Source code — not a file, not an excerpt
- Config, lockfiles, .env files, keys
- Customer data or database contents
- Internal URLs, git history, issues
- Anything you strike from the package
The eleven questions, and where your agent looks for each answer
| # | Question | Looks in |
|---|---|---|
| 01 | In one sentence: what does the product do, and for whom? | README, landing page hero copy, package description |
| 02 | 3–5 headline messages or features. Only things that are real and shipped today. | landing page sections, feature flags that are on, changelog |
| 03 | Who is the audience and what tone fits?optional | landing copy voice, marketing pages |
| 04 | Brand colors as hex with roles. Dark or light product? | tailwind config, CSS variables, theme tokens |
| 05 | Font families for headings, body and code. | next/font or @font-face, tailwind fontFamily |
| 06 | The logo — SVG preferred, plus a light-on-dark variant if one exists. | public/, assets/, app/icon.* |
| 07 | 2–5 screenshots of the key screens, with demo data.optional | run the app locally, or existing marketing shots |
| 08 | Layout, components and labels of each key screen — described, not pasted.optional | the page and component files for those screens |
| 09 | End-card call to action and URL. | primary button, deployment domain |
| 10 | Anything the video must not claim or show.optional | ask the user |
| 11 | Length in seconds (10–30, default 20).optional | ask the user |
Built to be called, not clicked.
Cutscene is a remote MCP server with an agent skill on top. Every page here also answers in Markdown.
endpointhttps://cutscene.dev/mcp
transportstreamable HTTP · stateless · OAuth sign-in
toolcreate_video(product_name, brief, product_url?) — Opens a job and returns the questionnaire.
toolupload_url(job_id, question_id, filename) — A one-off signed URL (30 min) and a ready curl command for a logo or screenshot.
toolsubmit_answers(job_id, answers) — Saves text answers; reports what's still missing.
toolstart_video(job_id) — Starts the render once every required answer is in. Also retries a failed job.
toolget_status(job_id) — Progress while rendering; the video URL, report and usage when done.
toolrevise_video(job_id, notes) — The next version of a finished film from its own project: only what the notes ask for changes.
Private beta.
Cutscene is invite-only while we tune the director, and films are free for invited people during the beta. Once you’re in, it’s one sentence to your agent and a one-time sign-in with your email.
Join the waitlistMake a launch video for this app with cutscene.devNo keys or tokens to copy. How sign-in works →