This project introduces a new kitcat
backend for Matplotlib that allows plots to be displayed directly in the terminal. It utilizes the "agg" backend for rendering plots before sending them to the terminal.
- Direct Matplotlib plotting in terminal emulators that support Kitty or iTerm2 graphics protocols.
- Works seamlessly over SSH.
Not all terminal emulators support Kitty or iTerm2 graphics protocols. I haven't done extensive testing, so please let me know if you find other emulators that are compatible, and I will update the list accordingly.
Terminal Emulator | Supported | Notes |
---|---|---|
Kitty | ✅ | |
iTerm2 | ✅ | |
VSCode | ✅ | Requires terminal.integrated.enableImages in settings |
WezTerm | ✅ | |
tmux | ✅ | Requires allow-passthrough on in tmux config |
Zellij | ❌ | |
Alacritty | ❌ | |
Warp | ❌ | |
Terminal.app (macOS) | ❌ | |
wayst | ✅ |
pip install kitcat
Select kitcat
backend after importing matplotlib:
import matplotlib
matplotlib.use("kitcat")
I discovered matplotlib-backend-kitty repository, which provides similar functionality in Kitty. I aimed to create a simpler solution that works across any terminal supporting the protocol.