bbs-ansi-art
Python library for ANSI art — create, view, convert, and repair BBS-era artwork.
Features
- Load & Parse: Read
.ans,.asc,.dizfiles with CP437 encoding - SAUCE Metadata: Full support for reading and writing SAUCE records
- Render: Output to terminal, HTML, plain text, or images (PNG)
- Create: Programmatic ANSI art creation with fluent builder API
- Studio: Interactive terminal studio with file browser
- LLM Integration: Style presets and ArtSpec for AI-generated art
Installation
Command-line tools (recommended)
Install the bbs-ansi-art command globally in an isolated environment:
uv tool install "bbs-ansi-art[cli]"
For the command with all optional features, including PNG rendering and LLM support:
uv tool install "bbs-ansi-art[all]"
Library
Install the library into your project's environment:
uv pip install bbs-ansi-art
Optional library features:
uv pip install "bbs-ansi-art[image]" # PNG rendering (requires Pillow)
uv pip install "bbs-ansi-art[llm]" # LLM generation support
Quick Start
import bbs_ansi_art as ansi
# Load and display ANSI art
doc = ansi.load("artwork.ans")
print(doc.render())
# Check SAUCE metadata
if doc.sauce:
print(f"Title: {doc.sauce.title}")
print(f"Author: {doc.sauce.author}")
# Create new ANSI art programmatically
art = (ansi.create(80)
.fg(36).bold().text("Hello, BBS World!")
.newline()
.reset().text("Welcome back to 1994.")
.build())
Studio
Launch the interactive ANSI art studio:
bbs-ansi-art studio ~/Downloads/
bbs-ansi-art view artwork.ans -i
LLM Art Generation (Preview)
from bbs_ansi_art.create import ArtSpec
from bbs_ansi_art.llm import list_styles
# Available styles: acid, ice, blocky, ascii, amiga, dark, neon, minimal
print(list_styles())
# Build a specification for LLM generation
spec = (ArtSpec()
.with_content("A dragon guarding treasure")
.with_style("acid")
.with_dimensions(80, 25)
.with_instruction("Include fire effects"))
Architecture
bbs_ansi_art/
├── core/ # Canvas, Cell, Color, Document
├── codec/ # CP437 encoding, ANSI parser
├── sauce/ # SAUCE metadata read/write
├── render/ # Terminal, HTML, Text renderers
├── create/ # Builder API, ArtSpec
├── io/ # File read/write
├── llm/ # Style presets for AI generation
└── cli/ # Studio and CLI tools
├── core/ # Terminal, input handling
├── widgets/ # Reusable components
└── studio/ # Interactive applications
License
MIT License - see LICENSE for details.
Metadata
Release files for bbs-ansi-art 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| bbs_ansi_art-0.1.0.tar.gz | 107.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bbs_ansi_art-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 230.6 kB
Release files / bbs_ansi_art-0.1.0.tar.gz
| Download URL | bbs_ansi_art-0.1.0.tar.gz |
|---|---|
| Size | 107.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fba180638d35ba954650aa0ecb64d6e018ddb49e66ec04760adc4fd9be89be0
|
|
BLAKE2b-256 checksum How to use checksums |
52c3f74b59f42e80ee42c0f68850ca67e431c33be801dd45c5f41ec549c362cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 17, 2026.
Transparency logRelease files / bbs_ansi_art-0.1.0-py3-none-any.whl
| Download URL | bbs_ansi_art-0.1.0-py3-none-any.whl |
|---|---|
| Size | 123.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a051f56b5e3930721dded86a9822da66615fb3825e3fabcf1938fa15dd70f94
|
|
BLAKE2b-256 checksum How to use checksums |
d87171f5eafb569c5cf88b6bac15dd83f2ce2b0a83c2112b10ddd70b9cd26a3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 17, 2026.
Transparency logSecurity for bbs-ansi-art 0.1.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for bbs_ansi_art-0.1.0.tar.gz
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 Sep 17, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.