Skip to content

pamburus/termframe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ธ termframe Build Status Coverage Status Release

Terminal output SVG screenshot tool.

This tool is a non-interactive terminal emulator that executes a single command, renders its output in an internal virtual session, and exports a screenshot as an SVG file.

Key features

  • Comprehensive ANSI style support:
    • Bold, dimmed (faint), italic, underlined, and strikethrough text.
    • Text with reversed background/foreground colors.
    • Full range of colors: basic 16 palette, 256 xterm palette, and 24-bit truecolor.
  • Optional font embedding for enhanced customization.
  • Dark and light mode compatibility.
  • Extensive theme collection from iTerm2-Color-Schemes.
  • Support for custom themes, refer to custom themes.
  • Flexible configuration system, see configuration files.
  • Customizable window styles, see custom window styles.

Sample

screenshot

PNG images: sample-dark.png and sample-light.png

Installation

macOS

  • Install using homebrew on macOS

    brew install pamburus/tap/termframe

Linux

  • Download and extract using curl and tar on Linux (x86_64)

    curl -sSfL -o /usr/local/bin/termframe https://github.com/pamburus/termframe/releases/latest/download/termframe-linux-x86_64-musl.tar.gz | tar xz
  • Download and extract using curl and tar on Linux (arm64)

    curl -sSfL -o /usr/local/bin/termframe https://github.com/pamburus/termframe/releases/latest/download/termframe-linux-arm64-musl.tar.gz | tar xz
  • Install using cargo

    cargo install --locked --git https://github.com/pamburus/termframe.git

Windows

  • Install using scoop

    scoop bucket add pamburus https://github.com/pamburus/scoop-bucket.git
    scoop install termframe
  • Download latest release from download page

Usage

  • Run a command and save the output to an SVG file

    termframe -o hello.svg -- echo "Hello, World"
  • Redirect output of a command to termframe

    echo "Hello, World" | termframe -o hello.svg

Configuration

Configuration files

  • Configuration files are automatically loaded if found in predefined platform-specific locations.

    OS System-Wide Location User Profile Location
    macOS /etc/termframe/config.{yaml,toml,json} ~/.config/termframe/config.{yaml,toml,json}
    Linux /etc/termframe/config.{yaml,toml,json} ~/.config/termframe/config.{yaml,toml,json}
    Windows %PROGRAMDATA%\termframe\config.{yaml,toml,json} %USERPROFILE%\AppData\Roaming\termframe\config.{yaml,toml,json}
  • The path to the configuration file can be overridden using the TERMFRAME_CONFIG environment variable or the --config command-line option.

    The order in which the configuration files are searched and loaded is as follows:

    • The system-wide location.
    • The user profile location.
    • The location specified by the TERMFRAME_CONFIG environment variable (unless the --config option is used).
    • The locations specified by the --config option (can be specified multiple times).

    If a configuration file is found in multiple locations, the file in each subsequent location overrides only the parameters it contains.

    If TERMFRAME_CONFIG or --config specifies - or an empty string, all default locations and any locations specified by previous --config options are discarded. The search for the configuration file locations starts over.

    To disable loading of configuration files and use the built-in defaults, --config - can be used.

  • All parameters in the configuration file are optional and can be omitted. In such cases, default values will be used.

Default configuration file

Custom Themes

You can create custom themes by placing theme files in the themes subfolder of your configuration directory.

Theme file locations

Create a themes folder in your configuration directory:

OS Theme Directory Location
macOS ~/.config/termframe/themes/
Linux ~/.config/termframe/themes/
Windows %USERPROFILE%\AppData\Roaming\termframe\themes\

Theme file formats

Theme files can be in TOML, YAML, or JSON format. Use the appropriate file extension (.toml, .yaml, .yml, or .json).

Theme examples

Custom Window Styles

You can create custom window styles by placing window style files in the window-styles subfolder of your configuration directory.

Window style file locations

Create a window-styles folder in your configuration directory:

OS Window Styles Directory Location
macOS ~/.config/termframe/window-styles/
Linux ~/.config/termframe/window-styles/
Windows %USERPROFILE%\AppData\Roaming\termframe\window-styles\

Window style file formats

Window style files can be in TOML, YAML, or JSON format. Use the appropriate file extension (.toml, .yaml, .yml, or .json).

Window style examples

Environment variables

  • Many parameters that are defined in command-line arguments and configuration files can also be specified by environment variables.

Precedence of configuration sources (from lowest priority to highest priority)

  • Configuration file
  • Environment variables
  • Command-line arguments

Complete set of options and flags

screenshot

About

๐Ÿ“ธ Terminal output SVG screenshot tool

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5