Faster than ssh,
survives like mosh,
never garbles.

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
osewa 138 ms
ssh 1,714 ms
12×COMBO
Wi-Fi
20 ms · 1% loss
osewa 44 ms
ssh 374 ms
8×COMBO
1 Mbit/s
100 ms · 1% loss
osewa 154 ms
ssh 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 QUIC
311 ms
osewa WS
511 ms
ssh
1,337 ms
mosh
1,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 better
osewa
14.3 MB
mosh
20.6 MB
ssh
27.4 MB

Client memory, idle

lower is better
osewa
6.9 MB
mosh
14.3 MB
ssh
8.2 MB

Host CPU per MB, log tail

50 kB/s · ssh wins here
osewa
302 ms
mosh
434 ms
ssh
66 ms

Host CPU per MB, flood

output as fast as it comes
osewa
6 ms
mosh
45 ms
ssh
12 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 osewa
§6 Roadmapworld map

A transport any terminal can ride, then a mux on top.

✓
M0Wire protocol v0
✓
M1Sessions that survive
✓
M2Agent-aware
✓
M3The osewa CLI
M4
YOU ARE HEREIn the Moshi app
M5
nextMux
M6
laterEvery screen

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.

QUIC · UDP · 1 RTT
TLS WS · TCP · +300 ms
§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]"
osewaLV 00 / 08 · boot
paperdocs↑↓ · W S · 1–9QUIC 102 ms
0 / 9 cleareddocs · the paper →