Your AI agents are waiting for you.

You left 20 Claude Code sessions running and you're stuck at a tennis tournament. Scan a QR code. Check from your phone. Zero worry.

< 50ms relay latency
0 bytes of your data saved
1 command to start
sessions

Scan a QR code. You're in.

Install one thing. Run one command. Point your phone at the QR code. Done.

Step 01

Install

One global npm package. Works on macOS, Linux, and WSL.

$ npm i -g relay-tty
Step 02

Get your QR code

One command gives you a link and a QR code. Same address every time.

$ relay server start --tunnel

  https://x7k9m2.relaytty.com

  █▀▀▀▀▀█  ▄▄▀▀ █ ▄ █▀▀▀▀▀█
  █ ███ █ ▄   █▄ ▀█ █ ███ █
  █ ▀▀▀ █ ▀▀ ▄▄   ▀ █ ▀▀▀ █
  ▀▀▀▀▀▀▀ ▀ █▄▀ █▄▀ ▀▀▀▀▀▀▀
  ▀▀▄▄▄▀▀█ █ ▀██▀█▀▄  ██▄▄
  ▄▄▀▄ █▀▄▄▄▀   ▄█▄█▀ ▄█ ▀█
  █▀▄▀▀█▀▀ ▀ ▄▀ ▄▄▀ ▀▄   ▄▀
  █   ██▀█▄▄ ▄  ██▄▄ █▀█▄▀█
  ▀ ▀▀▀ ▀▀▄▄▀█▀▀███▀▀▀█ ▀
  █▀▀▀▀▀█ █▄ █▄▀  █ ▀ █  ▄▀
  █ ███ █   ▀▄▀█▀██▀█▀▀ ▀▄▄
  █ ▀▀▀ █ ▄▄█▄▀ ▄ █▀ ▄▄▀▀ █
  ▀▀▀▀▀▀▀ ▀▀▀ ▀ ▀ ▀ ▀  ▀  ▀

  Scan to connect
Step 03

Start your favorite agent

Any CLI tool works. Pick your agent and go.

$ relay claude
$ relay codex
$ relay aider
$ relay goose
# or any command you want
$ relay htop

You wouldn't leave 20 employees in a room with no way to reach you.

Why are you doing that to your AI agents?

Blocked agents burn money

Your Claude Code session hit a Y/N prompt 2 hours ago. You're at lunch. That's real time and money wasted.

Your computer works while you're gone

Your personal machine now does autonomous work. It needs monitoring too — and checking should be as easy as glancing at your phone.

Check from anywhere

Tennis tournament. Coffee shop. Your kid's recital. Peek at your agents in 3 seconds, then put your phone away.

Share a live session

Pair debugging, live demos, or showing your agent do something wild. Just share the URL.


I had 20 Claude Code sessions running at home. I was stuck at a tennis tournament with no idea if they were working or waiting on me. Now I just check my phone and get back to my match.

@askscottpierce, builder of things


How it works under the hood.

For the technical folks who want to know it's solid before they trust it.

💻 Your Mac relay-tty server
Cloudflare Edge Worker + Durable Object
📱 Your Phone Browser (any)
> Outbound only. Your computer calls out. Nothing calls in. Works from any network, anywhere.
> Zero data stored. We relay what's on your screen in real-time. Nothing is saved, logged, or recorded. Ever.
> Same link every time. Bookmark it on your phone once. It works every time you reconnect.
> Fast everywhere. Powered by Cloudflare's global network. Low latency no matter where you are.

Free for individuals. Always.

No trials, no credit card, no catch. Install and go.

Individual
Free
Everything you need. No limits that matter.
  • Unlimited connections
  • Same link every time
  • Share with others
  • Community support
Install now →

Questions people actually ask.

The honest answers to the things you're wondering before you install.

How do I check on Claude Code from my phone?
Install relay-tty, start the server with relay server start --tunnel, then run relay claude instead of claude. Your session is live at https://<slug>.relaytty.com. Scan the QR code shown at startup, or bookmark the URL on your phone.
How do I monitor multiple Claude Code sessions running in parallel?
Run each one with relay --detach claude "<task>". They all show up on your dashboard at the tunnel URL. Green means running, yellow means waiting for input, red means blocked. Tap any session to view or interact with it from your phone.
Does this work with Codex, Aider, Goose, Cursor, or opencode?
Yes. relay <anything> wraps any process in a PTY that the server hosts. If it runs in your terminal, it runs under relay-tty. That includes codex, aider, goose session, cursor-agent, opencode, htop, tail -f, or anything else.
Can I send input to my agent from my phone?
Yes. The mobile UI is a real interactive terminal built on xterm.js, not a screenshot. Type y, paste a prompt, send an Enter — it works like any terminal.
How is this different from ngrok or Cloudflare Tunnel?
ngrok and cloudflared are generic tunnels — they expose a port you already have running. relay-tty is a purpose-built terminal server with a mobile-friendly UI, session persistence across restarts, read-only share links, and a bundled tunnel. You get the whole experience with one install.
How is this different from ttyd, gotty, or wetty?
Those tools host a single terminal on localhost. You still need a tunnel, auth, a way to share URLs, persistence, and a UI built for phones. relay-tty includes all of that out of the box, with zero config.
Is there a tool to see my terminal on my phone without SSH?
That's exactly what relay-tty is. A web-based terminal you can view in any mobile browser — no SSH client, no keys, no ports. Install, start with --tunnel, scan the QR code.
Is it free?
Yes, for individuals. The relaytty.com tunnel is free with no accounts and no rate limits that matter. The client is MIT-licensed. Enterprise support and self-hosted options are available by contact.
Is it secure? What about attack surface?
The tunnel is outbound-only — your machine initiates the connection, nothing dials in. Localhost connections skip auth. For remote access, set JWT_SECRET to require a bearer token. Share links are read-only and time-limited. You can also self-host the server and skip the tunnel entirely.
Does my agent know it's being watched?
No. From the agent's perspective it's running in a PTY like any other. No injected prompts, keystrokes, or environment variables.
Can I use this without the relaytty.com tunnel?
Yes. relay server start without --tunnel runs on localhost only. Put it behind your own reverse proxy, Cloudflare Tunnel, Tailscale, or VPN. The web UI and CLI work identically.
What happens if my Wi-Fi drops mid-session?
Nothing. The session keeps running on your machine. When you reconnect, your phone resumes from a 10 MB output ring buffer, so you see recent history instead of a black screen.

Stop wondering. Start checking.

One install, one command, one QR code. That's the whole flow.

Copied! $ npm i -g relay-tty

Then run relay server start --tunnel and scan the QR code.