I had this thought for months about whether it would be possible to display images in terminal Emacs using the Kitty graphics protocol. So I finally sat down and tried it out.
kitty-graphics.el renders images directly in emacs -nw using direct placements. The whole thing is pure Emacs Lisp — no patches, no forks, no C modules. Just a single .el file you drop into your config and it works.
Images are transmitted once to the terminal, then positioned at overlay screen coordinates after each redisplay. They scroll with text, survive buffer switches, and work in split windows.
It integrates with:
- org-mode — inline images with
C-c C-x C-v - image-mode
- eww / mu4e / gnus
- dired and dirvish
No external dependencies beyond built-in cl-lib.
I should mention that I used Claude quite a bit for this. I totally get that the current AI slop is exhausting, but I've been wanting this feature for a long time and I know other people have too. So idk, I hope it's useful to someone, even if just as a reference.