The page this skill built from examples/pipewren, working in your browser. Opens in a new tab. Also: Kilobyte.
12-second example rendered by this skill from examples/pipewren · 1280×720
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- A 12-second boot story: switch-on, memory test, boot lines, a typed command, output, banner, switch-off
- A curved tube with scanlines, aperture grille, bloom, flicker and a reflection, in a plastic case or bare glass
- 20 documented effect settings: phosphor and glass colours, case, screen font, columns, curvature, scanlines, bloom, flicker, power cycle and every line of the script
- Dark or light pages: the screen glows onto a dark page, a beige case suits a light one
- An SVG still with the same text on the screen for no WebGL, and one real frame for reduced motion, so the hero is never blank
- Contrast and layout checks at 390, 768, 1024 and 1440 px
- A frame-exact MP4 (1080p by default, portrait sizes too) and a poster, the same on any machine
- Open-source licenses for every part it builds on
Good fit
- Developer tools, CLIs and CI or hosting services can show their own command being typed at a prompt, with its output and a closing banner.
- Retro computing fairs, games, museums and synthwave releases can use a green, amber or white tube that switches on, boots and fades every 12 seconds.
- Brands on dark or light pages both fit: a dark page catches the screen’s glow, and a light page gets a beige plastic case.
Not for
- A real, working terminal: the screen plays a fixed script and takes no input
- Long text on the screen: lines are 32 to 64 characters and the log scrolls after about 14 rows
- Full landing pages below the hero (see the Landing Pages series)
About this skill
A hero section with an old CRT monitor beside your headline. The curved phosphor tube switches on from a bright line and runs a memory test. Boot lines print with their [ OK ]s, a command is typed at the prompt, its output scrolls past and your banner prints at double size with the cursor blinking under it. Then the picture collapses to a dot and the 12-second loop starts again. Scanlines, bloom, flicker, a rolling refresh band and a glass reflection that follows the pointer make it read as a real tube, in green, amber or your own colour. Your agent writes the boot script about your product, sets your colors, fonts, logo and words, checks contrast at four widths and records a frame-exact 1080p video.
Example request
Build a CRT Terminal hero for Pipewren, our CI service: a green phosphor monitor on near-black that boots our runner, types 'pipewren run --branch main', prints the test results and ends on SHIPPED, headline 'Your pipeline, warm before you push.', and record the launch video.
How it works
Your agent
- 1
Collect the brand
Every claim, price, date and time in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/pipewren/hero.json(near-black page, green phosphor, a charcoal case, the visitor's monospace on the screen, copy on the left: a CI service) orexamples/kilobyte/hero.json(cream page, amber phosphor, a beige case, VT323 for the headline and the screen, copy on the right: a retro computing fair). - 3
Build
It lists every problem in
hero.jsonat once (missing fields, text over its limit, a setting out of range, a phosphor too dim on its glass, a banner too long, colours that don't contrast) and writes nothing until they're fixed. - 4
Check
It loads the page at 390, 768, 1024 and 1440 px and must say
okat each: nothing wider than the screen or cut off, readable contrast for every line of text, names on every link and button, one h1. - 5
Look at it
They save
out/still-1440x900.pngandout/still-390x844.png, at the moment the banner has printed. - 6
Record the video
It steps the hero through 12 seconds at 30 fps at 1920×1080, drawing each frame at exactly its time, and writes
out/preview.mp4(H.264; 12 seconds loops seamlessly) andout/poster.png. - 7
Put it live
As a page: upload
out/index.htmlandout/assets/to any static host (Cloudflare Pages, Netlify, Vercel, GitHub Pages, S3).
- 1
You get
- out/index.html
- out/embed.html
- out/still-1440x900.png
- out/still-390x844.png
- out/preview.mp4
- out/poster.png


What you need
- Node.js 18 or newer. Nothing to install.
- Chrome, Chromium or Edge, for the checks and the recording (the scripts find it; set
CHROME_PATHif they don't). - ffmpeg, for the video (
brew install ffmpeg,winget install ffmpeg,apt install ffmpeg; or setFFMPEG_PATH). - Nothing else at runtime: the effect is plain WebGL inlined in the page, and the screen's text is drawn in the browser. Only the fonts load from a CDN; without the network the page uses system fonts. Without WebGL, visitors see the SVG still: the monitor with the same text on it.
Last checked Oct 26, 2026: the package’s own build and render commands ran and passed.
If something goes wrong
build: fix hero.json firstEach line names the field and what to change; colour problems suggest a colour that works.
"too dim on effect.glass"
Pick a brighter phosphor or a darker glass.
Lines end in the middle
They were cut to fit
columns; shorten them or raisecolumns.
What’s in the download
- SKILL.md15.0 KB
- examples/
- examples/kilobyte/2.49 KBKilobyte Fair, a retro computing fair, amber on cream · 2 files
- examples/pipewren/2.53 KBPipewren, a CI service, green on near-black · 2 files
- scripts/
- scripts/effect/the monitor itself:
effect.mjs(its settings, checks and the SVG still) andeffect.js(the script and the screen at any time, the text drawn into a canvas each frame, and the WebGL shader for the tube, the case and the glow). - scripts/effect/effect.js22.0 KB
- scripts/effect/effect.mjs10.5 KB
- scripts/kit/the kit shared by every Motion Heroes skill: the build and checks (
build.mjs), the section's CSS (shell.css), the browser runtime (runtime.js: clock, pausing, pixel ratio, reduced motion, fallback), the recorder (record.mjs,cdp.mjs), the pinned fonts (fonts.json) andKIT.md, which explains them. - scripts/kit/build.mjs34.5 KB
- scripts/kit/cdp.mjs4.90 KB
- scripts/kit/fonts.json5.42 KB
- scripts/kit/KIT.md16.0 KB
- scripts/kit/record.mjs8.11 KB
- scripts/kit/runtime.js15.1 KB
- scripts/kit/shell.css9.41 KB
- scripts/kit/three.json6.35 KB
- scripts/build.mjs263 Bwhat you run. They call the Motion Heroes kit.
- scripts/check.mjs9.48 KBLookbk's checks, screenshots, colour maths and HTML writer.
- scripts/chrome.mjs3.63 KB
- scripts/color.mjs1.40 KB
- scripts/inline.mjs1.67 KB
- scripts/markup.mjs6.15 KB
- scripts/record.mjs255 B
- scripts/screenshot.mjs1.79 KB
- NOTICE.md1.65 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json940 B
25 files · 179 KB · installs to ~/.claude/skills/crt-terminal-hero for Claude Code and ~/.agents/skills/crt-terminal-hero for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- Animated WebGL hero · page + embed + 1080p video
- Needs
- Node.js 18+, Chrome (or Chromium/Edge), and ffmpeg for the video
- Series
- Motion Heroes · 50 skills
- Updated
- Oct 26, 2026
- Checked
- Oct 26, 2026: its own commands ran and passed. That is a working check, not a security audit.
Written for
See all 31 agents that read skill folders.
Install guides
For your agent
Generates with
Installed it? Tell others how it went. Reviews come from people who installed this skill.
Write a reviewFAQ
How much text fits on the screen?
Up to 7 boot lines of 40 characters, each with a status of up to 4, a command of up to 48, up to 4 output lines and a banner of up to 31, though the banner can be at most half the columns less one. The screen is 32 to 64 columns wide (default 42), and longer lines are cut to fit.
Will the screen font look the same for every visitor?
Not by default. The screen uses each visitor’s own monospace font, so it differs between computers. Set it to your display or body font and pick a monospace family, such as VT323, for the same look everywhere. Fonts load from jsDelivr or Google Fonts, and without the network the page uses system fonts.
What do visitors see with reduced motion or no WebGL?
With reduced motion they get one still frame of the real tube at 10.2 seconds. Without WebGL, or if the script is blocked, they see an SVG still of the monitor with the same text on its screen, so the hero is never blank.
Which agents is CRT Terminal Hero written for?
Any agent that reads SKILL.md folders, including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode.
Do I own what I make with it?
Yes. Everything your agent makes with this skill is yours, including for client and commercial work.
What if it doesn’t work for me?
Email support@lookbk.dev within 7 days of buying and we’ll fix it or refund you.
Credits and licensesWritten by Lookbk
Lookbk wrote this package: the CRT effect, its shaders, the boot script player, the Motion Heroes kit and the examples. No third-party code is included. Written by Lookbk, no third-party code.
Credits and licenses for the open-source software and fonts it uses are in NOTICE.md inside the download.