GitHub - lanestp/vid-line: Watch videos as ANSI art in your Claude Code statusline. Mario Maker while your agents grind. · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
lanestp
vid-line
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>3 Commits<br>3 Commits
demo
demo
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
demo.gif
demo.gif
install.sh
install.sh
statusline.zsh
statusline.zsh
vidline
vidline
View all files
Repository files navigation
vid-line 🎬
Watch videos in your Claude Code statusline while your agents grind.
(Demo rendered programmatically with Remotion from the<br>actual ANSI frames — see demo/.)
vid-line converts any video into ANSI half-block pixel art and plays it in<br>Claude Code's statusline —<br>~3fps while Claude is working, 1fps while idle. Mario Maker during the long<br>tool calls. A nature documentary during the big refactor. You deserve this.
Yes, this is a deeply stupid idea. It is also fully working software with<br>wall-clock-synced playback and a worst-case-bytes-per-line analysis behind<br>it. We contain multitudes.
Install
Requires macOS or Linux with zsh, jq, ffmpeg, yt-dlp, and chafa<br>(all available via brew install / your package manager), plus Python 3.
git clone https://github.com/lanestp/vid-line<br>cd vid-line<br>./install.sh
The installer copies the scripts to ~/.config/vidline, backs up your<br>~/.claude/settings.json, and wires in the statusline (it won't touch an<br>existing custom statusline — it prints instructions instead).
Usage
vidline prep "https://youtube.com/watch?v=..." --name mario # any URL yt-dlp eats<br>vidline prep "ytsearch1:mario maker 2 endless" --name mario # or search YouTube<br>vidline prep ~/Movies/cat.mp4 --name cat # or a local file
vidline list # what's prepped, * marks the active one<br>vidline use cat # switch videos<br>vidline off # back to a boring (but informative) statusline<br>vidline resize mario --height 16 --width 110 # re-render bigger/smaller, no re-download
Prep options: --width 80 --height 8 --fps 3 --max-secs 600 --colors 256.<br>Each text row is 2 pixels tall (half-blocks), and chafa preserves aspect<br>ratio inside the width×height box. Start small; resize is cheap.
How it works
vidline prep: yt-dlp downloads → ffmpeg extracts frames at 3fps → chafa<br>converts each frame to ANSI art → text files cached in ~/.cache/vidline/.
statusline.zsh: Claude Code runs it on every UI refresh; it picks the<br>frame by wall-clock time (epoch_ms × fps ÷ 1000 mod nframes), so<br>playback stays smooth no matter how erratically the statusline refreshes,<br>then prints the frame plus an info line (model · dir · context % · cost).
The script runs in ~10ms. Your statusline stays snappy.
Troubleshooting
Glitchy frames / stray white lines? Claude Code truncates oversized<br>statusline lines and can cut mid-ANSI-escape<br>(anthropics/claude-code#42382).<br>Keep raw bytes per line roughly under ~1.2KB: prefer --colors 256 (the<br>default) over --colors full, or render smaller. --colors 16 is<br>bulletproof and appropriately retro.
Video frozen? It only animates when the statusline refreshes — during<br>activity that's ~3fps, idle is 1fps (refreshInterval). If it's fully<br>frozen, check that ~/.cache/vidline/current points at a prepped video.
Disk usage: ~15–70MB per 10-minute video depending on size, plus the<br>kept source file (which makes resize instant). Delete<br>~/.cache/vidline/ when you're done with one.
Only download videos you have the right to use.
Uninstall
Remove the statusLine block from ~/.claude/settings.json (or restore<br>settings.json.bak.vidline), then rm -rf ~/.config/vidline ~/.cache/vidline.
License
MIT. Built with Claude Code, naturally.
About
Watch videos as ANSI art in your Claude Code statusline. Mario Maker while your agents grind.
Topics
terminal
ascii-art
ansi-art
statusline
yt-dlp
claude-code
Resources
Readme
License
MIT license
Uh oh!
There was an error while loading. Please reload this...