This guide explains how to create the demo GIFs for interminai. Two demos are included:
- Git Rebase Demo (
demo.gif) - Claude performs an interactive git rebase with autosquash - GDB Debugging Demo (
demo-gdb.gif) - Claude debugs a C program with GDB to discover function parameters
This demo shows Claude using interminai to perform git interactive rebase.
# Fedora/RHEL
sudo dnf install golang
# Ubuntu/Debian
sudo apt install golang
# Or download from: https://go.dev/dl/# Install VHS with go
go install github.com/charmbracelet/vhs@latest
# Add Go bin to PATH if not already (add to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/go/bin:$PATH"
# Verify installation
vhs --version# Fedora/RHEL
sudo dnf install ttyd
# Ubuntu/Debian
sudo apt install ttyd
# Arch
sudo pacman -S ttydmake install-skillJust run:
make demoThis will:
- Create a clean git repository with test commits
- Record Claude performing an interactive rebase
- Generate
demo.gif
If you want to run the steps manually:
# 1. Setup clean demo repository
./demo-setup.sh
# 2. Generate the GIF with VHS
FORCE_COLOR=1 vhs demo-real.tape
# 3. View the result
firefox demo.gifThe demo captures a real Claude CLI session:
- Setup: Shows git log with 4 commits (one is a fixup)
- User request: "I have two commits where the second is a fixup. Can you squash them?"
- Claude's work:
- Analyzes the git history
- Uses
git rebase -i --autosquash --root - Interacts with vim through interminai
- Captures screen output
- Completes the rebase
- Result: Two commits successfully squashed into one
Edit demo-real.tape and adjust the Sleep values:
Sleep 70s # Time for Claude to complete the workSet Width 800 # Terminal width in pixels
Set Height 600 # Terminal height in pixelsView available themes:
vhs themesUpdate in demo-real.tape:
Set Theme "VibrantInk"Preview themes at: https://iterm2colorschemes.com/
Set FontSize 13Make sure Go's bin directory is in your PATH:
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcIf you get "fork/exec /path/to/chrome: exec format error", temporarily rename any chrome wrapper scripts:
mv ~/bin/chrome ~/bin/chrome.bak
make demo
mv ~/bin/chrome.bak ~/bin/chromeThe make demo target sets FORCE_COLOR=1 to enable colors. If colors still don't appear, check your Claude CLI version.
If a previous recording failed, the git repository might have a rebase in progress:
rm -rf /tmp/interminai-demo
./demo-setup.shThe make demo target does this automatically.
The demo.gif will be approximately:
- 1-2 MB - Normal recording (~75 seconds)
- Larger GIFs can be optimized with
gifsicle:
sudo dnf install gifsicle
gifsicle -O3 --colors 256 demo.gif -o demo-optimized.gifThis demo shows Claude using interminai to debug a C program with GDB and discover function parameters.
demo-gdb-setup.sh- Creates test environment with C programdemo-gdb.tape- VHS recording scriptdemo-gdb.gif- The generated GIF
make demo-gdbOr manually:
./demo-gdb-setup.sh
FORCE_COLOR=1 vhs demo-gdb.tape./demo-gdb-setup.sh
cd /tmp/interminai-gdb-demoThis creates:
mystery.c- A C program with aprocess_data()function called indirectly throughhelper()mystery- Compiled binary with debug symbols.claude/skills/interminai- The interminai skill
Start Claude and ask:
Use gdb to find out what parameters process_data() is called with when running ./mystery
Claude should:
- Start a gdb session with interminai
- Set a breakpoint on
process_data - Run the program
- When the breakpoint hits, use
info argsto show the parameters - Report:
operation="divide",count=7,factor=2.71828
Try with different inputs:
Use gdb to find what parameters process_data() receives when running ./mystery 15
This should show: operation="multiply", count=30, factor=3.14159