tailscale-install
Skill19 starsChanged 8 months agoMITView on GitHub
Install and configure Tailscale across platforms. Detects OS, distro, and environment (including WSL2 and containers). Verifies existing installations, performs platform-appropriate install, and guides initial connection. Use when setting up Tailscale on a new machine, onboarding a server to a tailnet, or verifying an existing install.
- Pipes a download into a shell
- Installs packages
In this repository53 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/skills/agent-rules/AGENTS.mdAGENTS.md
- .github/workflows/AGENTS.mdAGENTS.md
- pkg/AGENTS.mdAGENTS.md
- agent-ready-goSkill
- agent-rulesSkill
- architecture-designerSkill
- cli-developerSkill
- cloudformation-to-pulumiSkill
- code-reviewerSkill
- commitlintSkill
- commitSkill
- csharp-developerSkill
- decideSkill
- dep-upgradeSkill
- design-principlesSkill
- devops-engineerSkill
- flux-cliSkill
- flux-operator-cliSkill
- golang-proSkill
- go-nolint-auditSkill
- javascript-proSkill
- kubernetes-specialistSkill
- lint-fixSkill
- markdownlintSkill
- prSkill
- pull-request-msg-with-ghSkill
- pulumi-arm-to-pulumiSkill
- pulumi-automation-apiSkill
- pulumi-best-practicesSkill
- pulumi-cdk-to-pulumiSkill
- pulumi-cliSkill
- pulumi-componentSkill
- pulumi-escSkill
- pulumi-goSkill
- pulumi-neoSkill
- pulumi-pythonSkill
- pulumi-terraform-to-pulumiSkill
- pulumi-typescriptSkill
- python-proSkill
- reviewSkill
- roadmapSkill
- rust-async-patternsSkill
- rust-best-practicesSkill
- rust-engineerSkill
- scoutSkill
- security-auditSkill
- spring-boot-engineerSkill
- sre-engineerSkill
- sync-websiteSkill
- tech-debtSkill
- the-foolSkill
- typescript-proSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 9 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 59
Before installing, check if Tailscale is already present:
- Very specific: line 68
Check daemon status: sudo systemctl status tailscaled (Linux).
- Distinctive: line 70
Stop here unless the user requests a reinstall or upgrade.
- Distinctive: line 72
If not installed, proceed to installation.
- Distinctive: line 86
When WSL2 is detected:
- Distinctive: line 88
Check for Windows host Tailscale:
- Very specific: line 94
If found — report version and verify with tailscale.exe status.
- Very specific: line 95
If not found — instruct the user to install on the Windows host using WinGet, Chocolatey, or MSI (see …
- Very specific: line 97
Verify tailscale.exe is accessible from WSL2.
- Distinctive: line 125
After installation, verify three things:
- Distinctive: line 133
If not found, check PATH or restart the terminal session.
- Distinctive: line 152
If the device is not yet authenticated, proceed to initial connection.
- Distinctive: line 177
Do not silently skip a failed installation.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- Copyright 2025-2026 Richard Shade. Licensed under Apache-2.0. --><!-- SPDX-License-Identifier: Apache-2.0 -->Tailscale Install
Install Tailscale and connect a device to a tailnet. Handles platform detection, installation, verification, and initial authentication.
What this skill does
- Detects the platform (OS, distro, WSL2, container).
- Checks for an existing Tailscale installation.
- Installs Tailscale using the appropriate package manager.
- Verifies the installation and daemon status.
- Guides initial connection to the tailnet.
Platform detection
Detect the environment before selecting an install method. Check WSL2 first to avoid installing the Linux package inside a WSL2 instance.
1. Check WSL2 (but not containers running on WSL2)
├─ grep -qi microsoft /proc/version 2>/dev/null
├─ AND [ ! -f /.dockerenv ] (not a container)
├─ WSL2 → go to "WSL2 special case"
└─ Not WSL2 (or container) → continue
2. Check OS
├─ uname -s → Linux → detect distro
├─ uname -s → Darwin → macOS
└─ OS is Windows → PowerShell commands
3. Detect Linux distro
├─ . /etc/os-release && echo $ID
├─ debian, ubuntu → apt
├─ fedora, rhel, centos, amzn → dnf/yum
├─ arch, manjaro → pacman
├─ alpine → apk
├─ opensuse*, sles → zypper
└─ other → curl one-liner fallbackExisting install check
Before installing, check if Tailscale is already present:
tailscale version 2>/dev/nullIf installed:
- Report the current version.
- Check daemon status:
sudo systemctl status tailscaled(Linux). - Check connection:
tailscale status. - Stop here unless the user requests a reinstall or upgrade.
If not installed, proceed to installation.
WSL2 special case
WSL2 shares the Windows host network stack. Installing Tailscale inside WSL2 creates conflicting WireGuard tunnels. Do not install the Linux package in WSL2.
Detection (exclude containers running on WSL2 hosts):
grep -qi microsoft /proc/version 2>/dev/null && [ ! -f /.dockerenv ] && echo "WSL2 detected"When WSL2 is detected:
Check for Windows host Tailscale:
tailscale.exe version 2>/dev/null- If found — report version and verify with
tailscale.exe status. - If not found — instruct the user to install on the Windows host using
WinGet, Chocolatey, or MSI (see
references/platform-install-commands.md). - Verify
tailscale.exeis accessible from WSL2. If not, check thatappendWindowsPath = truein/etc/wsl.confunder[interop].
Installation
Linux (most distros)
curl -fsSL https://tailscale.com/install.sh | shmacOS
brew install --cask tailscaleWindows
winget install tailscale.tailscaleFor distro-specific repo setup (apt, dnf, pacman, apk, zypper), Docker,
Chocolatey, and MSI, see references/platform-install-commands.md.
Post-install verification
After installation, verify three things:
1. Binary is available
tailscale versionIf not found, check PATH or restart the terminal session.
2. Daemon is running
# Linux (systemd)
sudo systemctl enable --now tailscaled
sudo systemctl status tailscaled
# macOS — open Tailscale from Applications
# Windows — check: Get-Service Tailscale3. Connection status
tailscale statusIf the device is not yet authenticated, proceed to initial connection.
Initial connection
Interactive (desktop/laptop)
sudo tailscale upThis prints an authentication URL. Open it in a browser to sign in.
Headless (server)
Generate an auth key in the admin console (Settings > Keys), then:
sudo tailscale up --authkey=tskey-auth-<key>For tags, subnet routes, exit nodes, and all tailscale up flags, see
references/post-install-checklist.md.
Error handling
Do not silently skip a failed installation. Report the error with specific remediation steps.
- Permission denied — prefix with
sudoor run as administrator. - Package not found — Tailscale repo not configured. Use the
curlone-liner or add the repo manually (see references). - Network error — check internet connectivity and DNS resolution.
- Daemon not starting — check logs with
sudo journalctl -u tailscaled --no-pager -n 50. Verify no other VPN is bound to the same port. - Auth failure — expired auth key (regenerate in admin console), SSO misconfiguration, or device limit reached.
References
references/platform-install-commands.md— exhaustive per-platform install commandsreferences/post-install-checklist.md— verification steps, auth key options, common flags, and first-run troubleshooting
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

