kittytgp is a small pure-Python package that renders a PNG with kitty's graphics protocol using Unicode placeholders (U+10EEEE).
It follows kitty's tmux/editor-friendly placeholder flow:
- transmit PNG data with kitty graphics protocol
- create a virtual placement with
U=1 - print
U+10EEEEplaceholder text colored with the image ID
Because the visible part is ordinary Unicode text, the image moves with the text buffer and works inside hosts such as tmux.
pip install kittytgpkittytgp plot.pngUseful options:
kittytgp plot.png --cols 40
kittytgp plot.png --rows 20
kittytgp plot.png --cell-size 10x20
kittytgp plot.png --image-id 0x123456
kittytgp plot.png --no-newlinefrom kittytgp import render_png
render_png("plot.png")Or build the bytes yourself:
from kittytgp import build_render_bytes
payload = build_render_bytes("plot.png")This package intentionally stays small:
- PNG input only
- direct transfer (
f=100PNG payload in APC chunks) - Unicode placeholders only
- 24-bit image IDs encoded in truecolor foreground color
- tmux passthrough only when needed
By default it fits the image into the current terminal while preserving aspect ratio. If the terminal cannot report cell pixel size, pass --cell-size, --cols, or --rows.