Skip to content
Ubiquitty app icon

A terminal and multiplexer for humans and agents working together.

One terminal session, wherever the work runs. Keep your sessions on the host; reach them from the Mac app, your phone, a browser or an editor (currently Emacs and Neovim).
Download for macOS

Version 0.2.0Requires macOS 26 or later and a Mac computer with Apple silicon.

OpenCode in a native Ubiquitty window in the dark theme, attached through the Ubiquitty host to a session on a Linux machine: its answer about the OpenCode codebase set in proportional type, with package names and commands in monospace. The title bar names the host, hub, with a starred homelab tag, and the tabs name their programs: OpenCode, Codex with a sleep mark, and Claude Code with an orange question mark where it waits for an answer.OpenCode in a native Ubiquitty window in the light theme, attached through the Ubiquitty host to a session on a Linux machine: its answer about the OpenCode codebase set in proportional type, with package names and commands in monospace. The title bar names the host, hub, with a starred homelab tag, and the tabs name their programs: OpenCode, Codex with a sleep mark, and Claude Code with an orange question mark where it waits for an answer.
OpenCode, patched to set its answers in proportional type, in a host session on a Linux machine. Each tab shows its program’s status.

Ubiquitty is a terminal emulator built on one portable C++ core. The same core runs inside the macOS app and inside ubiquitty-host, a daemon that keeps your shells, panes and layout when no window is open. Every client, from the Mac app to a browser tab to an AI agent, attaches to that host and draws the same session. How it works

People and agents can work in the same live terminal. You see the commands, output and program status; an agent asking to attach to a session you occupy waits for your consent. The host enforces permissions, and ubq provides command-line and MCP access to that shared session. Human–agent collaboration

  • Native renderingCore builds the frame; Metal, Vulkan and WebGL draw it. Changed rows are tracked separately from the rest of the screen. Rendering and performance
  • TypographyProportional, sized and double-height text, real fonts and ligatures. CoreText on Apple platforms, FreeType and HarfBuzz on Linux. Typography
  • MultiplexerSessions, windows and panes live on the host. Detach or lose the network, then reattach without restarting the shell. Multiplexer and sessions
  • Human–agent collaborationPeople and agents work in the same terminal. An agent asking to attach to a session you occupy waits for your consent. Agents and ubq

Quake III, inside a terminal. The ioquake3 terminal driver sends frames through Kitty graphics, using shared memory when available. Ubiquitty supplies the letterboxing and relative mouse input.

Quake III gameplay inside a native Ubiquitty window, with the ioquake3 process in the title and black letterboxing around the game.
A round of Quake while the agents finish their work.

The host keeps the session; each attached client draws it its own way. The macOS and Linux frontends also run local shells. Compare the clients for transport, rendering and permission-interface differences.

Compare clients, transports and features

Layers, from the outside in: Ubiquitty draws the screen; Emacs runs in it, with a notes window on the right listing the layers and, on the left, its Ubiquitty client attached to the host session outer, labelled outer: ~/demo in its header line; in that session Neovim runs, split in two, with frame.c on the right and, on the left, its Ubiquitty client attached to the host session inner, labelled ubiquitty://inner: ~/demo in its status line; in that session Emacs edits frame.c, with its own mode line.
Emacs inside Neovim inside Emacs. Take your terminal into your editor of choice.

Download the Mac app, or follow Install and build to build Ubiquitty for any platform. Then add shell integration for prompt navigation and command output, or connect to a host to keep sessions on another machine.

Apache-2.0. Use it, change it and ship it, commercially or not, keeping the licence and notices. The Emacs client is MIT, and forks use their own name and icon. Licence