Help us improve
Share bugs, ideas, or general feedback.
From homelab-core
Interactive wizard configures credentials for homelab services like Plex, Radarr, Sonarr, Unraid, Tailscale in ~/.claude-homelab/.env. Use for initial setup or adding services.
npx claudepluginhub jmagar/claude-homelab --plugin tautulliHow this skill is triggered — by the user, by Claude, or both
Slash command
/homelab-core:homelab-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are guiding the user through configuring their `~/.claude-homelab/.env` file. This is the single credential store for all homelab service plugins.
Runs bash health checks on configured homelab services like Plex, Radarr, Sonarr, Unraid, and displays a formatted dashboard showing reachability, status icons, summaries, and context-sensitive follow-ups.
Walks through UniFi Network MCP server setup: prompts for controller host, username/password/API key, optional port/site/SSL/permissions, writes config to settings.local.json via bash/powershell.
Configures UniFi Protect NVR connection: prompts for host, username/password/API key, permissions, and writes to .claude/settings.local.json using platform scripts.
Share bugs, ideas, or general feedback.
You are guiding the user through configuring their ~/.claude-homelab/.env file. This is the single credential store for all homelab service plugins.
Check the current state:
[ -f ~/.claude-homelab/.env ] && echo "EXISTS" || echo "MISSING"
[ -s ~/.claude-homelab/.env ] && echo "NON-EMPTY" || echo "EMPTY"
If the file is missing entirely, run setup-creds.sh first to create it from the template:
"${CLAUDE_PLUGIN_ROOT:-$HOME/claude-homelab}/scripts/setup-creds.sh"
Group the choices to make it manageable:
"Which of these do you use? (say all that apply, or 'all', or list numbers)"
Media
- Plex — media server
- Radarr — movies
- Sonarr — TV shows
- Overseerr — media requests
- Prowlarr — indexers
- Tautulli — Plex analytics
Downloads 7. qBittorrent — torrents 8. SABnzbd — Usenet
Infrastructure 9. Unraid — NAS/hypervisor (can have 2 servers) 10. UniFi — network 11. Tailscale — VPN mesh 12. ZFS — storage (no credentials needed, just CLI access)
Utilities 13. Gotify — push notifications 14. Linkding — bookmarks 15. Memos — notes 16. ByteStash — code snippets 17. Paperless-ngx — documents 18. Radicale — calendar/contacts
Wait for the user's response before continuing.
Work through services one at a time. For each service:
~/.claude-homelab/.env immediately using sed -iNever echo or log credential values. Use this pattern to write without revealing:
sed -i "s|^SERVICE_URL=.*|SERVICE_URL=$value|" ~/.claude-homelab/.env
If a key doesn't exist in the file yet, append it:
echo "SERVICE_KEY=$value" >> ~/.claude-homelab/.env
Always ensure chmod 600 ~/.claude-homelab/.env after writing.
Plex (PLEX_URL, PLEX_TOKEN)
https://your-plex-ip:32400Radarr/Sonarr/Prowlarr/Overseerr (*_URL, *_API_KEY)
Tautulli (TAUTULLI_URL, TAUTULLI_API_KEY)
qBittorrent (QBITTORRENT_URL, QBITTORRENT_USERNAME, QBITTORRENT_PASSWORD)
SABnzbd (SABNZBD_URL, SABNZBD_API_KEY)
Unraid (UNRAID_SERVER1_NAME, UNRAID_SERVER1_URL, UNRAID_SERVER1_API_KEY, and optionally UNRAID_SERVER2_*)
https://your-unraid-ip/graphqlUniFi (UNIFI_URL, UNIFI_USERNAME, UNIFI_PASSWORD, UNIFI_SITE)
https://your-unifi-controller-ipdefaultTailscale (TAILSCALE_API_KEY, TAILSCALE_TAILNET)
example.com or - for personal)Gotify (GOTIFY_URL, GOTIFY_TOKEN)
Linkding (LINKDING_URL, LINKDING_API_KEY)
Memos (MEMOS_URL, MEMOS_API_TOKEN)
ByteStash (BYTESTASH_URL, BYTESTASH_API_KEY)
Paperless-ngx (PAPERLESS_URL, PAPERLESS_API_TOKEN)
Radicale (RADICALE_URL, RADICALE_USERNAME, RADICALE_PASSWORD)
https://your-radicale-urlAfter collecting credentials, confirm:
"All set! I've saved credentials for: [list services]. Want me to run a health check to verify everything is reachable?"
If yes, invoke /homelab-core:health (or tell them to run it manually).
If the user already has an .env and just wants to update one service:
sed -i.envchmod 600 ~/.claude-homelab/.env after any write.env file