tslink
Provides tools for managing private app addresses and access on a Tailscale network, including sharing web apps, folders, files, and TCP ports, creating guest links and public Funnel URLs, and managing people grants and access expiration.
tslink share 3000 --name notes # a web app → https://notes.<your-tailnet>.ts.net
tslink share ./photos # a folder or a single file
tslink add db --tcp localhost:5432 # any TCP port
Install
macOS hosts require macOS 13 Ventura or later (platform support).
brew install --cask anydoor7/tap/tslinkOn Windows, install with Scoop:
scoop bucket add anydoor7 https://github.com/anydoor7/scoop-bucket
scoop install anydoor7/tslinkTo upgrade, run brew upgrade --cask tslink or scoop update; scoop update tslink. If TSLink runs as a background service, run tslink install again afterwards.
Linux .deb and .rpm packages and Windows builds are on the latest release. The first time you share an app, TSLink prints a Tailscale sign-in link for it. Getting started
Related MCP server: tailscale-rmcp
When you need TSLink
Serve is enough for one app on your own devices. TSLink puts app addresses, deadlines and access changes in one workflow.
Job | Tailscale alone | TSLink |
One web app on your phone |
|
|
Several apps, separate names | Services setup, or separate nodes | One |
One person, one app, seven days | Policy rules, then a JIT tool or manual removal |
|
Browser link, three days | Public Funnel; add a gate and scheduled shutdown |
|
Private recipients need Tailscale. Guest links are public, forwardable bearer links.
Your apps, on your own devices
An address for each app. Web apps, folders, single files and TCP ports each get their own name in your tailnet, so you use names instead of IP addresses.
Private by default. Nothing is public until you create a guest link or publish through Funnel.
One app, not the whole machine. Each app you publish gets its own node that forwards to that app only. Without the Tailscale app on the host, TSLink adds no other host ports to your tailnet.
A home page that lists your apps with their health. Portal
Health checks and alerts by command or webhook, and an access log that includes denied requests. Health and alerts · Access history
Recipes for 15 self-hosted apps, including Home Assistant, Jellyfin, Immich and Ollama.
tslink apps detectfinds the ones already running. App recipes
Share when you want to
tslink people add alice@example.com --apps notes --for 7d # a tailnet member, for 7 days
tslink guest create notes --for 3d --public --print-link # a browser link, no Tailscale needed
tslink add launch --proxy localhost:4000 --funnel --public --funnel-ttl 1h # anyone, for one hourGuest links and new public URLs expire and work for web apps only; folders, files and TCP ports stay private. People · Guest links · Public access
For AI agents
A dev server an agent starts on localhost is out of reach from your phone. TSLink lets the agent give it a private address, report the exact URL and remove it when done.
{"mcpServers":{"tslink":{"command":"tslink","args":["mcp"]}}}CLI or MCP. Management commands take
--jsonand return versioned results;tslink mcpoffers app and access operations over MCP.One file, not the folder. An agent can share just its HTML report with
tslink share ./report.html; other files in that folder stay unreachable.Limited roles.
viewer,app-operatororpeople-manager, scoped to the apps you name.tslink mcp-auditshows what an agent changed. Roles limit TSLink's tools, not the agent's own shell.
Agent quickstart · MCP scopes · Remote MCP
How it works
One background process runs a separate Tailscale node for each app. Tailscale provides the tailnet transport and HTTPS certificates. Private web and file access can be limited by Tailscale identity with --allow and people grants; raw TCP relies on your tailnet policy and the app's own login. Architecture
Requirements
Who | Needs |
You | A Tailscale account with MagicDNS and HTTPS turned on |
The machine running your apps | TSLink, which embeds Tailscale (on Linux, a systemd user session) |
Your devices, and people you share with | The Tailscale app |
Guests | A browser |
Names of HTTPS apps appear in public certificate logs, so pick names you are happy for others to see.
More
All docs · CLI reference · Compared with Serve, ngrok and Cloudflare · Contributing · Security
Apache 2.0. TSLink is an independent project, not made or endorsed by Tailscale.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosting for AI agents: your AI client deploys Docker apps to live HTTPS URLs over MCP.
Tailscale device, route, DNS, key, user, and ACL management over MCP and CLI.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for safe programmatic access to the local Tailscale daemon: tailnet discovery, SSH config generation, port sharing via Serve/Funnel, and latency matrices.612 npm1Creative Commons Attribution Non Commercial No Derivatives 4.0 International
- AlicenseNot gradedqualityCmaintenanceMCP server and CLI for Tailscale that lets agents inspect and manage tailnet devices, routes, users, keys, DNS, and ACL policy over stdio or streamable HTTP.5AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceA local-first MCP server that lets AI agents use gated APIs without holding keys, enforcing declarative policies, injecting secrets server-side, and auditing access without content.2Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables authenticated web agents to reach a local machine through a portable MCP endpoint, with optional Cloudflare Tunnel or Tailscale Funnel ingress for public access.MIT