# Rio

> GPU terminal emulator written in Rust that renders through WebGPU, with tabs and Sixel and iTerm2 image support.

Stars: 7.7k · Language: Rust · License: MIT · Platforms: Linux, macOS, Windows · Config: TOML

Features: GPU-accelerated, cross-platform, ligatures, inline images, configurable

- Repository: https://github.com/raphamorim/rio
- Page: https://www.trmn.sh/terminals/rio

## Overview

Rio is a GPU-rendered terminal emulator written in Rust that runs on Windows, Linux, FreeBSD and macOS. Its renderer, Sugarloaf, has native backends for Metal (the default on macOS) and Vulkan (the default on Linux), and a WebGPU backend through wgpu that picks Metal, Vulkan, DX12 or GL at runtime. The wgpu backend is the default on other platforms and needs a build with the `wgpu` Cargo feature. An experimental CPU rasterizer (`renderer.use-cpu`) covers machines without working GPU drivers or VMs, though it does not yet draw image overlays. Rio suits users who want a GPU-rendered terminal with current image and keyboard protocols on several operating systems.

Configuration is a TOML file at `~/.config/rio/config.toml`, or `%USERPROFILE%\AppData\Local\rio\config.toml` on Windows, and `$RIO_CONFIG_HOME` can point elsewhere. Rio re-renders with the new settings as soon as the file is saved. Per-platform sections such as `macos.renderer.backend` or `linux.window.mode` override individual settings, so one file can serve several machines. Themes can switch automatically with the system's light or dark mode through the `adaptive-theme` section. Font features are configurable, which is also how ligatures are turned off (`fonts.features = ["-calt", "-liga"]`).

Rio has multiple windows, split panels and tabs. The `navigation.mode` setting chooses between its own tab bar, native macOS tabs, or a plain mode with no tab key bindings. On the protocol side it supports Sixel, the iTerm2 image protocol, the Kitty graphics and keyboard protocols, hyperlinks and its own glyph protocol. Other features include a vi mode, hints, IME input, shell integration, wide color gamut support, and RetroArch shaders for effects such as CRT emulation. The shaders need the wgpu backend, since the native Metal and Vulkan backends leave them out. The features page notes that many other features are still in development.

## Alternatives

- [Windows Terminal](https://www.trmn.sh/terminals/windows-terminal.md): Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings. (Windows, 105.3k stars)
- [Tabby](https://www.trmn.sh/terminals/tabby.md): Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system. (Linux/macOS/Windows, 75.3k stars)
- [Alacritty](https://www.trmn.sh/terminals/alacritty.md): Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux. (Linux/macOS/Windows/BSD, 66.1k stars)
- [Warp](https://www.trmn.sh/terminals/warp.md): Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents. (macOS/Linux/Windows, 65.8k stars)
- [Termux](https://www.trmn.sh/terminals/termux.md): Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required. (Android, 64.0k stars)
- [Ghostty](https://www.trmn.sh/terminals/ghostty.md): Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux. (Linux/macOS, 63.3k stars)
- [Hyper](https://www.trmn.sh/terminals/hyper.md): Electron terminal built on HTML, CSS and JavaScript, themed and extended through npm plugins. (Linux/macOS/Windows, 44.8k stars)
- [Kitty](https://www.trmn.sh/terminals/kitty.md): GPU-rendered terminal written in C and Python, with its own graphics protocol, built-in tabs and splits, and scriptable 'kittens'. (Linux/macOS/BSD, 35.5k stars)

## Guides

- [Alacritty Alternatives](https://www.trmn.sh/alternatives/alacritty): Alacritty alternatives: WezTerm, Kitty and Ghostty add tabs, splits and scripting; Windows Terminal and iTerm2 cover one OS each.
- [Ghostty Alternatives](https://www.trmn.sh/alternatives/ghostty): Ghostty alternatives: WezTerm, Kitty and Alacritty compared by platform, built-in tabs and splits, scripting, and licensing.
- [Kitty Alternatives](https://www.trmn.sh/alternatives/kitty): Kitty alternatives: WezTerm, Ghostty, and Alacritty compared by platform, multiplexing, scripting and rendering, plus Rio, Contour, iTerm2 and foot.
- [WezTerm Alternatives](https://www.trmn.sh/alternatives/wezterm): WezTerm alternatives: Kitty, Ghostty, Alacritty, Windows Terminal and Tabby compared on multiplexing, config format and platform support.
- [Best Terminals with Inline Image Support](https://www.trmn.sh/best/terminals-with-image-support): Terminals that show images inline: kitty, WezTerm and Rio compared by protocol support (kitty graphics, Sixel, iTerm2) and platform.

---

Canonical: https://www.trmn.sh/terminals/rio
