Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By jmagar
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.
npx claudepluginhub jmagar/lab --plugin axonUse when the user wants to ask a question and get an LLM-synthesized answer grounded in indexed documents, do RAG over previously crawled or embedded content, get cited answers from the knowledge base, or find information that was previously indexed. Triggers on "ask axon", "what does the documentation say about", "according to what I've indexed", "RAG query", "use axon to answer", or any question where the user wants grounded answers from indexed content rather than hallucination.
RAG synthesis prompt for axon ask — source-grounded, depth-adaptive, injection-hardened. Loaded at runtime by src/vector/ops/commands/ask/synthesis_prompt.rs.
Use whenever the user wants to crawl, scrape, or extract a website; ingest a GitHub repo, Reddit, YouTube, or local AI sessions; embed content into Qdrant; run semantic search; ask grounded RAG questions; or manage axon's async job queues. Also use when the user mentions axon, the crawler, hybrid search, Qdrant, Tavily, or the MCP tool surface.
Use when the user wants to crawl an entire website, documentation site, or multiple pages from a domain; index a whole docs section; or follow links deeply across a site. Triggers on "crawl this site", "index the whole docs", "crawl all pages under", "spider this URL", "index the entire", "grab all pages from". Prefer over scrape when breadth matters — multiple pages across a site.
Use when the user wants to see which domains have indexed content, get a summary grouped by domain, check how many pages from each site are stored, or audit coverage by website. Triggers on "list indexed domains", "which domains are in axon", "how many pages from each site", "domain breakdown", "show domains", "what sites are indexed". Similar to sources but grouped by domain — use domains for a high-level view, sources for individual URL details.
Uses power tools
Uses Bash, Write, or Edit tools
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.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
api_tokenStatic bearer token for programmatic access. Leave blank when using OAuth (the server handles auth via Google OAuth — set AXON_MCP_AUTH_MODE=oauth on the server). Only needed for non-browser clients that cannot do OAuth.
${user_config.api_token}auth_modeOptional: set to oauth to enable lab-auth Google OAuth/JWT mode. Static bearer token mode is the default.
${user_config.auth_mode}public_urlRequired only for OAuth mode; public URL used in protected-resource metadata.
${user_config.public_url}server_urlBase URL for the shared Axon Docker server. Local Docker setup uses the default.
${user_config.server_url}github_tokenOptional token for higher GitHub ingest rate limits.
${user_config.github_token}tavily_api_keyOptional key for search and research commands.
${user_config.tavily_api_key}auth_admin_emailRequired only for OAuth mode.
${user_config.auth_admin_email}google_client_idRequired only for OAuth mode.
${user_config.google_client_id}reddit_client_idOptional Reddit ingest credential.
${user_config.reddit_client_id}google_client_secretRequired only for OAuth mode.
${user_config.google_client_secret}reddit_client_secretOptional Reddit ingest credential.
${user_config.reddit_client_secret}Memory compression system for Claude Code - persist context across sessions
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
AI image generation Creative Director powered by Google Gemini Nano Banana models. Claude interprets intent, selects domain expertise, constructs optimized prompts, and orchestrates Gemini for best results.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Intelligent prompt optimization using skill-based architecture. Enriches vague prompts with research-based clarifying questions before Claude Code executes them
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.
Core homelab agents, commands, and setup/health skills for self-hosted service management. Includes interactive credential setup wizard and unified service health dashboard.
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.
Version: 4.2.0
Axon is a self-hosted RAG stack for crawling, scraping, ingesting, embedding, searching, and asking questions over indexed content. The production release is Docker Compose first: one Axon server container, Qdrant, Hugging Face TEI with Qwen/Qwen3-Embedding-0.6B, and Chrome for JS-heavy pages.
Supported production runtime:
Qwen/Qwen3-Embedding-0.6B as the production embedding model.http://127.0.0.1:8001.~/.axon/.env, ~/.axon/config.toml, ~/.axon/jobs.db, ~/.axon/output, ~/.axon/logs, ~/.axon/artifacts, ~/.axon/screenshots, ~/.axon/qdrant, and ~/.axon/tei.Not supported in the production path:
.env or config.toml locations.Prerequisites:
nvidia-smi, and NVIDIA Container Toolkit.curl, sha256sum, and install.One-line installer:
curl -fsSL https://raw.githubusercontent.com/jmagar/axon/main/install.sh | sh
The installer verifies the release checksum before installing the host axon binary to ~/.local/bin, then delegates setup to:
axon setup
Useful installer controls:
AXON_INSTALL_DRY_RUN=1 ./install.sh
AXON_INSTALL_PREFIX=/opt/axon ./install.sh
AXON_VERSION=v1.11.0 ./install.sh
AXON_INSTALL_SKIP_SETUP=1 ./install.sh
Claude Code plugin install:
claude plugin install <path-to-this-repo>
The plugin uses the same Docker setup and ~/.axon files. Its SessionStart hook is a thin adapter around axon setup plugin-hook, which runs preflight first and can fall back to the setup wrapper when local files or services need to be initialized. Use axon setup plugin-hook --no-setup when the hook must only check readiness. It does not create a systemd unit and does not symlink a plugin-cache binary into ~/.local/bin.
axon setup is the convenience bootstrap path. It is idempotent and safe to rerun. It:
~/.axon.~/.axon/config.toml.~/.axon/.env, filling only missing runtime values and preserving secrets.~/.axon/compose.nvidia-smi, Gemini CLI auth, and OAuth config when requested.Focused commands:
axon setup # init + stack up + preflight
axon setup init # create ~/.axon, config.toml, .env, and compose assets
axon preflight # check prerequisites, auth config, and service readiness
axon stack up # pull/start services, then follow logs until Ctrl-C
axon stack down # stop services
axon stack restart # restart services
axon stack rebuild # rebuild the Axon image and start services
axon smoke # TEI prewarm + crawl/ask proof
axon setup plugin-hook # hook-safe preflight path for Claude Code SessionStart
axon setup plugin-hook --no-setup # preflight only; does not mutate files or services
axon setup targets # list SSH aliases discovered from ~/.ssh/config (informational)
For local bearer-token operation, no manual env values are required. setup init
defaults to loopback MCP HTTP, writes AXON_MCP_AUTH_MODE=bearer, and generates
AXON_MCP_HTTP_TOKEN. Optional features need credentials: Gemini auth under
~/.gemini for LLM features, TAVILY_API_KEY for search/research,
GITHUB_TOKEN for higher-rate GitHub ingest, and REDDIT_CLIENT_ID plus
REDDIT_CLIENT_SECRET for Reddit ingest. OAuth mode also requires
AXON_MCP_PUBLIC_URL, AXON_MCP_GOOGLE_CLIENT_ID,
AXON_MCP_GOOGLE_CLIENT_SECRET, and AXON_MCP_AUTH_ADMIN_EMAIL.
The warm-path setup goal is under 2 minutes once images and model weights are cached. Cold starts that pull images and model weights can take longer; target-hardware timing still needs to be measured against published release artifacts.
The production compose file starts:
| Service | Purpose | Host bind |
|---|---|---|
axon | HTTP server, web panel, MCP HTTP, action API, in-process workers | 127.0.0.1:8001 |
axon-qdrant | vector storage | 127.0.0.1:53333, 127.0.0.1:53334 |
axon-tei | Qwen3 embeddings through TEI | 127.0.0.1:52000 |
axon-chrome | browser rendering and CDP proxy | 127.0.0.1:6000, 127.0.0.1:9222, 127.0.0.1:9223 |
Start manually: