Skill Depot
RAG-based skill retrieval system for AI agents. Scalable long-term storage with semantic search via MCP.
Ask AI about Skill Depot
Powered by Claude Β· Grounded in docs
I know everything about Skill Depot. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
skill-depot
RAG-based skill retrieval system for AI agents. Scalable long-term storage with semantic search via MCP.
skill-depot replaces the "dump all skill frontmatter into context" approach with selective, semantic retrieval. Agent skills are stored as Markdown files and indexed with vector embeddings β only the relevant skills are loaded when needed, keeping context lean.
β¨ Features
- π Semantic Search β Find skills by meaning, not just keywords, using embedded vector search
- π Fully Local β No API keys, no cloud. Uses SQLite + sqlite-vec for storage and a local transformer model for embeddings
- π€ Agent-Agnostic β Works with Claude Code, Codex, OpenClaw, Gemini, and any MCP-compatible agent
- π Two-Scope Storage β Global skills (
~/.skill-depot/) available everywhere, project skills (.skill-depot/) synced via git - β‘ Auto-Discovery β Finds existing skills from your AI agents during setup
- π MCP Protocol β Integrates seamlessly as an MCP server with 9 tools for skill management
- π Tiered Detail Levels β Three levels of detail (snippet β overview β full content) to minimize token usage
- π Activity Scoring β Frequently used skills rank higher in search results automatically
- π Relation Tracking β Link related skills together so agents can discover connected knowledge
π Quick Start
1. Initialize
npx skill-depot init
This will:
- Create the
~/.skill-depot/global directory - Scan for existing skills in Claude Code, Codex, OpenClaw directories
- Let you select which skills to import via an interactive checklist
- Download the embedding model (~80MB, one-time)
- Index all imported skills
2. Configure Your Agent
Add skill-depot to your agent's MCP configuration:
Claude Code (~/.claude/mcp.json):
{
"mcpServers": {
"skill-depot": {
"command": "npx",
"args": ["skill-depot", "serve"]
}
}
}
Codex / OpenClaw / Cursor: Add the same MCP server config in your agent's settings.
3. Use
Your agent now has access to these tools:
| Tool | Description |
|---|---|
skill_search | Semantic search β accepts optional context for better relevance |
skill_preview | Get a structured overview (headings + first sentences) without loading full content |
skill_read | Load the full content of a skill |
skill_learn | Learn something new β creates or appends to a skill (upsert) |
skill_save | Save a new skill and index it |
skill_update | Update an existing skill |
skill_delete | Remove a skill |
skill_reindex | Rebuild the search index |
skill_list | List all indexed skills |
π How It Works
The Problem
Traditional agent skill systems load all skill file frontmatter into the agent's context window every session. With a large skill library, this wastes precious context on irrelevant information.
The Solution
skill-depot acts as a RAG layer for agent skills:
- Skills are stored as Markdown files with YAML frontmatter
- Each skill is embedded into a 384-dimensional vector using a local transformer model
- When an agent needs a skill, it searches by meaning β only the most relevant skills are returned
- Results include a
hasOverviewflag β agents can load a structured overview (skill_preview) or the full content (skill_read)
Tiered Detail Levels
skill-depot serves context at three levels of detail to minimize token usage:
| Level | Tool | What You Get | Typical Size |
|---|---|---|---|
| L0 β Snippet | skill_search | 200-char preview + metadata | ~200 chars |
| L1 β Overview | skill_preview | Headings + first sentence per section | ~500-2000 chars |
| L2 β Full | skill_read | Complete raw markdown | Unbounded |
Agents can progressively load detail β check the snippet, preview the outline, and only load full content when needed:
Agent β skill_search("deploy nextjs to vercel")
β [{ name: "deploy-vercel", score: 0.92, snippet: "...", hasOverview: true }, ...]
Agent β skill_preview("deploy-vercel")
β { overview: "## Steps\nInstall the Vercel CLI.\n\n## Configuration\nSet environment variables." }
Agent β skill_read("deploy-vercel")
β Full markdown content of the skill
Context-Aware Search
Pass an optional context parameter to skill_search for more relevant results. The context is combined with the query before generating the search embedding:
Agent β skill_search({ query: "deploy", context: "Next.js app with Vercel, fixing CI pipeline" })
β deploy-vercel ranks higher than deploy-aws because the context narrows the search
Agent Learning
Agents can save knowledge on the fly using skill_learn. If the skill doesn't exist, it's created. If it does, the new content is appended with a --- separator, and tags/keywords are merged automatically.
Agent β skill_learn({ name: "nextjs-gotchas", content: "API routes cache by default...", tags: ["nextjs"] })
β { action: "created" }
Agent β skill_learn({ name: "nextjs-gotchas", content: "Image optimization requires sharp...", tags: ["images"] })
β { action: "appended" } // tags merged: ["nextjs", "images"]
Storage Architecture
~/.skill-depot/ # Global (all projects)
βββ config.json
βββ models/ # Embedding model cache
βββ skills/ # Global skill files
βββ index.db # SQLite + vector index
<project>/.skill-depot/ # Project-level (git-synced)
βββ skills/ # Project-specific skills
βββ index.db # Project vector index (gitignored)
π οΈ CLI Reference
# Setup
skill-depot init # Interactive setup + agent discovery
skill-depot init --auto # Non-interactive, import everything
# Server
skill-depot serve --project . # Start MCP server (foreground/stdio)
skill-depot start --project . # Start as background daemon
skill-depot stop # Stop daemon
skill-depot status # Check daemon status
skill-depot restart # Restart daemon
# Skill Management
skill-depot add <file> # Add a skill file (project scope)
skill-depot add <file> --global # Add as global skill
skill-depot remove <name> # Remove a skill
skill-depot list # List all skills
skill-depot list --global # List global skills only
skill-depot search <query> # Search skills from CLI
# Maintenance
skill-depot reindex # Rebuild all indexes
skill-depot doctor # Health check
π Skill Format
Skills use standard YAML frontmatter + Markdown β the same format used by Claude Code, Codex, and other agents:
---
name: deploy-to-vercel
description: How to deploy a Next.js application to Vercel
tags: [deployment, vercel, nextjs]
keywords: [vercel cli, production build, environment variables]
related: [setup-env-vars, vercel-domains]
---
## Steps
1. Install the Vercel CLI: `npm i -g vercel`
2. Run `vercel` in the project root
3. Follow the prompts to link your project
...
ποΈ Tech Stack
| Component | Technology |
|---|---|
| Language | TypeScript (ESM) |
| Database | SQLite via better-sqlite3 |
| Vector Search | sqlite-vec extension |
| Embeddings | @xenova/transformers (all-MiniLM-L6-v2) |
| Fallback | BM25 term-frequency hashing |
| Protocol | MCP via @modelcontextprotocol/sdk |
| CLI | commander + inquirer + chalk + ora |
π€ Contributing
Contributions are welcome! This is an open-source project.
# Clone and install
git clone https://github.com/your-username/skill-depot.git
cd skill-depot
pnpm install
# Development
pnpm dev # Watch mode build
pnpm test # Run tests
pnpm lint # Type check
pnpm build # Production build
π License
MIT
