Documentation
Auto-captions and 31 video tools that run on your own machine, driven by Claude Desktop, Claude Code or Cursor. Your footage never leaves the machine.
Install
Requires WSL + Node.js 18+ + FFmpeg. whisper.cpp auto-downloads on first caption use.
sudo apt install ffmpeg
npm i -g @spark-apps/vidlet
claude mcp add vidlet -- vidlet-mcpFor Claude Desktop or Cursor, add it to the app’s MCP config instead:
{
"mcpServers": {
"vidlet": { "command": "vidlet-mcp" }
}
}Added it while your agent was already running? Restart the session. An MCP tool list is negotiated once, when the session connects, so a server added mid-session stays invisible until then.
Example prompts
Once it is connected, just ask for what you want:
"Caption demo.mp4 in the hormozi style"
"Cut the dead air out of this recording and add a punch-in zoom"
"Blur anything sensitive in demo.mp4 before I publish it"
"Preview the music beds, then score it with the calm one"
"Open that project in the Vidlet editor"A fuller one, spelling out the story order and the answers to the questions it would otherwise stop and ask:
Make a Short from these two screen recordings, modeling first
then rigging:
~/recordings/blender-modeling.mp4
~/recordings/blender-rigging.mp4
music: ~/music/synthwave-loop.mp3
Then give me the video url, the .vidlet source, and the render time.Some tools stop and ask before rendering: which music bed, and whether the drafted narration is right. Your agent relays those questions to you and calls again with your answers, so nothing is encoded until you have approved the script.
Auto-captions
generate_captions transcribes your video locally with whisper.cpp and burns in styled captions. No API key needed. No cloud upload. It also saves the transcript as a .vidlet project, so fixing a wrong word later is an edit and a re-render, not a second transcription.
Jump cuts
auto_jump_cut detects silence, cuts dead air, and adds an alternating punch-in zoom — the editing style behind every fast-paced YouTube video, in one tool call. It never overwrites your input: output lands in a VidLet/ subfolder beside the source.
One-call Shorts
generate_short goes from raw recordings to a finished vertical Short: dead air cut, retakes dropped, narration written and spoken, captions burned, music ducked underneath. Ask for preview_short first — it runs the identical pipeline at draft quality, so you approve the story before paying for the real render.
When it is ready, upload_to_youtube publishes to your own channel behind an approval gate: it shows you the title, hashtags and thumbnail, and waits.
All 31 tools
Every tool runs locally over a stdio server. There are no delete or move tools by design — outputs are always new files.
Video files
probe_video— Duration, resolution, fps, codec, bitrate. Read-only.generate_captions— Transcribe locally with whisper.cpp, burn styled captions.auto_jump_cut— Cut silence, add alternating punch-in zoom.speed_up_video— Change speed; audio keeps its pitch.trim_video— Cut to a start/end range by stream copy.compress_video— Re-encode with H.264 to shrink the file.extract_audio— Pull the audio track out to its own file.convert_to_gif— Palette-optimized GIF.
Shorts
generate_short— Raw files in, a finished captioned Short out.preview_short— A fast low-quality draft of the same edit, to approve first.preview_music— Audible samples of the bundled CC0 beds, mixed at Short level.add_music— Lay a bed under an already-rendered video, ducked under speech.mask_sensitive— Find cards, emails, keys and addresses on screen and blur them.
Studio
setup_recording— Open the browser with your script in the teleprompter.generate_voiceover— Narration from a script (free Edge TTS, or a cloned voice).create_short— Landscape video to 9:16, AI picking the strongest moments.create_timelapse_short— Long screen recording to a fast 9:16 Short.create_demo— The silent-screen-recording pipeline: trim, watch, narrate.
.vidlet projects
create_project— Build a .vidlet layered-edit file from a story source.validate_project— Parse against the v1 spec and check the media resolves.render_project— Render to MP4 with native ffmpeg (NVENC when available).open_in_editor— Open the project in the browser editor, via the URL hash.add_voiceover_to_project— Generate narration and register it as a ducking track.tighten_project— Cut the dead tail after the last spoken word.
Branding
create_og_intro— An opening card for the video.create_og_outro— A closing card for the video.create_showcase_cards— Both cards for an app showcase, from one URL.
YouTube
connect_youtube— Connect a channel through the vidlet.app OAuth broker.upload_to_youtube— Publish, behind a human approval gate.rotate_youtube_test— Advance the title/thumbnail A/B test on an upload.
Discovery
list_capabilities— Every tool with a one-line description. No file I/O.