CDAF skill
Skill and .cdaf format: a text description of a video next to the file, so an agent reads it instead of re-watching the clip.
- 226 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The `cdaf generate` command uploads videos to the Gemini Files API with your key, and the footage leaves the machine.
- A model writes the description, which may contain gaps or mistakes that the agent relies on instead of watching the video.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/cdafDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The `cdaf generate` command uploads videos to the Gemini Files API with your key, and the footage leaves the machine.
- A model writes the description, which may contain gaps or mistakes that the agent relies on instead of watching the video.
This is third-party code. Review the repository files before installing.
What it does
CDAF is an open format: next to a video lies a file with the same name and a `.cdaf` extension. It holds a timestamped text description: summary, segments, speech transcript, on-screen text and tags. The header records the video's SHA-256 and size, so when the clip changes the description counts as stale. The skill installed by `npx cdaf-skill` teaches the agent a routine: before analyzing a video find the `.cdaf` file, check the hash, read the description instead of watching, and regenerate when stale. The `cdaf generate` command describes a folder of videos through Gemini with your key, while `cdaf status`, `cdaf read` and `cdaf validate` work without a key. In the author's benchmark on Gemini 2.5 Flash, answers from the description matched analysis of the video itself (20 of 20 versus 19 of 20) with 10.1 times fewer prompt tokens.
Who it is for. Developers of video editing on Remotion or HyperFrames and anyone whose agents repeatedly analyze the same clips in Claude Code.
Good fit when
- An agent edits a clip from 40 source videos and re-watching them every time is too costly.
- Shots are selected by a query like "sunset by the sea, no people", done as a grep over descriptions.
- Segment timestamps feed straight into a Remotion cut list.
- A clip was re-edited and its description has to be caught as stale by the hash.
Not a fit when
- A video is analyzed once and never reused: producing a description does not pay off.
- Sending video to a third-party service is forbidden, while descriptions are generated through Gemini.
- Exact frame-by-frame motion analysis is required, while the description gives only a text retelling.
Example request
Before watching the clips in the footage folder, check the .cdaf files and generate new descriptions for stale ones.Limitations
Generating descriptions needs Python 3.10 or newer, a Gemini API key in `GEMINI_API_KEY` and a CLI install from the repository: there is no PyPI package yet. Videos go to the Gemini Files API in the process. Reading, validation and status need neither a key nor dependencies. ffprobe is useful to record the duration precisely. The stated savings come from the author's own test clips and will differ on your material.
How to disable. Delete the skill folder `~/.claude/skills/cdaf` and the package with `pip uninstall cdaf`. The `.cdaf` files next to videos are harmless and can stay or be removed.
FAQ
How do I install the CDAF skill?
Run `npx cdaf-skill`. The skill lands in `~/.claude/skills/cdaf`. The `--project` flag installs it into the current project only.
How do I create descriptions for a folder of videos?
Install the CLI from the repository, set `GEMINI_API_KEY` and run `cdaf generate ./footage`. Fresh descriptions are skipped.
What does a stale description mean?
The hash or size in the `.cdaf` header does not match the video. In that case `cdaf read` refuses to print the text.
Does the format work with other agents?
Yes. The whole contract fits in one paragraph of system instruction, printed by `npx cdaf-skill --print`.
Is a key needed to read existing descriptions?
No. The `read`, `validate` and `status` commands work without a key and without dependencies.
Discussion
No questions or reviews yet.
Related
SkillsThe /watch skill turns a link or file into frames and captions, or with a Gemini key hands the whole video to Google for the agent to answer from
Motion Video Skill
motion-video-skill
1080p beat-synced video: HyperFrames and GSAP, voice-over, karaoke captions, sound effects and music. Provider keys are kept in the CLI configuration
The eyes CLI and skill for agents: a video index, search by words and on-screen text, close-up frames and editing metrics
A skill that turns an idea, a link or a screen recording into finished video: HeyGen avatar, b-roll, captions and quality checks
ChatGPT short-video editing skills
ChatGPT 剪短影音 Skills
Two agent skills: set up the editing environment and build a vertical short video in eight verified steps
Video skills for Claude Code and Codex: break a clip into a shot-by-shot analysis and render video with a storyboard overlay
README in short
The repository holds the format specification v1.0, a Python core and CLI, a Claude Code skill, a reproducible benchmark on synthetic clips and a paper draft. The format rests on the video hash in the header.