Show HN: Tattoy – a text-based terminal compositor

41 tombh 6 6/13/2025, 2:04:35 PM tattoy.sh ↗
Whereas this is mostly a terminal eye-candy project to get you street cred, it does have some serious aspects.

Firstly it solves the age-old problem of low-contrast text, like when you `ls` a broken symlink and the red background colour is too near your current theme's foreground colour. Tattoy solves this by using none other than the web's WCAG 2.1 contrast algorithm for accessible text.

Secondly, an explicit design goal is that Tattoy should be able to polyfill new terminal protocols, the `xwayland` of the TTY if you will. Say if we want to experiment with completely deprecating ANSI codes, then any application that uses a new protocol can be run in Tattoy which itself runs in any ANSI-standard terminal emulator as normal. You can read more about this idea here: https://tattoy.sh/news/an-end-to-terminal-ansi-codes/

But ultimately this has been something more akin to an art project, something to enjoy for the sheer aesthetic pleasure.

Comments (6)

ramon156 · 18m ago
This is like the pinnacle of term ricing, I love it
pvg · 1h ago
grandma_tea · 19m ago
Oh wow, now I can finally have terminal that creates fire effects the faster I type! (if I ever get the time to make the plugin)

Is there anyway for plugins to interact with shaders?

tombh · 10m ago
Intenser flames the more you type, great idea!

Plugins can't currently get the shader pixels. But that's just because I haven't added them to the plugin protocol yet. But interestingly shaders actually have access to the terminal contents in the form of a pixelated version of the text. And the mouse and cursor position too. So maybe there's something you could do purely in a shader.

nerflad · 1h ago
This is brilliant, thanks for making public and best wishes
pacifika · 1h ago
Nice idea, I like the out of the box thinking on display.