tailscale

Review·Scanned 2/18/2026

This skill manages a Tailscale tailnet via local tailscale CLI and the ./scripts/ts-api.sh API helper. It executes shell commands, reads/stores TS_API_KEY in ~/.clawdbot/credentials/tailscale/config.json, and makes requests to https://api.tailscale.com/api/v2.

from clawhub.ai·v1.0.0·14.8 KB·0 installs
Scanned from 1.0.0 at 1ab9bd3 · Transparency log ↗
$ vett add clawhub.ai/jmagar/tailscaleReview findings below

Tailscale Skill

Manage your Tailscale tailnet from Clawdbot.

What It Does

CLI (local operations):

  • Status — check connection status, peers, NAT type
  • Ping — test connectivity to peers (direct vs relay)
  • File transfer — send/receive files via Taildrop
  • Serve/Funnel — expose local services privately or publicly
  • SSH — connect via Tailscale SSH

API (tailnet-wide):

  • Devices — list all devices, authorize/delete, set tags
  • Auth keys — create reusable/ephemeral keys for new devices
  • DNS — manage nameservers, toggle MagicDNS
  • ACLs — view and validate access control policies

Setup

CLI Only (No Config Needed)

The tailscale CLI works out of the box for local operations:

tailscale status
tailscale ping my-server
tailscale file cp document.pdf my-phone:

API Access (for Tailnet-wide Operations)

1. Create an API Key

  1. Go to Tailscale Admin Console
  2. Click Generate API Key
  3. Copy the key (starts with tskey-api-)

2. Create Credentials File

mkdir -p ~/.clawdbot/credentials/tailscale
cp config.json.example ~/.clawdbot/credentials/tailscale/config.json
# Edit with your actual API key

Or create manually:

{
  "apiKey": "tskey-api-your-key-here",
  "tailnet": "-"
}

The tailnet can be:

  • - (auto-detect from API key)
  • Your organization name
  • Your email domain

3. Test It

./scripts/ts-api.sh devices

Usage Examples

Local CLI operations

# Status and diagnostics
tailscale status
tailscale netcheck

# Ping a peer
tailscale ping my-server

# Send a file
tailscale file cp myfile.txt my-phone:

# Expose a local service
tailscale serve 3000           # Private (tailnet only)
tailscale funnel 8080          # Public (internet)

API operations

# List all devices
ts-api.sh devices
ts-api.sh devices --verbose

# Check who's online
ts-api.sh online

# Device details
ts-api.sh device my-server

# Create auth key
ts-api.sh create-key --reusable --tags tag:server --expiry 7d

# List auth keys
ts-api.sh keys

# Authorize/delete device
ts-api.sh authorize <device-id>
ts-api.sh delete <device-id>

# DNS management
ts-api.sh dns
ts-api.sh magic-dns on

Environment Variables (Alternative)

export TS_API_KEY="tskey-api-..."
export TS_TAILNET="-"

Troubleshooting

"No API key configured"
→ Create config file at ~/.clawdbot/credentials/tailscale/config.json or set TS_API_KEY

401 Unauthorized
→ API key is invalid or expired — generate a new one

"tailscale: command not found"
→ Install Tailscale: https://tailscale.com/download

Device not found by name
→ The script searches by hostname. Use the full device ID if name lookup fails.

License

MIT