Skip to main content

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-char parameter for readable source files.
  • Optional theme parameter 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)

Source distribution for erbsland-sphinx-ansi 1.2.4
File Size Uploaded
erbsland_sphinx_ansi-1.2.4.tar.gz 42.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for erbsland-sphinx-ansi 1.2.4
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

1.2.4 This release

2 release files

1.2.2

2 release files

1.2.0

2 release files

1.1.6

2 release files

1.1.4

2 release files

1.1.2

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page