home-network-admin
Manage and troubleshoot Tim's home network, SSH into devices, administer the Synology NAS, and work with Tailscale. Use when the user wants to (1) SSH into or run commands on remote machines (synology, dobro), (2) manage the Synology NAS (files, packages, Docker, backups, Surveillance Station), (3) troubleshoot network connectivity or DNS, (4) check Tailscale status or manage the tailnet, (5) transfer files between machines, (6) check device health or disk usage, (7) manage the Caddy reverse proxy on dobro (*.hopperhosted.com), (8) any home server or home network administration task.
Best use case
home-network-admin is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Manage and troubleshoot Tim's home network, SSH into devices, administer the Synology NAS, and work with Tailscale. Use when the user wants to (1) SSH into or run commands on remote machines (synology, dobro), (2) manage the Synology NAS (files, packages, Docker, backups, Surveillance Station), (3) troubleshoot network connectivity or DNS, (4) check Tailscale status or manage the tailnet, (5) transfer files between machines, (6) check device health or disk usage, (7) manage the Caddy reverse proxy on dobro (*.hopperhosted.com), (8) any home server or home network administration task.
Teams using home-network-admin should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/home-network-admin/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How home-network-admin Compares
| Feature / Agent | home-network-admin | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Manage and troubleshoot Tim's home network, SSH into devices, administer the Synology NAS, and work with Tailscale. Use when the user wants to (1) SSH into or run commands on remote machines (synology, dobro), (2) manage the Synology NAS (files, packages, Docker, backups, Surveillance Station), (3) troubleshoot network connectivity or DNS, (4) check Tailscale status or manage the tailnet, (5) transfer files between machines, (6) check device health or disk usage, (7) manage the Caddy reverse proxy on dobro (*.hopperhosted.com), (8) any home server or home network administration task.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Home Network Admin Administer Tim's home network: devices connected over Tailscale, with a Synology NAS and Macs accessible via SSH. Read [references/network-inventory.md](references/network-inventory.md) for the full device list, IPs, SSH config, and network topology before performing any task. ## SSH Access SSH configs are defined in `~/.ssh/config`. Use the short aliases: - `ssh synology` - Synology NAS (custom port, user tdhopper) - `ssh dobro` - Mac (default port, user thopper) SSH keys are managed via 1Password agent. If SSH fails with auth errors, verify 1Password is unlocked and the SSH agent is running. ## Synology NAS Administration The Synology runs DSM. Common admin tasks via SSH: - **Packages**: `synopkg list` (installed), `synopkg status <pkg>`, `synopkg start/stop <pkg>` - **Docker/Container Manager**: `sudo docker ps`, `sudo docker logs <container>`, `sudo docker compose` (compose files often in `/volume1/docker/`) - **Disk/volume health**: `df -h`, `cat /proc/mdstat`, `synodisk --enum` - **Shared folders**: typically under `/volume1/` - **DSM web UI**: `https://synology:5001` or `https://100.86.145.18:5001` - **Logs**: `/var/log/` and DSM log center For destructive operations (deleting files, stopping services, modifying configs), confirm with the user first. ## Tailscale Tailscale connects all devices over a WireGuard mesh. Run `tailscale status` to discover the tailnet name and device list. - On macOS, the `tailscale` CLI may not be on PATH. Use: `/Applications/Tailscale.app/Contents/MacOS/Tailscale` - Check status: `tailscale status` (or the full path above) - Verify connectivity: `tailscale ping <hostname>` - All devices are reachable via MagicDNS (e.g., `synology.<tailnet>.ts.net`) ## Caddy Reverse Proxy (on dobro) Caddy runs on dobro, providing HTTPS reverse proxy for `*.hopperhosted.com`. The Caddyfile is at `~/Caddyfile` (tracked in yadm). TLS uses Cloudflare DNS-01 challenge. See [references/network-inventory.md](references/network-inventory.md) for the full list of proxied subdomains and backends. - **Manage Caddy on dobro**: `ssh dobro` then `brew services restart caddy`, `caddy reload --config ~/Caddyfile` - **Logs**: `journalctl -u caddy` or `brew services info caddy` depending on how it's managed - **Edit Caddyfile locally**: it's tracked in yadm dotfiles at `~/Caddyfile` ## File Transfer - Between local and remote hosts: `scp` or `rsync` using the SSH aliases - Example: `rsync -avz ~/files/ synology:/volume1/backup/files/` - For large transfers, prefer `rsync` with `--progress` ## Troubleshooting 1. **Can't SSH**: Check 1Password is unlocked, verify Tailscale is connected (`tailscale status`), ping the Tailscale IP 2. **DNS issues**: Check if MagicDNS resolves (`dig @100.100.100.100 synology.<tailnet>.ts.net`), fall back to Tailscale IPs directly 3. **NAS unresponsive**: Try ping, check DSM web UI, SSH may still work even if DSM is sluggish 4. **Slow network**: Check if traffic is going through Tailscale relay (`tailscale status` shows DERP relay vs direct connection)
Related Skills
stop-slop
Use this skill when writing or editing prose to eliminate predictable AI writing patterns. Helps make writing more direct, authentic, and human.
sonos-control
Control Sonos speakers on Tim's home network. Use when the user wants to (1) play, pause, or stop music on Sonos speakers, (2) change volume on speakers, (3) skip tracks, (4) check what's playing, (5) see speaker status, (6) group or ungroup speakers, (7) any Sonos or music/audio playback task involving home speakers. Triggers on "sonos", "speakers", "play music", "what's playing", "volume", "turn up", "turn down", "pause music", "stop music".
slack-message
Draft and send Slack messages in Tim's natural voice. Use when the user wants to (1) post an update to a channel, (2) draft a Slack message, (3) share something on Slack, (4) send a DM, (5) reply in a thread. Applies Tim's Slack writing style and prose principles automatically.
skill-creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
sending-to-codex
Delegate tasks or ask questions to OpenAI's Codex CLI from within Claude Code. Use this skill when the user says "ask codex", "send to codex", "delegate to codex", "have codex do this", "get codex's opinion", "run this in codex", or wants to offload a coding task or question to the Codex agent. Supports both fire-and-forget coding tasks (fix bugs, add features, refactor) and research questions (analyze code, explain behavior, get a second opinion).
reviewing-writing
Review and critique writing using Michael Nielsen's principles on craft. Analyzes text for purpose focus, brevity, danger words, opening strength, originality, reader psychology, truthfulness, and title impact. Use when the user says "review my writing", "nielsen review", "writing review", "review this writing", "critique my writing", or asks for feedback on prose quality.
reviewing-code
Review pull requests, branch changes, or code diffs. Triggers on "review this PR", "review my changes", "code review", "review branch", or GitHub PR URLs. Focuses on bugs, tests, complexity, and performance - not linting.
resend-email
Send emails via Resend.com API. Use when the user wants to (1) send an email, (2) email someone, (3) send a message to an email address, (4) send email with attachments, (5) schedule an email for later. Requires RESEND_API_KEY environment variable.
refresh-dotfiles
Full sync of personal (yadm) and work (yadm-work) dotfiles. Pulls remote changes, commits and pushes local changes, and audits for untracked files that should be tracked. Use when the user says 'refresh yadm', 'sync dotfiles', 'dotfiles sync', or 'update dotfiles'.
omnifocus
Interact with OmniFocus task manager via the command-line interface (@stephendolan/omnifocus-cli). Use when the user wants to: (1) Add tasks or projects to OmniFocus, (2) List, view, or search tasks/projects, (3) Update or complete tasks, (4) Manage inbox items, (5) Work with tags and analyze tag usage, (6) Process or organize their OmniFocus database from the command line.
omnifocus-triage
Interactively process OmniFocus inbox items using AskUserQuestion. Use when the user wants to (1) triage their inbox, (2) process inbox items, (3) organize their OmniFocus inbox, (4) clear out their inbox, (5) do a GTD-style inbox review. Triggers on "triage inbox", "process inbox", "organize inbox", "clear inbox", "inbox zero".
Nightshift
Manage and interact with Nightshift, an AI-powered development automation tool that runs coding tasks during off-hours.