Brag logo

Brag

OrganizationPopular
latent-spaces
brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag", "let's brag about this", "make a launch video", "turn this into a video", or wants to share what they built. Reads the project code directly — no live URL or screenshots needed.

Overview

Publisherlatent-spaces
Repositorybrag
Skill namebrag
Stars
3.2K
Forks
232
Bundled files
286
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 286 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by latent-spaces on GitHub. Read the source before you install it.

Installation

Install the Brag AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/latent-spaces/brag.git /tmp/brag
mkdir -p .claude/skills
cp -r /tmp/brag/skills/brag .claude/skills/brag
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Brag in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Brag on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Brag is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

/brag

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

Invocation dispatch (must happen first)

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:

OptionValuesDefault
--tonepreset or freeform descriptioninferred
--formatlandscape, vertical, squarelandscape
--durationsecondsauto (15-25s)
--no-musicflagmusic on
--no-sfxflagsfx on
--titlestringinferred from project
--voiceflagnarration 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 in this PR.

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.


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 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 domain skills — hyperframes-core, hyperframes-animation, hyperframes-creative, hyperframes-keyframes, hyperframes-cli. /brag is its own workflow: do not enter the hyperframes entry-point intent interview or route into its generic promo / 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

ToneEnergyOne-liner
defaultPlayful, clean, postableThe good-vibes default
polishedSerious, elegantFor projects that are not jokes
yc-parodyDeadpan startup energyFake seriousness applied to absurd projects
chaoticFast, loud, aggressiveOver-the-top and unhinged
deadpanCalm, dry, understatedThe joke is that nothing is a joke
cinematicDramatic, trailer-scaleBig motion, bigger claims
app-storeSmooth, feature-card cleanCorporate 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.

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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

and 140 more files.

Frequently asked questions

What does the Brag AI skill do?

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag", "let's brag about this", "make a launch video", "turn this into a video", or wants to share what they built. Reads the project code directly — no live URL or screenshots needed.

Why use Brag on TypingMind?

Because you install it once and use it with any model. Brag is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Brag in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/latent-spaces/brag/tree/main/skills/brag. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Brag?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Brag?

As many as you like. As long as a model supports skills, you can use Brag with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Brag AI skill free?

Yes. It is published on GitHub by latent-spaces under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇