# termframe

> Non-interactive terminal emulator that executes commands and exports their output as SVG screenshots.

Stars: 144 · Language: Rust · License: MIT · Categories: Dev Tools

- Repository: https://github.com/pamburus/termframe
- Page: https://www.trmn.sh/tools/termframe

## Install

- Homebrew: `brew install termframe`
- Cargo: `cargo install --locked --git https://github.com/pamburus/termframe.git`
- Scoop: `scoop bucket add pamburus https://github.com/pamburus/scoop-bucket.git && scoop install termframe`

## Overview

termframe is a terminal emulator that captures command output as SVG screenshots. It executes a single command in a virtual terminal session and renders the output with full ANSI styling support, including bold, italic, underlined text, reversed colors, and the complete color spectrum from 16-color palettes to 24-bit truecolor.

The tool supports auto-sizing to determine optimal terminal dimensions based on command output, with configurable width and height ranges. Users can specify dimension constraints like `termframe -W 80..120 -H auto -o output.svg -- command` to automatically detect the best terminal size within specified bounds. It includes extensive theming capabilities with support for iTerm2 color schemes and custom themes in TOML, YAML, or JSON formats.

Configuration is handled through platform-specific config files that support flexible terminal dimension settings, custom themes, and window styles. The tool can embed fonts for enhanced customization and supports both dark and light mode compatibility. Developers and documentation writers would use termframe to generate consistent, styled terminal screenshots for README files, tutorials, or presentations without manual screenshot capture.

### Installation

```bash
# via Homebrew
brew install termframe
```

```bash
# via Cargo
cargo install --locked --git https://github.com/pamburus/termframe.git
```

```bash
# via Scoop
scoop bucket add pamburus https://github.com/pamburus/scoop-bucket.git && scoop install termframe
```

![Sample terminal output screenshot](https://media.trmn.sh/cached/20766332240768c5c0b92e055f106b5993e56f61338d9db10183b2bec8943102.svg)

![Complete help output](https://media.trmn.sh/cached/7d8e78724349444c306c214c916ad92a0a832664b14f07e74d0bddb6e8fdb06a.svg)

## Alternatives

- [lazycelery](https://www.trmn.sh/tools/lazycelery.md): Terminal UI for monitoring and managing Celery workers, queues, and tasks with real-time updates and keyboard navigation. (Rust, 56 stars)
- [logss](https://www.trmn.sh/tools/logss.md): CLI tool that splits and visualizes log streams into multiple containers based on regex patterns with real-time filtering (Rust, 296 stars)
- [dra](https://www.trmn.sh/tools/dra.md): CLI tool to download and install release assets from GitHub repositories (Rust, 364 stars)
- [Railway CLI](https://www.trmn.sh/tools/railway-cli.md): Command-line client for Railway projects: deploy with `railway up`, manage IaC config, configure AI agent tools via MCP, and launch cloud agent VMs. (Rust, 628 stars)
- [tlrc](https://www.trmn.sh/tools/tlrc.md): Official tldr-pages client written in Rust that shows community-maintained command cheat sheets in the terminal, with a local cache and a TOML config. (Rust, 1.1k stars)

---

Canonical: https://www.trmn.sh/tools/termframe
