Interactive credential setup wizard for claude-homelab. Use when the user wants to configure credentials, set up a new service, update API keys, or run initial setup after installing the homelab-core plugin. Triggers on: 'setup credentials', 'configure plex', 'add my API key', 'I just installed homelab-core', 'setup homelab', or any mention of needing to configure a specific service.
From homelab-corenpx claudepluginhub jmagar/claude-homelab --plugin homelab-coreThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Generates FastAPI project templates with async routes, dependency injection, Pydantic schemas, repository patterns, middleware, and config for PostgreSQL/MongoDB backends.
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