fj/scripts/demo.tape
Stephen Way 65420678d9
Some checks are pending
ci / check (push) Waiting to run
docs: switch demo recording to vhs (declarative + reproducible)
* scripts/demo.tape: vhs tape file driving a ~30s session: --version,
  repo view (auto-detect), issue list, pr list, api + jq, selective
  JSON, help. Catppuccin Mocha, 1100x720.
* scripts/record-demo.sh: thin wrapper with preflight checks (vhs +
  fj installed and authenticated, run from a clone). Outputs
  assets/demo.gif and assets/demo.mp4.
* Removed scripts/_demo-session.sh (the asciinema sketch). vhs is
  strictly better for scripted demos: deterministic timing, direct
  GIF/MP4 output, no upload step.
* README: replaced the asciinema TODO with the GIF embed (will resolve
  once assets/demo.gif is recorded and committed).

To record:
  brew install vhs
  cargo build --release && ln -sf \$PWD/target/release/fj ~/.local/bin/fj
  fj auth login --host rasterhub.com
  ./scripts/record-demo.sh

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 15:47:21 -07:00

94 lines
1.6 KiB
VHS

# vhs tape file for the fj README demo.
#
# Reproduce with:
# brew install vhs
# ./scripts/record-demo.sh
#
# The tape is the source of truth. Edit it, re-record, commit the
# updated assets/demo.gif and (optionally) assets/demo.mp4.
#
# Pre-requisites the recorder needs:
# * `fj` on PATH (build it via `cargo build --release` and symlink)
# * `fj auth login --host rasterhub.com` already completed
# * Run from inside the fj clone (so `fj repo view` resolves via the
# git remote)
Output assets/demo.gif
Output assets/demo.mp4
Set Theme "Catppuccin Mocha"
Set FontSize 16
Set Width 1100
Set Height 720
Set TypingSpeed 50ms
Set Padding 24
Set PlaybackSpeed 1.0
Set Shell zsh
# Establish a clean prompt.
Hide
Type "clear"
Enter
Show
Sleep 600ms
Type "fj --version"
Sleep 300ms
Enter
Sleep 1200ms
Type "# inside a clone, fj infers the repo from the git remote"
Sleep 200ms
Enter
Sleep 600ms
Type "fj repo view | head -10"
Sleep 200ms
Enter
Sleep 2200ms
Type "# issues, PRs, releases — same shape"
Sleep 200ms
Enter
Sleep 500ms
Type "fj issue list --state all -L 5"
Sleep 200ms
Enter
Sleep 2000ms
Type "fj pr list --state all -L 5"
Sleep 200ms
Enter
Sleep 2200ms
Type "# api escape hatch with jq-ish projection"
Sleep 200ms
Enter
Sleep 500ms
Type "fj api /version"
Sleep 200ms
Enter
Sleep 1500ms
Type "fj api /user -q .login"
Sleep 200ms
Enter
Sleep 1500ms
Type "# gh-style selective JSON for scripts"
Sleep 200ms
Enter
Sleep 500ms
Type "fj repo list -L 3 --json --json-fields full_name,private"
Sleep 200ms
Enter
Sleep 2800ms
Type "fj --help | head -20"
Sleep 200ms
Enter
Sleep 3000ms