By mbeacom
Fully-local semantic search: a bin/rag CLI that chunks + embeds a corpus with ollama and indexes it with turbovec. Notes-first, corpus-agnostic via pluggable loaders.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
embed_modelollama model used to embed chunks and queries
${user_config.embed_model}ollama_hostBase URL of the ollama server
${user_config.ollama_host}A Claude Code plugin marketplace for information retrieval. It bundles complementary retrieval modalities — lexical, structural, structured-data, history, semantic (RAG), and graph — plus a routing agent that picks and composes them. Everything runs locally; the RAG layer keeps your corpus on your machine.
/plugin marketplace add mbeacom/productivity-skills
Then install what you need (installing code-search auto-installs retrieval-core):
/plugin install code-search@productivity-skills # lexical/structural/data/history search
/plugin install local-rag@productivity-skills # local semantic search (turbovec + ollama)
/plugin install obsidian@productivity-skills # Obsidian vault → RAG bridge
| Plugin | What it does |
|---|---|
| retrieval-core | The spine: a retrieval-strategist agent + retrieval-strategy skill that choose and compose modalities. Other plugins depend on it. |
| code-search | Lexical (rg/fd), structural (ast-grep/semgrep), structured-data (jq/yq/gron), history (git pickaxe/difftastic), structured rewrite (comby), metrics (tokei/scc), and non-code docs (rga/pandoc/pdftotext). Two skills: code-search (code) and data-and-docs-search (data/docs). |
| local-rag | Fully-local semantic search: a bin/rag CLI that chunks a corpus, embeds it with ollama, and indexes it with turbovec. Notes-first, corpus-agnostic, with incremental indexing and hybrid --allowlist retrieval. |
| obsidian | A skill-only RAG bridge: turn an Obsidian vault's graph/tags (official obsidian CLI, or rg fallback) into a candidate set fed to local-rag. For authoring/Bases/Canvas, use kepano/obsidian-skills. |
The skills degrade gracefully and tell you what's missing.
rg (ripgrep); the rest are optional. Run
bash plugins/code-search/scripts/check-tools.sh to see what's installed and
the brew install … line for the rest.uv (the rag CLI is
bootstrapped into a venv automatically on session start) and a running
ollama with an embedding model:
ollama serve + ollama pull nomic-embed-text.obsidian CLI (with Obsidian running)
for graph-accurate queries; otherwise falls back to rg/fd. Set your vault
path in the plugin's config (vault_path).Once installed, Claude invokes the skills automatically based on your task. The
retrieval-strategist agent (or the retrieval-strategy skill) decides which
modality fits — and they compose.
Pick a modality by what you know:
| You know… | Modality | Example |
|---|---|---|
| an exact token / regex / filename | lexical | rg -t py 'def login' · fd -e ts |
| the code shape, not the text | structural | sg -p 'logger.debug($$$)' --lang js |
| a JSON/YAML schema path | structured-data | jq '.scripts' package.json · gron x.json | rg token |
| when/why code changed | history | git log -S'retry' -- src/ |
| only the meaning/intent | semantic (RAG) | rag query "how do we handle backoff" --name notes |
| the corpus is an Obsidian vault | graph | obsidian backlinks file="Project X" |
Semantic search (local-rag):
ollama pull nomic-embed-text # once
rag index /path/to/vault --name notes # build/update (incremental)
rag query "open questions about billing" --name notes --k 8
rag status --name notes # counts, model, dim
Hybrid retrieval (the payoff) — narrow with the graph/lexical, rerank with vectors:
# Obsidian graph → semantic rerank (official CLI)
obsidian backlinks file="Project X" | rag query "open risks" --name notes --allowlist -
# rg fallback when Obsidian isn't running ($VAULT defaults to the plugin's configured vault_path)
VAULT="${CLAUDE_PLUGIN_OPTION_VAULT_PATH:-.}"
rg -l '#decision' "$VAULT" | rag query "why did we choose X" --name notes --allowlist -
rag returns path > heading + a snippet; follow up with rg to pin exact lines.
See docs/ARCHITECTURE.md for the modality model and how the plugins fit together.
# Validate the marketplace + every plugin
claude plugin validate . --strict
for p in plugins/*/; do claude plugin validate "$p" --strict; done
# Lint (markdownlint + shellcheck + ruff + hygiene)
pre-commit run --all-files
# Run the local-rag Python tests
cd plugins/local-rag && uv run --group dev pytest -q
See CLAUDE.md for contributor conventions.
MIT © Mark Beacom. Each plugin ships its own LICENSE.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub mbeacom/productivity-skills --plugin local-ragA retrieval-strategist agent and decision-flow skill that pick and compose search modalities (lexical, structural, semantic/RAG, graph).
Fast CLI search across modalities: lexical (rg/fd), structural (ast-grep/semgrep), structured-data (jq/yq/gron), history (git pickaxe), structured rewrite (comby), data files (duckdb), metrics (tokei/scc), and non-code docs (rga/pandoc/pdftotext).
Bridge an Obsidian vault into local semantic search: turn graph/tag/search results (official obsidian CLI, or rg fallback) into a candidate file set for local-rag's hybrid allowlist. For authoring/Bases/Canvas, use kepano/obsidian-skills.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.