Pippin
pippin consumes images (png, jpeg, svg) and outputs high-resolution
ASCII / UTF-8 representations to your terminal.
Features
- Input:
png,jpeg,svg(plus anything Pillow opens: bmp, gif, webp, tiff) - Charsets:
ascii,utf8,blocks(+--custom-chars) - Preview to terminal (ANSI truecolor optional) and export to
.txt/.ansi - Color coding of characters (foreground truecolor sampled from source)
- Contrast / brightness / invert / aspect correction
Install
No Python install required: each v* tag ships self-contained single-file
binaries (.github/workflows/release.yml, matrix linux-x64|osx-arm64|win-x64)
attached to that tag's GitHub Release. SVG works out of the box — cairo is
bundled inside the binary.
curl -fSL -o /tmp/pippin-dl/pippin-linux-x64 https://github.com/fluxion-dev/pippin/releases/download/v0.1.0/pippin-linux-x64
chmod +x /tmp/pippin-dl/pippin-linux-x64
/tmp/pippin-dl/pippin-linux-x64 --version
# 0.1.0
gh release download v0.1.0 -p 'pippin-linux-x64' -D /tmp/pippin-dl --repo fluxion-dev/pippin
chmod +x /tmp/pippin-dl/pippin-linux-x64
/tmp/pippin-dl/pippin-linux-x64 --version
# 0.1.0
Direct asset URLs (each v* tag attaches the three binaries plus the sdist/wheel):
- https://github.com/fluxion-dev/pippin/releases/download/v0.1.0/pippin-linux-x64
- https://github.com/fluxion-dev/pippin/releases/download/v0.1.0/pippin-osx-arm64
- https://github.com/fluxion-dev/pippin/releases/download/v0.1.0/pippin-win-x64.exe
| RID | Binary | Size (attached asset) |
|---|---|---|
linux-x64 |
pippin-linux-x64 |
36,280,472 bytes (~34.6 MiB) |
osx-arm64 |
pippin-osx-arm64 |
16,520,016 bytes (~15.8 MiB) |
win-x64 |
pippin-win-x64.exe |
23,468,705 bytes (~22.4 MiB) |
Notes:
- macOS builds are arm64 (Apple silicon) only. Downloaded binaries are
unsigned — on macOS run
xattr -d com.apple.quarantine pippin-osx-arm64after downloading; Windows may show a SmartScreen prompt. - Prefer pip?
pip install pippin-art(orpipx install pippin-art), thenpippin --version. SVG via pip needs system cairo (see below).
From source (editable install with dev extras):
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
System deps for SVG (cairosvg needs cairo):
# Fedora
sudo dnf install cairo pango gdk-pixbuf2
# Debian/Ubuntu
sudo apt install libcairo2 libpango-1.0-0 libgdk-pixbuf2.0-0
Usage
# Preview (UTF-8 + color by default)
pippin photo.jpg
# ASCII, no color, fixed width
pippin logo.png --charset ascii --no-color --width 80
# Preview + export (ANSI escapes preserved when --color)
pippin input.svg --charset utf8 --color --width 120 --export out.ansi
# Export only (no terminal preview)
pippin input.jpg --export out.txt --no-preview
# Tweak rendering
pippin input.png --width 160 --contrast 1.2 --brightness 1.1 --invert
pippin input.png --charset blocks --custom-chars " .:-=+*#%@"
CLI reference
pippin INPUT [-w WIDTH] [-H HEIGHT] [--charset {ascii,utf8,blocks} | --custom-chars STR]
[--color | --no-color] [--preview | --no-preview]
[-o FILE] [--invert] [--contrast F] [--brightness F] [--aspect F]
| Flag | Default | Meaning |
|---|---|---|
INPUT |
— | Input image path |
-w, --width |
100 |
Output width in characters (1–2000) |
-H, --height |
auto | Output height in characters; auto preserves aspect with correction |
--charset |
utf8 |
ascii, utf8, or blocks ramp |
--custom-chars |
— | Overrides --charset with your own dark→light ramp |
--color / --no-color |
color |
ANSI truecolor foreground per character |
--preview / --no-preview |
preview |
Print to stdout |
-o, --export |
— | Write rendering to file (.txt/.ansi) |
--invert |
off | Invert luminance ramp |
--contrast |
1.0 |
Pillow contrast factor |
--brightness |
1.0 |
Pillow brightness factor |
--aspect |
0.55 |
Height correction for terminal cell aspect (char H ≈ 2× W). Lower = taller image. |
Export format: if --color is on, the export file contains ANSI escapes
(.ansi-ready). With --no-color it is plain text.
Ramps
ascii:.:-=+*#%@(10 levels, pure 7-bit)utf8:`^\",:;Il!i~+_-?][}{1)(|\\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$(70 levels)blocks:░▒▓█(5 levels, uniform blocks)
Notes
- SVG is rasterized via
cairosvgat 3× target width, then downsampled — so vector edges stay sharp at high resolutions. - Transparency is composited onto black (use
--invertfor light terminals, compositing background is fixed black for predictable luminance). - For best quality use
--width 120–240with--charset utf8.
Metadata
Release files for pippin-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 | |
|---|---|---|---|
| pippin_art-0.1.0.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pippin_art-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.1 kB
Release files / pippin_art-0.1.0.tar.gz
| Download URL | pippin_art-0.1.0.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5991c91f34002141db4a6f5e0ddfa38a597052a19aeb4f4611d77c6b8e7f88c0
|
|
BLAKE2b-256 checksum How to use checksums |
a4014ad349dc91c8b2d58561efa2d4adcdaa99e1f8e38c0055fec58eb62f38de
|
| 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 Oct 3, 2026.
Transparency logRelease files / pippin_art-0.1.0-py3-none-any.whl
| Download URL | pippin_art-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15b0b2652fa1197daec87b79e9facd09e0315baf83068937ed81876205cfcbe3
|
|
BLAKE2b-256 checksum How to use checksums |
d5a6c1e84849a885c6ec934e8751cdb1ba23ed23efe5ec0b5daa9b5ffdd7b4b1
|
| 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 Oct 3, 2026.
Transparency log