/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
$ npx -y skills add tmck-code/yet-another-statusline --skill yas-demo-text --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/yas-demo-text
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
yas-demo-text.SKILL.mdname: 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
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.
🌈 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
Other skills on yas.
- /tmck-code-statusline
Edit the Claude Code statusline renderer safely. Use when touching claude/yas/**/*.py (the yas package), claude/statusline_command.py (the entry shim), claude/mon.py, or related tests under test/. Covers the layered renderer (GradientEngine / BorderRenderer / Renderer), the
Open skill - /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 back a markdown before/after table for the PR description. Use when the user wants real image screenshots (not ANSI-stripped text) attached to a YAS
Open skill - /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, submit, or raise a PR for the current branch.
Open skill - /config
Reconfigure yet-another-statusline — re-runs the interactive install wizard (glyph mode, theme, labels, token soft-limit, and Python version) against the already-installed plugin and re-wires settings.json, without re-registering the marketplace or reinstalling the plugin. Use
Open skill - /init
Wire yet-another-statusline into Claude Code — writes statusLine.command to settings.json in CLAUDE_CONFIG_DIR (default ~/.claude/). Run once after plugin install, and again after every upgrade to update the versioned path.
Open skill - /uninstall
Unwire yet-another-statusline from Claude Code — removes statusLine.command from settings.json in CLAUDE_CONFIG_DIR (default ~/.claude/) and deletes the renderer's runtime state. Run before (or after) `claude plugin uninstall yas`, which only deletes the plugin cache and leaves
Open skill

