neuroplast.ioHuman-machine interface research

hotty (HTML over the TTY)

What if: terminals could speak HTML?
Status: innovation, market validation in progress

Yep, this website is a TUI program that renders hotty in xterm.js.

I wanted the neuroplast.io website to be an xterm.js TUI that you can SSH into, but I quickly hit a limit on how rich the experience can be. So I came up with an OSC protocol similar to Kitty's graphics, but it streams HTML instead of pixels. Then I built the whole vertical:

  • the hotty protocol spec
  • hotty-blitz library that implements the host side
  • hottyterm, Ghostty with hotty built in via hotty-blitz
  • xterm-addon-hotty for hotty on the web (in sandboxed iframes)

Some parts of the protocol are still naive, but it works remarkably well. plx already speaks hotty, so I build its tools and status bars with it, and this is just the start. I can't wait to see what other people build with it.

  • hotty.neuroplast.io: See it for yourself
  • The spec: a draft
  • hottyterm: a terminal with hotty built in, Ghostty with a few mods (install)
  • hotty-blitz: the renderer, in Rust with a C ABI, and a polyfill for terminals with kitty graphics
  • xterm-addon-hotty: hotty for xterm.js, each surface in a sandboxed iframe
  • hotty-go: the Go SDK
  • hotty-ts: the TypeScript SDK, for Node and Bun
  • hotty-rs: the Rust SDK, with a ratatui adapter and the host side hotty-blitz is built on (docs)
  • hotty-lua: the Lua SDK
  • hotty-a2ui: a UI kit on A2UI, with a Go core, a hotty renderer and a storybook (a proof of concept; the storybook is one of the apps on hotty.neuroplast.io)

neuroplast.io · github.com/neuroplastio

Starting the terminal…