ANSI-Colored Terminal Output for Sphinx
erbsland-sphinx-ansi is a lightweight Sphinx extension that renders ANSI-colored and formatted terminal output directly in your documentation.
It is useful for command-line tools, build logs, and terminal sessions where ANSI colors improve readability.
Features
- Render ANSI-colored terminal output in Sphinx documentation.
- Support for standard ANSI text styles and colors.
- Optional
escape-charparameter for readable source files. - Optional
themeparameter for custom CSS styling. - Works with both HTML and non-HTML output formats.
Installation
pip install erbsland-sphinx-ansi
Quick Start
Enable the extension in conf.py:
extensions = [
# ...
"erbsland.sphinx.ansi",
]
Use the erbsland-ansi directive:
.. erbsland-ansi::
:escape-char: ␛
␛[32m[sphinx-autobuild] ␛[36mStarting initial build␛[0m
␛[32m[sphinx-autobuild] ␛[34m> python -m sphinx build doc _build␛[0m
␛[32m[sphinx-autobuild] ␛[36mServing on http://127.0.0.1:9000␛[0m
␛[32m[sphinx-autobuild] ␛[36mWaiting to detect changes...␛[0m
escape-char is optional. If set, this character is replaced with the ANSI escape character (\x1b) when parsing the directive content. If omitted, provide real ANSI escape sequences directly.
Output Formats
- HTML output: ANSI sequences are converted into styled output.
- Non-HTML output: ANSI formatting is stripped, leaving plain text.
Limitations
erbsland-sphinx-ansi renders ANSI text formatting but is not a terminal emulator.
The extension supports ANSI colors and text styles, but does not emulate terminal behavior such as:
- Cursor movement
- Screen clearing
- Alternate screen buffers
- Character-set switching
- Interactive terminal updates
Output that relies on terminal emulation may not render as expected.
For such cases, preprocess the captured output with erbsland-ansi-convert:
pip install erbsland-ansi-convert
erbsland-ansi-convert input.ansi -o output.ansi
This tool emulates a terminal and writes the final screen contents as ANSI-formatted text that can be rendered correctly by erbsland-sphinx-ansi.
Requirements
- Python 3.10+
- Sphinx 8.0+ (required by the extension at runtime)
Development
- Python 3.13+
Install development dependencies:
pip install -r requirements-dev.txt
Run tests:
pytest
Documentation
Project documentation is available at:
https://sphinx-ansi.erbsland.dev
License
Copyright (c) 2026 Tobias Erbsland / Erbsland DEV (https://erbsland.dev)
Licensed under the Apache License, Version 2.0.
See LICENSE for details.
Metadata
Release files for erbsland-sphinx-ansi 1.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| erbsland_sphinx_ansi-1.2.4.tar.gz | 42.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| erbsland_sphinx_ansi-1.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.8 kB
Release files / erbsland_sphinx_ansi-1.2.4.tar.gz
| Download URL | erbsland_sphinx_ansi-1.2.4.tar.gz |
|---|---|
| Size | 42.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a558b081fb5b4ecf0d69c5c55e73355de56cbdf639b1aec4e1e4a6292e0c7e0
|
|
BLAKE2b-256 checksum How to use checksums |
79657359acbf82e3796bfa1bb1f4ed89bf8289aaf569356c9584bc38fa9625ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency logRelease files / erbsland_sphinx_ansi-1.2.4-py3-none-any.whl
| Download URL | erbsland_sphinx_ansi-1.2.4-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7098dfb3941e60f0316b740f6fce0a737674c3010eb8939310748c26a60ddeaa
|
|
BLAKE2b-256 checksum How to use checksums |
843e9bfe20b1630754e98b71e5b2b02c5e94a8ce3af2ead4cffe361494379e3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency log