Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By jmagar
Orchestrate self-hosted homelab services: run interactive credential setup wizards for Plex, Radarr, Sonarr, Tailscale; view unified health dashboards; manage Docker containers, ZFS pools, torrents, media libraries, backups, and VPNs via natural language skills, commands, and agents.
npx claudepluginhub jmagar/claude-homelab --plugin tautulliView the latest screenshot from ~/Pictures/Screenshots
Deploy all MCP plugin servers from .claude-plugin/marketplace.json
Analyze disk space usage across all mounts
Check health of all Docker containers and services
Check CPU, RAM, temps, and system load
Manage code snippets in ByteStash snippet storage service. This skill should be used when the user asks to "save a snippet", "search snippets", "find code", "share snippet", "organize snippets", "list my snippets", "create snippet", "delete snippet", or mentions ByteStash, code storage, snippet management, or code archival.
This skill should be used when addressing GitHub pull request review comments systematically with mandatory resolution tracking. Use when user says "address PR comments", "fix review feedback", "handle PR review", "resolve PR threads", or needs to ensure all review comments are addressed before merging. Fetches comments via gh CLI, creates task checklists, links commits to review threads, and blocks completion if unresolved threads remain.
Unified health dashboard for all configured homelab services. Use when the user wants to check service status, verify credentials work, see which services are reachable, or diagnose connectivity issues. Triggers on: 'check health', 'service status', 'what's running', 'is plex up', 'verify my setup', 'homelab health', or after running /homelab-core:setup.
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.
Manage bookmarks with Linkding. Use when the user asks to "save a bookmark", "add link", "search bookmarks", "list my bookmarks", "find saved links", "tag a bookmark", "archive bookmark", "check if URL is saved", "list tags", "create bundle", or mentions Linkding bookmark management.
Uses power tools
Uses Bash, Write, or Edit tools
Runs pre-commands
Contains inline bash commands via ! syntax
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Complete Home Assistant platform with frontend design, energy management, cameras, sensors, local LLM integration, and Ubuntu server deployment
Comprehensive plugin development toolkit for creating Claude Code plugins with AI-powered guidance for skills, agents, commands, and hooks
Query, monitor, and manage Unraid servers via GraphQL API through MCP tools. Supports system info, Docker, VMs, array/parity, notifications, plugins, rclone, and live telemetry.
Infrastructure management discipline: Ansible automation, container orchestration, Proxmox virtualization, Unraid NAS, and network architecture
Home Assistant configuration management - YAML configuration, automations, scripts, scenes, and entity management for Home Assistant installations
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Query, monitor, and manage Unraid servers via GraphQL API through MCP tools. Supports system info, Docker, VMs, array/parity, notifications, plugins, rclone, and live telemetry.
UniFi network management via MCP tools. Monitor devices, clients, network health, firewall rules, and perform management operations.
Gotify push notifications and management via MCP tools with HTTP fallback. Sends alerts for long-running tasks, plan completions, and blocked states.
Agents, commands, skills, and scripts for scaffolding, reviewing, aligning, and deploying homelab MCP server plugins. Includes canonical Python, TypeScript, and Rust server templates.
Spider-powered self-hosted RAG engine — scrape, map, extract, crawl, embed, and query via MCP or CLI. 16 skills covering web crawling, GitHub/Reddit/YouTube ingest, semantic vector search, and grounded LLM answers over indexed content.
Current release: 1.4.0.
Homelab plugin hub for Claude Code, Codex, and Gemini. This repository is the source of truth for the homelab-core plugin, bundled skill-only integrations, agents, commands, and shared credential bootstrapping.
claude-homelab serves three roles at once:
homelab-core plugin published through the Claude marketplaceThe repo root is the plugin root. Do not edit generated copies in ~/.claude/ or ~/.claude/plugins/cache/ directly.
/plugin marketplace add jmagar/claude-homelab
/plugin install homelab-core @jmagar-claude-homelab
After install, Claude Code downloads the plugin into ~/.claude/plugins/cache/. No symlinks are created on this path.
curl -sSL https://raw.githubusercontent.com/jmagar/claude-homelab/main/scripts/install.sh | bash
Or, if you already have the repo cloned:
./scripts/install.sh
The installer:
git, jq, curl)~/claude-homelab (or pulls if it exists)setup-creds.sh — creates ~/.claude-homelab/.env from .env.example with chmod 600setup-symlinks.sh — symlinks skills, agents, and commands into ~/.claude/verify.sh — confirms every symlink and required file is in placeAll credentials for every service live in a single file:
~/.claude-homelab/.env
This file is created from .env.example at install time and is never committed. Set it up interactively after install:
# Interactive wizard (preferred)
# Open Claude Code and run:
/homelab-core:setup
# Or configure manually
$EDITOR ~/.claude-homelab/.env
Security requirements:
~/.claude-homelab/.env must have chmod 600 (owner read/write only).env — it is gitignored.env.example as the template (tracked in git, placeholder values only)All service scripts load credentials via scripts/load-env.sh:
source "${CLAUDE_PLUGIN_ROOT:-$HOME/claude-homelab}/scripts/load-env.sh"
load_env_file || exit 1
validate_env_vars "SERVICE_URL" "SERVICE_API_KEY"
Variables are grouped by service. Copy .env.example to ~/.claude-homelab/.env and replace placeholder values.
| Variable | Required | Description |
|---|---|---|
PLEX_URL | yes | Plex server base URL |
PLEX_TOKEN | yes | Plex authentication token |
OVERSEERR_URL | yes | Overseerr base URL (skill) |
OVERSEERR_API_KEY | yes | Overseerr API key (skill) |
RADARR_URL | yes | Radarr base URL |
RADARR_API_KEY | yes | Radarr API key |
RADARR_DEFAULT_QUALITY_PROFILE | no | Default quality profile ID (default: 1) |
SONARR_URL | yes | Sonarr base URL |
SONARR_API_KEY | yes | Sonarr API key |
SONARR_DEFAULT_QUALITY_PROFILE | no | Default quality profile ID (default: 1) |
PROWLARR_URL | yes | Prowlarr base URL |
PROWLARR_API_KEY | yes | Prowlarr API key |
TAUTULLI_URL | yes | Tautulli base URL |
TAUTULLI_API_KEY | yes | Tautulli API key |
| Variable | Required | Description |
|---|---|---|
SABNZBD_URL | yes | SABnzbd base URL |
SABNZBD_API_KEY | yes | SABnzbd API key |
QBITTORRENT_URL | yes | qBittorrent WebUI URL |
QBITTORRENT_USERNAME | yes | qBittorrent username |
QBITTORRENT_PASSWORD | yes | qBittorrent password |
| Variable | Required | Description |
|---|---|---|
UNRAID_SERVER1_NAME | yes | Display name for first Unraid server |
UNRAID_SERVER1_URL | yes | Unraid GraphQL endpoint (skill) |
UNRAID_SERVER1_API_KEY | yes | Unraid API key (skill) |
UNRAID_SERVER2_NAME | no | Display name for second Unraid server |
UNRAID_SERVER2_URL | no | Second Unraid GraphQL endpoint |
UNRAID_SERVER2_API_KEY | no | Second Unraid API key |
UNIFI_URL | yes | UniFi controller URL (skill) |
UNIFI_USERNAME | yes | UniFi username |
UNIFI_PASSWORD | yes | UniFi password |
UNIFI_SITE | no | UniFi site name (default: default) |
TAILSCALE_API_KEY | yes | Tailscale API key |
TAILSCALE_TAILNET | yes | Tailscale tailnet name or - |
ZFS_HOST | yes | Host where ZFS commands run |
SWAG_HOST | yes | SWAG reverse proxy host |
SWAG_CONTAINER_NAME | no | SWAG container name (default: swag) |
SWAG_APPDATA_PATH | no | SWAG appdata path |
SWAG_COMPOSE_PATH | no | SWAG compose file path |