Skip to content

docs: add a terminal demo GIF to the README - #90

Merged
bmxcode merged 1 commit into
mainfrom
demo-gif
Sep 5, 2026
Merged

bmxcode merged 1 commit into
mainfrom
demo-gif

Conversation

@bmxcode

@bmxcode bmxcode commented Sep 5, 2026

Copy link
Copy Markdown
Owner

What

A short terminal recording at the top of the README — a disc detected, its volumes listed, its samples written out as WAV. For a CLI, a 20-second demo lands the "disc in, WAVs out" pitch far faster than the prose does.

demo

How it's made

The GIF is generated, not hand-recorded, by scripts/demo_gif.py, so it can be regenerated deterministically:

  • builds a small AKAI disc from the same synthetic fixtures the tests use — nothing off a real disc, no real library names (ADR-0008) — and wraps it in an NRG container;
  • runs the real CLI in-process (info, list, extract) and captures its output verbatim — only the timing (the typing effect and pauses) is synthesised;
  • writes an asciicast v2 .cast and renders it to docs/demo.gif with agg (brew install agg).

Regenerate with:

uv run --with-editable . python scripts/demo_gif.py

Tracked vs generated

  • Tracked: docs/demo.gif (127 KB) and scripts/demo_gif.py.
  • Ignored: docs/demo.cast — a regenerable intermediate; the script also omits the cast's wall-clock timestamp so reruns don't churn.

Notes

  • No dependency added to the package; agg is a dev-only tool invoked by the script.
  • Spotted while building this: samplerdisc list prints the summary count without a plural ("5 sample"). Left out of this PR to keep it docs-only and tracked separately; regenerating the GIF after that fix is one command.

🤖 Generated with Claude Code

Put a ~20-second recording at the top of the README: a disc detected,
its volumes listed, and its samples written out as WAV. For a CLI that
reads far better than prose.

The recording is generated, not hand-made, by scripts/demo_gif.py: it
builds a small AKAI disc from the same synthetic fixtures the tests use
(ADR-0008 -- nothing off a real disc, no real library names), runs the
real CLI in-process and captures its output verbatim, writes an
asciicast v2 .cast with a typing effect, and renders it to docs/demo.gif
with agg. Only the timing is synthesised. The .cast is a regenerable
intermediate and is gitignored (removed from tracking here, where a
prior change had picked it up); the GIF and the script are what's kept.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bmxcode
bmxcode merged commit e2a4fcf into main Sep 5, 2026
2 checks passed
@bmxcode
bmxcode deleted the demo-gif branch September 5, 2026 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant