Coming Soon

Make Videos,
by talking.

Create launch and promo videos by telling Shot what you want. No timelines. No keyframes. No editing skills.

Local_First
Real_Code
Deterministic

Say it. See it. Fix it.

shot_terminal_v1.0
LIVE_RENDER
Editor
Generate a 30s product reveal with dark aesthetic.
RESOLVED
Res4K_DCI
FPS60.00
Safe_Range_ON
ProRes_RAW
REVEAL_SCENE
Engine Syncing
00:00:0.12 / 00:00:30.00

Built for iterative development. Edit videos as code.

Engineered for iteration.

Video editing shouldn't be a black box. Our process is transparent, code-first, and lightning fast.

PHASE_01

Start a project

Create a new video in seconds. Upload images or connect your codebase.

PHASE_02

Describe what you want

Tell Shot what to show. Intro. Features. Ending.

PHASE_03

Improve it by talking

Refine every detail via chat. Change camera paths, easing curves, or timing.

The timeline is the bottleneck.

Making a launch video shouldn’t feel harder than building the product itself. Traditional editors force you into a manual labour mindset—dragging pixels, snapping clips, and managing thousands of fragile keyframes.

Shot shifts the focus from manipulation to intent. One line of conversation re-aligns your entire sequence.

The Old Way
Linear, fragile, and bound by the limits of manual precision.
The Shot Way
Dynamic, code-driven, and scalable via conversation.
TRADITIONAL_EDITOR.EXE
! ERROR: KEYFRAME_OUT_OF_BOUNDS
Command InputV1_SEQUENCE_GEN
"Make the transition between the code reveal and the UI faster, adding a subtle camera shake on the hit."
Parsing intent...
FLOW
Create_Modes

Two ways to create

Start from a description or from your codebase. Same engine, your choice.

Your files and messages stay on your machine.
MODE_01PROMPT_LAYER

Use a prompt

Describe your video and add images. Shot builds the video for you.

"30s dark product reveal, hero zoom"
INTENT
MODE_02CODE_LAYER

Use your code

Select your product's code. Shot understands your app and builds the video from it.

~/project/src/App.tsx
SOURCE
shot --render --sequence="reveal_00" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_01" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_02" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_03" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_04" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_05" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_06" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_07" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_08" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_09" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_010" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_011" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_012" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_013" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_014" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_015" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_016" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_017" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_018" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_019" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_020" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_021" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_022" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_023" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_024" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_025" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_026" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_027" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_028" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_029" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_030" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_031" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_032" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_033" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_034" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_035" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_036" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_037" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_038" --fps=60 --codec="prores_raw" --bitrate="400mbps"
shot --render --sequence="reveal_039" --fps=60 --codec="prores_raw" --bitrate="400mbps"
Ready for deployment

Stop editing timelines.
Start talking.

The local-first engine for high-performance product launches. Join the beta today and build your next reveal in minutes, not days.