Your terminal,
in any browser tab.
Sessions that survive sleep, flaky Wi-Fi and switching devices. Leave Claude Code running at home and pick it up from your phone.
Free for 3 machines · macOS and Linux
Runs anything your shell runs
- Claude Code
- Codex
- Neovim
- tmux
- Git
- Docker
Leave it running. Answer from anywhere.
The session lives on your machine. When a program rings the terminal bell, your phone hears it.
- 01The bell reaches your lock screen.
- 02Answer with Esc, Ctrl and Tab on hand.
- 03Pocket it. The work carries on at home.
Feels local, even underground.
Push the fader from fibre up to the Underground. Every key lands the moment it's pressed, and output follows one round trip later.Push the fader up. Keys still land straight away.
1mskeypress to glyph on the GPU · p50, measured
-
Text, not video
Your machine sends terminal cells, never pixels. WebGPU draws them in the tab, crisp at any zoom.
-
Only what changed
Each update carries just the rows that changed. A full screen is a few KB.
-
Compressed for your screen
zstd with a dictionary built from your own screen, so an update fits in one packet.
-
Repaired, not resent
Packets travel in groups with a parity shard. Lose one and it is rebuilt on arrival.
Not just another web terminal.
Screen state, not a byte stream
Your machine sends the rows that changed. Reconnect and you get the latest screen, not a replay.

Or from your own terminal
Run merkur in Ghostty, kitty or iTerm to open the same sessions, images included.
Renders like a native terminal
The grid comes from a patched Alacritty core, not xterm.js. Wide glyphs, box drawing and true colour look exactly as they do locally.
Images in the terminal
Kitty graphics work. Pixels travel apart from text, so a picture never slows your typing.
Merkur Boxes · coming soon
A machine for your agents, with a seat for you.
Hosted Linux boxes that open in the same tab as your own machines. I'll email you when they're ready.

Post-quantum, end to end.
A fresh ML-KEM-1024 exchange for every session. Traffic recorded today stays sealed.
The keys exist only in your browser and on your machine.
- post-quantum
- ML-KEM-1024
- X25519
- ChaCha20-Poly1305
The machine's keys are made inside its chip and never leave it. Every proof carries an ML-DSA-87 and a P-256 signature.
- hardware-bound
- Secure Enclave
- TPM 2.0
- ML-DSA-87
Sign-in uses OPAQUE, so the server never holds your password. Once the session starts, it is out of the path.
- never in the path
- OPAQUE
- ML-DSA-87 tickets
Also: signed updates that refuse downgrades, and image decoding in a sandbox.
Security modelAGPL-3.0
Open source. Read every line.
The daemon, the relay, the crypto and the renderer live, in one public repo. Audit what runs on your machine, or build it yourself.
Questions
What do I install?+
A small daemon on each Mac or Linux machine you want to reach. It dials out to Merkur, so there is no SSH, no open port and no VPN. Link it once, then open it from any browser.
Which browsers work?+
Chrome and Edge 113+, Safari 26.4+ on macOS, iOS and iPadOS, Firefox 141+ on Windows and 145+ on Apple Silicon Macs with macOS 26, and Chrome 121+ on Android. The daemon runs on macOS 13+ and Linux.
Can Merkur see my terminal?+
No. The server signs you in, keeps your machine list and issues short-lived session tickets. It is never in the path of a keystroke. Sessions are sealed end to end with ML-KEM-1024 and Noise.
What if my network blocks the direct connection?+
Your browser connects straight to your machine over WebTransport. When a network blocks that, a relay carries the session instead. It forwards sealed frames and cannot read them.
Does it work on a phone?+
Yes. Merkur adds its own key row above the keyboard: Esc, Ctrl, Alt, Paste, PgUp, PgDn and Tab. Add the site to your home screen and a terminal bell can arrive as a notification.
What does it cost?+
It is free during the beta for up to 3 linked machines. Hosted boxes will not count toward the three. There is no paid plan.
Open your first machine.
One command on your Mac or Linux box. Free for three.
