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.
$ history
1995 ssh devbox
2012 mosh devbox
2026 osewa attach devbox
$ ▍
▼ 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.
ROAMING
ECHO / LOAD
FIDELITY
mosh 2012
Survives roaming, but its own emulator can garble your screen. UDP only, no forwards, no scrollback.
ROAMING
ECHO / LOAD
FIDELITY
osewa 2026
The session lives on the host with Ghostty's engine. Forwards and exec share the connection, over QUIC or TCP.
ROAMING
ECHO / LOAD
FIDELITY
§2 Benchmarkskey echo while a download runs
On a bad network, keys echo 8–100× faster than ssh.
Cellular
60 ms · deep buffer
12×COMBO
§3 World 2 · public internetThailand → Tokyo
Thailand to Tokyo, over the public internet.
CONNECT + RUN A COMMAND · LOWER WINS
§4 Resourcesthe red bar is the winner, even when it's ssh
Light when idle. Honest about the cost.
Host memory, idle
lower is better
Client memory, idle
lower is better
Host CPU per MB, log tail
50 kB/s · ssh wins here
Host CPU per MB, flood
output as fast as it comes
§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 osewa
§6 Roadmapworld map
A transport any terminal can ride, then a mux on top.
M4
YOU ARE HEREIn the Moshi app
On your phone today: Moshi for iOS and Android has osewa as an experimental transport beside mosh. The host needs osewa and moshi-hook.
§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.
§8 Agentsfinal level
The agent keeps working. You check in when it needs you.
OSC 7501 · devbox:mainclaude-code ● needs input · 2m ago"Run migrations on staging? [y/n]"