Generate colorful screenshots of terminal commands
Project description
richterm
richterm turns arbitrary terminal commands into Rich-rendered SVG transcripts. Run it from the command line or embed live captures in Sphinx documentation with a dedicated directive.
Quick start
Run the CLI without installing anything permanently:
uvx richterm -- python -m rich
Install globally when you are ready:
uv tool install richterm
richterm --prompt "[bold green]❯" python -c "print('hello')"
Each invocation writes an SVG named rich_term_<TIMESTAMP>.svg (or the file passed with -o/--output) and echoes the command output back to the terminal.
To keep colours vibrant even in non-interactive captures, richterm sets friendly defaults: TERM=xterm-256color (when missing) plus FORCE_COLOR=1, CLICOLOR_FORCE=1, PY_COLORS=1, and TTY_COMPATIBLE=1 unless you override them. Opt out with RICHTERM_DISABLE_COLOR_HINT=1 or by exporting NO_COLOR.
Command-line usage
usage: richterm [-h|--hide-command] [-o PATH] [--prompt STR] <command...>
--hide-commandhides the prompt and command line in the transcript.--promptaccepts Rich markup and defaults to$.-o/--outputselects the SVG path; otherwise a timestamped filename is generated.
Examples:
richterm ls -la
richterm --prompt "[bold blue]λ" -o docs/_static/listing.svg git status --short
richterm --hide-command python -c "print('\033[31merror\033[0m')"
Sphinx integration
Install the optional Sphinx extras and enable the extension:
uv add richterm[sphinx]
# docs/conf.py
extensions = [
"myst_parser",
"sphinxcontrib.mermaid",
"richterm.sphinxext",
]
richterm_prompt = "[bold]$"
richterm_hide_command = False
Then use the directive in MyST or reStructuredText:
```{richterm} python -m rich --force-terminal --no-color-system example
```
The directive executes the command during the build, embeds the SVG directly in HTML output, and falls back to a literal block for non-HTML builders. The :prompt: and :hide-command: options mirror the CLI flags.
Development
Tests depend on the Sphinx extras:
uv run --extra sphinx pytest
Build the documentation (which exercises the directive itself):
make docs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file richterm-0.1.0.tar.gz.
File metadata
- Download URL: richterm-0.1.0.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4eadab4c1eaae0388f7f1b2b96d569056c79827237d662e60a4128019a820d8
|
|
| MD5 |
f65a5f52fc61459b26b10368d92fe795
|
|
| BLAKE2b-256 |
c3d20116d441380ca7eb67f29c7400a1e5ae4bcdfb90f14f5d3fff4169cd0907
|
Provenance
The following attestation bundles were made for richterm-0.1.0.tar.gz:
Publisher:
cd.yml on mgaitan/richterm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
richterm-0.1.0.tar.gz -
Subject digest:
d4eadab4c1eaae0388f7f1b2b96d569056c79827237d662e60a4128019a820d8 - Sigstore transparency entry: 664610774
- Sigstore integration time:
-
Permalink:
mgaitan/richterm@3b03fa1e53acf64b839616303e5ad8fe2fca9835 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/mgaitan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@3b03fa1e53acf64b839616303e5ad8fe2fca9835 -
Trigger Event:
release
-
Statement type:
File details
Details for the file richterm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: richterm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7b51dad405e3946df61eb9d9e32658633341fb53be6d3030abf86e7c637afed
|
|
| MD5 |
45aa362df7b89ad3c1087061b9239288
|
|
| BLAKE2b-256 |
31ceeeeb28042b18a11cb5f232a048061abb86001518bd5327c52f41011b2ee2
|
Provenance
The following attestation bundles were made for richterm-0.1.0-py3-none-any.whl:
Publisher:
cd.yml on mgaitan/richterm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
richterm-0.1.0-py3-none-any.whl -
Subject digest:
f7b51dad405e3946df61eb9d9e32658633341fb53be6d3030abf86e7c637afed - Sigstore transparency entry: 664610777
- Sigstore integration time:
-
Permalink:
mgaitan/richterm@3b03fa1e53acf64b839616303e5ad8fe2fca9835 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/mgaitan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@3b03fa1e53acf64b839616303e5ad8fe2fca9835 -
Trigger Event:
release
-
Statement type: