Introduction
Term Everything is a tool that captures the output of graphical applications and renders them as text characters in your terminal. It enables you to use GUI programs like web browsers, image viewers, and desktop applications entirely within a terminal session, which is useful for SSH sessions and headless environments.
What Term Everything Does
- Renders GUI application windows as text art in the terminal
- Supports mouse interaction forwarded to the underlying application
- Works with virtually any X11 or Wayland application
- Runs over SSH connections for remote GUI access without X forwarding
- Supports multiple terminal emulators including kitty, iTerm2, and Alacritty
Architecture Overview
Term Everything creates a virtual display using Xvfb or a Wayland compositor, launches the target GUI application on that display, captures frame updates, and converts each frame into terminal-compatible output. It uses optimized character rendering to approximate the graphical output. Mouse and keyboard events from the terminal are translated back to the virtual display for interactivity.
Self-Hosting & Configuration
- Install via Go:
go install github.com/mmulet/term.everything@latest - Run any GUI app:
term.everything <application-command> - Adjust rendering quality with resolution flags
- Works best with terminals that support 24-bit color and Unicode
- Requires Xvfb or a virtual Wayland compositor on the host system
Key Features
- Run graphical applications entirely within a terminal session
- Interactive mouse and keyboard support for GUI apps
- Works over SSH without X11 forwarding
- Supports modern terminal features like true color and Sixel graphics
- Compatible with major terminal emulators on Linux and macOS
Comparison with Similar Tools
- x11vnc + terminal VNC client — Requires VNC setup; Term Everything is a single command
- ttyd — Shares a terminal session over the web; Term Everything renders GUIs in the terminal
- Sixel viewers — Display static images in terminals; Term Everything renders interactive applications
- xpra — Remote display server; more complex setup than Term Everything's single-command approach
FAQ
Q: What kind of applications work with Term Everything? A: Any GUI application that runs on X11 or Wayland can be rendered, including web browsers, text editors, image viewers, and desktop applications.
Q: How usable are complex applications like web browsers? A: Basic browsing and interaction works, though the text-art rendering has lower fidelity than a native display. It is most practical for quick checks and lightweight GUI tasks.
Q: Does it work on macOS? A: Term Everything primarily targets Linux with X11/Wayland support. macOS support is limited and may require additional setup.
Q: What are the performance requirements? A: Performance depends on terminal rendering speed and the complexity of the GUI application. Terminals with GPU acceleration (kitty, Alacritty) provide the smoothest experience.