Rio-vt and librio: Rio's terminal engine, now embeddable

Rio splits its terminal guts open, and the comments instantly turn into a Plan 9 naming war

TLDR: Rio has turned its core terminal tech into reusable parts, making it easier for other apps to add terminal features without building everything from scratch. The comments, meanwhile, are split between excitement from app makers and a hilarious mini-meltdown from people who can’t get over the loaded name “Rio.”

A quiet software update somehow turned into a full-on comments-section identity crisis. The actual news is simple: Rio, a terminal app, has ripped out the part that does the hard work behind the scenes and made it reusable for other apps. In plain English, developers can now borrow Rio’s brain without dragging along the whole app. One version is aimed at Rust developers, while another comes wrapped in a simpler bridge so apps written in other languages can use it too. That means more apps could get copy, paste, search, scrollback, and even inline image support without reinventing the wheel.

But let’s be honest: the community immediately made this about the name. Several commenters saw “Rio” and thought this was a Plan 9 reunion tour. One joked that naming a terminal tool "rio" is a “cruel joke on Rob Pike,” while others piled on with “I thought this was about Plan 9” and reminders that Rio already means something in old-school computing lore. It’s peak programmer drama: a useful release drops, and the first fight is over historical naming baggage.

Not everyone came for blood, though. Some were downright excited, especially people building apps who are now spoiled for choice in terminal engines. One commenter basically said, ‘Wait, there are so many of these now?’ and cheered the clean, easy-to-use setup. Another is already eyeing Rio for Emacs. So the vibe is a delicious mix of name-nerd outrage, retro-computing confusion, and genuine hype from developers who just got a shiny new toolbox.

Key Points

  • Rio 0.5 separates the terminal engine from the renderer, configuration, and application layer to make the core reusable.
  • The new rio-vt crate provides a safe Rust terminal engine with VT parsing, grid and scrollback, selection, search, PTY support, and image protocol handling.
  • The new librio library exposes the same engine through a C ABI for languages such as Swift, C, Go, and Python, and is distributed as a prebuilt static library.
  • rio-vt is designed to be renderer-agnostic: applications feed it bytes and then read back terminal grid state for their own rendering or headless use.
  • The core decodes sixel, Kitty, and iTerm2 image transmissions and emits them as events, while librio also supports PTY-backed surfaces and render-state updates.

Hottest takes

"a cruel joke on Rob Pike" — floren
"I thought this was about Plan 9" — pjmlp
"there are so many choices for the terminal engine" — mintflow
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.