TSLink
प्रत्येक Tailscale-नेटवर्क ऐप को लोगों, ब्राउज़र अतिथियों और AI एजेंटों (CLI/MCP) के लिए समाप्ति-आधारित साझाकरण के साथ अपना निजी पता देता है।
दस्तावेज़
v0.3.1 · Released Oct 27, 2026
Your agent's dev server. On your phone.
TSLink by anydoor7 is an open-source CLI that gives each local app or dev server its own private HTTPS address on your Tailscale network. Your coding agent can share it, hand you the exact URL and remove it when you're done.
Your phone needs the Tailscale app, signed in to the same tailnet. Independent project, not made or endorsed by Tailscale.
Homebrew · macOS / Linux
brew install --cask anydoor7/tap/tslink
Installs the current tap release on macOS or Linux.
One private name per dev server
Your coding agent
Shares each server over MCP
Front end Port 5173
web.<tailnet>.ts.net
API server Port 8000
api.<tailnet>.ts.net
Your phone
Tailscale app, same tailnet
Example names. If a name is taken, TSLink adds a number, so use the URL it returns.
For coding agents
Your agent starts it. You open it on your phone.
Your coding agent shares the running dev server over MCP or the Claude Code plugin, hands you the exact private URL and removes it when you're done. Each app gets its own private ts.net name.
Your phone needs the Tailscale app, signed in to the same tailnet.
- Finish gateway enrollment if prompted New installations default to the home gateway; existing installations keep their mode. A needs_login result is a successful handoff: open its login URL and complete Tailscale approval, then ask for the exact URL with --wait. App-node enrollment proceeds independently.
- Who can open it New gateway apps allow the owner/admins and explicitly granted people. MCP add/share allow and CLI add --allow keep permanent defaults; invite device also keeps its permanent default. People grants default to 24h. Scoped MCP limits still apply. Gateway and direct entry paths use the same person/app keys, with documented exceptions for gateway-only security checks. Names appear in public certificate logs.
- Clean up when you are done The agent calls unshare with the name that share returned, or you run tslink remove with that returned name. The name is web only if share returned web. Removal unregisters the share and stops serving it; TSLink only tries to clean up the remote node when it can verify ownership, so deletion is not guaranteed. Your dev server keeps running.
MCP configuration for local clients that use mcpServers JSON
{"mcpServers":{"tslink":{"command":"tslink","args":["mcp"]}}}
Other clients use a different format; the setup guide covers each one.
Ask your agent: share the dev server so I can open it on my phone
The phone after the agent saved a change. Cropped from a real iPhone 15 Pro capture.Tested on 2026-10-22 with Vite 8.3.5 and an iPhone 15 Pro: the agent shared the dev server over MCP, the phone opened the private URL, and the page updated on save without a manual refresh.Your app's own Host and Origin rules can still block requests. Vite needed no allowedHosts change through TSLink in our test; Next.js was not tested and still needs allowedDevOrigins.
How it works
From your agent's dev server to your phone.
Start with a running dev server or app and a Tailscale account with MagicDNS and HTTPS enabled. Your phone needs the Tailscale app, signed in to the same tailnet.
-
Give the dev server a name
This example uses a dev server on port 5173. Your agent can run the same steps over MCP. TSLink starts its background gateway as needed. -
Enroll the home gateway
New installations default to the home gateway; existing installations keep their mode. Open the printed Tailscale login URL if prompted. App-node enrollment runs independently and does not hold up a ready gateway route. -
Open the returned address
Run the second command to get the live URL, then open it on your phone. Keep your app’s own login enabled.
Share an app
tslink share 5173 --name web
tslink url web --wait
https://web.<tailnet>.ts.net
Example URL after enrollment. Always use the exact URL returned by TSLink.
Choose how they visit
Three ways to reach an app.
Your own devices
Open web apps, folders, single files and TCP ports through their own private addresses.
New gateway apps allow the owner/admins and explicitly granted people. Existing installations keep their configured access rules.
Named people
Grant access in one action: TSLink checks membership, preserves existing permissions, prepares routes and completes needed invitations.
People checks cover HTTP and files. Raw TCP and open public Funnel are not person-scoped.
Browser guest
Send a browser-only link to one HTTP proxy app, with an expiry and an optional PIN.
Requires public Funnel. Guest links are forwardable bearer links; a link or PIN does not prove identity.
Private visits need Tailscale, sign-in and network permission on the viewer’s device; outside your tailnet, an app-node invite may also be needed. Get Tailscale
For the apps you keep running
A little less to look after.
One home for your apps
A private portal lists the apps each visitor can open, with their health.
Know how they are doing
Health checks and alerts, with bounded local access history that includes denied requests.
CLI + MCP for your agent
An owner agent can publish its app, return the URL and remove the share. Reduced roles work within assigned apps and durations.
More about apps and agent permissions
TSLink does not install apps or replace their authentication. Recipes help with proxy settings. MCP offers viewer, app-operator, people-manager and owner roles; local owner is the default. Owner sessions expose 48 tools; live tools/list is authoritative. needs_login requires a person to finish enrollment. Scopes do not sandbox shell or filesystem access.
Agent UI on your phone Share a report until a date Share one running app
A few useful answers
A few things to know.
Is TSLink free?
Yes. TSLink is open source under Apache-2.0 and free for commercial use. Tailscale plans and terms apply separately.
Signed and notarized macOS build Checksums and attestations
When is TSLink useful alongside Tailscale?
Serve is enough for one app you start yourself on your own devices, and Services gives stable service names. TSLink differs in structure: each app gets its own node and ts.net name instead of a port or path under one device name, and its MCP server and versioned CLI output return the exact URL and remove it when done. That suits the several dev servers a coding agent starts. People deadlines, guest links and a private portal sit on top.
What does a separate app address mean?
With no separate host Tailscale connection, each embedded app node exposes its configured target without adding other host ports. This is a network entry point, not process isolation. The app may still expose powerful functions. TSLink manages one host; Tailscale supplies transport and HTTPS.
What happens when I revoke access?
Named access is blocked on the next request; accepted private streams may continue. Guest revocation also cancels tracked guest streams. Downloaded data cannot be recalled, and removing a share does not stop the underlying app.
Start small
Start with one private address.
Install TSLink. Open an app on your own devices. Share when you want to.
Useful? Star TSLink to find it again. For release notifications, Watch → Custom → Releases.