ER Esper Relay Private Codex relay GitHub

Night Transit Relay

Secure remote Codex control from your phone

Esper Relay keeps codex app-server running on a machine you trust and exposes a touch-friendly control surface over Tailscale, so you can resume threads, send prompts, and handle approvals without opening public ports.

Esper Relay mobile session art composite
tailnet secured
Touch control Real session controls
Esper Relay session controls screenshot
  • Tailnet-only remote access
  • Mobile-first web UI
  • Trusted-host app-server supervision
Install and run cargo install esper-relay && esper-relay --daemon

Product proof

crates.io installable
Rust 1.85+
Access Tailscale secured
UI mobile-first
License MIT
Release v0.1.2

Why Esper Relay

Built for the exact moment remote desktop becomes the wrong tool.

Esper Relay is not a public tunnel and not a generic screen-share. It is a relay surface designed around Codex session flow on a phone.

Remote Codex access

Keep sessions moving while you are away from the host.

Resume threads, send prompts, respond to server requests, and handle approvals from a phone-sized screen.

Private by default

Stay inside the tailnet instead of exposing the machine to the public internet.

Local access stays on your configured bind address. Remote access uses a tailnet URL when Tailscale is enabled.

Host-side supervision

Treat the relay as the operator shell around codex app-server.

Run esper-relay in daemon mode and let it keep the host-side app-server process alive.

Relay-served file links

Open host files through the relay instead of dead local paths.

Explicit file references are rewritten so remote users can safely request host content through the relay.

How it works

From trusted host to handheld control in four clean moves.

Run Esper Relay on the machine that already hosts Codex, reach it through your tailnet when you are away, and keep the session moving from your phone.

01

Run Esper Relay where Codex already lives.

The trusted machine stays the source of truth. Esper Relay keeps codex app-server running there.

02

Open the UI locally or through your tailnet.

Use localhost when you are at the desk. Use the tailnet URL when you are away and still need control.

03

Resume a thread or start a new one from your phone.

The workflow is purpose-built for Codex session flow, not a generic remote desktop squeezed into a handset.

04

Approve actions, send prompts, inspect files, keep going.

Timeline output, approvals, interrupts, and file references stay accessible in the same mobile web surface.

Private access

Keep the route private, keep the machine trusted.

The access model stays precise: local bind address when you are nearby, tailnet-only HTTPS when you are away, and ephemeral OAuth-derived nodes by default when that mode is enabled.

  • bind_addr 127.0.0.1:3000 or configured local bind

    The local web UI stays on the host's configured bind address.

  • tailnet.listener_mode https on :443

    Remote access can stay tailnet-only with MagicDNS and tailnet HTTPS.

  • oauth_ephemeral true by default

    A clean stop logs out ephemeral OAuth-derived nodes instead of leaving them hanging around.

Real mobile UI

Built for prompts, approvals, and thread control on a phone.

These are shipped screenshots from Esper Relay. They show the real mobile controls for prompts, approvals, and thread management.

Open source

Inspect the source. Install the relay. Use it today.

Esper Relay is a public MIT-licensed project with readable source, crates.io installation, and downloadable builds on GitHub Releases.

Open source and shipped

  • Public GitHub repository with readable source and release history.
  • MIT license for teams that want a relay they can inspect and adapt.
  • Install from crates.io or download packaged builds from GitHub Releases.
  • Published binaries for four targets so you can get running without building everything yourself.

Install and run

  • cargo install esper-relay
  • esper-relay --daemon
  • esper-relay --stop

Get started

Ship the relay. Keep the host trusted. Keep access private.

Start locally, add Tailscale when you need remote reach, and use the same web surface from desk to phone.

Quick start cargo install esper-relay && esper-relay --daemon