Your first video

Start a video from a brief with /rapid new or rapid video, give notes, and render the demo project with no agents.

Assumes rapid is installed and rapid setup --check prints rapid is ready.

From Claude Code

/rapid new Twenty seconds, vertical. A person says what they want out loud; the assistant answers and a file card arrives. Calm, editorial, one idea at a time.

/rapid new <brief> runs rapid video --brief <brief>: a project folder under ~/rapid/ named for the brief's first line, the brief in its brief.md, the swiss style and reel format (1080×1920, 30 fps), and the CLI's default stops (all). The pane opens on the job; the reply names the job, the folder, and the screening page.

Asked in plain words instead ("make me a twenty-second reel about…"), Claude runs the rapid-brief skill: one round of questions, a written brief.md, then the new_video tool with stops: none, so it runs to the finished video. See the MCP tools.

From a terminal

rapid video --brief "Twenty seconds, vertical. A person says what they want out loud; the assistant answers and a file card arrives."

It starts the daemon if none answers (started the daemon in the background), then prints the job, the project, and the screening page, and returns:

j_819b0fb4
project /Users/you/rapid/twenty-seconds-vertical-a-person-says-what-they
http://127.0.0.1:4317/#/job/j_819b0fb4
  • rapid video ~/videos/launch --brief "…" names the folder. A folder that already holds a different brief.md is refused.
  • rapid video <folder> uses the folder's own brief.md; its first # heading is the job's title.
  • --style <ref> and --format <ref> default to the project's pins in rapid.lock, else swiss and reel.
  • --stops all|storyboard|none, --keys agent|person|off, --review agent|none, --rounds <n>: see rapid video.

With a track or a model

  • --music <track> cuts the video to a song you own: rapid hears it first, plans the cuts to its beats, and mixes it under the video. See music.
  • A 3D model in the project's assets/ lets the storyboard plan real product shots, rendered in Blender before the scenes that show them. See Blender shots.

What runs

  1. Storyboard. With a track, rapid listen hears it first. With no storyboard.json, rapid-storyboarder writes it and storyboard.md from the brief, the style, the format, and assets/. rapid-director judges the plan and sends it back until it holds, three looks at most. Then an approval.
  2. Key frames. Any Blender shots render first, for the scenes that show them. Per scene, rapid-builder builds the hero as a still at meta.key (renders/<id>/key-k1.png); code checks it and rapid-reviewer judges it (reviews/<id>-k1.json), three tries at most.
  3. Rounds. Per scene, as lanes allow: build scenes/<id>.html, render, check, contact sheet, review (reviews/<id>-r1.json). A revise builds the next round from the marks, up to --rounds (4).
  4. The video. With every scene accepted: join with the storyboard's transitions, the director's look at the cut (two looks at most), then mix, mux, and the phone copy.

With --stops all (the CLI's default) the video waits for you at the storyboard, at a key frame that doesn't converge, and at a scene out of rounds. With --stops none (the new_video default) nothing waits: each would-be stop takes its best try or round, and rapid job and video_status list each choice. The whole planner: the job graph.

At a stop:

rapid job <job>                                   # find the node in needs_you
rapid approve <node>
rapid redo <node> --note "three scenes, not five"

Notes on a finished video

rapid revise <job> --note "…"                             # the whole video: storyboarded again
rapid revise <job> --scene card --note "…"                # one scene, built again to the note
rapid revise <job> --scene card --at 1.2 --to 2 --note "…"  # a moment: a mark and a new round of that scene

Each runs to the video again with no stops. In Claude Code, say the note; Claude routes it with revise_video. Marks pinned in the screening page land in renders/<scene>/marks.json, which every build of the scene reads first.

Watching

rapid jobs                     # every job and its state
rapid job j_819b0fb4           # its nodes, wait and run times, and the choices made without you
rapid events --job j_819b0fb4  # the live event stream; Ctrl-C stops it
rapid lanes                    # running and queued, per lane
rapid open                     # the screening page, at the newest job

In Claude Code, /rapid status opens the pane. See using the pane.

The demo, with no agents

projects/demo holds a brief, a storyboard, and two scenes already written. From the repository root:

rapid video projects/demo --review none

--review none passes a scene on the code checks alone and turns off key frames and the director, so no agent runs. With storyboard.json and both scene files present, rapid skips the storyboard and the builds: per scene it renders, checks, and draws a contact sheet, then joins, mixes the sound from the cues, muxes, and makes the phone copy. --style terminal renders the same scenes in another built-in look.

j_819b0fb4  done  A two-scene demo  (/path/to/rapid/projects/demo)
n_4bb7986c17  done       web     render      render idea r1  waited 2ms, ran 4.4s
n_a9eaf8241e  done       web     check       check idea r1  waited 1ms, ran 972ms
...
n_2ea9c3d5c4  done       encode  phone       the phone copy  waited 2ms, ran 1.3s

The output lands in the project: video.mp4, video-phone.mp4, and renders/ (every file: projects). Running the command again makes a new job; delete renders/ and the MP4s to start clean.