Installation
Install the plotui CLI with one command, and the Python library with pip.
CLI
The plotui command plots data piped from the shell — line, scatter, and bar
charts as real terminal pixels. Install a prebuilt binary:
curl -fsSL https://plotui.xyz/install.sh | shOr through a package manager:
brew install sebaheg/tap/plotui # Homebrew (macOS / Linux)
pip install plotui # prebuilt wheel: the Python library + the CLI
cargo install plotui # build from source
cargo binstall plotui # prebuilt, via cargo-binstallThen pipe numbers at it:
seq 1 100 | awk '{print $1, sin($1/10)}' | plotui line
plotui scatter -H -d, data.csvOn a TTY the chart opens interactively (drag to pan, scroll to zoom, hover for
the crosshair, q to quit); piped or with --static it prints one frame and
exits. The CLI needs a terminal with Kitty graphics — Kitty, Ghostty,
iTerm2 ≥ 3.5, WezTerm, or Konsole; see
Terminal support.
Python library
Prebuilt wheels (Python 3.9+, macOS and Linux) include the CLI:
pip install plotuiBuild from source
plotui is a Rust extension for Python, built with maturin. Building it yourself requires Rust and Python 3.9+.
python -m venv .venv && source .venv/bin/activate
pip install maturin textual
maturin develop --releaseThis compiles the three crates and installs the plotui package (with the
native plotui._plotui module) into your virtualenv.
Try the demos
In a terminal with Kitty graphics support — Kitty, Ghostty, iTerm2 ≥ 3.5, or WezTerm:
python examples/raw_demo.py # 3D scatter via Kitty images
python examples/textual_demo.py # embedded in Textual
python examples/textual_graph.py # interactive graph: hover + click-to-inspectplotui only draws real pixels. Terminals without Kitty graphics get a notice naming supported terminals — never a degraded plot. See Terminal support for the full matrix.
Project layout
crates/
plotui-core/ pure engine: data model, 3D camera, rasterizer -> RGBA
plotui-protocol/ RGBA -> terminal bytes (Kitty graphics protocol)
plotui-py/ PyO3 bindings -> the plotui._plotui native module
python/plotui/ the Python package + Textual PlotWidget