Skip to content

Repository files navigation

shellfie-cli

Turn terminal output into stunning SVG screenshots. Blazing fast.

npm test| npx shellfie

npm test

Why shellfie?

  • Blazing fast - Built for speed, renders instantly
  • Full 256 color support - Captures every color your terminal can display
  • Auto syntax highlighting - 12 languages detected and highlighted out of the box
  • 37 themes - From Dracula to Nord to Tokyo Night, find your style
  • Zero config - Works perfectly with defaults, customize when you want
  • Portable SVGs - Embed fonts for pixel-perfect rendering anywhere

Installation

Homebrew (macOS/Linux)

brew install tool3/tap/shellfie

Shell script (macOS/Linux)

curl -fsSL https://raw.githubusercontent.com/tool3/shellfie-cli/master/scripts/install.sh | bash

npm

# Use directly with npx (no install needed)
npx shellfie-cli --help
# Or install globally
npm install -g shellfie-cli
# Or add to your project
npm install shellfie-cli -D

Download binary

Pre-built binaries for macOS, Linux, and Windows are available on the Releases page.

Quick Start

Pipe any command

# Capture test output
npm test2>&1| shellfie
# Git history
git log --oneline -10 | shellfie -i "Recent Commits"# Colorful output
ls -la --color=always | shellfie -T nord

From a file

shellfie error.log -o error.svg
shellfie banner.txt -t minimal -T monokai

To stdout

cat output.txt | shellfie --stdout > output.svg
echo"Hello World"| shellfie --stdout | pbcopy # macOS clipboard

Themes

37 beautiful themes to choose from:

ThemeThemeThemeTheme
night3024a11yDarkbase16Darkbase16Light
blackboardcatppuccinMochacobaltdark
draculadraculaProduotoneDarkgithubDark
githubLightgruvboxDarkgruvboxLighthopscotch
lucariomaterialmonokainord
oceanicNextoneDarkoneLightpandaSyntax
paraisoDarksetishadesOfPurplesolarizedDark
solarizedLightsynthwave84terminaltokyoNight
twilightverminalvscodeyeti
zenburn
# List all themes
shellfie --list-themes
# Use a theme
npm test| shellfie -T dracula

Templates

TemplateDescription
macosmacOS-style with traffic light buttons (default)
windowsWindows-style with square buttons
minimalClean, no window chrome

Options

OptionAliasDescriptionDefault
--output <path>-oOutput file path./shellfie.svg
--name <name>-nOutput filename (without extension)-
--stdout-sPrint SVG to stdout instead of filefalse
-t <name>-tWindow style: macos, windows, minimalmacos
-T <name>-TColor theme (see Themes)-
-i <text>-iWindow title bar text-
-W <text>-WWatermark text or SVG markup (bottom-right corner)-
--watermark-styleWatermark CSS styles (opacity: 0.5; padding: 20px)-
--width <cols>-wTerminal width in columnsauto
--padding <value>-pPadding in pixels (16 or top,right,bottom,left)-
--font-size <px>-fFont size in pixels14
--line-height <n>-lLine height multiplier1.4
--font-family <css>-FCSS font-family string-
--embed-font-eEmbed system font for portable SVGsfalse
--controls-CShow window control buttonstrue
--custom-glyphs-GUse pixel-perfect box drawingtrue
--language <lang>-gSyntax highlighting languageauto
--highlight-NEnable syntax highlightingtrue
--header-height <px>-HCustom header bar height-
--header-color <hex>-cHeader background color-
--footer-height <px>-rFooter bar height-
--footer-color <hex>-RFooter background color-
--list-themes-LList all available themes-
--list-templates-PList all available templates-
--help-hShow help-
--version-vShow version-

Use --no-<option> to negate boolean flags (e.g., --no-controls, --no-highlight).

Examples

Test results with Dracula theme

npm test2>&1| shellfie -T dracula -i "Unit Tests" -o tests.svg

tests dracula

Git log with minimal template

git log --oneline --graph --color=always | shellfie -t minimal -T githubDark

git log

Custom padding and font size

cat script.sh | shellfie -T draculaPro

script

Embed font for sharing

ls -l | lolcat -f | shellfie -e

portable

Add watermark

ifconfig | grep inet | shellfie -W "@$USER" -T monokai

watermark

Styled watermark

Watermarks support ANSI escape sequences and CSS styles:

# Colored watermark with ANSI codesecho"test"| shellfie -W '\033[31m@username\033[0m'# Redecho"test"| shellfie -W '\x1b[32m@username\x1b[0m'# Green# Custom CSS styles (opacity, padding, transform, etc.)echo"test"| shellfie -W "@tool3" --watermark-style "opacity: 0.5; padding: 20px"echo"test"| shellfie -W "@tool3" --watermark-style "font-size: 16px; transform: rotate(-5deg)"# SVG markup watermark (auto-detected)echo"test"| shellfie -W '<a href="https://github.com"><text>GitHub</text></a>'

Tips

Preserve colors

Many commands disable colors when piped. Force them:

ls -la --color=always | shellfie
grep --color=always pattern file | shellfie
git -c color.ui=always log | shellfie
npm test --color | shellfie

Capture stderr

Include error output with 2>&1:

npm test2>&1| shellfie

CI/CD Integration

# GitHub Actions
- name: Generate test screenshotrun: npm test 2>&1 | npx shellfie-cli -T githubDark -o test-output.svg
- name: Upload artifactuses: actions/upload-artifact@v4with:
name: test-screenshotpath: test-output.svg

npm scripts

{
"scripts": {
"test:screenshot": "npm test 2>&1 | shellfie -T dracula -o tests.svg"
}
}

Related

License

MIT

About

Transform your terminal output into beautiful SVG screenshots, directly from the command line.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages