shellfie
Generate terminal screenshot-style images and animations from YAML.
Install
Requirements:
- Ruby 3.0+
- ImageMagick 7+
brew install imagemagick
gem install shellfie
For Bundler:
gem "shellfie"
Quick Start
Create terminal.yml:
theme: macos
title: "Terminal - zsh"
window:
width: 600
padding: 20
lines:
- prompt: "$ "
command: "echo hello"
- output: "hello"
Generate an image:
shellfie generate terminal.yml -o terminal.png
Use shf as a short alias for shellfie.
CLI
shellfie generate config.yml -o output.png
shellfie generate config.yml -o demo.gif --animate
shellfie generate config.yml -o output.svg --format svg
shellfie generate config.yml -o output.png --scale 2 --no-shadow
shellfie generate config.yml -o output.png --no-header
shellfie validate config.yml
shellfie themes
shellfie init
Common generate options:
| Option | Description |
|---|---|
-o, --output PATH |
Output path |
-t, --theme NAME |
Override theme |
-a, --animate |
Render animation |
-s, --scale FACTOR |
Output scale: 1, 2, or 3 |
-w, --width PIXELS |
Override window width |
--format FORMAT |
png, gif, svg, webp, or apng |
--fps FPS |
Override animation typing FPS |
--overflow MODE |
clip, wrap, or scroll |
--no-shadow |
Disable shadow |
--transparent |
Transparent background |
--no-header |
Headless output |
--force |
Overwrite existing files |
Static output supports png, svg, and webp.
Animated output supports gif, webp, and apng.
Configuration
Static content uses lines:
theme: macos
title: "Terminal"
window:
width: 600
padding: 20
visible_lines: 8
overflow: clip
font:
family: Monaco
size: 14
line_height: 1.4
lines:
- prompt: "$ "
command: "gem install shellfie"
- output: |
Successfully installed shellfie
1 gem installed
Animations use frames:
theme: macos
title: "Demo"
animation:
typing_speed: 50
command_delay: 500
cursor_blink: true
loop: true
palette: global
dither: true
scroll_easing: ease_out
frames:
- prompt: "$ "
type: "echo hello"
delay: 500
- output: "hello"
delay: 1000
Useful top-level keys:
| Key | Purpose |
|---|---|
theme |
macos, ubuntu, windows, or custom |
color_scheme |
Built-in color scheme such as dracula |
colors |
Theme color overrides |
window |
Size, padding, wrapping, clipping, scrolling |
font |
Font family, size, line height |
animation |
Typing speed, delays, loop, palette, easing |
cursor |
Cursor style and color |
headless |
Hide window chrome |
lines |
Static terminal content |
frames |
Animated terminal content |
ANSI colors and styles are supported in prompt, command, and output, including 8-color, bright, 256-color, and RGB escape sequences.
Themes
Built-in window themes:
macosubuntuwindows
Headless output removes window chrome:
headless: true
or:
shellfie generate config.yml -o output.png --no-header
Development
bundle install
bundle exec rspec