Skip to content

Neovim

The client is licensed under Apache-2.0 alone.

The Neovim plugin attaches to a session on ubiquitty-host and paints it into a terminal buffer. Keys typed in the buffer reach the session. The terminal runs in the host, so the session outlives Neovim and can be open in the macOS app at the same time.

Neovim split vertically: on the left a terminal buffer named ubiquitty://review: ~/demo, attached to a host session and showing a coloured git log graph and a directory listing; on the right frame.c with line numbers. Neovim's status line runs under each window.
Neovim with the Ubiquitty client attached to a host session named review, beside a source file.
  • Draws the screen from the host’s checkpoint and row updates.
  • Mirrors the session’s cursor-key, keypad, bracketed-paste and mouse modes, and sends interrupts.
  • Resizes the session with the window.

The client does not draw inline images or the host’s scrollback, and has no consent prompts or QUIC transport. It does not recompute the protocol’s checksums.

Requirements: Neovim 0.10 or later, and the ubiquitty-host binary (in the macOS app at /Applications/Ubiquitty.app/Contents/Helpers/ubiquitty-host, or built with ./Scripts/build-host.sh).

With lazy.nvim:

{
dir = "/path/to/ubiquitty/Source/Platform/Neovim",
name = "ubiquitty_sync",
cmd = "UbiquittySync",
opts = {
-- Only needed when ubiquitty-host is not on PATH:
host_program = "/Applications/Ubiquitty.app/Contents/Helpers/ubiquitty-host",
},
config = function(_, opts)
require("ubiquitty_sync").setup(opts)
end,
}

Then :UbiquittySync. The plugin runs ubiquitty-host --ensure-daemon and attaches through ubiquitty-host --attach; it never opens the host’s socket itself.