PR Demo
mikeyobrien/ralph-orchestrator
A skill your agent uses when creating animated demos (GIFs) for pull requests or documentation.
Produce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR.
$ npx skills add PackmindHub/packmind --skill michel-cli-demo-recorder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install PackmindHub/packmind michel-cli-demo-recorder --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/PackmindHub/packmind.git skills-src && mkdir -p .claude/skills && cp -r skills-src/scripts/michel/michel-cli-demo-recorder .claude/skills/michel-cli-demo-recorder && 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 "michel-cli-demo-recorder" agent skill from https://github.com/PackmindHub/packmind/tree/main/scripts/michel/michel-cli-demo-recorder into .claude/skills/michel-cli-demo-recorder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "michel-cli-demo-recorder", 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/PackmindHub/packmind/tree/main/scripts/michel/michel-cli-demo-recorderType 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 PackmindHub/packmind --skill michel-cli-demo-recorder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install PackmindHub/packmind michel-cli-demo-recorder --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PackmindHub/packmind.git skills-src && mkdir -p .agents/skills && cp -r skills-src/scripts/michel/michel-cli-demo-recorder .agents/skills/michel-cli-demo-recorder && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "michel-cli-demo-recorder" agent skill from https://github.com/PackmindHub/packmind/tree/main/scripts/michel/michel-cli-demo-recorder into .agents/skills/michel-cli-demo-recorder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "michel-cli-demo-recorder", 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 PackmindHub/packmind --skill michel-cli-demo-recorder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install PackmindHub/packmind michel-cli-demo-recorder --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PackmindHub/packmind.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/scripts/michel/michel-cli-demo-recorder .cursor/skills/michel-cli-demo-recorder && 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 "michel-cli-demo-recorder" agent skill from https://github.com/PackmindHub/packmind/tree/main/scripts/michel/michel-cli-demo-recorder into .cursor/skills/michel-cli-demo-recorder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "michel-cli-demo-recorder", 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/PackmindHub/packmind.git --path scripts/michel/michel-cli-demo-recorder--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 PackmindHub/packmind --skill michel-cli-demo-recorder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install PackmindHub/packmind michel-cli-demo-recorder --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PackmindHub/packmind.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/scripts/michel/michel-cli-demo-recorder .gemini/skills/michel-cli-demo-recorder && 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 "michel-cli-demo-recorder" agent skill from https://github.com/PackmindHub/packmind/tree/main/scripts/michel/michel-cli-demo-recorder into .gemini/skills/michel-cli-demo-recorder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "michel-cli-demo-recorder", 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 PackmindHub/packmind michel-cli-demo-recorderInstalls 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 PackmindHub/packmind --skill michel-cli-demo-recorder -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/PackmindHub/packmind.git skills-src && mkdir -p .github/skills && cp -r skills-src/scripts/michel/michel-cli-demo-recorder .github/skills/michel-cli-demo-recorder && 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 "michel-cli-demo-recorder" agent skill from https://github.com/PackmindHub/packmind/tree/main/scripts/michel/michel-cli-demo-recorder into .github/skills/michel-cli-demo-recorder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "michel-cli-demo-recorder", 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 PackmindHub/packmind --skill michel-cli-demo-recorder -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install PackmindHub/packmind michel-cli-demo-recorder --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PackmindHub/packmind.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/scripts/michel/michel-cli-demo-recorder .opencode/skills/michel-cli-demo-recorder && 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 "michel-cli-demo-recorder" agent skill from https://github.com/PackmindHub/packmind/tree/main/scripts/michel/michel-cli-demo-recorder into .opencode/skills/michel-cli-demo-recorder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "michel-cli-demo-recorder", 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.
michel-cli-demo-recorderProduce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR.
Michel CLI Demo Recorder is an agent skill from PackmindHub/packmind. Produce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR. Renders a crisp master SVG and rasterizes it to a PNG — the PNG is what you embed, because GitHub does not render SVG in PR/issue bodies. Use this whenever a dev task touches the CLI — new command, changed output, new flag, bug fix in terminal rendering — and the PR would benefit from showing the tool actually running. Trigger it when the user says…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts.
It sits in AI & LLM Engineering, covering Debugging and Embeddings. It works with GitHub. The repository describes itself as: Packmind seamlessly captures your engineering playbook and turns it into AI context, guardrails, and governance. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 67de8a2. 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/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodebashbrewdockernpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
Michel CLI Demo Recorder loads about 3.4k tokens when it runs. Until then it costs about 240 tokens; SKILL.md has 1,255 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 PackmindHub/packmind at commit 67de8a2, republished under its Apache-2.0 licence (© PackmindHub). 1,255 words, ~3,429 tokens.
.claude/skills/michel-cli-demo-recorder/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Turn a local packmind-cli invocation into a polished, colored terminal screenshot that drops straight into a GitHub PR. The renderer writes a crisp master SVG and, by default, rasterizes it to a PNG next to it — the PNG is the artifact you embed, because GitHub refuses to render SVG in a PR/issue body (its image proxy rejects image/svg+xml). The companion to michel-ui-demo-recorder — that one records the browser UI; this one captures the terminal.
apps/cli/) — attach a demo by default; reviewers shouldn't have to clone and run it to see the output.The deliverable is one or more terminal-window images, each showing a fake prompt line (user@host dir % <command>) followed by the command's real, fully-colored output. The renderer emits two files per demo: a .svg master (crisp at any zoom, a few KB, exact-color — keep it as the source) and a .png rasterized from it. Embed the PNG in the PR — GitHub does not render SVG in PR/issue bodies, so an embedded SVG shows up broken. The PNG is what reviewers actually see.
Capturing colored CLI output correctly has several non-obvious traps that waste time if you hit them mid-task:
packmind-cli colors its output with chalk (see apps/cli/src/infra/utils/consoleLogger.ts), which — like most well-behaved CLIs — emits ANSI only when it detects a real terminal or FORCE_COLOR is set. Pipe the output to a file with neither and you get plain, colorless text — the exact opposite of the goal. The bundled converter both sets FORCE_COLOR=3 and runs the command under a pseudo-terminal (PTY), so color survives even for commands that gate strictly on isTTY. Don't hand-roll the capture.script (script -q <file> <cmd>); Linux ships util-linux script (script -qec "<cmd>" <file>). And BSD script only writes the full session to its typescript file, not to a piped stdout. The bundled converter handles both — don't hand-roll it.image/svg+xml, so an  embed shows up broken no matter whether you use a relative path, a /raw/ URL, or raw.githubusercontent.com. (A committed .svg does render on the github.com file view, but that's not where a PR demo lives.) PNG has no such restriction. So: rasterize the SVG to PNG and embed the PNG. The renderer does this automatically.rsvg-convert (package librsvg2-bin), which is baked into the Michel worker image (fly/Dockerfile.worker). On a dev Mac without it, the script falls back to qlmanage (ships with macOS); install brew install librsvg for the primary path. If neither exists the script errors with the install hint — don't paper over it with --no-png and then embed a broken SVG.scripts/render-cli-demo.mjs codifies the working recipe so you don't relearn it each time.
PACKMIND_EDITION="$(bash scripts/michel/resolve-edition.sh)" node .claude/skills/michel-cli-demo-recorder/scripts/render-cli-demo.mjs \
--out docs/cli-demos/standards-list.svg \
--text-out docs/cli-demos/standards-list.txt \
--title "packmind-cli — standards list" \
--prompt-cmd "packmind-cli standards list" \
-- node dist/apps/cli/main.cjs standards listThis writes three files: standards-list.svg (master), standards-list.png (rasterized — this is what you embed), and standards-list.txt (plain-text sidecar). The PNG name is derived from --out unless you pass --png.
| Flag | Meaning |
|---|---|
--out | where to write the master SVG (required) |
--png | where to write the rasterized PNG (default: --out with the extension swapped to .png). The PNG is what you embed in the PR. |
--no-png | skip rasterization, emit the SVG only. Use only when you are not embedding in a PR body (e.g. for a committed file-view link); a PR demo needs the PNG. |
-- <command...> | everything after -- is the command run under the PTY (required). For this repo that is node dist/apps/cli/main.cjs <subcommand…>. |
--prompt-cmd | the text drawn on the fake prompt line. Defaults to the actual executed command. Since the real invocation is the verbose node dist/apps/cli/main.cjs …, pass the friendly packmind-cli … form here so the demo reads cleanly — that is how an installed user runs it. |
--title | window title-bar caption. Omit for no caption. |
--cwd | directory to run the command in (default: current dir — i.e. the repo root, where dist/apps/cli/main.cjs lives). |
--text-out | also write an ANSI-stripped plain-text copy. Always pass this — see "Verify". |
--theme | dark (default) or light. |
Runs under node. The PNG step needs rsvg-convert (librsvg2-bin) — baked into the Michel worker image; on a dev Mac it falls back to qlmanage or you brew install librsvg.
dist/, so build it with npm run packmind-cli:build. It produces dist/apps/cli/main.cjs, which you then run with node dist/apps/cli/main.cjs. A demo of stale dist/ proves nothing about your change.export PACKMIND_EDITION="$(bash scripts/michel/resolve-edition.sh)" (oss for the OSS repo, proprietary for packmind-proprietary) — or the CLI may behave differently than expected.login, whoami, standards/commands/skills pulls, playbook) need the local stack up, or they only print the error/unauthenticated path. If you want populated, colorful output, bring the stack up and confirm it's serving before recording — see the michel-run-local-dev-stack skill (docker compose up -d). Local-only commands (--help, --version, lint, diff, config) need no server. If the point of the demo is the error message, skip the server deliberately.--help, and any new/changed flag. One demo per invocation — small focused images beat one giant scroll.docs/cli-demos/ is a good home; create it). Each render produces both the .svg master and the .png you'll embed.docker compose down — see the michel-run-local-dev-stack skill).Verify by content first, then by eye:
--text-out sidecar (primary gate). It's the exact text that got captured, ANSI stripped. Confirm it shows what your change should produce — right rows, right counts, the new flag's effect, aligned columns. If the sidecar is empty or shows an error you didn't intend, the demo is wrong regardless of how the image looks..png (every host). The rasterizer that produces the PNG also makes it directly viewable — Read the .png to confirm colors, bold/dim, and alignment look right. This works on the Linux worker now (the image bakes in librsvg2-bin), not just macOS.A demo that captured the wrong state (server down, stale build, not logged in, empty DB) is worse than no demo — it misleads the reviewer. Treat the sidecar as a required gate.
Commit the PNG (and the .svg master + optional .txt) into the repo on the PR's branch, then embed the PNG by absolute /raw/ URL in the PR body — never the SVG (it renders broken). Relative paths and /blob/ URLs do not render in a PR description either; use https://github.com/<org>/<repo>/raw/<branch-or-commit-sha>/<path> (pin to the commit sha for a stable image). Directly under the image, add a short What the demo shows: bullet list — the written scenario — so a reviewer who can't or won't open the image still understands what was run and what it proves:
## CLI demo

**What the demo shows:**
- Run `packmind-cli standards list` against a seeded org
- Output lists the 3 active standards with their rule counts, colored by status
- Confirms the new `--status active` flag narrows the list to active standards only
<details><summary>Plain text</summary>
```text
<paste docs/cli-demos/standards-list.txt here, or link it>
```</details>
```
The What the demo shows: bullets follow the same rules as the UI demo scenario: synthetic, essentials only (what command runs → what the output proves), one line per bullet, readable without opening the image. The plain-text <details> block is a courtesy fallback for anyone whose viewer won't render the image, and it's searchable/diff-able in a way an image isn't.
packmind-cli … form (via --prompt-cmd) — that's how an installed user invokes it — while the command actually executed under the PTY is the repo's node dist/apps/cli/main.cjs ….scripts/render-cli-demo.mjs — the whole pipeline: PTY capture (OS-aware) → ANSI/SGR parse → terminal-styled SVG → PNG rasterization (rsvg-convert, with a macOS qlmanage fallback), plus an optional plain-text sidecar. No npm dependencies; PNG needs rsvg-convert (librsvg2-bin) on the host.© PackmindHub, 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 1 other file (scripts) in scripts/michel/michel-cli-demo-recorder of PackmindHub/packmind.
Open the folder on GitHubat commit 67de8a2
Michel CLI Demo Recorder 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 |
|---|---|---|---|---|---|---|
| Michel CLI Demo Recorder this skillPackmindHub/packmind | 317 | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| PR Demomikeyobrien/ralph-orchestrator | 3.2k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Yas Demo Texttmck-code/yet-another-statusline | 242 | — | ~649 | Automated safety check: Pass | BSD-3-Clause | |
| ML Failure DebuggerLeeroo-AI/superml | 195 | — | ~9.5k | Automated safety check: Pass | Apache-2.0 | |
| Embeddings via 9Routerdecolua/9router | 30k | — | ~604 | Automated safety check: Pass | MIT | |
| Esmfold2JimLiu/science-skills | 227 | 4 repos | ~2.5k | Automated safety check: Pass | Apache-2.0 |
mikeyobrien/ralph-orchestrator
A skill your agent uses when creating animated demos (GIFs) for pull requests or documentation.
tmck-code/yet-another-statusline
Convert make demo/img statusline snapshots into ANSI-stripped plain text for diffing and PR embedding.
Leeroo-AI/superml
Diagnoses failing ML and AI work, such as OOM, NaN, divergence, crashes, slow throughput, wrong outputs and dependency conflicts, with every claim backed by documentation citations.
decolua/9router
Generates vector embeddings through the 9Router /v1/embeddings endpoint, using models from providers such as OpenAI, Gemini, Mistral and Voyage for RAG and semantic search.
JimLiu/science-skills
Biohub ESMFold2 / ESMFold2-Fast all-atom co-folding (Candido et al.
Marker-Inc-Korea/AutoRAG
Diagnoses and repairs a broken AutoRAG install so every configured datasource is both indexed and returns real search hits.
PackmindHub/packmind
Record polished UI demo videos and screenshots of a running web app using Playwright MCP — for client deliverables, release notes, feature walkthroughs, or bug repros.
PackmindHub/packmind
Guide for creating effective skills. An agent skill from PackmindHub/packmind.
PackmindHub/packmind
Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage.
PackmindHub/packmind
Execute the implementation plan produced by /feature-spec. An agent skill from PackmindHub/packmind.
PackmindHub/packmind
Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping…
PackmindHub/packmind
A skill your agent uses when updating, adding, fixing, changing, or deprecating Packmind playbook artifacts (standards, commands, skills).
Works with
Categories
Produce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR. Michel CLI Demo Recorder is an agent skill from PackmindHub/packmind. Produce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR.
Michel CLI Demo Recorder fits situations like: it when the user says record a CLI demo; show the command output; add a terminal screenshot to the PR; prove the CLI works.
Run `npx skills add PackmindHub/packmind --skill michel-cli-demo-recorder -a claude-code`. Or copy the skill folder (scripts/michel/michel-cli-demo-recorder in PackmindHub/packmind) into .claude/skills/michel-cli-demo-recorder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add PackmindHub/packmind --skill michel-cli-demo-recorder -a codex`. Or copy the skill folder (scripts/michel/michel-cli-demo-recorder in PackmindHub/packmind) into .agents/skills/michel-cli-demo-recorder 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 PackmindHub/packmind --skill michel-cli-demo-recorder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/michel-cli-demo-recorder, .gemini/skills/michel-cli-demo-recorder, .github/skills/michel-cli-demo-recorder and .opencode/skills/michel-cli-demo-recorder in your project.
Going by SKILL.md and its folder, Michel CLI Demo Recorder needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, bash, brew, docker and npm). Our summary lists: Node.js; Docker.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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.
Michel CLI Demo Recorder 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 3.4k tokens (SKILL.md is roughly 14k 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 Michel CLI Demo Recorder: PR Demo (mikeyobrien/ralph-orchestrator, 3.2k stars), Yas Demo Text (tmck-code/yet-another-statusline, 242 stars), ML Failure Debugger (Leeroo-AI/superml, 195 stars) and Embeddings via 9Router (decolua/9router, 30k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
PackmindHub (a GitHub organization) maintains it in PackmindHub/packmind, which has 317 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 9, 2026.
Source: PackmindHub/packmind on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.