Skip to content
Development
Skill

/yas-demo-text

Convert `make demo/img` statusline snapshots into ANSI-stripped plain text for diffing and PR embedding. Use when comparing statusline renders before/after a change, producing a text representation of a demo scenario, or preparing before/after statusline output for a pull

From plugin
yas
2467 skills3 agents1 hook

Claude Code

$ npx -y skills add tmck-code/yet-another-statusline --skill yas-demo-text --agent claude-code

SKILL.md

yas-demo-text.SKILL.md
name: yas-demo-text
description: Convert `make demo/img` statusline snapshots into ANSI-stripped plain text for diffing and PR embedding. Use when comparing statusline renders before/after a change, producing a text representation of a demo scenario, or preparing before/after statusline output for a pull request without screenshots.

YAS demo text

`make demo/img` writes ANSI-coloured statusline snapshots to `demo/<scenario>.txt` (and per-theme renders under `demo/themes/`). This skill strips the ANSI escape sequences so the box-drawing layout survives as plain, diff-able, paste-able text.

Quick start

Render the snapshots, then strip them into `demo/text/` (mirrors the `demo/` tree):

make demo/img                                   # or: DEMO_ONLY=tasks make demo/img
.claude/skills/yas-demo-text/scripts/demo-text.sh

`demo/text/<scenario>.txt` now holds the colour-free render. Both `demo/` and `demo/text/` are gitignored, so these are scratch artifacts — diff them, paste them, regenerate them; don't commit them.

Strip arbitrary output

`scripts/strip-ansi.sh` is a plain ANSI filter (stdin or named files → stdout), wrapping `sed 's/\x1B\[[0-9;]\{1,\}[A-Za-z]//g'`:

COLUMNS=160 uv run python claude/statusline_command.py < ops/session-info-example.json \
  | .claude/skills/yas-demo-text/scripts/strip-ansi.sh

Before/after comparison

make demo/img && .claude/skills/yas-demo-text/scripts/demo-text.sh
cp -r demo/text /tmp/yas-before        # stash the baseline
# ... make your renderer change ...
make demo/img && .claude/skills/yas-demo-text/scripts/demo-text.sh
diff -ru /tmp/yas-before demo/text     # see exactly which cells moved

Notes

  • The strip regex matches CSI sequences (`\x1B[…<letter>`), removing colour,

bold and italic; it leaves box-drawing and Nerd Font glyphs intact, so column alignment is preserved exactly.

  • Nerd Font PUA glyphs render as boxes outside a Nerd-Font terminal (e.g. on

GitHub), but the layout and text labels still read clearly. For a snapshot meant to paste into GitHub markdown, render in the `github` glyph mode first (`YAS_GLYPH_MODE=github make demo/img`): it folds the box-drawing frame, block/sparkline ramp, and PUA icons to width-1 EAW-narrow/ASCII stand-ins, so the result stays a clean, box-free rectangle in a browser monospace font. The **yas-pr** skill uses this by default for before/after PR renders.

  • The repo's Python `strip_ansi` (`test/helper.py`) is SGR-only and for tests;

this skill's sed filter is broader and for the demo snapshots.

Read more
@tmck-code
Ships withyas

🌈 Check out the official landing page here: YAS! Yet Another Statusline Most common form is displaying the first few rows, which include the loaded plugins & skills. Extra sections appear below them as needed

2467 skills3 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
246
Star history of tmck-code/yet-another-statusline on GitHub, a chart by star-history.com

Other skills on yas.

tmck-code-statusline

tmck-code-statusline

Edit the Claude Code statusline renderer safely. Use when touching claude/yas/**/*.py (the yas package),…

@tmck-code@tmck-codeInstall Skill
yas-pr-screenshots

yas-pr-screenshots

Generate before/after PNG screenshots for a YAS branch's rendering changes, push them to the yas-pr-screenshots repo, and hand…

@tmck-code@tmck-codeInstall Skill
yas-pr

yas-pr

Assemble a pull request that follows this repo's PR template, then open it as a draft. Use when the user wants to open, create,…

@tmck-code@tmck-codeInstall Skill
config

config

Reconfigure yet-another-statusline — re-runs the interactive install wizard (glyph mode, theme, labels, token soft-limit, and…

@tmck-code@tmck-codeInstall Skill
init

init

Wire yet-another-statusline into Claude Code — writes statusLine.command to settings.json in CLAUDE_CONFIG_DIR (default…

@tmck-code@tmck-codeInstall Skill
uninstall

uninstall

Unwire yet-another-statusline from Claude Code — removes statusLine.command from settings.json in CLAUDE_CONFIG_DIR (default…

@tmck-code@tmck-codeInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about yas-demo-text.

Which coding agents can use yas-demo-text?
yas-demo-text installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.