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
Skill

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.
All reasons and checks

uditakhourii/cdaf

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/cdaf

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended 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.

Skills
Editors’ pick

The /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

SkillBroad access20.6KRepository stars

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

SkillBroad access141Repository stars

The eyes CLI and skill for agents: a video index, search by words and on-screen text, close-up frames and editing metrics

CLIExtended access76Repository stars
Needs a VPN

A skill that turns an idea, a link or a screen recording into finished video: HeyGen avatar, b-roll, captions and quality checks

SkillBroad access343Repository stars

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

SkillExtended access624Repository stars

Video skills for Claude Code and Codex: break a clip into a shot-by-shot analysis and render video with a storyboard overlay

SkillExtended access1.2KRepository stars

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.

README badge

Report a problem