BourgeoisBear/rasterm

encode images to iTerm / Kitty / SIXEL (terminal) inline graphics protocols

Go

112

44 commits

updated Dec 21, 2025

See the code

README

rasterm

Encodes images to iTerm / Kitty / SIXEL (terminal) inline graphics protocols.

GoDoc

rasterm sample output

Supported Image Encodings

  • Kitty
  • iTerm2 / WezTerm
  • Sixel

TODO

TESTING

Notes

terminal features matrix

terminalsixeliTerm2 formatkitty format
ghosttyY
iterm2YY
kittyY
rioYY
minttyYY
mltermYY
putty
rloginYY
weztermYY
xtermY

known responses

CSI 0 c

terminalresponse
apple terminal\x1b[?1;2c
ghostty\x1b[?62;22c
guake\x1b[?65;1;9c
iterm2\x1b[?62;4c
kitty\x1b[?62;c
rio\x1b[?62;4;6;22c
mintty\x1b[?64;1;2;4;6;9;15;21;22;28;29c
mlterm\x1b[?63;1;2;3;4;7;29c
putty\x1b[?6c
rlogin\x1b[?65;1;2;3;4;6;7;8;9;15;18;21;22;29;39;42;44c
st\x1b[?6c
terminology\x1b[?64;1;9;15;18;21;22c
vimterm\x1b[?1;2c
wez\x1b[?65;4;6;18;22c
xfce\x1b[?65;1;9c
xterm\x1b[?63;1;2;4;6;9;15;22c

CSI > 0 c

terminalresponse
apple terminal\x1b[>1;95;0c
ghostty\x1b[>1;10;0c
guake\x1b[>65;5402;1c
iterm2\x1b[>0;95;0c
rio\x1b[>0;95;0c
kitty\x1b[>1;4000;19c
mintty\x1b[>77;30104;0c
mlterm\x1b[>24;279;0c
putty\x1b[>0;136;0c
rlogin\x1b[>65;331;0c
stNO RESPONSE
vimterm\x1b[>0;100;0c
wez\x1b[>0;0;0c
xfce\x1b[>65;5402;1c
xterm\x1b[>19;344;0c

identifications

terminalvalues
apple terminalTERM_PROGRAM="Apple_Terminal"
apple terminal__CFBundleIdentifier="com.apple.Terminal"
ghosttyTERM="xterm-ghostty"
rioTERM="rio"
guake
iterm2LC_TERMINAL="iTerm2"
kittyTERM="xterm-kitty"
minttyTERM="mintty"
mlterm
putty
rlogin
st
terminologyTERM_PROGRAM=terminology
vimtermVIM_TERMINAL is set
wezTERM_PROGRAM="wezterm"
xfce
xterm

opinions

  • Sixel is a primitive and wasteful format. Most sixel terminals also support the iTerm2 format--fewer bytes, full color instead of paletted, and no pixel re-processing required. Much better!

go stuff

go tool pprof -http=:8080 ./name.prof
godoc -http=:8099 -goroot="$HOME/go"
go test -v
go mod tidy
https://blog.golang.org/pprof

more reading

encoder
golang
iterm2
kitty
kitty-terminal
raster
rlogin
sixel
sixel-graphics
wezterm
xterm

BourgeoisBear/rasterm

encode images to iTerm / Kitty / SIXEL (terminal) inline graphics protocols

Go

112

44 commits

updated Dec 21, 2025

See the code

README

rasterm

Encodes images to iTerm / Kitty / SIXEL (terminal) inline graphics protocols.

GoDoc

rasterm sample output

Supported Image Encodings

  • Kitty
  • iTerm2 / WezTerm
  • Sixel

TODO

TESTING

Notes

terminal features matrix

terminalsixeliTerm2 formatkitty format
ghosttyY
iterm2YY
kittyY
rioYY
minttyYY
mltermYY
putty
rloginYY
weztermYY
xtermY

known responses

CSI 0 c

terminalresponse
apple terminal\x1b[?1;2c
ghostty\x1b[?62;22c
guake\x1b[?65;1;9c
iterm2\x1b[?62;4c
kitty\x1b[?62;c
rio\x1b[?62;4;6;22c
mintty\x1b[?64;1;2;4;6;9;15;21;22;28;29c
mlterm\x1b[?63;1;2;3;4;7;29c
putty\x1b[?6c
rlogin\x1b[?65;1;2;3;4;6;7;8;9;15;18;21;22;29;39;42;44c
st\x1b[?6c
terminology\x1b[?64;1;9;15;18;21;22c
vimterm\x1b[?1;2c
wez\x1b[?65;4;6;18;22c
xfce\x1b[?65;1;9c
xterm\x1b[?63;1;2;4;6;9;15;22c

CSI > 0 c

terminalresponse
apple terminal\x1b[>1;95;0c
ghostty\x1b[>1;10;0c
guake\x1b[>65;5402;1c
iterm2\x1b[>0;95;0c
rio\x1b[>0;95;0c
kitty\x1b[>1;4000;19c
mintty\x1b[>77;30104;0c
mlterm\x1b[>24;279;0c
putty\x1b[>0;136;0c
rlogin\x1b[>65;331;0c
stNO RESPONSE
vimterm\x1b[>0;100;0c
wez\x1b[>0;0;0c
xfce\x1b[>65;5402;1c
xterm\x1b[>19;344;0c

identifications

terminalvalues
apple terminalTERM_PROGRAM="Apple_Terminal"
apple terminal__CFBundleIdentifier="com.apple.Terminal"
ghosttyTERM="xterm-ghostty"
rioTERM="rio"
guake
iterm2LC_TERMINAL="iTerm2"
kittyTERM="xterm-kitty"
minttyTERM="mintty"
mlterm
putty
rlogin
st
terminologyTERM_PROGRAM=terminology
vimtermVIM_TERMINAL is set
wezTERM_PROGRAM="wezterm"
xfce
xterm

opinions

  • Sixel is a primitive and wasteful format. Most sixel terminals also support the iTerm2 format--fewer bytes, full color instead of paletted, and no pixel re-processing required. Much better!

go stuff

go tool pprof -http=:8080 ./name.prof
godoc -http=:8099 -goroot="$HOME/go"
go test -v
go mod tidy
https://blog.golang.org/pprof

more reading

encoder
golang
iterm2
kitty
kitty-terminal
raster
rlogin
sixel
sixel-graphics
wezterm
xterm

Project health

Latest release

v1.1.2 · Jan 6, 2025

Releases this year

0

Significant stargazers

Ayman Bagabas

613 followers · starred Mar 2022

Paul m. p. Peny

148 followers · starred Mar 2024

Akhil Indurti

116 followers · starred Jan 2022

antichris

6 followers · starred Mar 2026