Shotkit / Docs / Quickstart
Your first run, in six steps.
Shotkit writes the plan, the prompts and the critiques. You make each frame in the generator you already use, or connect a fal.ai key and Shotkit makes them, and it checks every frame against the brief. To see a finished run first, open the example board.
- Step 01Terminal
Install.
Clone and install git clone https://github.com/whystrohm/shotkit.git cd shotkit && ./install.shIt printed (last lines) shotkit: setting up the checks (one time, about ten seconds) shotkit: the checks are ready. Done. Shotkit is installed. 1. Restart Claude Code, in the folder where you want the files. 2. Type a brief: /shotkit 30-second launch video for <your company>, 9:16 It plans the shots, writes the prompts and opens the board in your browser.That is the whole setup. You need Python 3 and nothing else: the installer gives the validators their own environment, so there is no
pip installstep. Check it any time:What is installed ~/.claude/shotkit-tools/sk doctorIt printed shotkit 3.2.0 tools ~/.claude/shotkit-tools python Python 3.14.5 (/opt/homebrew/bin/python3) checks ready (private environment) skill shotkit skill storyboard-architect skill visual-prompt-forge skill visual-asset-critic skill storyboard-html-preview skill brand-lock-extractor
The install page has every option.
- Step 02Claude Code
Type the brief.
Restart Claude Code in the folder where you want the files. Type
/shotkitand describe the video in a sentence:Type in Claude Code /shotkit 30-second founder explainer for Harbor Roast, a coffee roaster that delivers weekly. 9:16.
Shotkit plans the shots, checks its own files, opens the board in your browser, then writes the prompts. It does not stop to ask for what a default covers. With no length it uses 30 seconds. With no generator named it writes for Flux and Kling. With no brand it uses a neutral starter brand and says so. Each default is listed in its reply, so you can change it.
To use your own brand, put your site in the brief (“use the brand from example.com”) and it writes a brand lock from the site first.
- Step 03Browser
Read the board.
The board is one page,
output/board.html. It has every shot on a timeline and a contact sheet, the on-screen text set over each frame, and the next step with the line to type. Open a shot to see its spec, its prompts and the critic’s notes. Nothing is uploaded: it is a file on your machine.Open the board again later ~/.claude/shotkit-tools/sk board output/ --openIt printed wrote output/board.html 9 plan. Next: Write the prompts.
The last line counts the shots by state and names the next step. This one ran on a storyboard with no prompts yet.
- Step 04Your generator
Make the frames.
Open a shot on the board, pick your generator’s tab and press
Copy prompt. Paste it into the generator with the params shown under the prompt. Save the image asoutput/frames/round-1/shot_03.png: the round, then the shot id.Or let the board file it for you. Run the live board and drop each image on its shot:
The live board ~/.claude/shotkit-tools/sk board output/ --serve --openIt runs on your machine only, reloads when files change, and saves a dropped frame under the right name.
Or have Shotkit make them. Put a fal.ai key in a
.envfile in the folder (FAL_KEY=...), then:See the plan. Nothing is spent ~/.claude/shotkit-tools/sk generate output/ --model fluxIt lists each request and sends nothing. Add
--yesto run it. fal bills your account at the price on that model’s page. Use--model klingafterwards for a video clip per shot. The fal guide covers the key and how to pick any model. - Step 05Claude Code
Check the frames.
Type in Claude Code Check the new frames.
The critic compares each frame with its shot and the brand lock and gives a verdict: ACCEPT, REVISE or REJECT. Every issue carries a fix. The board shows the verdict on each shot. For the ones that came back:
Type in Claude Code Revise the prompts for the shots marked REVISE.
Shotkit rewrites only those prompts, into
prompts/round-2/. Round 1 stays as it was. Make the new frames and check again. - Step 06Terminal
Prove it, and send it.
Run every check on the run ~/.claude/shotkit-tools/sk validate output/It printed (first lines), and exited 0 Validating 1 storyboard set(s) ok output/shots.json All storyboard sets valid (0 warning(s)). Validating 1 snapshot file(s) ok output/brand-lock.snapshot.md All snapshot files valid (0 warning(s)). Validating provenance for 1 output tree(s) ok output (9 shot(s), 0 reviewed, rounds none)
It checks the shot plan, the brand lock and the prompts, and recomputes every hash in
run.json. Add--require-acceptand it exits 0 only when every shot has an accepted frame.Build the page for a client ~/.claude/shotkit-tools/sk preview output/It printed wrote output/preview.html
preview.htmlis the quiet version: the storyboard in the brand’s own colours and type, one file, and it prints to a clean PDF.
Next
Want it done for you? Get your company film