Tailscale
Self-hosted Tailscale/Headscale ecosystem: deploy and manage a Headscale control server, configure tailscale clients, manage ACL policies, node lifecycle, subnet routing, DERP relays, and backup/migration. Use when the user mentions Tailscale, Headscale, tailnet, mesh VPN, WireGuard mesh, or self-hosted VPN infrastructure.From its SKILL.md
npx -y skills add magnus919/agent-skills --skill tailscaleAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.4 KB, 946 tokens by cl100k_base, as published. Nobody here has run it
Tailscale + Headscale Skill Bundle
This umbrella skill covers the self-hosted Tailscale ecosystem using Headscale as the open-source control server. It provides 7 sub-skills that are auto-loaded by context.
Auto-Loading by Context
When the user's message matches a trigger keyword, the corresponding sub-skill's SKILL.md is loaded. Multiple sub-skills can load together when triggers overlap.
| Trigger Keywords | Sub-Skill(s) Loaded |
|---|---|
| "deploy headscale", "install headscale", "setup headscale server", "headscale config" | headscale-deploy |
| "ACL", "policy file", "tailnet policy", "access control", "grant", "tag owners" | tailnet-policy |
| "install tailscale", "connect to headscale", "tailscale client", "tailscale up", "tailscale status", "diagnose tailscale", "connectivity" | tailscale-client |
| "auth key", "preauthkey", "register node", "approve node", "tag node", "node list", "decommission node" | headscale-node-lifecycle |
| "subnet router", "exit node", "advertise route", "approve route" | headscale-routing |
| "DERP", "relay", "peer relay", "STUN" | headscale-derp |
| "backup headscale", "restore headscale", "migrate headscale", "headscale backup" | headscale-backup |
| "Tailscale", "Headscale", "tailnet", "mesh VPN", "WireGuard mesh", "self-hosted VPN" | Loads this umbrella SKILL.md for navigation |
Sub-Skill Ordering & Dependencies
headscale-deploy ─────┬──> tailnet-policy ───> headscale-routing
│
├──> headscale-node-lifecycle
│
├──> tailscale-client
│
├──> headscale-derp
│
└──> headscale-backup (prerequisite: a running headscale instance)
- headscale-deploy must be completed first — the others require a running Headscale server
- tailnet-policy (configures ACLs) is recommended before opening the tailnet to other users
- headscale-derp is optional but recommended for reliability across NATs
- headscale-backup should be run regularly on any production deployment
Root Scripts (Shared Utilities)
These live in scripts/ at the bundle root and are available to all sub-skills:
scripts/headscale-health-check.sh— Probe Headscale server version, node count, DB integrityscripts/headscale-backup.sh— Full backup (sqlite + config + policy + certs)scripts/headscale-restore.sh— Restore from backup archivescripts/tailscale-status-json.sh— Structuredtailscale status --jsonwrapperscripts/test-all.sh— Smoke test across all sub-skills
Templates
Templates live in templates/ and cover common deployment patterns:
templates/docker-compose-headscale.yaml— Headscale + embedded DERP + Traefik TLStemplates/headscale-config.yaml— Annotated full headscale configurationtemplates/policy-allow-all.json— Minimal allow-all policytemplates/policy-deny-all.json— Locked-down deny-all policytemplates/policy-tagged-segmented.json— Tag-based access modeltemplates/derp-map.json— Custom DERP relay map
Environment Variables
| Variable | Used By | Purpose |
|---|---|---|
HEADSCALE_URL | All | Headscale server URL (e.g. https://headscale.example.com) |
HEADSCALE_API_KEY | All | Headscale API key (created via headscale apikeys create) |
TAILSCALE_AUTHKEY | tailscale-client | Pre-authenticated key for non-interactive client setup |
Use the CLI tools
All scripts use --json, --dry-run, and have informative --help output.
Scripts relative to bundle root: scripts/<tool> or skills/<sub-skill>/scripts/<tool>.
See the individual sub-skill SKILL.md for detailed usage.
What ships with it: 23 files
60.4 KB alongside SKILL.md, 5 of them executable
evals/
- evals.json6.3 KB
references/
- derp-architecture.md3.2 KB
- headscale-cli-commands.md3.0 KB
- headscale-rest-api.md2.7 KB
- identity-model.md2.5 KB
- policy-syntax-reference.md3.5 KB
- routing-reference.md3.2 KB
- tailscale-client-flags.md3.8 KB
- troubleshooting-guide.md4.4 KB
scripts/
- headscale-backup.shruns3.0 KB
- headscale-health-check.shruns2.3 KB
- headscale-restore.shruns3.8 KB
- tailscale-status-json.shruns3.3 KB
- test-all.shruns4.2 KB
templates/
- AGENTS.md1.1 KB
- manifest.yaml2.9 KB
- README.md2.1 KB