Cutscene docs
Cutscene makes a short, code-rendered launch video for your app. You ask your coding agent (Claude Code or Codex, including inside Conductor); your agent answers Cutscene's questions from your codebase and sends only what you approve. Cutscene never sees your source code.
Quickstart
Install the skill once, for every project on this machine:
npx skills add https://cutscene.dev -gPut your beta token in your shell profile (see Access):
export CUTSCENE_TOKEN=…In any repo, ask your agent:
Make a launch video for this app with Cutscene.The first time, the agent connects the Cutscene MCP server and asks you to start a new chat. Ask again there.
You can be specific: "Make a 15-second video announcing the new billing page, with Cutscene." or "Use Cutscene to make a calm, precise 30-second launch film. Don't mention pricing."
What happens
- Your agent opens a job and gets eleven questions.
- It answers them from your code — colors from your theme, fonts from your layout, copy from your landing page — and asks you only what the code can't tell it.
- It shows you the whole package once: every answer and every file. Nothing is sent until you say ship it.
- Cutscene renders in an isolated sandbox: a director plans the beats, each scene is built in React, an original score is synthesized, every scene is reviewed as a still, then the 1080p render runs.
- About 15–20 minutes later your agent downloads the MP4 and opens it.
Access
Cutscene is in private beta. Each invited user gets a token. Your agent sends it as
Authorization: Bearer <token> and reads it from CUTSCENE_TOKEN. Connecting and listing tools work without
a token; calling a tool without a valid one returns a JSON-RPC error (-32001) that explains the fix.
Install
With the skills CLI (recommended)
npx skills add https://cutscene.dev -g
This installs the cutscene skill for every agent it detects (Claude Code: ~/.claude/skills/, Codex:
~/.agents/skills/). The skill teaches your agent the rules and the flow, and connects the MCP server on first use.
Drop -g to install into the current project only.
Connect the MCP server yourself
Claude Code:
claude mcp add --scope user --transport http cutscene https://cutscene.dev/mcp --header "Authorization: Bearer $CUTSCENE_TOKEN"
Codex:
codex mcp add cutscene --url https://cutscene.dev/mcp --bearer-token-env-var CUTSCENE_TOKEN
Conductor
Conductor runs Claude Code and Codex in per-branch workspaces. Install with -g and register the server with
--scope user (as above) so every workspace has it. Then ask in any workspace's chat.
What leaves your machine
Sent, after your approval:
- 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 skill instructs your agent to follow these rules, and the questions are designed so that no answer needs code. Your agent is the one reading your repo, so you stay in control: review the package before you approve it.
The questionnaire
| Question | Required | Your agent looks in |
|---|---|---|
| pitch — In one sentence: what does the product do, and for whom? | yes | README, landing page hero copy, package description |
| key_messages — 3–5 headline messages or features. Only things that are real and shipped today. | yes | landing page sections, feature flags that are on, changelog |
| audience_tone — Who is the audience and what tone fits? | no | landing copy voice, marketing pages |
| colors — Brand colors as hex with roles. Dark or light product? | yes | tailwind config, CSS variables, theme tokens |
| fonts — Font families for headings, body and code. | yes | next/font or @font-face, tailwind fontFamily |
| logo — The logo — SVG preferred, plus a light-on-dark variant if one exists. | yes | public/, assets/, app/icon.* |
| screens — 2–5 screenshots of the key screens, with demo data. | no | run the app locally, or existing marketing shots |
| ui_notes — Layout, components and labels of each key screen — described, not pasted. | no | the page and component files for those screens |
| cta — End-card call to action and URL. | yes | primary button, deployment domain |
| avoid — Anything the video must not claim or show. | no | ask the user |
| format — Length in seconds (10–30, default 20). | no | ask the user |
MCP reference
Endpoint: https://cutscene.dev/mcp (streamable HTTP, stateless, JSON responses). Server card: https://cutscene.dev/mcp/server-card.
| Tool | Arguments | What it does |
|---|---|---|
create_video |
product_name, brief, product_url? | Opens a job and returns the questionnaire. |
upload_url |
job_id, question_id, filename | A one-off signed URL (30 min) and a ready curl command for a logo or screenshot. |
submit_answers |
job_id, answers | Saves text answers; reports what's still missing. |
start_video |
job_id | Starts the render once every required answer is in. |
get_status |
job_id | Progress while rendering; the video URL, report and usage when done. |
Job states follow A2A task states: input-required → working → completed or failed.
Limits
| Output | 1920×1080, 30 fps MP4, 10–30 seconds |
| Time | About 15–20 minutes per video |
| Concurrency | One render at a time during the beta |
| Video link | Signed URL, valid for 7 days |
| Access | Private beta, bearer token per user |
Troubleshooting
- The agent doesn't see Cutscene's tools. MCP servers load when a session starts. Start a new chat after the
first-time setup. In Claude Code,
claude mcp listshould showcutsceneas connected. - "Missing or invalid token".
CUTSCENE_TOKENwas empty or wrong in the shell where the server was registered. Fix it and run theclaude mcp addcommand again (remove the old entry first withclaude mcp remove cutscene). - "one sandbox for now". Another video is rendering. Try again when it finishes.
- The video link expired. Links last 7 days. Call
get_statuswith the same job ID for a fresh one.
For agents
- llms.txt — what Cutscene is and when to use it
- Skill index and SKILL.md
- MCP server card, server.json, AI catalog
- Pricing, OpenAPI, API catalog
- Every page is also available as Markdown: send
Accept: text/markdown.