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

  1. Install the skill once, for every project on this machine:

    npx skills add https://cutscene.dev -g
    
  2. Put your beta token in your shell profile (see Access):

    export CUTSCENE_TOKEN=…
    
  3. 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

  1. Your agent opens a job and gets eleven questions.
  2. 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.
  3. It shows you the whole package once: every answer and every file. Nothing is sent until you say ship it.
  4. 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.
  5. 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

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 list should show cutscene as connected.
  • "Missing or invalid token". CUTSCENE_TOKEN was empty or wrong in the shell where the server was registered. Fix it and run the claude mcp add command again (remove the old entry first with claude 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_status with the same job ID for a fresh one.

For agents