Introduction
term.everything is a tool that renders graphical desktop applications directly inside a terminal emulator. It acts as a lightweight Wayland compositor that outputs to character cells, enabling you to run GUI apps over SSH, in tmux, or on headless servers.
What term.everything Does
- Renders GUI applications as colored character cells in any terminal
- Acts as a Wayland compositor that outputs to the terminal instead of a display
- Supports mouse input, scrolling, and keyboard passthrough
- Works over SSH for running remote GUI apps without X11 forwarding
- Handles window management for multiple GUI apps in terminal panes
Architecture Overview
term.everything implements a minimal Wayland compositor in Go. When a GUI application renders frames, the compositor captures them and converts pixel data to colored terminal characters using Unicode block elements. Input events from the terminal are translated back to Wayland input events, completing the bidirectional bridge.
Self-Hosting & Configuration
- Install via
go installor download pre-built binaries - Requires a terminal with true-color (24-bit) support for best results
- Works with Alacritty, Kitty, iTerm2, WezTerm, and most modern terminals
- Configure character resolution and frame rate via command-line flags
- Supports Wayland-native apps; X11 apps work via XWayland
Key Features
- Run any GUI application inside a terminal — browsers, editors, viewers
- Works over SSH without X11 forwarding or VNC
- Supports true-color rendering for readable output
- Mouse and keyboard input fully bridged to the GUI app
- Lightweight Go binary with minimal system requirements
Comparison with Similar Tools
- X11 forwarding — requires X server on client; term.everything needs only a terminal
- VNC/RDP — heavyweight remote desktop protocols; term.everything is zero-config
- Neko — browser-in-Docker via WebRTC; term.everything runs natively in terminal
- Sixel/Kitty graphics — image protocols, not interactive GUI bridging
- tmux/screen — terminal multiplexers without GUI app support
FAQ
Q: How readable are GUI apps rendered in the terminal? A: Modern terminals with true-color and Unicode block characters produce surprisingly usable output, especially at higher terminal resolutions.
Q: Does it work with all GUI apps? A: It supports Wayland-native applications. X11 apps require XWayland.
Q: Can I use it over SSH? A: Yes. That is a primary use case — run remote GUI apps with just an SSH connection.
Q: What terminal emulators are supported? A: Any terminal with 24-bit color support works. Alacritty, Kitty, iTerm2, and WezTerm are recommended.