Imagekolu
Site

kolu — the terminal, done right

The terminal
built for many.

Not a chat-UI wrapper.
Not an editor fork.
A real terminal — just better at scale.

Real xterm.js tiles on an infinite canvas, backed by padi and kaval so the browser can come and go without losing the shells underneath. claude, codex,opencode, grok — anything you run in a shell runs in kolu.

The dock finds what you cannot see: two agents in two repos, and one buried behind another tile asking for you.

docs

Start in the guide.

The durable setup and workflow material now lives in the docs, where it has sidebar navigation, search, code copy, and next-page flow.

the system

One terminal experience, split at the right owners.

Kolu is what you use. Padi remembers the workspace on the host. Kaval owns the shells. That split is why the tab, web server, and PTYs can fail or restart on different clocks.

See the architecture The @kolu/surface framework underneath
  1. kolubrowser workspacethe canvas, dock, code browser, PWA shell, and everything you look at.
  2. padiworkspace daemonthe per-host memory: sessions, terminal records, restore, git and agent awareness.
  3. kavalPTY daemonthe shell owner: live PTYs, screen snapshots, input, attach, and raw terminal survival.

from the blog

all posts →

Seven weeks to a remote terminal

A remote terminal that behaves exactly like a local one sounds simple. It took Kolu about seven weeks, two dozen thrown-away pull requests, a 6,000-line PR nobody could review, and a daemon that deleted a live 20-terminal session — before “one daemon per host, switch don't multiplex” finally settled it.

read →