Self-hosted Claude Code registry for teams.
Publish, install, browse, and govern SKILL.md / subagents / slash commands / plugins —
under tenant-scoped SSO with a full audit trail.
Anthropic shipped SKILL.md as the open standard for Claude Code's
extensibility — skills, subagents, slash commands. Drop a file under
~/.claude/skills/ and Claude picks it up.
But every engineer hand-rolls their own .claude/, copy-pastes from awesome-lists,
and the working knowledge of which prompt actually solves which problem stays trapped on one laptop.
skill_pool is the team layer.
direnv allow detects your stack (Cargo, flake.nix, package.json, pyproject, go.mod) and installs matching skills with one keystroke.
Per-codebase curated bundles. Curators pin acme-billing → [code-reviewer, sqlx-migrations, …]; developers git clone and get exactly that.
Stop-hook scorer + Haiku→Sonnet drafter — solved problems become draft skills a reviewer can publish from the inbox.
Per-tenant OIDC / SAML / SCIM, scoped API tokens, SIEM-friendly audit export. Shared mode for most, dedicated mode for the regulated few.
bge-small embeddings on publish. /v1/skills?semantic=axum middleware ranks by meaning, not substring.
Bundle skills + agents + commands + hooks + MCP servers. /plugin marketplace add once, /plugin install per bundle.
Claude calls search_skills and install_skill inline via the registry's MCP JSON-RPC endpoint — no shell-out.
Nix flake · Docker Compose · NixOS module · Helm chart · Terraform AWS. Pick what fits your platform team.
Every publish is an immutable version. last_used > 6mo ∧ uses < 3 flags archive candidates for cleanup.
$ skill-pool detect --json
{"stack": ["rust", "axum", "postgres", "nixos"]}
$ skill-pool bootstrap --yes
detected: rust, axum, postgres, nixos
OK installed 4 skills matching your stack
↪ rust-error-handling · axum-middleware · sqlx-migrations · nixos-module-style
$ skill-pool search "redis queue"
SLUG VERSION USED DESCRIPTION
redis-job-queue 1.2.0 34× Fail-open Redis queue with DLQ pattern
async-worker-skeleton 0.4.1 11× tokio worker scaffold with graceful shutdown
$ skill-pool publish ./my-skill --version 1.0.0 --kind skill
packing: 4231 bytes (my-skill@1.0.0 [skill])
OK uploaded · sha256:9f4a…
$ skill-pool doctor
OK registry reachable
OK token valid · tenant: acme
OK 12 skills linked into .claude/skills/
OK no dangling symlinks
→ full quickstart
The Rust + Axum server exposes REST /v1/*, a public marketplace.json,
and per-plugin smart-HTTP git endpoints. Plugins are a composition layer above skills/agents/commands —
one published row pins existing catalogue entries by (slug, kind, version).
Three product teams, divergent .claude/ folders, no shared review of what's actually working. Curate per-repo bundles; direnv installs them on clone.
Customer support, success, and platform each need different skills. One server, three tenants, SSO + scoped tokens, branded portal per tenant.
Auditable SIEM exports, secret-scan on every publish, dedicated DB/bucket for tenants under SOC 2 / FedRAMP scope.
Stop-hook scorer surfaces "this session looked like a real fix" — a Sonnet drafter writes SKILL.md, a reviewer publishes from inbox.