The Loop
oxbshw/watch-skill
The user built or changed something visual — a UI, an animation, a game, a generated video — and wants it verified, or asks "why does my UI look wrong", "check that the fix actually worked", "does…
Create, update, render, and visually verify polished Bruin CLI terminal demos with VHS.
$ npx skills add bruin-data/bruin --skill record-vhs-demo -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bruin-data/bruin record-vhs-demo --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/bruin-data/bruin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/record-vhs-demo .claude/skills/record-vhs-demo && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "record-vhs-demo" agent skill from https://github.com/bruin-data/bruin/tree/main/.agents/skills/record-vhs-demo into .claude/skills/record-vhs-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-vhs-demo", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/bruin-data/bruin/tree/main/.agents/skills/record-vhs-demoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add bruin-data/bruin --skill record-vhs-demo -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bruin-data/bruin record-vhs-demo --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bruin-data/bruin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/record-vhs-demo .agents/skills/record-vhs-demo && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "record-vhs-demo" agent skill from https://github.com/bruin-data/bruin/tree/main/.agents/skills/record-vhs-demo into .agents/skills/record-vhs-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-vhs-demo", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bruin-data/bruin --skill record-vhs-demo -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bruin-data/bruin record-vhs-demo --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bruin-data/bruin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/record-vhs-demo .cursor/skills/record-vhs-demo && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "record-vhs-demo" agent skill from https://github.com/bruin-data/bruin/tree/main/.agents/skills/record-vhs-demo into .cursor/skills/record-vhs-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-vhs-demo", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/bruin-data/bruin.git --path .agents/skills/record-vhs-demo--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add bruin-data/bruin --skill record-vhs-demo -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bruin-data/bruin record-vhs-demo --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bruin-data/bruin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/record-vhs-demo .gemini/skills/record-vhs-demo && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "record-vhs-demo" agent skill from https://github.com/bruin-data/bruin/tree/main/.agents/skills/record-vhs-demo into .gemini/skills/record-vhs-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-vhs-demo", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install bruin-data/bruin record-vhs-demoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add bruin-data/bruin --skill record-vhs-demo -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bruin-data/bruin.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/record-vhs-demo .github/skills/record-vhs-demo && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "record-vhs-demo" agent skill from https://github.com/bruin-data/bruin/tree/main/.agents/skills/record-vhs-demo into .github/skills/record-vhs-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-vhs-demo", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bruin-data/bruin --skill record-vhs-demo -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bruin-data/bruin record-vhs-demo --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bruin-data/bruin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/record-vhs-demo .opencode/skills/record-vhs-demo && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "record-vhs-demo" agent skill from https://github.com/bruin-data/bruin/tree/main/.agents/skills/record-vhs-demo into .opencode/skills/record-vhs-demo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-vhs-demo", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
record-vhs-demoCreate, update, render, and visually verify polished Bruin CLI terminal demos with VHS.
Record Vhs Demo is an agent skill from bruin-data/bruin. Create, update, render, and visually verify polished Bruin CLI terminal demos with VHS. Use when recording a terminal walkthrough, adding or editing a .tape file, exporting a demo video or GIF, improving terminal-demo styling or readability, or reproducing a Bruin command sequence for documentation or social media.
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `agents/openai.yaml` and `scripts/render_demo.py`).
It sits in Databases, covering Plain language and style rules and Video production. It works with DuckDB. The repository describes itself as: Build data pipelines with SQL and Python, ingest data from different sources, add quality checks, and build end-to-end flows. The licence is Apache-2.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2f429d6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
gitmakepython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Record Vhs Demo loads about 1.3k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 618 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from bruin-data/bruin at commit 2f429d6, republished under its Apache-2.0 licence (© bruin-data). 618 words, ~1,281 tokens.
.claude/skills/record-vhs-demo/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Create concise, deterministic terminal recordings whose source remains reusable in the repository.
.tape file under <repo>/resources/, using a descriptive kebab-case name.<repo>/resources/<demo-name>/ when the tape needs them.<repo>/.context/vhs-demos/ unless the user explicitly requests a tracked documentation asset..context/ is ignored with git check-ignore. If it is not, add .context/ to the repository's local .git/info/exclude; do not add generated demo artifacts to the tracked .gitignore merely for a recording.Confirm the short story the recording should tell. Show only commands and output that support it.
Validate the underlying Bruin behavior outside VHS before recording it.
Build the appropriate binary:
make build-no-duckdb and bin/bruin-no-duckdb for demos that do not need DuckDB.make build and bin/bruin when the demo needs DuckDB.Create or edit the canonical tape under resources/. Put any reproducible fixtures beside it under a demo-specific directory.
Render from the tape's directory with the bundled script:
python3 .agents/skills/record-vhs-demo/scripts/render_demo.py resources/<demo-name>.tapeInspect the generated contact sheet with an image-viewing tool. Extract and inspect a full-resolution frame when text color, masking, alignment, or spacing needs closer review.
Iterate until the recording has no command failures, accidental secrets, unreadable ANSI colors, clipped lines, excessive dead time, or irrelevant output.
Start with these settings unless the user asks for a different format:
Set Shell bash
Set FontSize 20
Set Width 1280
Set Height 720
Set Margin 0
Set Padding 28
Set LineHeight 1.15
Set TypingSpeed 30ms
Set Framerate 30
Set CursorBlink false
Set Theme "GitHub Dark"Use a plain dark terminal canvas without a window frame, title bar, or outer margin.
Keep internal padding so text does not touch the video edge.
Prefer Bash for predictable prompts and hidden setup.
Use a leading newline in PS1 to add space between prompt blocks without changing regular output line spacing:
export PS1="$(tput setaf 6)\n❯$(tput sgr0) "In the hidden setup, run unset NO_COLOR, set TERM=xterm-256color, and set CLICOLOR=1. The agent environment may otherwise suppress Bruin's ANSI output.
Do not add --no-color to a demo command.
For a one-asset Bruin demo, make worker coloring deterministic by wrapping the binary with --workers 1 during hidden setup. This avoids a random worker selecting an unreadable ANSI color while keeping the visible command clean.
Hide setup commands, paths, fixture preparation, aliases/functions, and terminal clearing.
Do not show --help, installation steps, decorative titles, or commentary that delays the feature demonstration unless requested.
Use --no-validation, --no-timestamp, or --minimal-logs only when they remove irrelevant output without hiding the behavior being demonstrated.
Add short sleeps after meaningful output, not after every command. Keep social clips compact.
git rev-parse --show-toplevel, not fragile multi-level relative aliases.mktemp -d for disposable working fixtures. Copy tracked examples into the temporary directory during hidden setup.Output directory before rendering. The bundled script does this automatically.Do not call a demo complete until all of the following are true:
vhs validate passes.error: line; some versions can emit a partial video after an EOF error while still exiting with status 0.ffprobe reports a valid duration.The renderer reports the artifact and QA image paths; include the final artifact path in the handoff.
© bruin-data, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in .agents/skills/record-vhs-demo of bruin-data/bruin.
Open the folder on GitHubat commit 2f429d6
Record Vhs Demo next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Record Vhs Demo this skillbruin-data/bruin | 1.8k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| The Loopoxbshw/watch-skill | 469 | — | ~622 | Automated safety check: Notes | MIT | |
| Altimate Data Warehouse DelegateAltimateAI/data-engineering-skills | 128 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Audio Loudness Normalizationgodot-fun/gai | 182 | — | ~684 | Automated safety check: Pass | MIT | |
| Managing Databasesrileyhilliard/claude-essentials | 130 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Eli5mblode/agent-skills | 144 | — | ~861 | Automated safety check: Pass | MIT |
oxbshw/watch-skill
The user built or changed something visual — a UI, an animation, a game, a generated video — and wants it verified, or asks "why does my UI look wrong", "check that the fix actually worked", "does…
AltimateAI/data-engineering-skills
Delegates dbt and warehouse tasks such as lineage, migrations and cost attribution to the altimate-code CLI agent and relays its answer back.
godot-fun/gai
Normalizes a single audio file to consistent LUFS loudness with true-peak limiting using FFmpeg.
rileyhilliard/claude-essentials
Guides database architecture for PostgreSQL, DuckDB, Parquet, PGVector, and Neo4j.
mblode/agent-skills
Picks the form that explains best and applies the house explanation style: plain prose, controlled English modelled on ASD-STE100, a diagram, an interactive HTML page, or a narrated explainer video.
aAAaqwq/AGI-Super-Team
DuckDB CLI specialist for SQL analysis, data processing and file conversion.
bruin-data/bruin
Add Bruin CLI support for a new ingestr source. An agent skill from bruin-data/bruin.
bruin-data/bruin
A skill your agent uses when creating, editing, reviewing, or troubleshooting Bruin semantic layer models, semantic query CLI usage, metric and dimension definitions, joins, segments, filters…
bruin-data/bruin
Create DAC dashboards by writing YAML or TSX dashboard definition files.
bruin-data/bruin
A skill your agent uses when duplicate rows, unstable primary keys, repeated ingestion, or failed uniqueness checks appear in a Bruin asset.
bruin-data/bruin
A skill your agent uses when a Bruin pipeline, asset, or command fails and the cause is not yet clear.
bruin-data/bruin
A skill your agent uses when a pipeline fails because source, destination, or declared asset columns may have changed.
Works with
Create, update, render, and visually verify polished Bruin CLI terminal demos with VHS. Record Vhs Demo is an agent skill from bruin-data/bruin. Create, update, render, and visually verify polished Bruin CLI terminal demos with VHS.
Record Vhs Demo fits situations like: recording a terminal walkthrough; editing a .tape file; exporting a demo video; improving terminal-demo styling.
Run `npx skills add bruin-data/bruin --skill record-vhs-demo -a claude-code`. Or copy the skill folder (.agents/skills/record-vhs-demo in bruin-data/bruin) into .claude/skills/record-vhs-demo in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bruin-data/bruin --skill record-vhs-demo -a codex`. Or copy the skill folder (.agents/skills/record-vhs-demo in bruin-data/bruin) into .agents/skills/record-vhs-demo in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bruin-data/bruin --skill record-vhs-demo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/record-vhs-demo, .gemini/skills/record-vhs-demo, .github/skills/record-vhs-demo and .opencode/skills/record-vhs-demo in your project.
Going by SKILL.md and its folder, Record Vhs Demo needs Python for the scripts in its folder and the command-line tools its instructions call (git, make and python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Record Vhs Demo is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Record Vhs Demo: The Loop (oxbshw/watch-skill, 469 stars), Altimate Data Warehouse Delegate (AltimateAI/data-engineering-skills, 128 stars), Audio Loudness Normalization (godot-fun/gai, 182 stars) and Managing Databases (rileyhilliard/claude-essentials, 130 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bruin-data (a GitHub organization) maintains it in bruin-data/bruin, which has 1,774 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 8, 2026.
Source: bruin-data/bruin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.