# mmulet/term.everything

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mmulet-term-everything).**

8,020 stars · 192 forks · Go · AGPL-3.0

## Links

- GitHub: https://github.com/mmulet/term.everything
- awesome-repositories: https://awesome-repositories.com/repository/mmulet-term-everything.md

## Topics

`alacritty` `cli` `foss` `iterm2` `kitty` `linux` `ssh` `terminal` `wayland` `wayland-compositor`

## Description

term.everything is a terminal-based graphical compositor and renderer that converts framebuffers into ANSI escape sequences to display GUI applications within a terminal emulator. It functions as a remote GUI streamer and framebuffer-to-ANSI converter, allowing for the visualization of headless systems and the execution of graphical software over SSH connections.

The project includes a specialized mouse input handler that utilizes SGR 1006 reporting to capture movements and clicks, enabling user interaction with rendered graphical interfaces. It emulates a compositor to coordinate window behavior and surface placement, managing the communication between applications and the terminal display.

The system incorporates performance optimizations such as delta-based frame updating and dimension-aware scaling to balance visual quality with CPU and network bandwidth usage. These capabilities support the streaming of graphical interfaces and the management of remote desktop environments through standard shell connections.

## Tags

### Graphics & Multimedia

- [Terminal Graphics Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/terminal-graphics-rendering.md) — Converts graphical framebuffers into ANSI escape codes to display visual applications inside a terminal emulator.
- [ANSI Image Converters](https://awesome-repositories.com/f/graphics-multimedia/ansi-image-converters.md) — Transforms raw pixel data from framebuffers into terminal-compatible ANSI escape sequences for rendering.
- [Compositor Emulation](https://awesome-repositories.com/f/graphics-multimedia/compositors/compositor-emulation.md) — Emulates a graphical compositor to coordinate window behavior and surface placement via Unix domain sockets.
- [Remote Desktop Streamers](https://awesome-repositories.com/f/graphics-multimedia/image-encoders/gpu-accelerated-encoders/remote-desktop-streamers.md) — Transmits graphical window data over SSH connections to enable remote viewing of GUI applications.
- [Terminal Plane Compositors](https://awesome-repositories.com/f/graphics-multimedia/terminal-plane-compositors.md) — Coordinates window behavior and surface placement for graphical applications rendered within a terminal.
- [Terminal Dimension Scaling](https://awesome-repositories.com/f/graphics-multimedia/adaptive-quality-adjustments/video-quality-adjustments/resolution-scaling/terminal-dimension-scaling.md) — Adjusts graphical output resolution based on terminal dimensions to balance visual quality and performance.
- [Compositor Development Tooling](https://awesome-repositories.com/f/graphics-multimedia/compositors/compositor-development-tooling.md) — Supports the building and management of custom graphical compositors using Wayland protocol messages.
- [Resolution Scaling](https://awesome-repositories.com/f/graphics-multimedia/visual-rendering-optimization/resolution-scaling.md) — Scales graphical output to match available terminal dimensions to balance visual quality and processing performance. ([source](https://github.com/mmulet/term.everything/blob/main/Readme.md))

### Networking & Communication

- [Remote GUI Streaming](https://awesome-repositories.com/f/networking-communication/remote-gui-streaming.md) — Transmits GUI application windows over secure shell connections by rendering them as terminal-compatible text or pixels. ([source](https://github.com/mmulet/term.everything/blob/main/Readme.md))
- [Remote Desktop Streaming](https://awesome-repositories.com/f/networking-communication/remote-desktop-streaming.md) — Streams graphical interfaces over secure shell connections using text or image protocols.
- [Remote GUI Access](https://awesome-repositories.com/f/networking-communication/remote-gui-access.md) — Allows running graphical software on a remote server and viewing the interface through a standard shell connection.

### DevOps & Infrastructure

- [GUI Data Streaming](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/remote-workspace-command-execution/ssh-based-remote-execution/remote-data-streaming/gui-data-streaming.md) — Transmits graphical window data over secure shell connections to enable remote execution of GUI applications.

### Operating Systems & Systems Programming

- [Framebuffer Renderers](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-integration/compositor-integrations/wayland/framebuffer-renderers.md) — Converts Wayland compositor framebuffers into ANSI escape sequences to display GUI applications in a terminal.
- [Protocol Communication](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-integration/compositor-integrations/wayland/protocol-communication.md) — Implements Wayland protocol communication over Unix domain sockets to manage graphical compositors. ([source](https://github.com/mmulet/term.everything/tree/main/wayland))
- [Window and Surface Coordination](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-integration/compositor-integrations/wayland/window-and-surface-coordination.md) — Manages communication between applications and the compositor to synchronize window placement and surface behavior. ([source](https://github.com/mmulet/term.everything/tree/main/termeverything))
- [Framebuffer to ANSI Converters](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-management/output-rendering-engines/framebuffer-to-ansi-converters.md) — Transforms raw pixel data from a framebuffer into ANSI escape sequences to render graphical images within a terminal emulator. ([source](https://github.com/mmulet/term.everything/tree/main/framebuffertoansi))

### User Interface & Experience

- [Terminal Mouse Event Capturers](https://awesome-repositories.com/f/user-interface-experience/mouse-event-handlers/terminal-mouse-event-capturers.md) — Captures mouse movements and clicks using terminal reporting sequences to drive graphical interface interactions.
- [Terminal Input Handling](https://awesome-repositories.com/f/user-interface-experience/terminal-input-handling.md) — Processes keyboard and mouse events from the terminal to drive interactions within a rendered graphical interface. ([source](https://github.com/mmulet/term.everything/tree/main/termeverything))
- [Framebuffer Delta Updates](https://awesome-repositories.com/f/user-interface-experience/diffing-based-state-updates/network-state-delta-updates/framebuffer-delta-updates.md) — Reduces CPU and bandwidth usage by updating the terminal display only when framebuffer changes are detected.
- [Display Scaling](https://awesome-repositories.com/f/user-interface-experience/display-scaling.md) — Scales output quality based on terminal dimensions or utilizes image-supported terminals for full-resolution rendering. ([source](https://github.com/mmulet/term.everything/tree/typescript))

### Software Engineering & Architecture

- [Delta-Based Updates](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/large-dataset-optimizations/high-frame-rate-rendering/mobile-ui-frame-rate-optimization/animated-image-frame-rate-optimization/serial-bandwidth-optimizers/delta-based-updates.md) — Updates the display only when frame changes are detected to reduce CPU load and network bandwidth usage. ([source](https://github.com/mmulet/term.everything/blob/main/ChangeLog.md))

### System Administration & Monitoring

- [Headless Display Simulation](https://awesome-repositories.com/f/system-administration-monitoring/headless-display-simulation.md) — Enables viewing of desktop environments and GUI windows on systems without a physical monitor.
