$ cd ~/projects/elsewhere
Elsewhere
[ A headless Wayland compositor whose screen is a browser tab. ]
about
Clients render on the GPU, the composited frame is hardware-encoded with VA-API or NVIDIA NVENC, and the stream is sent over a WebSocket for the browser to decode with WebCodecs. Mouse, keyboard, audio, and the clipboard travel the same way.
The encoder picks AV1, HEVC, VP9, or H.264, whichever the browser decodes best and the GPU encodes. Without a GPU, Mesa's llvmpipe renders and the CPU encodes.
features
- Runs any Wayland client, with Xwayland for X11 applications.
- Video can move from the WebSocket to a WebRTC data channel, with automatic fallback.
- Works on phones and tablets with real touch input and an on-screen keyboard.
- Individual windows can be streamed to popups of their own.
- A desktop API and MCP tools let coding agents drive the desktop.
- Token authentication over a self-signed certificate with a printed fingerprint.
usage
# run a Wayland client and create an admin token
$ make run ARGS="--exec foot"
$ elsewhere token create --admin