Skip to main content

bbs-ansi-art

Python library for ANSI art — create, view, convert, and repair BBS-era artwork.

Features

  • Load & Parse: Read .ans, .asc, .diz files 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

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)

Source distribution for bbs-ansi-art 0.1.0
File Size Uploaded Provenance
bbs_ansi_art-0.1.0.tar.gz 107.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bbs-ansi-art 0.1.0
File Interpreter ABI Platform
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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