Remote Control lets you operate your local Sero desktop session from another trusted client. It is off by default and only starts when the desktop process is launched with:
Remote Control is not screen sharing and is not production remote administration. The work still happens on your desktop machine, in your active local Sero profile. Remote clients are alternate control surfaces for the Sero desktop process that is already running locally.
Remote Control has three related integration paths:
Tailscale is the private VPN/tailnet layer for remote web access. Discord is a separate optional bot integration; it does not depend on Tailscale and it does not provide the Sero Remote web UI.
Read Security / Privacy before enabling Remote Control.
| Feature | Use it when | Important note |
|---|---|---|
| Web plugin | You want the agent to search, fetch, bookmark, or reuse web content in the current workspace. | Requests may go to configured third-party providers. See Web. |
| Remote Control | You want to control your local Sero desktop session from another trusted device. | Requires SERO_GATEWAY=1; treat paired clients like access to the desktop app. |
Use the Web plugin for web context inside an agent session. Use Remote Control only when you need another trusted device or approved Discord user to interact with the local desktop session.
| Path | What it does | Network dependency |
|---|---|---|
| Local web gateway | Serves Sero Remote locally for testing and pairing | Localhost only |
| Sero Remote over Tailscale | Lets another browser/device on your tailnet use the web UI | Tailscale VPN / tailscale serve |
| Dev-server proxy | Lets Sero Remote open registered workspace dev servers through the same gateway | Tailscale VPN / tailscale serve plus a running registered dev server |
| Discord bot | Lets allowed Discord users send prompts by DM or mention | Discord bot token and allowlist |
Use Tailscale serve for tailnet-only exposure. Do not use public Tailscale funneling or direct public-internet exposure during the beta. Treat tailnet URLs as private access details and redact them from screenshots, logs, and support reports.

Sero Remote is the browser-based remote UI. It can show workspaces and sessions, send prompts, display streamed responses/tool activity, expose remote panels such as files or artifacts where supported, and open registered workspace dev servers as remote previews.

The web UI is useful when you want to continue a Sero session from another trusted device without opening the full desktop app on that device. It still controls the local desktop process and local workspace state on your machine.

Local gateway endpoints currently include:
A basic/legacy local web UI may also be available on:
For remote web access, Tailscale is the recommended transport. Sero can expose
the gateway to your private tailnet through tailscale serve; a paired browser
then uses the tailnet URL and a temporary web token/login flow.
Sero desktop tracks dev servers that are started through its workspace tooling or registered by the agent/CLI. When the gateway is enabled, Sero Remote can list those registered servers and open them through the gateway's built-in reverse proxy. This makes a dev server running in the local desktop session available to a trusted browser on your tailnet without exposing the dev server itself as a separate public or tailnet service.
The proxy is path-based on the gateway origin:
Sero Remote obtains a short-lived dev-proxy ticket over its already
authenticated WebSocket connection before navigating to that path. The first
navigation may include the ticket as ?t=...; the gateway immediately promotes
it to an HttpOnly cookie scoped to that workspace/port proxy path. Tickets are
bound to one workspace and one port and expire automatically.
Practical behavior:
/p/<workspaceId>/<port>/If a preview does not appear, confirm that the desktop app shows the dev server as registered/running for the target workspace and that the paired web client has access to that workspace.
The Discord path is optional and separate from the web/Tailscale path. When configured, the gateway starts a Discord adapter that listens for DMs or mentions and forwards allowed messages into Sero.
Discord setup depends on environment/profile configuration:
SERO_DISCORD_TOKEN — Discord bot tokenSERO_DISCORD_USERS — comma-separated allowlist of Discord usernames or user
IDsCurrent behavior is fail-closed: if SERO_DISCORD_USERS is empty, the Discord
adapter refuses to start for security. Set an explicit allowlist before relying
on Discord access.
Use Discord for prompt-style interactions, not for full workspace browsing. The web UI is the richer remote control surface; Discord is a bot channel.
An authenticated gateway client can interact with the same local Sero profile that your desktop app is using. Current gateway capabilities include:
Because prompts can cause the agent to use tools, a paired web client or allowed Discord user can have high-impact effects on your workspaces. Treat Remote Control access like access to the desktop UI.
Sero uses profile-scoped gateway credentials:
| Credential | Location |
|---|---|
| master gateway token | <SERO_HOME>/agent/gateway-token |
| gateway config | <SERO_HOME>/agent/gateway-config.json |
| web tokens | <SERO_HOME>/agent/gateway-web-tokens.json |
| Discord bot token / allowlist env | <SERO_HOME>/agent/.env or launch environment |
The master token is a high-privilege secret for the active profile. Web tokens are used for browser/device pairing and can expire or be revoked.
Current web-token behavior includes:
Dev-server proxy tickets are separate short-lived HMAC-signed bearers. They are
issued only after gateway authentication, bind one (workspaceId, port) pair,
and are stored as path-scoped cookies after the initial preview navigation.
Do not paste gateway tokens, web-token files, login URLs, QR codes, Tailscale serve URLs, Discord bot tokens, or Discord allowlists into bug reports, screenshots, chat transcripts, or public issues. See State and Folders for the canonical storage map.
Sero includes a pairing flow for connecting a remote browser or web client. The flow creates a time-limited web token and can produce a login URL or QR code for the browser. When served over Tailscale, that paired browser can control the local Sero session from another trusted tailnet device.
Practical guidance:
Token URLs are sensitive because they can leak through browser history, autocomplete, screenshots, referrers, logs, or shared terminal output.
During the current public beta, Remote Control does not promise:
The gateway has authentication and scope checks, but an authenticated client is still powerful. Master-auth clients can access the profile broadly. Scoped web tokens may limit gateway file/session/artifact access to specific workspace IDs, but that is not the same as a comprehensive per-tool permission system.
If Remote Control behaves unexpectedly, include these redacted details:
SERO_GATEWAY=1serve was active, and whether public funneling was avoidedSERO_DISCORD_TOKEN and an explicit
SERO_DISCORD_USERS allowlistUseful logs can include:
Never include raw gateway tokens, web-token files, QR codes, full login URLs, Tailscale serve URLs, Discord bot tokens, or private tailnet URLs. Rotate any token that may have been exposed.