- Category
- AI Agents
- Rank
- No. 2034Tools index
Previous survey · No. 2049 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Design & Media
- Interfaces
- Agent Skill / Plugin
- Builder
- latent-spaces
- GitHub
- 14.2k stars
- Date
About
brag is a Claude Code skill that turns a project you just built into a short, shareable launch video, including music, motion, and share copy, from a single command. It is powered by Hyperframes and also installs into Cursor, Codex, Copilot, Gemini CLI, opencode, and other agents via the skills CLI.
What it does
A set of written instructions that a coding agent follows to make a launch clip for whatever you just built. The agent reads your project's code, answers a nine-question planning rubric, writes a scene-by-scene storyboard with timings and sound cues, then renders a 15 to 25 second video with music and a ready-to-post caption. The classic path hands that storyboard to Hyperframes, a separate video tool that composes, checks and renders the clip. A newer slim variant drops Hyperframes and the bundled audio and has the model build every frame itself. There is no compiled program: the product is markdown plus one optional Python beat-detection script.
Why it's ranked here
The instructions are unusually concrete for a creative skill. Videos are capped at 15 to 25 seconds, readable text must hold for roughly 0.3 seconds per word, at least one scene has to show real product UI, and nine planning questions must be answered before anything is drawn. The project-reading step forbids carrying secrets, internal URLs or personal data into a video meant for public posting. It is MIT licensed and installs into Claude Code, Codex and any agent the open skills installer supports. The cost is a heavy toolchain on the classic path and output quality that rests on how well the model follows long prose.
What's good
Small details show real publishing experience. The delivery step picks the strongest settled frame as a poster and swaps it in as the very first frame, because Slack, X and Discord build thumbnails from frame zero and ignore cover-art metadata; duration and audio sync stay unchanged. Beat sync is optional and bounded: an included script scores each beat on onset strength, contrast, loudness and bass, and the instructions allow only one to three hard locks per video. The planning guide warns that revealing a line of text on every beat at fast tempos outruns reading, and says to snap to every other beat instead. Voiceover is strictly opt-in.
Tradeoffs
The classic path needs Node.js 22 or newer, FFmpeg on the system path and the Hyperframes command-line tool; the optional beat analysis adds Python 3.11 with librosa, numpy and scipy. The automatic switch to the slim variant is triggered by the model recognising that it is Opus 5.5, so the path taken depends on self-identification. The inspection step reads a landing page and its stylesheet first, so a command-line tool or library has less to show and falls back to a text-led video. Cross-agent discovery relies on symlinks, which on Windows need Developer Mode or administrator rights. Nothing beyond the renderer's own check verifies the result.
How to use it well
Best for someone who just shipped a web app with a real interface and wants a short clip for X, LinkedIn or a group chat without opening a video editor. Run it with defaults first, then steer with a tone preset such as deadpan or cinematic, or a freeform phrase, and choose vertical format for phone feeds. Preview before the final render and use draft quality while iterating. It does not cover tutorials, long product demos or narrated explainers: the length cap holds even with voiceover on, and headless projects give it little to show.
Technical notes+
skills/brag/SKILL.md is the orchestrator: it parses flags (--tone, --format landscape|vertical|square, --duration, --no-music, --no-sfx, --title, --voice), dispatches to a bundled slim copy when the model reports Opus 5.5 unless --full or --voice is passed, and routes four gated steps through skills/brag/references/step-1-inspect.md to step-4-deliver.md. Step 3 hands a composition brief to the hyperframes-core/animation/creative/keyframes/cli skills, with npx hyperframes check as the single pre-render gate, including WCAG contrast. step-4-deliver.md bakes the poster via an ffmpeg overlay with enable='eq(n,0)' and audio copied through. skills/brag/scripts/analyze_music_cues.py uses librosa with HOP_LENGTH 512, weights intensity as 0.45 onset + 0.25 local contrast + 0.20 RMS + 0.10 bass (30 to 180 Hz), dedupes cues within 0.18s and keeps at most 64 strong cues at intensity 0.45 or above; skills/brag/scripts/pyproject.toml pins requires-python >=3.11. plugin.json and .claude-plugin/plugin.json both declare version 0.4.0, MIT. skills/brag-slim/SKILL.md is a single self-contained file that also accepts a website URL as input.
Observed
- License
- MIT, declared in plugin.json and .claude-plugin/plugin.json
- Form
- Agent skill: markdown instructions invoked as a slash command, no compiled code
- Install surface
- Claude Code plugin marketplace, Codex plugin marketplace, skills CLI, or manual copy
- Runtime requirements (classic path)
- Node.js 22+, FFmpeg on PATH, Hyperframes CLI
- Optional Python tooling
- Python 3.11+ with librosa, numpy, scipy and soundfile for beat analysis
- Output
- MP4 video, JPG poster, plan, composition brief and a share caption
- Video length
- 15 to 25 seconds, landscape, vertical or square
- Voiceover
- Off by default; opt-in narration uses Kokoro through Hyperframes
- Variants
- Classic Hyperframes workflow and a single-file slim variant with no bundled assets
Read from README.md, plugin.json, .claude-plugin/plugin.json, PRODUCT.md, skills/brag/SKILL.md, skills/brag/references/step-1-inspect.md, skills/brag/references/step-2-plan.md, skills/brag/references/step-3-compose.md, skills/brag/references/step-4-deliver.md, skills/brag-slim/SKILL.md, skills/brag/scripts/analyze_music_cues.py, skills/brag/scripts/pyproject.toml, docs/other-agents.md.
Tags
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.