record-terminal-proof
Skill11 starsChanged 10 days agoMITView on GitHub
Record a terminal run with asciinema and render it to a GIF that plays inline on GitHub, plus an MP4 when one is needed. Use when the user asks for terminal proof, a recording of a CLI run, migration, build or test command, a GIF of what the command did, or terminal output to attach to a PR.
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- jamdotdev/skillsword for word, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 1
- jamdotdev/skills★ 11100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- add-voiceoverSkill
- jam-annotateSkill
- jam-fixSkill
- jam-proofSkill
- jam-proof-tableSkill
- jam-setupSkill
- jamSkill
- jam-to-e2eSkill
- jam-to-tasksSkill
- jam-to-ticketSkill
- record-demoSkill
- video-to-jamSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Not for anything with a UI.
- Distinctive: line 24
Put the steps in a script so the recording has no typing and no pauses while you think.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Record terminal proof
When to use
- The proof is terminal output: a CLI run, a migration, a test or build command.
- The command needs no input.
--commandrecords it without an interactive shell. - Not for anything with a UI. Record the browser instead.
Install
brew install asciinema agg # macOS; tested with asciinema 3.2.1, agg 1.9.0On Linux, take asciinema from the package manager and agg from its GitHub releases or cargo install --git https://github.com/asciinema/agg. asciinema does not run on Windows itself; use WSL there.
Write the script
Put the steps in a script so the recording has no typing and no pauses while you think. Echo each command before it runs, so the reader sees what ran, and sleep between steps so each result stays on screen:
#!/usr/bin/env bash
set -e
step() { printf '\n\033[1m$ %s\033[0m\n' "$*"; "$@"; sleep 2; }
step npm run migrate
step npm test -- users.spec.tsset -e stops the recording at the first failing step, so the proof cannot show success after a failure, and --return (below) makes asciinema exit with the script's status: stop and report when it is not 0. Keep secrets out of the output: no env, no tokens in arguments.
Record
asciinema rec --quiet --overwrite --return --window-size 100x30 --command "bash ./demo.sh" proof.castWith no TTY (an agent's shell), asciinema switches to headless mode by itself. A 15 s script gives a cast of about 1 KB. The cast is plain JSON lines, so keep it when someone needs the exact text.
Render
agg --quiet proof.cast proof.gifDefaults are fine for a PR: font size 16, 30 fps cap, idle gaps cut to 5 s, a 3 s hold on the last frame. 100x30 renders to about 1004x694 px; a 15 s run gives a GIF of about 50 KB in under a second.
For a slide or a social post, record at --window-size 96x24 and render with --theme github-dark --font-size 20 --idle-time-limit 2: about 1206x700 px, close to 16:9, text readable on a phone, and no long waits while a slow step runs.
Open the GIF's last frame before you share it. If it does not show the final result, the script exited early or the window is too small.
Attach to the PR
Drag the GIF into the PR description or a comment. GitHub renders it inline (images up to 10 MB).
MP4
For a tool that takes video but not GIF, convert it. tpad keeps agg's hold on the last frame, which a plain conversion drops:
ffmpeg -v error -y -i proof.gif -movflags faststart -pix_fmt yuv420p \
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2,tpad=stop_mode=clone:stop_duration=3" proof.mp4With Jam: when command -v jam (where jam on Windows) finds the CLI, ask the user once whether to upload the MP4; it becomes one link to comment on, with frames the next agent can read. A terminal recording has no console or network data, so the link holds the video only. Upload only on a yes, with jam create jam '{"kind": "video", "url": "", "videoPath": "proof.mp4", "screenDimensions": {"width": 1004, "height": 694}}' (the GIF's pixel size). Exit code 3 means signed out: run jam auth login, then retry.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

