Tailscale Serve Skill
Manage multiple paths with tailscale serve without conflicts.
Key Commands
Check what's currently served
tailscale serve status
Serve a directory or file at a specific path
# Directory
tailscale serve --bg --set-path /slides /path/to/directory
# Single file
tailscale serve --bg --set-path /presentation /path/to/file.html
# Port (for running services)
tailscale serve --bg --set-path /api http://localhost:8080
Serve from a port at root (replaces everything)
tailscale serve --bg 8888
Remove a specific path
tailscale serve --https=443 /slides off
Reset all serving
tailscale serve reset
Important Notes
- Path conflicts: Serving at
/will override all other paths - Background mode: Use
--bgto keep it running - Multiple paths: You can serve multiple things simultaneously with different paths
- Status first: Always check
tailscale serve statusbefore adding new paths
Common Patterns
Serve presentation alongside control UI
# If control UI is at /, serve presentation at a subpath
tailscale serve --bg --set-path /slides ~/clawd/personal-agents-presentation.html
# Access at: https://[hostname].ts.net/slides
Serve multiple directories
tailscale serve --bg --set-path /docs ~/documents
tailscale serve --bg --set-path /slides ~/presentations
tailscale serve --bg --set-path /files ~/files
Serve a local dev server
tailscale serve --bg --set-path /app http://localhost:3000
Workflow
- Check current status:
tailscale serve status - Choose an unused path (e.g.,
/slides,/docs,/api) - Serve with
--set-path /your-path /source - Verify with
tailscale serve statusagain - Share the full URL:
https://[hostname].ts.net/your-path
Troubleshooting
"Can't access my served content"
- Check
tailscale serve status- is it at the path you expect? - Did something else overwrite the root
/?
"Want to replace everything with a port"
tailscale serve reset
tailscale serve --bg 8888
"Want to add to existing setup"
# Don't use reset! Just add with --set-path
tailscale serve --bg --set-path /newpath /source