Osewa Launches: Open-Source Terminal Protocol for AI Agents
Osewa is an open-source terminal protocol designed for long-running AI agents, serving as a modern alternative to SSH and Mosh. By leveraging QUIC/TCP for session persistence and network roaming, it offers 8–100x faster key echo than SSH on poor networks, enabling seamless access to background agent tasks from any device.
Full Report
Contents18 sections
The terminal protocol for the age of agents. Your agent runs for hours on the host; check in from a laptop or a phone, on any network.
Get started →Read the paperStar on GitHub ▍▼ PRESS ↓ OR SCROLL TO START§1 Why nowselect your protocol
ssh and mosh were built for networks we no longer have.
ssh 1995
The session is its TCP connection: it dies when the network changes, and each key waits behind the download.
ROAMINGECHO / LOADFIDELITY
mosh 2012
Survives roaming, but its own emulator can garble your screen. UDP only, no forwards, no scrollback.
ROAMINGECHO / LOADFIDELITY
osewa 2026
The session lives on the host with Ghostty's engine. Forwards and exec share the connection, over QUIC or TCP.
ROAMINGECHO / LOADFIDELITY§2 Benchmarkskey echo while a download runs
On a bad network, keys echo 8–100× faster than ssh.
Cellular60 ms · deep bufferosewa 138 msssh 1,714 ms12×COMBOWi-Fi20 ms · 1% lossosewa 44 msssh 374 ms8×COMBO1 Mbit/s100 ms · 1% lossosewa 154 msssh no echo in 15 s →>100×COMBO§3 World 2 · public internetThailand → Tokyo
Thailand to Tokyo, over the public internet.
CONNECT + RUN A COMMAND · LOWER WINS
osewa QUIC311 msosewa WS511 msssh1,337 msmosh1,993 ms§4 Resourcesthe red bar is the winner, even when it's ssh
Light when idle. Honest about the cost.
Host memory, idle
lower is betterosewa14.3 MBmosh20.6 MBssh27.4 MB
Client memory, idle
lower is betterosewa6.9 MBmosh14.3 MBssh8.2 MB
Host CPU per MB, log tail
50 kB/s · ssh wins hereosewa302 msmosh434 msssh66 ms
Host CPU per MB, flood
output as fast as it comesosewa6 msmosh45 msssh12 ms§5 Quick startLinux and macOS hosts
ssh once. osewa after that.
osewa login --service me@devbox # install, enroll, run as a service osewa attach devbox # attach to (or create) a session osewa forward devbox 3000 # forward localhost:3000 osewa exec devbox -- make test # run a command, no terminal$ osewa update devbox # upgrade the host over osewaInstall guide →All docs§6 Roadmapworld map
A transport any terminal can ride, then a mux on top.
✓M0Wire protocol v0✓M1Sessions that survive✓M2Agent-awareM3YOU ARE HEREThe osewa CLIM4nextIn the Moshi appM5laterMuxM6laterEvery screen§7 How it works
Separate the session from the transport. Then make it hard to kill.
01 · HYBRID CARRIER
QUIC and TLS WebSocket, raced on every connect
QUIC gets a 300 ms head start; if UDP is blocked, the WebSocket wins. Nothing to configure.
02 · HOLDER
Connections come and go. The session stays.
One process per session on the host keeps the PTY, the screen and your unacked input.
03 · FLIGHT CONTROL
A download can't bury your echo
Keystrokes go ahead of bulk, and a slow link gets the latest screen, not a backlog.
QUIC · UDP · 1 RTTTLS WS · TCP · +300 ms§8 Agentsfinal level
The agent keeps working. You check in when it needs you.
OSC 7501 · devbox ● needs input · 2m ago"Run migrations on staging? [y/n]"ALL LEVELS CLEAR.Read the paper →Quick startGitHub ↗