Sign inSign up

voiski/svg-term-cli

By voiski

•Updated over 7 years ago

Share terminal sessions via SVG and CSS

Image
1

1.0K

voiski/svg-term-cli repository overview

Share terminal sessions as razor-sharp animated SVG everywhere

Example generated with svg-term --cast 113643 --out examples/parrot.svg --window --no-cursor --from=4500

⁠svg-term-cli

  • 💄 Render asciicast to animated SVG
  • 🌐 Share asciicasts everywhere (sans JS)
  • 🤖 Style with common color profiles⁠

⁠Install

# Install asciinema via: https://asciinema.org/docs/installation
npm install -g svg-term-cli

⁠Usage

Generate the parrot.svg example from asciicast⁠

svg-term --cast=113643 --out examples/parrot.svg --window
⁠Docker

Skip the node installation running with docker:

docker run --rm marionebl/svg-term --cast=113643 --window >> examples/parrot.svg
# Run with --interactive(-i) to keep STDIN open
cat rec.json | docker run --rm -i marionebl/svg-term >> examples/parrot.svg
# Map volumes to have a better log if any error
docker run --rm -v $PWD:/data marionebl/svg-term --cast=113643 --out /data/parrot.svg --window

⁠Interface

λ svg-term --help

  Share terminal sessions as razor-sharp animated SVG everywhere

  Usage
    $ svg-term [options]

  Options
    --at            timestamp of frame to render in ms [number]
    --cast          asciinema cast id to download [string], required if no stdin provided [string]
    --command       command to record [string]
    --from          lower range of timeline to render in ms [number]
    --height        height in lines [number]
    --help          print this help [boolean]
    --in            json file to use as input [string]
    --no-cursor     disable cursor rendering [boolean]
    --no-optimize   disable svgo optimization [boolean]
    --out           output file, emits to stdout if omitted, [string]
    --padding       distance between text and image bounds, [number]
    --padding-x     distance between text and image bounds on x axis [number]
    --padding-y     distance between text and image bounds on y axis [number]
    --profile       terminal profile file to use, requires --term [string]
    --term          terminal profile format [iterm2, xrdb, xresources, terminator, konsole, terminal, remmina, termite, tilda, xcfe], requires --profile [string]
    --to            upper range of timeline to render in ms [number]
    --width         width in columns [number]
    --window        render with window decorations [boolean]

  Examples
    $ cat rec.json | svg-term
    $ svg-term --cast 113643
    $ svg-term --cast 113643 --out examples/parrot.svg

⁠Rationale

Replace GIF asciicast recordings where you can not use the asciinema player⁠, e.g. README.md files on GitHub and the npm registry.

The image at the top of this README is an example. See how sharp the text looks, even when you zoom in? That’s because it’s an SVG!

⁠License

Copyright 2017. Released under the MIT license.

Tag summary

Content type

Image

Digest

Size

33.1 MB

Last updated

over 7 years ago

docker pull voiski/svg-term-cli