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.
- 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 configuration files.
- Customizable window styles, see configuration files.
-
Install using homebrew on macOS
brew install pamburus/tap/termframe
-
Download and extract using
curl
andtar
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
-
Install using cargo
cargo install --locked --git https://github.com/pamburus/termframe.git
-
Install using scoop
scoop bucket add pamburus https://github.com/pamburus/scoop-bucket.git scoop install termframe
-
Download latest release from download page
-
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 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.
- Many parameters that are defined in command-line arguments and configuration files can also be specified by environment variables.
- Configuration file
- Environment variables
- Command-line arguments