# Dailies
Dailies is a skill for Claude Code that makes finished videos. You describe an idea or hand over footage, and Claude shows you real frames of the video before it renders the whole thing. Once you approve those frames, it builds the video and delivers an MP4.
I have been working on this after watching agents render an entire video before anyone could check whether the typography worked or the captions covered someone's face. In film, the frames a director reviews before anything is locked are called dailies, and this skill works the same way. Every approval frame comes from the same renderer as the final video, so what you approve is exactly what you get.
## How it works
There are two main paths, and most requests fall into one of them.
**Videos built from nothing** (explainers, kinetic typography, data animations, product promos). Claude takes a short brief, suggests a visual style, and renders three to six styleframes of your actual content. After you approve them, it finishes the animation, adds sound, and renders the video. The animation is an HTML composition that is rendered frame by frame in a headless browser and encoded with ffmpeg, so anything a web page can display (type, SVG, canvas, WebGL, video) can appear in the video.
**Videos built on your footage** (camera clips, phone videos, screen recordings, gameplay, podcasts). Claude probes and normalizes the files, transcribes the speech with word timings, finds shot changes and silences, and builds a contact sheet so it can see what you shot. It then draws its planned overlays (captions, lower thirds, callouts) on top of frames from your own footage and shows you those. After you approve them, it assembles the edit with frame-accurate cuts.
Between the brief and the final render, there are a few decisions where you can take over or leave Claude to it.
- **Style.** Claude can show you directions from the bundled reference library, use a style you bring yourself, or propose one of its own.
- **Design system.** Claude can work from your brand kit, a Figma file, a website or a `DESIGN.md`. With none of those, it builds a system for the project or renders two or three directions for you to choose from. There is no house style, because every video should look like it belongs to its own subject.
- **Audio.** For voiceover, music and sound effects, you can supply your own, Claude can make simple versions itself, or you can use a tool of your choice. When you go with a third-party tool, Claude writes the prompts and tells you where to save the files.
## What it can make
- Explainers in the style of editorial video essays, with diagrams, maps and annotation
- Kinetic typography and lyric videos synced word by word to the voice
- Product demos and screencasts with zoom-ins, callouts and a facecam
- Shorts, Reels and TikToks cut from long videos, reframed to vertical with word-highlight captions
- Talking-head edits with jump cuts, punch-ins, B-roll and lower thirds
- Gaming and reaction layouts, photo montages, seamless lo-fi loops
- Storyboards and animatics for pitching a film
- Captions only, a voiceover only, or a set of prompts for image, video, voice or music generators
The skill also covers dubbing and translation, AI avatar presenters, multi-format exports, thumbnails, and delivery under file-size limits. A separate reference handles harder situations: other writing systems, damaged files, missing tools, and requests that need care, such as cloned voices or copyrighted music.
## Installing
The repository is a plugin marketplace for both Claude Code and Codex, and the skill itself lives in `skills/dailies`, so it also works with any tool that reads Agent Skills.
**Claude Code.** In a session, on Claude Code 2.1.275 or later:
```
/plugin install dailies --marketplace omrajguru/dailies
```
Or from your shell:
```bash
claude plugin marketplace add omrajguru/dailies
```
```bash
claude plugin install dailies@omrajguru
```
Claude Code installs the renderer's Node dependency from the lockfile when it installs the plugin.
**Codex.**
```bash
codex plugin marketplace add omrajguru/dailies
```
```bash
codex plugin add dailies@omrajguru
```
**Skills CLI**, for Claude Code, Codex and other agents that read skill folders:
```bash
npx skills add omrajguru/dailies
```
**By hand.** Clone the repository and copy `skills/dailies` into your agent's skills folder, which for Claude Code is `~/.claude/skills/dailies`.
After installing, ask the agent to check the toolchain, or run `scripts/doctor.py` inside the skill folder yourself. It reports what is installed and prints the exact install command for anything missing, including the renderer's dependency when your install method didn't add it.
## Requirements
- **ffmpeg and ffprobe**, ideally a full build (it includes libass for captions, vidstab for stabilization and zimg for HDR footage)
- **Node 18 or newer**, plus `playwright-core` (the doctor script prints how to install it for your setup)
- **Chrome, Edge or Chromium.** The renderer uses an installed browser when it finds one, so there is usually nothing extra to download.
- **Python 3.10 or newer** with Pillow
Optional extras: faster-whisper (or openai-whisper, or whisper.cpp) for transcripts and word timing; librosa for beat detection; mediapipe for face tracking when reframing; Piper or Kokoro for offline text-to-speech.
## The reference library
The skill draws on 110 reference images across 11 styles: editorial video essays, cinematic essays, talking heads, storyboards, mixed-media collage, kinetic typography, screencasts, gaming capture, POV, reaction videos and lo-fi B-roll. The repository holds their credits, not the images. Each style folder under `skills/dailies/image` has a `SOURCES.md` with the creator, the source page, the direct image link and how the image is processed, and `image/sources.json` holds the same information in structured form. The first time a style is needed, `scripts/refs.py fetch` downloads its images from their original URLs on your machine and builds a contact sheet. If an image has since gone offline, Claude works from the written style notes and the source link instead.
Claude uses these images for direction, not as material. It takes the principles that make a reference work and applies them to your content, and when no reference fits, it designs from first principles. Whenever it shows you a reference, it tells you where the image came from. Reference images and their credits never appear in a rendered video. The credits do not grant any right to reuse the images, and the rights stay with their creators.
## Third-party tools
Claude can't produce natural human voices, photoreal images or real music on its own. When a video needs them, it lists options grouped by what you need (language support, offline use, commercial rights, price) instead of recommending one vendor, and it includes free and open-source options where they exist. The directory covers text-to-speech (including Sarvam AI for Indian languages, ElevenLabs, OpenAI, Google, Azure and open models), avatars, video and image generation, music, sound effects, dubbing and stock footage. I have no affiliation with any of these companies.
Before calling a paid API on your account, Claude estimates the cost and asks first. API keys are read from environment variables and never requested in chat.
## Repository layout
```
.claude-plugin/ Claude Code plugin manifest and marketplace
.agents/plugins/ Codex marketplace
plugin.json portable plugin manifest (read by Codex)
package.json, package-lock.json the renderer's Node dependency
skills/dailies/
SKILL.md the workflow Claude follows
references/ detailed guides, loaded only when needed
style-library.md notes on the 11 reference styles
design-system.md taking in a brand, deriving a system, video legibility rules
workflow-motion.md the composition runtime, storyboards, transitions, rendering
workflow-footage.md ingest, edit.json, captions, reframing, ffmpeg recipes
cases.md Shorts, screencasts, montages, loops, dubbing and more
audio.md voiceover, music, sound effects, mixing and loudness
providers.md third-party tools, grouped by need
prompts.md prompts for image, video, voice and music generators
platforms.md export specs and safe zones
ethics.md consent, rights, disclosure, credits
difficult-situations.md unclear briefs, problem files, missing tools, sensitive requests
scripts/
render.mjs HTML composition to MP4, alpha overlays or stills
ingest.py probe, normalize, shots, silences, transcript, contact sheet
assemble.py cuts, punch-ins, reframing, transitions, overlays, captions
captions.py word-level transcript to SRT and styled ASS
mix.py voice, music, effects and ducking to a loudness target
sfx.py procedural sound effects with no samples or licenses
qa.py format, black or frozen frames, loudness, contact sheet
review_page.py the local page used for each approval
refs.py fetch, browse and credit the reference images
contact_sheet.py, doctor.py
templates/composition/ the starting point for every motion project
image/ credits for the reference images (images download on first use)
```
## Limitations
Claude follows footage through extracted frames and a transcript rather than by watching it, so motion quality and comedic timing are things it will ask you about. The sound effects it generates are clean but simple, and any music it makes on its own is limited to basic ambient beds. Rendering runs at roughly 10 to 30 frames per second on a typical laptop, so a one-minute video takes a few minutes. Platform specs and provider terms change often, so the skill treats its tables as a starting point and tells you to confirm details that matter.
## About
I'm Om. I write about the things I work on at [omrajguru.com](https://omrajguru.com) and on [Substack](https://omrajguru.substack.com), post on [X](https://x.com/NotOmRajguru), and publish my other skills on [skills.sh](https://skills.sh/omrajguru).
The code in this repository is released under the MIT License. The reference images belong to their creators, are not part of this repository, and are not covered by that license; see `skills/dailies/image/SOURCES.md` for credits.