Skip to main content
CODEMUXManual

Web Remote Access

Drive your Codemux desktop from a browser on another device — same projects, workspaces, terminals, and agent chats.

Web Remote Access

Web Remote Access turns your Codemux desktop into a second frontend for itself. Turn it on, open a link on another device — a laptop, a phone on your Wi-Fi, or a browser anywhere on the internet — and you get the same Codemux: the same projects, workspaces, terminals, agent chats, and git state, driving the same running desktop instance.

It's a second screen for one backend, not a second app. Your work keeps running on the desktop; the browser is just another window into it. Close the browser and the agents keep going.

Default off. Nothing is reachable until you turn it on in Settings → Remote Access. Turning it off immediately disconnects every device.

Enabling it

Open Settings → Remote Access and flip the master toggle. The desktop starts a small web server on your machine (default port 4377). The settings pane then shows:

  • Reachable at — a list of copy-ready links grouped by This device, Local network, and Tailscale, each with a security note. One is marked Recommended (the best "reach from anywhere" option).
  • A pairing QR code and link with a live countdown to expiry.
  • Your paired devices — name, platform, last-seen time, and a live-connection dot, each with a Revoke button.

Who can connect

The Access scope control decides which networks the server listens on:

  • Everyone on my networks (all) — reachable from any LAN or Tailscale peer that has the address. The default.
  • Tailscale only — reachable only over your Tailscale mesh (plus this machine). The port is never open on an untrusted LAN. Requires a connected Tailscale address.
  • This device only (loopback) — reachable only from the same machine, e.g. after you tunnel in over SSH.

Changing the scope or port re-binds the server and drops any existing connections.

Pairing a device

There are three ways to authorize a browser.

In Settings → Remote Access, scan the QR code with your phone or open the link on the other device. Pairing tokens are single-use and expire after 10 minutes. Once paired, the browser stays authorized across refreshes until you revoke it.

2. Pair from the terminal

If you're SSH'd into the machine and don't want to open the GUI, run:

codemux remote pair
codemux remote pair --name "work laptop"

This prints a scannable QR code plus the pairing link, right in your terminal. Remote Access must already be enabled. The optional --name becomes the device's label in your paired-devices list.

3. Sign in with your Codemux account

If your desktop is signed into a Codemux account, turn on Account access in the Remote Access settings. A browser on the same network can then sign in with the same account instead of scanning a code — no pairing dance. The raw password never leaves the browser; the desktop confirms the sign-in belongs to its own account before allowing the connection.

Account-authorized devices start pending approval by default (a one-click circuit breaker on the desktop), even if you've turned pairing approval off. You can opt out with the "trust browsers on my account" setting.

Reach from anywhere (hosted client)

The methods above need the browser and desktop to already share a network (Wi-Fi or Tailscale). The hosted client removes that requirement.

Turn on relay mode in Remote Access while signed into your Codemux account. Your desktop registers itself with Codemux's device directory. Then, from any network:

  1. Open app.codemux.org in a browser.
  2. Sign in with GitHub (or email) — the same account your desktop uses.
  3. Pick your desktop from the device list.
  4. Codemux connects the browser straight to your desktop and the full app loads.

The connection is end-to-end encrypted and peer-to-peer: your terminal keystrokes and agent output travel directly between the browser and your desktop (hole-punched through NAT, or relayed as encrypted bytes when a direct path isn't possible). Codemux's servers help the two find each other but never see your data — no source code, terminal output, or agent traffic passes through them in readable form.

The from-anywhere hosted client is rolling out with the release that introduces Web Remote Access. Pairing and same-network account sign-in work today; app.codemux.org becomes available as the hosted service goes live.

Approving and revoking devices

  • Approval mode (optional) holds each new device pending until you approve it on the desktop. New pending devices raise a notification.
  • Revoke a device at any time — its connection drops instantly and it can't reconnect. Revoke all clears every device.
  • Turning the master toggle off disconnects everything at once.

Multiple devices at once

All connected clients — your desktop window and every browser — see the same state, including which workspace is active. Switch a workspace on your phone and it switches on the desktop too. A terminal or agent chat can be watched live from several devices at once.

What works in the browser

The browser client is the real Codemux UI, so nearly everything works as it does on the desktop, including:

  • Live terminals with full input and scrollback
  • Agent chat, including running turns and approvals
  • Opening projects and creating workspaces (an in-app file picker replaces the native dialog)
  • Notifications (delivered as browser notifications when your device allows them)
  • Driving your configured remote hosts — a browser sees and controls them just like the desktop does

App updates stay on the desktop: it remains the single updater and won't restart itself while a remote device is connected.

Security notes

  • Off by default, and disabling it severs every connection immediately.
  • A connected device has full control of your desktop by design — it is your Codemux. Treat pairing like handing someone your keyboard. Revoke is instant.
  • Secure browser features (clipboard, notifications) work over This device (loopback) and over HTTPS. On a plain-HTTP LAN address the browser may block them; the settings pane tells you which links are secure. For trusted HTTPS on the go, Tailscale's HTTPS serve or the hosted client is the recommended path.
  • The pairing session is stored in the browser so it survives a refresh. On a shared machine, revoke from the desktop when you're done.

Relationship to remote hosts

Web Remote Access and remote hosts are complementary:

  • Remote hosts move where the work runs — your desktop drives a workspace on another machine over SSH.
  • Web Remote Access moves where you watch and steer it from — a browser drives your desktop.

They compose cleanly: a paired browser automatically sees and controls whatever remote hosts your desktop has configured, with nothing extra to set up.