skill-cli
A high-performance AI Agent Skill Engine. Stores, searches, and fetches Markdown skills dynamically via an embedded SQLite FTS5 database to save context tokens.
Documentation
skill-cli
A high-performance, open-source Rust AI Agent Skill Engine.
skill-cli is a single statically-linked binary that acts as a centralized skill store for AI agents and human developers. It provides:
- A CLI for syncing, searching, and managing skills stored in a local SQLite database.
- An MCP server (over
stdio, JSON-RPC 2.0) that exposes clean, token-efficient tools for LLMs and agents to search, fetch, and update skills without clogging context windows.
Features
- β‘ Millisecond FTS5 search β BM25-ranked full-text search powered by SQLite's built-in FTS5 engine, no external search infrastructure required.
- ποΈ Embedded SQLite β Zero-config, single-file database (
~/.config/skills/skills.db). Statically compiled, no system SQLite installation needed. - π€ MCP-native β Implements the Model Context Protocol (
2024-11-05) overstdio. Compatible with Claude Desktop, Antigravity, and any MCP host. - π Filesystem sync β Import any directory of
.mdfiles with YAML frontmatter in one command. - π¦ Pure Rust β Single binary, no runtime, no daemon, no network service to manage.
Quick Start
Install
Windows (PowerShell):
irm https://raw.githubusercontent.com/JohnnytheShark/skill-cli/main/install.ps1 | iex
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/JohnnytheShark/skill-cli/main/install.sh | bash
The binary is installed to ~/.skill-cli/bin/ and added to your PATH automatically. Restart your terminal after installing, then verify:
skill-cli --version
Build from Source (advanced): Requires the Rust toolchain.
git clone https://github.com/JohnnytheShark/skill-cli.git cd skill-cli cargo build --release
Sync skills from a directory
skill-cli sync --dir ./my-skills
Each .md file becomes a skill. Frontmatter provides the name and description:
---
name: Git Bisect
description: Use binary search to find the commit that introduced a bug
---
# Git Bisect
...
Search from the terminal
skill-cli search "async runtime"
skill-cli list
Run the MCP server
skill-cli serve
Point any MCP-compatible agent at this binary and it will expose three tool groups: skills_*, agents_*, and collections_*.
CLI Reference
| Command | Description |
|---|---|
skill-cli serve | Start the MCP JSON-RPC 2.0 server over stdio |
skill-cli sync --dir <PATH> [--prune] | Sync .md files in a directory into SQLite (optional --prune deletes removed files) |
skill-cli search <QUERY> [--collection <NAME>] | Full-text search the skill index |
skill-cli list | List all indexed skills |
skill-cli remove <ID> | Delete a single skill by ID |
skill-cli remove-bulk <ID...> | Delete multiple skills by ID |
skill-cli purge --yes | Delete all skills from the database and rebuild FTS index |
skill-cli export --dir <PATH> [--ids ...] [--query ...] | Export skills as sync-compatible .md files |
MCP Tools
| Tool | Input | Output |
|---|---|---|
skills_search | { "query": "...", "collection": "...", "limit": 5 } | Array of { id, name, description } metadata |
skills_fetch | { "id": "..." } | Raw Markdown content string |
skills_upsert | { "id", "name", "description", "content", "collections" } | { "status": "success", "id": "..." } |
skills_delete | { "id": "..." } | { "status": "success", "deleted": bool, "id": "..." } |
skills_delete_bulk | { "ids": ["..."] } | { "status": "success", "deleted": number } |
skills_export | { "ids"?: [...], "query"?: "...", "collection"?: "...", "limit"?: 200 } | JSON array of complete { id, name, description, content } objects |
Connecting to an Agent
Add to your mcp_config.json:
{
"mcpServers": {
"skill-engine": {
"command": "skill-cli",
"args": ["serve"]
}
}
}
Documentation
Full DiΓ‘taxis documentation is in the docs/ directory:
| Type | Contents |
|---|---|
| Tutorial | Step-by-step introduction for new users |
| How-to Guides | Practical guides for specific tasks |
| Reference | Complete CLI, MCP, schema, and format specs |
| Explanation | Architecture, design decisions, and concepts |
Development
cargo check # Verify compilation
cargo clippy # Lint
cargo test # Run unit tests
cargo build --release # Optimised build
License
Copyright 2026 Johnny Orellana
Licensed under the Apache License, Version 2.0.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
See NOTICE for required attribution notices.
Contributing
Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request.