Skip to content

Turn your agent into a video editor

Your agent writes code. Now it makes videos.

Reelkit is a CLI and a skill for coding agents. An editor-grade video in minutes, with no editing skills and no assets to prepare.

Read the install guideCopy instructions for your agentCopy agent instructions

Works with

  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • any other agent

Install with one command

Needs Node 22 or newer and ffmpeg.

# the whole installnpm install -g reelkit-cli
# then start a project. This also puts the skill into your agentsreelkit init my-video

How a video gets made

Reelkit is a CLI and a skill for coding agents like Claude Code and Codex. Your agent plans the video and builds it in Remotion; Reelkit handles the rest: library assets, voiceover, images, short video clips and background removal.

Eight steps, in this order. The agent does the work and stops twice for your yes.

  1. Inputs

    The agent finds out what the video is about and collects what you have. It looks at each file you give it and registers it with a description of what it shows. You can also hand it a reference video, as a link or a file: it studies the structure, the pacing, the cuts and the words, and nothing from the reference itself goes into your video. Your files and the reference stay on your machine. What can leave it: a file you share with --share, a video you send for background removal with --cutout, and the reference's audio, sent to be transcribed unless you pass --no-transcript.

  2. Look

    You and the agent agree on one visual style for the whole video: one of ten ready looks, or your own.

  3. Plan

    The agent writes plan.json: three to eight scenes, each with narration, on-screen text and a treatment. reelkit plan check lists what to fix. Then the agent shows you the title, the length and every scene, and waits for a clear yes.

    You approve the plan

  4. Voice

    The agent picks a narration voice that fits the idea and the language. reelkit assets voiceover --all records every scene and reports the real length of the video.

  5. Images and clips

    For each illustration scene the agent searches the shared library first and pulls an image that fits. Only when nothing fits does it generate one. No two scenes share an image. A scene that needs footage gets a short video clip the same way. The agent can also remove the background from a clip or from your own footage, so the subject sits over something else.

  6. Composition

    The agent writes the Remotion composition in src/Video.tsx and reuses library components and sounds where they fit. reelkit check must pass before anything is rendered.

  7. Preview

    reelkit preview renders two test frames per scene. The agent looks at each frame for cut-off text, low contrast and empty frames, and fixes what it finds. Then it shows you the frames and waits for a clear yes.

    You approve the frames

  8. Render

    reelkit render renders out/video.mp4 on your machine and prints the path.

Every command

Every command and every flag, grouped by what it is for.

Account

3 commands
CommandWhat it does
reelkit auth login

Log in to Reelkit. Run it yourself and your browser opens on the approval page; the command waits while you approve. An agent cannot wait, so it runs reelkit auth login --start, shows you the one link it returns (the code is in it), and then runs reelkit auth login --finish.

--start
Begin a login and return at once with one link that has the code in it. For an agent.
--finish
Finish a login begun with --start. It waits up to a minute and can be run again.
--no-browser
Do not open the browser; print the link and code only.
reelkit auth logout

Log out and remove the stored token.

reelkit whoami

Show your account, your quota and your contributions to the library.

Project

2 commands
CommandWhat it does
reelkit init [name]

Set up a video project in a new folder named after it, or in the current folder when you give no name.

--aspect <aspect>
The shape of the video: 9:16, 16:9 or 1:1.
reelkit install

Install or reinstall the Reelkit skill in your coding agents, and a /reelkit-video command where the agent supports one. Optional: reelkit init and reelkit auth login do it on their own.

--agent <id>
Install for one agent: claude, codex, cursor, gemini or agents, or all. The default is every agent found on your machine.
--force
Reinstall even when the installed copy is up to date.

References

4 commands
CommandWhat it does
reelkit ref download <url-or-file>

Bring an existing video into the project as a reference, at most 10 minutes long. A link is downloaded on your machine with yt-dlp; a file is copied and needs nothing extra. The reference is saved under refs/<id>/ and stays on your machine.

--redo
Download a link again even if it is already in the project.
reelkit ref audio <id>

Save the reference's audio as refs/<id>/audio.mp3, on your machine. Nothing is sent.

reelkit ref analyze <id>

Measure how the reference is built and write refs/<id>/breakdown.json: the scenes (up to 40) with two sample frames each, the cuts and the pacing, the colours, the loudness, the tempo and the beats. All of that runs on your machine. For the transcript, the audio, never the video, is sent to the Reelkit server: the audio is deleted when the call ends, and the transcript text is kept. Transcription is counted in whole seconds against a monthly quota.

--no-transcript
Do not send the audio to the Reelkit server. Everything else is measured as usual, on your machine.
--redo
Measure again even if a breakdown exists. The audio is transcribed again too, and counts against the quota again.
reelkit ref list

List the references in this project, and which of them are analysed.

Assets

7 commands
CommandWhat it does
reelkit assets upload <file>

Add one of your own files to this project. It stays on your machine and private unless you pass --share; with --cutout the video is uploaded to the Reelkit server to be processed.

--describe <text>
What the file shows.
--footage
Use this video as the footage to lay the motion design over.
--green
For a video of a subject on a green background: keeps the original and writes a copy with the green made transparent. Free, and it runs on your machine: nothing is uploaded. A green too dull to key is refused, and the command points to --cutout.
--cutout
Removes any background. This uploads the video to the Reelkit server, which removes the background and returns a transparent .webm that is saved beside the original. The upload is deleted when the job ends; the transparent result is kept in your private files on the server and shows on your account page. Up to 20 seconds a video, counted in whole seconds against a monthly quota, only when it succeeds.
--resume <id>
With --cutout: keep waiting for a cutout that was already started. It does not upload the video or count against your quota again.
--share
Also send the file to the shared library.
--kind <kind>
The library kind, when sharing.
--tags <tags>
Comma-separated tags, when sharing.
reelkit assets search <query>

Search the shared library by meaning. Each result shows how well it fits.

--kind <kind>
Limit the search to image, overlay, sfx, music, component or clip.
--limit <n>
How many results to return.
reelkit assets pull <id>

Download a library item into this project. A component lands in src/ and the command prints how to import it.

--scene <sceneId>
Use the item as this scene's image or clip.
--force
Replace a component file that already exists.
reelkit assets voices

List the narration voices.

reelkit assets voiceover

Record the narration from plan.json.

--scene <sceneId>
Record one scene.
--all
Record every scene.
--redo
Record again even if a recording exists.
reelkit assets gen image [prompt] --scene <sceneId>

Generate one scene's illustration. It needs --scene. The prompt is optional and defaults to the one in the plan.

--scene <sceneId>
Required. The scene the image is for.
--redo
Generate a new image even if the scene has one.
reelkit assets gen clip [prompt] --scene <sceneId>

Generate a short video clip for one scene: B-roll, or with --green a subject on green that is keyed out into a transparent clip, or with --cutout a normal clip whose background is then removed on the server. It needs --scene and takes minutes. Search the library first with --kind clip.

--scene <sceneId>
Required. The scene the clip is for.
--green
Film the subject on green and key the green out into a transparent .webm. The keying is free and runs on your machine. When the generated green is too dull to key, the subject is cut out on the server instead: the command says so, and it uses seconds of the background-removal quota.
--cutout
Generate the clip as usual, then remove its background: the clip is uploaded to the Reelkit server and a transparent .webm comes back. The upload is deleted when the job ends; the result is kept in your private files. It also counts against the monthly background-removal quota.
--seconds <n>
The length of the clip: 5 or 10 seconds. The default is 5.
--share
Also send the clip to the shared library, for review. Only for a generic clip.
--redo
Generate a new clip even if the scene has one.
--resume <id>
Keep waiting for a clip that was already started. It does not count against your quota again.

Build

4 commands
CommandWhat it does
reelkit plan check

Validate plan.json and list what to fix or improve. A plan that names a reference needs that reference analysed first, and the check says when its scenes are much slower or faster than the reference's shots.

reelkit check

Check the composition in src/ without rendering it.

reelkit preview

Render two test frames per scene into out/preview/.

reelkit render

Render the video to out/video.mp4.

On every command

--json
Print the result as JSON. Every command accepts it, and a failure exits non-zero with a one-line reason.

Recipes

Command sequences for common jobs. A line that starts with # is something the agent does itself.


A first video from an idea

15 lines

The sequence an agent runs: log in, set up a project, plan, record, compose, check and render. If you log in by hand, run reelkit auth login instead of the first three lines.

reelkit auth login --start
# show the person the link, and wait for them to approvereelkit auth login --finish
reelkit init my-video --aspect 9:16
cd my-video
# write plan.jsonreelkit plan check
reelkit assets voices
reelkit assets voiceover --all
reelkit assets search "city skyline at night" --kind image
reelkit assets pull <id> --scene intro
# write src/Video.tsxreelkit check
reelkit preview
reelkit render

An app demo from screenshots

11 lines

Register your real screenshots, list them in the plan and build the demo around them. Never generate app UI.

reelkit init app-demo --aspect 9:16
cd app-demo
reelkit assets upload ./home.png --describe "Home screen with the weekly summary"
reelkit assets upload ./checkout.png --describe "Checkout screen after choosing a plan"
# write plan.json and list the uploaded ids in each scene's userAssetIdsreelkit plan check
reelkit assets voiceover --all
# write src/Video.tsxreelkit check
reelkit preview
reelkit render

Make one like this

14 lines

Give the agent a video you like and it builds a new one with the same structure and pacing. You need the right to download any video you point it at, and downloading from some platforms can be against their terms; a file already on your machine is the simplest path. Reelkit takes structure and pacing from a reference, never its footage or music.

reelkit init like-this --aspect 9:16
cd like-this
reelkit ref download ./example.mp4
# a link works in place of the file; it needs yt-dlp# ask the person first: the next line sends the reference's audio to Reelkit to be transcribedreelkit ref analyze <id>
# look at the frames in refs/<id>/frames/ and read refs/<id>/breakdown.json# write plan.json, with the reference's id and what you took from it in its reference fieldreelkit plan check
reelkit assets voiceover --all
# write src/Video.tsxreelkit check
reelkit preview
reelkit render

Reuse a library sound and component

5 lines

Search the shared library before writing anything new, then pull what fits into the project.

reelkit assets search "whoosh" --kind sfx
reelkit assets pull <id>
reelkit assets search "animated counter" --kind component
reelkit assets pull <id>
reelkit check

Change the script and re-record

6 lines

Edit the narration in plan.json, validate it and record the changed scene again.

# edit the scene's narration in plan.jsonreelkit plan check
reelkit assets voiceover --scene intro --redo
reelkit check
reelkit preview
reelkit render

One library, shared by everyone

Assets that anyone can search and pull into a project. Browsing is open. Pulling needs the CLI and an account.

  • --kind image

    Images

    Illustrations and pictures that fill a scene.

  • --kind overlay

    Overlays

    Ready-made clips such as film marks and HUD frames, laid over the video.

  • --kind sfx

    Sound effects

    Short sounds such as whooshes and transitions.

  • --kind music

    Music

    Background tracks.

  • --kind component

    Components

    React code for a piece of motion design. It runs on your machine when you preview or render.

  • --kind clip

    Clips

    Short video clips.

  • component

    OrbitItems

    Small tiles that fly out from the centre and circle a pill of text in a tilted ring, nearer ones larger and sharper, and can all be pulled back into the centre. For 'everything you need' and 'works with all of these'. Takes kit glyphs, platform marks or the user's own pictures.

  • component

    TiltCard

    A screenshot on a floating card that swings in from a steep angle in perspective, settles at a slight tilt with a deep soft shadow, keeps drifting, and can turn to face the viewer. The way interface shots are shown in launch films. Pass src={urls[key]} of a real screenshot; never fake an app screen.

  • overlay

    X (film badge)

    A 5 second white-on-black film badge overlay reading "X", made to be laid over footage with the screen blend so only the white marks show.

  • A smartphone lying on a table with soft orange heat waves rising from it, flat vector illustration, dark moody background, warm orange and red tones, empty space at the top and bottom.

    image

    A smartphone lying on a table with soft orange heat waves rising from it, flat…

  • component

    GlowBackdrop

    The background of a product launch film: a clean off-white or near-black ground with one soft pool of coloured light that breathes and drifts slowly at an edge, and an optional faint dot grid. Place it once, under everything, instead of a flat colour.

  • component

    IssueBoard

    A dark, precise issue tracker in the style of modern product tools: rows of tasks with status rings that go from empty to half to a filled tick as work gets done, while a progress bar advances. For shipping, sprints, roadmaps and 'done'. Use doneAt to time each task to the narration.

  • sfx

    Camera Shutter

    One crisp camera shutter click. For a screenshot, a photo, a freeze frame.

  • music

    Calm Keynote

    A slow, spacious ambient piece with soft piano notes, a deep pad and a quiet pulse. For premium reveals, hardware close-ups and calm keynote-style moments.

Browse the library

The deal

Reelkit is free to use. Browsing the library is open to everyone; pulling needs the CLI and a free account, which you get by running reelkit auth login.

  • Some steps have quotas. reelkit whoami shows what you have left.
  • Illustrations that your plan marks as generic, and anything you add with --share, go to the shared library for review. Other people can then reuse them.
  • Your own files, your plan and your video stay on your machine, and so does a reference video. Three things can leave it:

    • A file you share with --share goes to the shared library.
    • A video you send with --cutout goes to the server for background removal. It is deleted there when the job ends; the transparent result is kept in your private files.
    • A reference video's audio, never the video, goes to the server to be transcribed. The audio is deleted when the call ends, and the transcript text is kept. With --no-transcript nothing is sent.

What leaves your machine, and where it goes

Install Reelkit