From claudeclaw
Upgrades ClaudeClaw memory_search from grep to local QMD hybrid BM25+vector semantic search with LLM reranking. Indexes group memory markdown files on startup.
npx claudepluginhub sbusso/claudeclawThis skill uses the workspace's default tool permissions.
QMD (https://github.com/tobi/qmd) is a local search engine for markdown files. It combines BM25 keyword search, vector semantic search, and LLM re-ranking — all running on-device via node-llama-cpp with GGUF models.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
QMD (https://github.com/tobi/qmd) is a local search engine for markdown files. It combines BM25 keyword search, vector semantic search, and LLM re-ranking — all running on-device via node-llama-cpp with GGUF models.
This skill upgrades ClaudeClaw's built-in grep-based memory_search MCP tool with QMD's hybrid search, giving agents much better recall across large memory collections.
groups/*/memory/, groups/*/CLAUDE.md, groups/*/conversations/)memory_search in agent/runner/src/ipc-mcp-stdio.ts with QMD's APIQMD exposes its search as an MCP server. Add to the agent runner's mcpServers config:
qmd: {
command: 'npx',
args: ['qmd', 'mcp', '--collection', collectionPath],
env: {},
}
QMD indexes markdown files into a local SQLite database. The collection should be configured per-group:
# Index a group's memory
qmd index --collection groups/{folder}/.qmd groups/{folder}/memory/ groups/{folder}/CLAUDE.md groups/{folder}/conversations/
Replace the grep-based memory_search tool body with a call to QMD's MCP:
// Before (grep-based):
const results = grepFiles(args.query, allFiles);
// After (QMD):
// Use the qmd MCP server's search tool
// Returns semantically ranked results with relevance scores
If QMD is not installed or indexing fails, fall back to the built-in grep-based search. This ensures memory tools always work even without QMD.
This skill is a specification for future implementation. The built-in grep-based memory tools work without QMD. Run this skill when you want to upgrade to semantic search.