Vtm: a virtual terminal multiplexer that runs as a single binary on any OS
V

Vtm: a virtual terminal multiplexer that runs as a single binary on any OS

Vtm: a virtual terminal multiplexer that runs as a single binary on any OS

CLI
3,333 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Build a Text-Based Desktop That Spans Any OS With This Single-Binary Terminal Multiplexer

You've probably spent time juggling multiple terminal windows, SSH sessions, and command-line tools across different operating systems. Maybe you've wished you could have the same terminal experience whether you're on Windows, Linux, or macOS, without installing a whole ecosystem of tools. Vtm is a virtual terminal multiplexer that runs as a single executable on any platform, and it does something unusual: it wraps any CLI application into a nested, text-based desktop environment that bridges the gap between terminal and graphical interfaces.

What It Does

Vtm is a single binary that acts as a virtual terminal multiplexer. It runs identically whether you're in a native Windows console or a standard terminal emulator on Unix-like systems. The core idea is that you can wrap any command-line application inside vtm's environment, then nest those applications infinitely to create a text-based desktop. Think of it as a way to run multiple CLI tools side by side, with each one living in its own resizable pane, all managed from a single process.

The project is written in Lua and leverages several libraries under the hood: FreeType for font rendering, HarfBuzz for text shaping, lunasvg for SVG rendering, and stb for single-file C/C++ utilities. On Windows, vtm can render into its own native GUI window, while on Unix-like platforms it requires a terminal emulator to display its output. The binary downloads are available for Linux (x86_64, ARM64, x86, ARM32), Windows (x86_64, ARM64, x86), and macOS (x86_64, ARM64).

Why It's Cool

  • Single binary, no dependencies. You download one file and it works the same way on Windows, Linux, macOS, FreeBSD, NetBSD, and OpenBSD. No package managers, no runtime installations, no configuration files to hunt down. This is the kind of portability that makes you wonder why more tools don't do it.

  • The nesting is genuinely useful. Infinite nesting means you can run a terminal inside a terminal inside a terminal, if that's your thing. But practically, it means you can embed any CLI application inside vtm's desktop, then manage them all from one interface. You could have a text editor, a file manager, a database client, and a build tool all running in separate panes, and then group those panes into a larger workspace.

  • It has two distinct modes. Desktop mode is what you get by running vtm with no arguments—it launches the full text-based desktop environment. Terminal mode (vtm --run term) turns vtm into a standalone terminal emulator. This dual personality means you can use it as your everyday terminal or as a full window manager for text-based apps.

  • The DirectVT protocol for SSH. Running vtm ssh user@host vtm uses

Did you like this issue?

Join our weekly newsletter

Related Projects

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Jun 21, 2026