Repository navigation
v1.1.0
Highlights
Zero dependencies by default — the built-in sixel encoder is now the default renderer. External encoders are explicit opt-ins: enable(imgcat="chafa") / "img2sixel" / "magick" (slightly faster, better resampling/dithering), or enable(imgcat="auto") for the previous PATH auto-detection.
Fixed
- Viewer can no longer crash when its session/pty is torn down (self-pipe event loop, guarded I/O, always exits 0) — eliminates macOS "Python quit unexpectedly" dialogs.
- Stale/recycled pids are validated before signalling — plotty can never terminate an unrelated process.
- plotty never injects bytes into the console you type in: single-pane tmux windows get an auto-split plot pane; outside tmux, non-sixel terminals (IDE consoles) get a clear warning instead of escape garbage.
Added
- Live settings: re-running
enable(size=…, bg=…, imgcat=…)updates a running viewer without restart; a newtarget_panemoves it. - Figure history: viewer keys
p/k(older),n/j(newer),q(quit); ring size viahist/PLOTTY_HIST. bg/PLOTTY_BGbackground compositing for dark terminals.status()diagnostics,save(path),show(fig)for non-pyplot figures,disable(close_pane=True),__version__.
Performance
- Built-in quantizer ~15× faster (distinct-color weighted median-cut; lossless ≤256 colors); figures written once instead of twice.
Breaking
- Setups that relied on silent chafa/img2sixel auto-detection now use the built-in encoder. Pass
imgcat="auto"to restore the old behavior.
🤖 Generated with Claude Code