Menú de documentación

Documentación

Share

Exposing a session over loopback, Tailscale or a public URL.

En esta página

Overview

Web Share puts a running TDE in a browser — your phone, a tablet, someone else's laptop. tde share is the deterministic way to turn it on, read its state, fetch the URL and turn it off again, without touching the desktop UI.

This page is the command reference. For what Web Share actually is, how the browser client behaves and what a reach setting means for your network, read Web Share overview.

bash
tde share start local
tde share url
tde share stop

tde share is part of the semantic CLI, so --json and the standard envelope apply.

Commands

text
tde share start local|tailnet|public
tde share start --reach local|tailnet|public
tde share status
tde share url
tde share stop
CommandResult
start REACHStarts Web Share at the given reach and returns the session, including its URL.
statusReturns state, reach and start time — never the URL.
urlReturns the owner URL. This is the only command that discloses it.
stopStops the share. Stopping an already-stopped share succeeds.

status, url and stop take no arguments at all; a stray word or flag is a usage error.

start requires a reach. Omitting it is a missing_argument error rather than a silent default. The reach can be given positionally or through the compatibility flag --reach, but not both — supplying it twice is a duplicate_option error.

Reach values

CLI valueBinds toWho can reach it
localLoopback onlyNothing outside this machine.
tailnetTailscale interfaceDevices on your private tailnet.
publicTailscale FunnelAnyone on the internet with the URL.

public depends on a working Tailscale Funnel on the host. When the funnel is not available the start fails with a typed error instead of silently downgrading to a narrower reach.

Reading the state

bash
tde share status
tde --json share status

Human output prints the state, or the URL when the command is url. The JSON envelope's data carries the full record:

json
{"ok":true,"message":"running","data":{"share":{"state":"running","url":null,"reach":"local","started_at":"…"}}}

url is null in status by construction — the server nulls the field before it leaves the Runtime, so it is not merely hidden in the human formatting.

The agent socket equivalent

A running desktop exposes the same four operations over its owner-only control socket, for agents driving TDE from inside:

bash
tde agent web-share start tailnet
tde agent web-share status
tde agent web-share url
tde agent web-share stop

These accept exactly the same three reach names and keep the same URL-disclosure rule: status never returns the URL, url does. See the Agent API for the transport and the rest of the verbs.