modules/programs/agents/shared/skills/tailscale/SKILL.md
Inspect the local tailnet via the Tailscale CLI. Use when the user asks about tailscale, tailnet peers, exit nodes, MagicDNS, who's online over Tailscale, or wants to ping/whois a Tailscale host. Read-only — no mutations to tailnet state.
npx skillsauth add MichaelVessia/nixos-config tailscaleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Wraps the local Tailscale daemon on framework13. All operations are read-only: list peers, see which exit nodes are advertised, inspect MagicDNS, look up an IP, ping a host. No tailnet state changes.
No secrets, no env vars. The installed tailscale CLI is a garage wrapper that
uses the system Tailscale binary (/run/current-system/sw/bin/tailscale) and
whichever tailnet the local daemon is logged in to. tailscale status --json
from the system binary returns the full peer list, so we do not need to call the
remote Tailscale API for reads.
Use the installed tailscale CLI for common operations. It always emits a
single JSON envelope with ok, command, result or error, and
next_actions. scripts/tailscale.sh remains as a compatibility shim for
older workflows.
tailscale status --limit 25 # compact peer summary (hostname/ip/online/exit)
tailscale peers --limit 50 # peers with hostname, IP, OS, online
tailscale exit-nodes --limit 25 # peers advertising as exit nodes
tailscale current-exit-node # which exit node we're routing through
tailscale dns # MagicDNS + DNS config
tailscale ip # this machine's v4 and v6
tailscale whois 100.x.y.z # identify a tailnet IP
tailscale ping host # system tailscale ping --c 3
For raw Tailscale commands not covered by the garage wrapper, call
/run/current-system/sw/bin/tailscale explicitly. See
references/quick-reference.md and references/api-endpoints.md for the status
JSON shape.
tailscaled.Out of scope. up, down, logout, set --exit-node, funnel, serve,
file cp and similar are not exposed here because they either require
interactive auth or change tailnet state. If the user wants one, surface the raw
/run/current-system/sw/bin/tailscale ... command and let them run it manually.
references/api-endpoints.md — schema of tailscale status --jsonreferences/quick-reference.md — copy-paste recipesreferences/troubleshooting.md — daemon down, peer offline, exit node not
advertising, MagicDNS issuestools
User guide for the local squash-safe `stack` CLI for stacked PR/MR repair on GitHub and GitLab. Use when someone asks how to inspect, track, sync, merge, document, or undo stacked pull requests / merge requests in squash-merge repositories. Prefer this tool over GitHub's `gh stack` command for this workflow.
tools
Control herdr from inside it. Manage workspaces and tabs, split panes, spawn agents, read output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1).
development
Inspect my self-hosted AutoCaliWeb library. Use when the user asks about AutoCaliWeb, books in Calibre, OPDS status, recent imports, shelves, catalog stats, or wants to search the ebook library.
data-ai
Subscribe a YouTube channel in TubeArchivist, queue its top videos by views from recent uploads, wait for the first file, scan Jellyfin, and rename + lock the channel folder to a friendly display name. Use when the user says "add a youtube channel", "subscribe to <channel>", or wants a curated TubeArchivist + Jellyfin import for a creator.