brag

latent-spaces/brag · Agent Skill

Turn a finished project into a short shareable launch video with motion, music, and copy.

Jump to install ↓

Overview

Publisherlatent-spacesOrganization
Repositorylatent-spaces/brag ↗
Skill folderbrag
Stars18,784
Forks1,445
Bundled files11
LicenseMIT
Last updatedOctober 23, 2026
LinksSkill source ↗ · Repository ↗

Mozgi check

What we found in the skill files. Details come with a subscription.

Security
medium risk · 2 points need attention
Compatibility
needs extra software
Similar skills
72 similar skills found
Also with subscription

Installation

A skill is a folder with a SKILL.md file. Pick your agent and run the commands in a terminal (macOS, Linux or Git Bash on Windows) from your project root.

Copy the prompt into Claude, Codex or another assistant: it will review the skill and install it for you.

Install the “brag” skill from mozgi.io (https://mozgi.io/skills/latent-spaces-brag/) for me.

1. Download the archive: https://mozgi.io/skills/latent-spaces-brag/download
   If it fails, take the skill folder from the source: https://github.com/latent-spaces/brag/tree/main/skills/brag
2. Read SKILL.md and the other files. Check the skill is safe: no hidden commands, no sending data elsewhere, no scripts doing something other than described. If anything looks suspicious, stop and tell me.
3. Put the “brag” folder into your agent's skills folder: .claude/skills/ for Claude Code, .agents/skills/ for Codex, .cursor/skills/ for Cursor, .gemini/skills/ for Gemini CLI. Inside the project if we are in one, otherwise in the home folder (~/.claude/skills/ etc.).
4. Make sure <skills folder>/brag/SKILL.md exists.
5. Briefly tell me what this skill does and offer to try it on my task.

If you cannot do a step yourself, tell me what to click or type.

Review the source files

11 files Download Zip

Read SKILL.md and any companion files before deciding whether to install. Click a file to preview it.

SKILL.md contents

Original author text · read-only

/brag

You built it. Now let's brag about it.

Invocation dispatch (must happen first)

Model check. If you are Claude Opus 5.5 and the invocation doesn't ask for the full workflow (--full, "use the full brag") or for voiceover (--voice, which brag-slim doesn't do), switch to brag-slim: read <skill-dir>/slim.md (the /brag-slim skill, bundled here) and follow it for the rest of this run instead of this file. Pass along the user's input, and pass any other options (--no-music, --title, …) as plain-language direction. Tell the user in one line first, e.g. "You're on Opus 5.5, so I'm using /brag-slim: I build the whole video myself. Say 'use the full brag' to switch back." If you are any other model, or can't tell which model you are, skip this check.

Before inspecting the project, parse the complete /brag invocation. If the

invocation contains --voice, set voice.enabled = true. Enable narration

only for that run. Do not enable narration automatically and do not fall back

to the normal no-voice workflow.

/brag turns the current project website or app into a short, polished, shareable launch video using Hyperframes. It is narrow, opinionated, and fun.

What this skill does

1. Reads the current project code to understand the app.

2. Plans a short brag concept specific to this project.

3. Scripts and storyboards the video.

4. Hands a focused composition brief to Hyperframes.

5. Validates, renders, and writes share copy.

Parsing the invocation

The user may invoke with natural language or flags:

/brag
/brag --tone chaotic
/brag --tone polished --format vertical
/brag this. Make it feel like a ridiculous startup launch.

Parse these options:

| Option | Values | Default |

|---|---|---|

| --tone | preset or freeform description | inferred |

| --format | landscape, vertical, square | landscape |

| --duration | seconds | auto (15-25s) |

| --no-music | flag | music on |

| --no-sfx | flag | sfx on |

| --title | string | inferred from project |

| --voice | flag | narration off |

Voice is opt-in. If --voice is present, use Kokoro via Hyperframes and do

not add any provider-selection logic. The voice workflow is intentionally

single-provider.

Tone can be a preset (default, polished, yc-parody, chaotic, deadpan, cinematic, app-store) or a creative direction such as "fake Series A launch from 2016", "museum exhibit", or "overproduced mobile game ad".

When the user gives freeform tone direction, map it to the nearest preset for pacing and structure, but preserve the user's direction in the plan and composition brief.

Narration guidance

When --voice is enabled, write narration that complements the visuals, does

not simply read visible text, matches scene pacing, sounds natural and

conversational, and moves smoothly between scenes. Keep the script concise and

specific to the product so the voice feels like part of the edit rather than a

separate narration track.

---

Output directory

By default, output goes to brag-output/. To avoid overwriting previous runs, use a timestamped directory:

brag-output-2026-05-04-143022/

Use a timestamp when:

  • The user explicitly asks for a new run without overriding previous results
  • A brag-output/ directory already exists in the project

Generate the timestamp at the start of the run (YYYY-MM-DD-HHmmss) and use it consistently for all output paths in that run: plan, brief, composition, render, and share copy.

Skill directory

<skill-dir> is the directory containing this SKILL.md. Claude Code prints it as "Base directory for this skill" when the skill loads; for other agents it's wherever the skill was installed. Bundled assets are under <skill-dir>/assets/ and scripts under <skill-dir>/scripts/. Don't guess an install path: a plugin install, a ~/.claude/skills/ copy, and this repo all put it somewhere different.

---

Step 1: Inspect the project

Read: references/step-1-inspect.md ↗

Scan the project directory and extract the information needed to plan the brag video.

Gate: You can answer all 9 questions in the brag planning rubric.

---

Step 2: Plan and storyboard

Read: references/step-2-plan.md ↗

Write <output-dir>/brag-plan.md (where <output-dir> is brag-output/ or the timestamped variant chosen above). Answer the planning rubric. Commit to a creative angle. Write the beat-by-beat storyboard including scenes, text, timing, transitions, and SFX cues.

When music is selected, include a compact Music cue guidance section: read the bundled track's cue preset from <skill-dir>/assets/music/cues/ if present, otherwise note cues will be detected at composition time (any track now supports beat sync — see references/audio.md). Cue metadata is optional timing guidance only: story, readability, pacing, and product clarity stay primary.

Gate: <output-dir>/brag-plan.md exists with a full storyboard. Scene durations sum to 15–25 seconds.

---

Step 3: Hand off to Hyperframes

Read: The Hyperframes skills — hyperframes (contract, references/format.md, references/motion.md, references/look.md), hyperframes-cli, hyperframes-registry, and media-use for audio. /brag is its own workflow: skip the hyperframes storyline step: don't read references/types/* or references/story.md, don't propose storylines, and don't write a SPEC.md. The brag plan and composition brief replace them, including the LOOK line references/look.md asks for. Also skip its usage, history, feedback and REVIEW.md steps; check is brag's gate. Do not route into its generic launch-video workflow.

Read: references/step-3-compose.md ↗

Read: references/audio.md ↗

Write the composition brief and use Hyperframes to create the video implementation in <output-dir>/composition/.

/brag owns the product angle, source material, storyboard, tone, format, audio selection, music cue guidance, and delivery expectations. Hyperframes owns the concrete composition structure, exact animation timing, animation mechanics, runtime choices, linting rules, and render workflow.

Gate: npx hyperframes check passes with zero errors inside <output-dir>/composition/ (the single browser gate before render — see hyperframes-cli for what it audits).

---

Step 4: Validate, render, and deliver

Read: references/step-4-deliver.md ↗

Validate, preview, render to <output-dir>/brag.mp4, pick the best poster frame into <output-dir>/brag.jpg, bake that poster as the video's frame 0 so it's the idle thumbnail everywhere, and write <output-dir>/share-copy.txt.

Gate: <output-dir>/brag.mp4 exists. A best-frame poster <output-dir>/brag.jpg is picked (not an arbitrary frame) and baked as frame 0 of brag.mp4. Share copy is written.

---

Tone system

Seven tone presets ship with /brag. Each changes scripting energy, pacing, typography personality, and transition style. Presets are defaults, not limits.

Full definitions: references/tones.md ↗

| Tone | Energy | One-liner |

|---|---|---|

| default | Playful, clean, postable | The good-vibes default |

| polished | Serious, elegant | For projects that are not jokes |

| yc-parody | Deadpan startup energy | Fake seriousness applied to absurd projects |

| chaotic | Fast, loud, aggressive | Over-the-top and unhinged |

| deadpan | Calm, dry, understated | The joke is that nothing is a joke |

| cinematic | Dramatic, trailer-scale | Big motion, bigger claims |

| app-store | Smooth, feature-card clean | Corporate but not boring |

Always allow a freeform creative direction to refine or override the preset.

---

Creative laws

These apply to every brag video regardless of tone.

Short. 15–25 seconds. Not one second more without a reason. This holds whether or not narration is on; narration does not extend the window.

Readable. Keep the pace high through motion and cuts, never by flashing text. Every line a viewer must read holds long enough to read it (short label ~0.8s settled; a sentence ~0.3s per word). Fast-in, then hold — never fast-in, then gone.

Specific. The video must feel like it was made for this exact project, not any project.

Show the thing. At least one scene must display actual UI, copy, or a key visual from the product. No abstract filler.

No generic SaaS language. "Streamline your workflow" is banned. Use the project's actual copy and claims.

The hook is everything. The first 2 seconds determine whether someone keeps watching. Plan the hook before anything else.

Funny earns its place. Humor should come from the project's absurdity, not from trying to be funny.

Pattern:

Hook (2-3s) → Reveal (2-4s) → 2-3 sharp highlights (5-12s) → Punchline/outro (2-4s)

Adapt this. Not every project needs exactly 3 highlights. The pattern is a starting shape, not a template.

Frequently asked questions

What does the brag skill do?

Turn a finished project into a short shareable launch video with motion, music, and copy.

How do I install brag?

Open the “Installation” block on this page and pick your agent — Claude Code, Codex, Cursor or Gemini CLI — for ready-made commands that copy the skill folder to the right place. Or copy the prompt from the “Via assistant” tab and let the assistant review and install the skill.

Which AI models work with brag?

Skills are plain Markdown instructions (the Agent Skills format), so brag works with any agent that reads SKILL.md: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and more. The model loads the instructions only when a task matches the skill's description.

Is brag free?

The skill is published openly by latent-spaces under the MIT license. The skill itself costs nothing — you only pay your AI provider for the tokens you use.

Is it safe to install skills?

A skill is a set of instructions your agent will follow, so read SKILL.md and its companion files before installing. Scripts in the skill folder only run if your agent runs them — keep an eye on what it does and do not grant unnecessary permissions.

How is a skill different from an MCP server or a plugin?

An MCP server or plugin gives the model new tools — code that runs and returns a result. A skill gives it knowledge and process: how to approach a task, which steps to follow and what good output looks like. It needs no server or API key.

Related skills

All skills →