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 custom themes.
- Flexible configuration system, see configuration files.
- Customizable window styles, see custom window styles.
PNG images: sample-dark.png and sample-light.png
-
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
-
Download and extract using
curl
andtar
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
-
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.
You can create custom themes by placing theme files in the themes
subfolder of your configuration directory.
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 files can be in TOML, YAML, or JSON format. Use the appropriate file extension (.toml
, .yaml
, .yml
, or .json
).
- Dual mode theme (supports both dark and light modes):
assets/themes/One Double.toml
- Single mode theme (dark mode only):
assets/themes/One Double Dark.toml
You can create custom window styles by placing window style files in the window-styles
subfolder of your configuration directory.
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 files can be in TOML, YAML, or JSON format. Use the appropriate file extension (.toml
, .yaml
, .yml
, or .json
).
- macOS style:
assets/window-styles/macos.toml
- Compact style:
assets/window-styles/compact.toml
- 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