shotkit
Health Pass
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 25 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Plan a video in Claude Code. One line of brief becomes a board with every shot planned, prompted and checked. Frames and clips with your own fal.ai key.
Shotkit
Plan a video in Claude Code.
One line of brief becomes a board with every shot planned, prompted and checked.
Install · The board · Frames and clips · Quickstart · A live board

Six Claude skills and a set of small tools, built by WhyStrohm.
Free and open source under Apache 2.0. Nothing ships with a key.
Install
git clone https://github.com/whystrohm/shotkit.git
cd shotkit && ./install.sh
Restart Claude Code and type a brief:
/shotkit 30-second launch video for Harbor Roast, 9:16
Shotkit plans the shots, writes the prompts and opens the board in your browser. There is
nothing else to set up. The installer makes a private Python environment for the
validators, so pip and your system Python are left alone.

The board
One page for the whole run. It is a single HTML file in your output folder, it works
offline, and nothing is uploaded.
- Every shot at once. A contact sheet and a timeline with shots, on-screen text and
voiceover on separate tracks. - Prompts with a copy button. One tab per generator. Press
Cto copy the open one. - The critic's verdict on each frame, with what is working, what is not and the fix.
Earlier rounds stay one click away. - Copy for LLM. The whole storyboard, one shot or the brand lock as Markdown, ready
to paste into another model. - The next step, as a line to paste into Claude.
- Files checked against
run.json. A file that changed after the run is flagged. - Live mode.
sk board output/ --servereloads as files change. Drop a frame on a
shot and it is saved to the right folder under the right name. - Frames and clips, if you want them. With your own fal.ai key,
sk generatemakes
the stills and the video clips and files them. Seedocs/generate-with-fal.md.

See a finished run before you make one:
~/.claude/shotkit-tools/sk board --example
The demo at the top is the live board replaying one real Shotkit run in stages, then real
frames from three runs (an electrician, a studio launch, a coffee roaster) with their
on-screen text set over them. A silent MP4 is atdocs/images/demo.mp4.
What it does
You describe a video. Shotkit writes one folder:
output/
├── run.json # Run id + every input pinned by content hash
├── storyboard.md # Human-readable, shot-by-shot
├── shots.json # Schema-validated, machine-readable
├── text-overlays.json # On-screen text + timing
├── brand-lock.snapshot.md # Frozen brand state at generation time
├── prompts/round-1/ # One file per generator: flux.txt, kling.txt and eight more
├── frames/round-1/ # The frames: yours, or made with `sk generate`
├── clips/round-1/ # Video clips, one per shot, if you make them
├── board.html # The board. Where you work. Opens by itself.
├── critiques/round-1/ # One verdict per shot, hashing what it reviewed
└── preview.html # The page you send a client. Printable. Brand-aware.
Plain files an editor, an agency or a developer can act on. Nothing is uploaded and there is
no account. Everything is filed by round and shot, so round 2 never overwrites round 1.
The skills
| Skill | What it does |
|---|---|
shotkit |
One command. Runs the others in order and opens the board. Type /shotkit <brief> |
brand-lock-extractor |
Brand assets (URL / PDF / screenshots) → validate-ready brand-lock.md |
storyboard-architect |
Brief → structured storyboard (storyboard.md + shots.json) |
visual-prompt-forge |
Shot data → model-specific prompts for 10 generators (6 stills, 4 motion) |
visual-asset-critic |
Generated image + intent → markdown critique + machine-readable critique.json |
storyboard-html-preview |
Storyboard files → single-file shareable HTML |
They work alone. They work better together, the critic writes a machine-readable verdict the prompt-forge can act on, so generate → critique → revise → re-critique runs as a closed loop. See docs/the-qa-loop.md. They work in Claude Code, Claude.ai, and the Claude API.
Concepts fast. Finished video is a service.
Shotkit is for getting from an idea to something you can look at, quickly and many times
over. A marketing team can put ten concepts on ten boards in an afternoon, each with a
shot plan, on-screen copy, frames and short clips, all in the brand.
What it gives you is raw material and a plan, not a finished video:
- In Shotkit. The plan, the prompts, the checks, the board. With your own
fal.ai key, the frames and clips too:docs/generate-with-fal.md. - Not in Shotkit. The edit. Cutting the shots to time, setting the type, grading,
sound, every size a campaign needs, and posting.
The second list is what WhyStrohm does as a service. Every video is built from the same
plan, so the hundredth one matches the first. Ask about the full system at
[email protected] or whystrohm.com.
Bring your own key. Shotkit ships with no keys and calls nothing until you connect
your own fal.ai key. That key stays in your environment or a .env file git ignores.
The repo's checks fail if a key is ever committed.
To hand the files to your own editor instead, shots.json and text-overlays.json
carry every shot, length and line of text. Seedocs/connecting-to-generators.md anddocs/connecting-to-video-pipelines.md.
Docs
| Quickstart | A first run, in six steps |
| Frames and clips with fal.ai | Connect your key, pick a model |
| The check and revise loop | How a frame is sent back and fixed |
| Brand locks | What a brand lock holds, and how to make one |
| The audit trail | What run.json pins, and how to prove it |
| Background and reference | Why it exists, the method, brand packs, roadmap |
| Changelog | What changed in each release |
Contributing
Pull requests are welcome: a generator adapter, a beat framework, a brand pack, or a fix
with a test. Run tools/sk check first. See CONTRIBUTING.md and
SECURITY.md.
License
Apache 2.0. See LICENSE and NOTICE.
The Apache License 2.0 covers the code and documentation in this repository. It does not grant rights to the Shotkit name or the WhyStrohm name.
Who built this
WhyStrohm. For the finished video, write to
[email protected].
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found