skill-depot
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 initThis will:
Create the
~/.skill-depot/global directoryScan 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 |
| Semantic search ā accepts optional |
| Get a structured overview (headings + first sentences) without loading full content |
| Load the full content of a skill |
| Learn something new ā creates or appends to a skill (upsert) |
| Save a new skill and index it |
| Update an existing skill |
| Remove a skill |
| Rebuild the search index |
| 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 |
| 200-char preview + metadata | ~200 chars |
L1 ā Overview |
| Headings + first sentence per section | ~500-2000 chars |
L2 ā Full |
| 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 skillContext-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 searchAgent 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 |
Vector Search |
|
Embeddings |
|
Fallback | BM25 term-frequency hashing |
Protocol | MCP via |
CLI |
|
š¤ 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