Is this a reproducible bug?
Current behavior
When the herdr client is attached from iTerm2, images displayed by programs inside panes via the kitty graphics protocol never appear on screen; the area stays text-only. The program side is fine (verified with Neovim + image.nvim: it parses and marks the images as rendered), and the pane graphics socket API (pane.graphics.set) accepts the image without error — nothing reaches the screen either way.
Expected behavior
iTerm2 implements the kitty graphics protocol (since iTerm2 3.5), so pane images should render when the client is attached from iTerm2.
Reproduction
- On macOS with iTerm2, run
herdr.
- In any pane, run this self-contained command (embedded 100x50 red PNG, no dependencies):
python3 -c 'import sys; sys.stdout.write("\x1b_Ga=T,f=100,c=25,r=8;iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyAQMAAACQ++z9AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAADUExURf8AABniCTcAAAAHdElNRQfqCQsFOSSVVty0AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA5LTExVDA1OjU3OjM2KzAwOjAw6hvNjAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wOS0xMVQwNTo1NzozNiswMDowMJtGdTAAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjYtMDktMTFUMDU6NTc6MzYrMDA6MDDMU1TvAAAAD0lEQVQoz2NgGAWjYGgCAAK8AAFtkh10AAAAAElFTkSuQmCC\x1b\\")'
- Nothing appears. For comparison, the same command in a plain iTerm2 window (no herdr) shows a red rectangle.
The same happens with real applications, e.g. Neovim + image.nvim rendering markdown images in a pane.
Impact
All kitty-graphics output from pane applications is invisible for iTerm2 users: inline images in editors (Neovim image.nvim), image viewers, agent TUIs with image previews. No workaround exists in user configuration.
Environment
- Herdr version: 0.9.0
- Update channel (stable or preview): stable
- Operating system: macOS 26.6.2 (Apple Silicon)
- Terminal: iTerm2 3.6.11
- Shell, if relevant: zsh
- Relevant config, if any: default config;
terminal.kitty_graphics not set
Is this a reproducible bug?
Current behavior
When the herdr client is attached from iTerm2, images displayed by programs inside panes via the kitty graphics protocol never appear on screen; the area stays text-only. The program side is fine (verified with Neovim + image.nvim: it parses and marks the images as rendered), and the pane graphics socket API (
pane.graphics.set) accepts the image without error — nothing reaches the screen either way.Expected behavior
iTerm2 implements the kitty graphics protocol (since iTerm2 3.5), so pane images should render when the client is attached from iTerm2.
Reproduction
herdr.python3 -c 'import sys; sys.stdout.write("\x1b_Ga=T,f=100,c=25,r=8;iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyAQMAAACQ++z9AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAADUExURf8AABniCTcAAAAHdElNRQfqCQsFOSSVVty0AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA5LTExVDA1OjU3OjM2KzAwOjAw6hvNjAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wOS0xMVQwNTo1NzozNiswMDowMJtGdTAAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjYtMDktMTFUMDU6NTc6MzYrMDA6MDDMU1TvAAAAD0lEQVQoz2NgGAWjYGgCAAK8AAFtkh10AAAAAElFTkSuQmCC\x1b\\")'The same happens with real applications, e.g. Neovim + image.nvim rendering markdown images in a pane.
Impact
All kitty-graphics output from pane applications is invisible for iTerm2 users: inline images in editors (Neovim image.nvim), image viewers, agent TUIs with image previews. No workaround exists in user configuration.
Environment
terminal.kitty_graphicsnot set