skip to content
$worker

tailscale

v0.1.9

Tailscale as an iii worker — tailscale::* functions for connectivity and peers, exit nodes and preferences, Serve and Funnel publishing, Taildrop, certificates, Taildrive, accounts, tailnet lock, and updates, plus a Console page with QR links.

iiiverified
0 installs0 in 7d0 today
install
$iii trigger compose::add worker=tailscale
  • macOS: arm64
  • Linux: arm64 · armv7 · x64
  • Windows: arm64 · x64

exact versions are immutable; binary and bundle artifacts are digest-pinned.

functions

40

tailscale::accounts::list

function

List the Tailscale accounts logged in on this device and which one is active.

request
empty object
response
  • accountsobject[]required

    Accounts logged in on this device.

    • accountstringrequired

      Login name.

    • idstringrequired

      Short id used by `switch`.

    • nicknamestring

      Nickname, when set.

    • selectedbooleanrequired

      Whether this account is active.

    • tailnetstringrequired

      Tailnet name.

tailscale::accounts::switch

function

Switch this device to another logged-in Tailscale account by id, tailnet, or login name.

request
  • accountstringrequired

    Account id, tailnet, login name, or nickname from accounts::list.

response
  • accountsobject[]required

    Accounts logged in on this device.

    • accountstringrequired

      Login name.

    • idstringrequired

      Short id used by `switch`.

    • nicknamestring

      Nickname, when set.

    • selectedbooleanrequired

      Whether this account is active.

    • tailnetstringrequired

      Tailnet name.

tailscale::bugreport

function

Generate a Tailscale bug report identifier that support can look up; optional note and in-depth diagnosis.

request
  • diagnoseboolean

    Run additional in-depth checks.

  • notestring

    Free-text note attached to the report.

response
  • outputstringrequired

    The CLI's own output.

  • report_idstringrequired

    Shareable bug report identifier.

tailscale::cert

function

Fetch a Let's Encrypt certificate and key for one of this node's MagicDNS domains (`tailscale cert`). Requires HTTPS enabled for the tailnet.

request
  • cert_filestringrequired

    Absolute path to write the certificate to.

  • domainstringrequired

    One of this node's certificate domains, as reported by dns::status `cert_domains`.

  • key_filestringrequired

    Absolute path to write the private key to.

response
  • cert_filestringrequired

    Path of the written certificate.

  • domainstringrequired

    Domain the certificate was issued for.

  • key_filestringrequired

    Path of the written private key.

  • outputstringrequired

    The CLI's own output.

tailscale::configuration

function

Return the non-secret worker settings and the current Serve configuration. The CLI path is omitted.

request
empty object
response
  • allow_funnelbooleanrequired

    Whether public Funnel shares are permitted by the operator.

  • command_timeout_msinteger· uint64requiredmin 0

    Per-command timeout for the Tailscale CLI.

  • console_urlstringrequired

    Local Console URL the Console share routes proxy to.

  • default_https_portinteger· uint16requiredmin 0

    HTTPS port used when a share request omits one.

  • routesobject[]required

    Active Serve and Funnel routes on this node.

    • hoststringrequired

      MagicDNS host name the route answers on.

    • modeall ofrequired

      `serve` for a tailnet-only route, `funnel` when the same listener is also published to the internet.

      all of (1)
      variant 1
      valuestringenum: serve, funnel
    • pathstringrequired

      URL path prefix the route serves.

    • portinteger· uint16requiredmin 0

      HTTPS port of the listener.

    • targetstringrequired

      Local target the route proxies to, or the file path it serves.

    • urlstringrequired

      Full HTTPS URL a device opens to reach the route.

  • serve_configunknownrequired

    Raw `tailscale serve status --json` output.

tailscale::connect

function

Connect this node to the tailnet (`tailscale up`). When the node still needs a sign-in, returns the Tailscale login URL instead of connecting.

request
empty object
response
  • authorization_urlstring

    Tailscale sign-in page when the node still needs a login; open it, then call connect again.

  • backend_statestring

    Backend state reported by the client after the call.

  • connectedbooleanrequired

    True when the node is connected to the tailnet after the call.

tailscale::disconnect

function

Disconnect this node from the tailnet (`tailscale down`). Shared routes stop answering until the node connects again.

request
empty object
response
  • backend_statestring

    Backend state reported by the client after the call, normally `Stopped` or `NeedsLogin`.

  • connectedbooleanrequired

    False once the node has left the tailnet.

tailscale::dns::query

function

Resolve a name through the Tailscale DNS forwarder (100.100.100.100).

request
  • namestringrequired

    Name to resolve.

  • record_typestring

    Record type such as A, AAAA, CNAME, TXT; defaults to A.

response
  • answersunknownrequired

    Answer records as the forwarder returned them.

  • namestringrequired

    Name that was resolved.

  • record_typestringrequired

    Record type that was queried.

tailscale::dns::status

function

Report the MagicDNS and split-DNS configuration the local Tailscale DNS forwarder is using.

request
empty object
response
  • cert_domainsstring[]required

    Domains this node can obtain HTTPS certificates for.

  • magic_dnsbooleanrequired

    Whether MagicDNS is enabled for this node.

  • magic_dns_suffixstring

    MagicDNS suffix of the tailnet.

  • resolversstring[]required

    Upstream resolvers Tailscale forwards to.

  • search_domainsstring[]required

    Search domains pushed by the tailnet.

  • split_dns_routesobject[]required

    Split-DNS routes: domain suffix to resolvers.

    • domainstringrequired

      Domain suffix routed to the resolvers.

    • resolversstring[]required

      Resolvers used for that suffix.

tailscale::drive::list

function

List the directories this node shares with the tailnet through Taildrive. The macOS GUI app manages Taildrive in its own settings and rejects the CLI.

request
empty object
response
  • outputstringrequired

    The CLI's own output.

  • sharesobject[]required

    Taildrive shares as `name path` lines from the CLI.

    • namestringrequired

      Share name.

    • pathstringrequired

      Directory shared.

tailscale::drive::share

function

Share a directory with the tailnet through Taildrive under a name (`tailscale drive share`).

request
  • namestringrequired

    Share name.

  • pathstringrequired

    Absolute directory to share.

response
  • outputstringrequired

    The CLI's own output.

  • sharesobject[]required

    Taildrive shares as `name path` lines from the CLI.

    • namestringrequired

      Share name.

    • pathstringrequired

      Directory shared.

tailscale::drive::unshare

function

Stop sharing a Taildrive directory by name (`tailscale drive unshare`).

request
  • namestringrequired

    Share name.

response
  • outputstringrequired

    The CLI's own output.

  • sharesobject[]required

    Taildrive shares as `name path` lines from the CLI.

    • namestringrequired

      Share name.

    • pathstringrequired

      Directory shared.

tailscale::exit-node::list

function

List the available exit nodes for internet traffic, and which one this node uses.

request
empty object
response
  • currentstring

    MagicDNS name of the exit node in use, if any.

  • exit_nodesobject[]required

    Peers offering to be an exit node.

    • activebooleanrequired

      Whether this node currently exchanges traffic with the peer.

    • dns_namestringrequired

      MagicDNS name without the trailing dot.

    • exit_nodebooleanrequired

      Whether this node routes internet traffic through the peer.

    • exit_node_optionbooleanrequired

      Whether the peer offers to be an exit node.

    • hostnamestringrequired

      Machine name.

    • idstringrequired

      Stable node id.

    • ingressbooleanrequired

      True for Tailscale's Funnel ingress relay nodes, which are infrastructure rather than devices.

    • last_seenstring

      When the peer was last seen, RFC 3339.

    • onlinebooleanrequired

      Whether the peer is online.

    • osstring

      Operating system reported by the peer.

    • relaystring

      DERP relay the connection currently uses, empty when direct.

    • rx_bytesinteger· uint64requiredmin 0

      Bytes received from the peer.

    • tagsstring[]required

      ACL tags on the peer.

    • taildrop_targetbooleanrequired

      Whether the peer accepts Taildrop files from this node.

    • tailscale_ipsstring[]required

      Tailscale IPv4 and IPv6 addresses.

    • tx_bytesinteger· uint64requiredmin 0

      Bytes sent to the peer.

tailscale::exit-node::set

function

Route this node's internet traffic through an exit node (by name or IP, or `auto:any`), or clear it with an empty value.

request
  • allow_lan_accessboolean

    Allow direct access to the local LAN while the exit node is in use.

  • exit_nodestring

    Exit node by MagicDNS name, hostname, Tailscale IP, or `auto:any`; empty or omitted clears the exit node.

response
  • accept_dnsbooleanrequired

    Accept DNS configuration from the tailnet.

  • accept_routesbooleanrequired

    Accept subnet routes advertised by other nodes.

  • advertise_exit_nodebooleanrequired

    Whether this node advertises itself as an exit node.

  • advertise_routesstring[]required

    Subnet routes this node advertises.

  • advertise_tagsstring[]required

    ACL tags requested by this node.

  • app_connectorbooleanrequired

    Advertised as an app connector.

  • auto_update_applybooleanrequired

    Automatic updates applied.

  • auto_update_checkbooleanrequired

    Automatic update checks enabled.

  • control_urlstring

    Control server URL.

  • exit_node_allow_lan_accessbooleanrequired

    LAN access allowed while using an exit node.

  • exit_node_idstring

    Exit node in use, by id.

  • exit_node_ipstring

    Exit node in use, by IP.

  • hostnamestring

    Hostname override, empty when the OS name is used.

  • logged_outbooleanrequired

    Whether the node is logged out.

  • posture_checkingbooleanrequired

    Device posture reporting enabled.

  • shields_upbooleanrequired

    Incoming connections blocked.

  • sshbooleanrequired

    Tailscale SSH server enabled on this node.

  • want_runningbooleanrequired

    Whether the node wants to be connected.

  • webclientbooleanrequired

    Web client exposed on port 5252.

tailscale::exit-node::suggest

function

Ask Tailscale for the best available exit node for this node.

request
empty object
response
  • messagestringrequired

    The CLI's own wording.

  • suggestionstring

    Suggested exit node name, or null when Tailscale has none to offer.

tailscale::file::receive

function

Move files that arrived in this node's Taildrop inbox into a directory (`tailscale file get`).

request
  • conflictall of

    What to do when a same-named file exists; defaults to `skip`.

    all of (1)
    variant 1
    valuestringenum: skip, overwrite, rename
  • directorystringrequired

    Absolute directory that receives the inbox files.

  • waitboolean

    Wait for at least one file to arrive before returning.

response
  • okbooleanrequired

    True when the CLI exited successfully.

  • outputstringrequired

    The CLI's own output.

tailscale::file::send

function

Send files to a tailnet device with Taildrop (`tailscale file cp`). Paths must be absolute and exist on this host.

request
  • namestring

    Alternate file name to use when sending a single file.

  • pathsstring[]requiredmin 1 items

    Absolute paths of the files to send.

  • targetstringrequired

    Receiving device by machine name or Tailscale IP.

response
  • okbooleanrequired

    True when the CLI exited successfully.

  • outputstringrequired

    The CLI's own output.

tailscale::file::targets

function

List the tailnet devices that accept Taildrop files from this node.

request
empty object
response
  • targetsobject[]required

    Devices that accept Taildrop files from this node.

    • ipstringrequired

      Tailscale IP of the device.

    • namestringrequired

      Machine name of the device.

tailscale::ip

function

Get this node's Tailscale IP addresses, or a peer's by name or IP.

request
  • peerstring

    Peer hostname or Tailscale IP; omitted means this node.

response
  • addressesstring[]required

    Tailscale IPv4 and IPv6 addresses.

  • peerstringrequired

    Peer the addresses belong to, or `self`.

tailscale::lock::status

function

Report whether tailnet lock is enabled and this node's tailnet-lock public key.

request
empty object
response
  • enabledbooleanrequired

    Whether tailnet lock is enabled for the tailnet.

  • node_keystring

    This node's tailnet-lock public key (`tlpub:…`), safe to share with admins.

  • node_signedboolean

    Whether this node is signed under tailnet lock, when enabled.

  • outputstringrequired

    The CLI's own output.

tailscale::login

function

Sign in to Tailscale on this node (`tailscale login`). Returns the browser URL a person completes it at; call connect afterwards.

request
empty object
response
  • authorization_urlstring

    Tailscale sign-in page when the node still needs a login; open it, then call connect again.

  • backend_statestring

    Backend state reported by the client after the call.

  • connectedbooleanrequired

    True when the node is connected to the tailnet after the call.

tailscale::logout

function

Log this node out (`tailscale logout`): disconnects and expires the node key, so the next connect needs a fresh sign-in.

request
empty object
response
  • backend_statestring

    Backend state reported by the client after the call, normally `Stopped` or `NeedsLogin`.

  • connectedbooleanrequired

    False once the node has left the tailnet.

tailscale::metrics

function

Return the client's user-facing metrics in Prometheus text format.

request
empty object
response
  • outputstringrequired

    The CLI's own output.

tailscale::netcheck

function

Analyse the local network for Tailscale: UDP reachability, IPv4/IPv6, NAT mapping, port-mapping protocols, the preferred DERP relay and relay latencies.

request
empty object
response
  • captive_portalboolean

    Captive portal detected on the network.

  • global_v4string

    Public IPv4 address seen by the relays.

  • global_v6string

    Public IPv6 address seen by the relays.

  • ipv4booleanrequired

    Whether IPv4 is usable.

  • ipv6booleanrequired

    Whether IPv6 is usable.

  • mapping_varies_by_dest_ipboolean

    True when the NAT maps to different ports per destination (hard NAT).

  • pcpboolean
  • pmpboolean
  • preferred_derpinteger· uint64min 0

    DERP relay region the client prefers.

  • region_latency_msobject[]required

    Round-trip latency to each DERP region in milliseconds.

    • latency_msnumber· doublerequired

      Round-trip latency in milliseconds.

    • regioninteger· uint64requiredmin 0

      DERP region id.

  • udpbooleanrequired

    Whether UDP traffic reaches the internet.

  • upnpboolean

    Port-mapping protocols the router offers.

tailscale::on-config-change

function

Internal: reload Tailscale settings after a configuration update.

request
empty object
response
  • okbooleanrequired

tailscale::peers::list

function

List the devices on your Tailscale network (tailnet) and whether each is online. Also names, IPs, OS, tags, exit-node offers, traffic counters; keys omitted.

request
  • include_ingressboolean

    Include Tailscale's Funnel ingress relay nodes (`funnel-ingress-node`, tag `tag:ingress`), which are infrastructure rather than devices.

  • online_onlyboolean

    Only peers that are online right now.

response
  • hidden_ingress_countinteger· uintrequiredmin 0

    Funnel ingress relay nodes left out because `include_ingress` was false.

  • peersobject[]required

    Peers in name order.

    • activebooleanrequired

      Whether this node currently exchanges traffic with the peer.

    • dns_namestringrequired

      MagicDNS name without the trailing dot.

    • exit_nodebooleanrequired

      Whether this node routes internet traffic through the peer.

    • exit_node_optionbooleanrequired

      Whether the peer offers to be an exit node.

    • hostnamestringrequired

      Machine name.

    • idstringrequired

      Stable node id.

    • ingressbooleanrequired

      True for Tailscale's Funnel ingress relay nodes, which are infrastructure rather than devices.

    • last_seenstring

      When the peer was last seen, RFC 3339.

    • onlinebooleanrequired

      Whether the peer is online.

    • osstring

      Operating system reported by the peer.

    • relaystring

      DERP relay the connection currently uses, empty when direct.

    • rx_bytesinteger· uint64requiredmin 0

      Bytes received from the peer.

    • tagsstring[]required

      ACL tags on the peer.

    • taildrop_targetbooleanrequired

      Whether the peer accepts Taildrop files from this node.

    • tailscale_ipsstring[]required

      Tailscale IPv4 and IPv6 addresses.

    • tx_bytesinteger· uint64requiredmin 0

      Bytes sent to the peer.

tailscale::ping

function

Ping a peer at the Tailscale layer and report whether each reply came over a DERP relay or a direct path.

request
  • countinteger· uint8min 0

    Number of pings to send; defaults to 5.

  • targetstringrequired

    Peer hostname or Tailscale IP.

  • timeout_msinteger· uint64min 0

    Per-ping timeout in milliseconds; defaults to 5000.

response
  • directbooleanrequired

    True when at least one reply arrived over a direct path.

  • rawstringrequired

    Raw CLI output.

  • repliesobject[]required

    One entry per reply, in order.

    • latency_msnumber· double

      Round-trip time in milliseconds.

    • linestringrequired

      The CLI line for this reply.

    • viastringrequired

      `direct` or `derp`.

  • targetstringrequired

    Target as given.

tailscale::prefs::get

function

Read this node's Tailscale preferences: routes, DNS, exit node, SSH, shields-up, hostname, auto-update. Keys and login secrets are omitted.

request
empty object
response
  • accept_dnsbooleanrequired

    Accept DNS configuration from the tailnet.

  • accept_routesbooleanrequired

    Accept subnet routes advertised by other nodes.

  • advertise_exit_nodebooleanrequired

    Whether this node advertises itself as an exit node.

  • advertise_routesstring[]required

    Subnet routes this node advertises.

  • advertise_tagsstring[]required

    ACL tags requested by this node.

  • app_connectorbooleanrequired

    Advertised as an app connector.

  • auto_update_applybooleanrequired

    Automatic updates applied.

  • auto_update_checkbooleanrequired

    Automatic update checks enabled.

  • control_urlstring

    Control server URL.

  • exit_node_allow_lan_accessbooleanrequired

    LAN access allowed while using an exit node.

  • exit_node_idstring

    Exit node in use, by id.

  • exit_node_ipstring

    Exit node in use, by IP.

  • hostnamestring

    Hostname override, empty when the OS name is used.

  • logged_outbooleanrequired

    Whether the node is logged out.

  • posture_checkingbooleanrequired

    Device posture reporting enabled.

  • shields_upbooleanrequired

    Incoming connections blocked.

  • sshbooleanrequired

    Tailscale SSH server enabled on this node.

  • want_runningbooleanrequired

    Whether the node wants to be connected.

  • webclientbooleanrequired

    Web client exposed on port 5252.

tailscale::prefs::set

function

Change only the given Tailscale preferences (`tailscale set`): accept routes or DNS, advertise routes or exit node, hostname, shields-up, SSH server, auto-update, LAN access with an exit node.

request
  • accept_dnsboolean

    Accept DNS configuration from the tailnet.

  • accept_routesboolean

    Accept subnet routes advertised by other nodes.

  • advertise_connectorboolean

    Offer this node as an app connector.

  • advertise_exit_nodeboolean

    Offer this node as an exit node.

  • advertise_routesstring[]

    Subnet routes to advertise, CIDR notation; an empty list stops advertising.

  • auto_updateboolean

    Apply updates automatically.

  • exit_node_allow_lan_accessboolean

    Allow direct LAN access while using an exit node.

  • hostnamestring

    Hostname to use instead of the OS name; empty restores the OS name.

  • report_postureboolean

    Report device posture to the management plane.

  • shields_upboolean

    Block incoming connections.

  • sshboolean

    Run the Tailscale SSH server.

  • update_checkboolean

    Notify about available updates.

  • webclientboolean

    Expose the web client on port 5252.

response
  • accept_dnsbooleanrequired

    Accept DNS configuration from the tailnet.

  • accept_routesbooleanrequired

    Accept subnet routes advertised by other nodes.

  • advertise_exit_nodebooleanrequired

    Whether this node advertises itself as an exit node.

  • advertise_routesstring[]required

    Subnet routes this node advertises.

  • advertise_tagsstring[]required

    ACL tags requested by this node.

  • app_connectorbooleanrequired

    Advertised as an app connector.

  • auto_update_applybooleanrequired

    Automatic updates applied.

  • auto_update_checkbooleanrequired

    Automatic update checks enabled.

  • control_urlstring

    Control server URL.

  • exit_node_allow_lan_accessbooleanrequired

    LAN access allowed while using an exit node.

  • exit_node_idstring

    Exit node in use, by id.

  • exit_node_ipstring

    Exit node in use, by IP.

  • hostnamestring

    Hostname override, empty when the OS name is used.

  • logged_outbooleanrequired

    Whether the node is logged out.

  • posture_checkingbooleanrequired

    Device posture reporting enabled.

  • shields_upbooleanrequired

    Incoming connections blocked.

  • sshbooleanrequired

    Tailscale SSH server enabled on this node.

  • want_runningbooleanrequired

    Whether the node wants to be connected.

  • webclientbooleanrequired

    Web client exposed on port 5252.

tailscale::serve::add

function

Publish any local service, port, or directory on this node over Tailscale Serve (tailnet only) or Funnel (public; needs allow_funnel and confirm_public).

request
  • confirm_publicboolean

    Required `true` for Funnel: acknowledges that the target becomes reachable by anyone with the link.

  • https_portinteger· uint16min 0

    HTTPS port for the listener; defaults to the configured port. Funnel accepts 443, 8443, and 10000.

  • modeall of

    `serve` (tailnet only, default) or `funnel` (public internet).

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstring

    URL path prefix to publish under; defaults to `/`.

  • targetstringrequired

    Local port (`3000`), loopback URL (`http://127.0.0.1:3000`, `https+insecure://localhost:8443`), or absolute file/directory path to publish.

response
  • authorization_urlstring

    Tailscale page that enables Funnel for this node, present only when authorization is required.

  • https_portinteger· uint16requiredmin 0

    HTTPS port of the listener.

  • modeall ofrequired

    Mode that was requested.

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstringrequired

    URL path prefix the route serves.

  • publicbooleanrequired

    True when the route is reachable from the public internet.

  • qr_svgstringrequired

    QR code for `url` as inline SVG markup.

  • stageall ofrequired

    `ready` when the route is live; `authorization_required` when Funnel must first be enabled for this node.

    all of (1)
    variant 1
    valuestringenum: authorization_required, ready
  • targetstringrequired

    Local target the route proxies to.

  • urlstringrequired

    URL to open: the published route, or the Tailscale authorization page when `stage` is `authorization_required`.

tailscale::serve::list

function

List every Serve and Funnel route on this node with its URL, target, and visibility.

request
empty object
response
  • routesobject[]required

    Active Serve and Funnel routes on this node.

    • hoststringrequired

      MagicDNS host name the route answers on.

    • modeall ofrequired

      `serve` for a tailnet-only route, `funnel` when the same listener is also published to the internet.

      all of (1)
      variant 1
      valuestringenum: serve, funnel
    • pathstringrequired

      URL path prefix the route serves.

    • portinteger· uint16requiredmin 0

      HTTPS port of the listener.

    • targetstringrequired

      Local target the route proxies to, or the file path it serves.

    • urlstringrequired

      Full HTTPS URL a device opens to reach the route.

tailscale::serve::remove

function

Remove one route by mode, HTTPS port, and path. mode=funnel removes public access and keeps the tailnet-only route with its original target; mode=serve removes the route entirely.

request
  • https_portinteger· uint16requiredmin 0

    HTTPS port of the route to stop.

  • modeall ofrequired

    Mode of the route to stop.

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstring

    URL path prefix of the route to stop; defaults to `/`.

response
  • https_portinteger· uint16requiredmin 0

    HTTPS port of the route.

  • modeall ofrequired

    Mode that was stopped.

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstringrequired

    URL path prefix of the route.

  • remainingany of

    Route that remains on that listener and path after the call, if any.

    any of (2)
    variant 1
    • hoststringrequired

      MagicDNS host name the route answers on.

    • modeall ofrequired

      `serve` for a tailnet-only route, `funnel` when the same listener is also published to the internet.

      … expand 1 nested
      all of (1)
      variant 1
      valuestringenum: serve, funnel
    • pathstringrequired

      URL path prefix the route serves.

    • portinteger· uint16requiredmin 0

      HTTPS port of the listener.

    • targetstringrequired

      Local target the route proxies to, or the file path it serves.

    • urlstringrequired

      Full HTTPS URL a device opens to reach the route.

    variant 2
    valuenull
  • stoppedbooleanrequired

    True when the route was changed.

tailscale::serve::reset

function

Remove every Serve and Funnel route on this node (`serve reset` and `funnel reset`). Requires confirm=true.

request
  • confirmboolean

    Must be `true`: every Serve and Funnel route on this node is removed.

response
  • routesobject[]required

    Active Serve and Funnel routes on this node.

    • hoststringrequired

      MagicDNS host name the route answers on.

    • modeall ofrequired

      `serve` for a tailnet-only route, `funnel` when the same listener is also published to the internet.

      all of (1)
      variant 1
      valuestringenum: serve, funnel
    • pathstringrequired

      URL path prefix the route serves.

    • portinteger· uint16requiredmin 0

      HTTPS port of the listener.

    • targetstringrequired

      Local target the route proxies to, or the file path it serves.

    • urlstringrequired

      Full HTTPS URL a device opens to reach the route.

tailscale::share

function

Share the local iii Console. Serve is tailnet-only and the default; Funnel is public and requires allow_funnel in the configuration plus confirm_public in the request.

request
  • confirm_publicboolean

    Required `true` for Funnel: acknowledges that the Console becomes reachable by anyone with the link.

  • https_portinteger· uint16min 0

    HTTPS port for the listener; defaults to the configured port. Funnel accepts 443, 8443, and 10000.

  • modeall of

    `serve` (tailnet only, default) or `funnel` (public internet).

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstring

    URL path prefix to serve the Console under; defaults to `/`.

response
  • authorization_urlstring

    Tailscale page that enables Funnel for this node, present only when authorization is required.

  • https_portinteger· uint16requiredmin 0

    HTTPS port of the listener.

  • modeall ofrequired

    Mode that was requested.

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstringrequired

    URL path prefix the route serves.

  • publicbooleanrequired

    True when the route is reachable from the public internet.

  • qr_svgstringrequired

    QR code for `url` as inline SVG markup.

  • stageall ofrequired

    `ready` when the route is live; `authorization_required` when Funnel must first be enabled for this node.

    all of (1)
    variant 1
    valuestringenum: authorization_required, ready
  • targetstringrequired

    Local target the route proxies to.

  • urlstringrequired

    URL to open: the published route, or the Tailscale authorization page when `stage` is `authorization_required`.

tailscale::share::stop

function

Stop one Console share by mode, HTTPS port, and path. mode=funnel removes public access and keeps the tailnet-only route; mode=serve removes the route entirely. Other routes are never reset.

request
  • https_portinteger· uint16requiredmin 0

    HTTPS port of the route to stop.

  • modeall ofrequired

    Mode of the route to stop.

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstring

    URL path prefix of the route to stop; defaults to `/`.

response
  • https_portinteger· uint16requiredmin 0

    HTTPS port of the route.

  • modeall ofrequired

    Mode that was stopped.

    all of (1)
    variant 1
    valuestringenum: serve, funnel
  • pathstringrequired

    URL path prefix of the route.

  • remainingany of

    Route that remains on that listener and path after the call, if any.

    any of (2)
    variant 1
    • hoststringrequired

      MagicDNS host name the route answers on.

    • modeall ofrequired

      `serve` for a tailnet-only route, `funnel` when the same listener is also published to the internet.

      … expand 1 nested
      all of (1)
      variant 1
      valuestringenum: serve, funnel
    • pathstringrequired

      URL path prefix the route serves.

    • portinteger· uint16requiredmin 0

      HTTPS port of the listener.

    • targetstringrequired

      Local target the route proxies to, or the file path it serves.

    • urlstringrequired

      Full HTTPS URL a device opens to reach the route.

    variant 2
    valuenull
  • stoppedbooleanrequired

    True when the route was changed.

tailscale::status

function

Check if Tailscale is connected on this node, plus identity, health notices, and Serve and Funnel routes. Keys, users, and capability maps are omitted.

request
empty object
response
  • backend_statestring

    Backend state reported by the client, `Running` when connected.

  • dns_namestring

    MagicDNS name of this node without the trailing dot.

  • errorstring

    Error text when the client could not be queried.

  • exit_nodestring

    Exit node this node currently routes through, if any.

  • funnel_allowedbooleanrequired

    Whether the tailnet policy allows this node to use Funnel.

  • healthstring[]required

    Health notices reported by the client.

  • hostnamestring

    Machine name of this node.

  • ingress_node_countinteger· uintrequiredmin 0

    Tailscale Funnel ingress relay nodes in the peer list; infrastructure, excluded from the peer counts.

  • installedbooleanrequired

    Whether the Tailscale CLI could be started.

  • magic_dns_suffixstring

    MagicDNS suffix of the tailnet.

  • onlinebooleanrequired

    True when the client is running and this node is online.

  • online_peer_countinteger· uintrequiredmin 0

    Number of peers currently online.

  • peer_countinteger· uintrequiredmin 0

    Number of peers visible on the tailnet.

  • routesobject[]required

    Active Serve and Funnel routes on this node.

    • hoststringrequired

      MagicDNS host name the route answers on.

    • modeall ofrequired

      `serve` for a tailnet-only route, `funnel` when the same listener is also published to the internet.

      all of (1)
      variant 1
      valuestringenum: serve, funnel
    • pathstringrequired

      URL path prefix the route serves.

    • portinteger· uint16requiredmin 0

      HTTPS port of the listener.

    • targetstringrequired

      Local target the route proxies to, or the file path it serves.

    • urlstringrequired

      Full HTTPS URL a device opens to reach the route.

  • tailnetstring

    Name of the tailnet this node belongs to.

  • tailscale_ipsstring[]required

    Tailscale IPv4 and IPv6 addresses of this node.

  • versionstring

    Tailscale client version.

tailscale::ui-content

function

Serve the tailscale worker's injected console UI assets (content function for its console:script / console:style triggers).

request
  • pathstringrequired

    The asset path from the trigger config (e.g. `state/page.js`).

response
  • contentstringrequired

    The asset source, verbatim.

  • content_typestringrequired

    MIME type the console should serve the asset with.

tailscale::update

function

Update the Tailscale client to the latest release. With dry_run=true, only report what would change.

request
  • dry_runboolean

    Report what an update would do without applying it.

response
  • outputstringrequired

    The CLI's own output.

tailscale::version

function

Report the Tailscale client version, and the latest upstream release for the track.

request
  • check_upstreamboolean

    Also fetch the latest upstream release for the current track.

response
  • longstring

    Full version string with commit hashes.

  • os_variantstring

    Client variant, e.g. `macsys`.

  • upstreamstring

    Latest upstream release when `check_upstream` was set.

  • versionstringrequired

    Installed client version, e.g. `1.98.8`.

tailscale::whois

function

Identify the machine and user behind a Tailscale IP. Keys and endpoints are omitted.

request
  • ipstringrequired

    Tailscale IPv4 or IPv6 address, optionally with `:port`.

response
  • addressesstring[]required

    Tailscale addresses of the node.

  • node_idstring

    Stable node id.

  • node_namestring

    MagicDNS name of the node.

  • osstring

    Operating system reported by the node.

  • tagsstring[]required

    ACL tags on the node.

  • user_display_namestring

    Display name of the user who owns the node.

  • user_loginstring

    Login name of the user who owns the node.

triggers

0
no triggers registered