grep finds strings.
semkeep finds meaning.
Your AI agent's project companion: find code by meaning, navigate by structure, remember verified commands across sessions, and gate "done" on proof — not hope. Runs locally. Ambient API keys never touched.
claude mcp add semkeep -- npx -y semkeep
16 tools. Four capabilities.
A project companion that finds code by meaning, navigates by structure, remembers verified commands across sessions, and gates "done" on proof.
Find by meaning
Ask "where's the retry logic?" and get the function that defines backoffScheduler — even though none of those words appear in it. Semantic search over code and docs, index always current.
Understand structure
Real tree‑sitter ASTs. Jump to where a symbol is defined, list every call site, see a file's shape, map its dependency edges — answers grep simply can't give.
Operational memory
Record recipes (verified commands with exit codes), gotchas, and dead‑ends that persist across sessions. Recipes go ⚠ STALE after 30 days. Surfaced automatically at session start.
Verification gate
Define your done‑criteria in a JSON spec. greenlight_run returns GREEN only when every check proves completion. greenlight_lint flags shallow gates that would pass without proving anything.
Notes that live with code
Anchor a note to a symbol — "this path drops events under load" — and it surfaces whenever you define or outline that code. Durable across refactors.
Knowledge, exactly where you're looking
A complement to grep — not a replacement
We benchmarked it instead of hand‑waving. semkeep wins exactly where grep struggles, and we say so where it doesn't.
Reach for grep when…
- You know the exact string or regex
- You want every literal occurrence
- The term is rare and specific
Reach for semkeep when…
- You don't know the identifier the code uses
- The obvious keyword is everywhere (1,000+ hits)
- You need relationships: definition, callers, imports
- You want your own notes surfaced alongside the code
Running in under a minute
-
As an MCP server (any MCP client)
claude mcp add semkeep -- npx -y semkeep
Restart your client so the semkeep tools load. Requires Node.js 18+.
-
…or as a Claude Code plugin
/plugin marketplace add Interpromodal/semkeep /plugin install semkeep@semkeep
Bundles the MCP server and a smart Grep nudge in one install.
-
Index, then ask
index_path ./src search "where is the websocket reconnect logic"
Credentials & privacy: the default is a bundled local on-device model — your code stays on your machine and your ambient OPENAI_API_KEY is never read. For API-quality embeddings, add SEMKEEP_OPENAI_API_KEY to the MCP server's own env block in your MCP config. Opt into ambient key inheritance with SEMKEEP_INHERIT_ENV_KEYS=1.
-
Operational memory — surface at session start
# Add to your Claude Code hooks (settings.json): # SessionStart hook: semkeep markers --hook # PreCompact hook: semkeep nudge --hook
Once hooked, recorded recipes, gotchas, and dead-ends appear automatically at the top of every new session and before compaction. Use mark in-agent to record them; recipes go ⚠ STALE after 30 days.
-
Verification gate — run from the CLI
semkeep greenlight run spec.json
Define your done-criteria in a JSON spec, then run the gate from the CLI or call greenlight_run in-agent. Returns GREEN only on proof. Use greenlight_lint to audit your spec for shallow checks first.
Free forever. Tips keep it going.
semkeep is MIT‑licensed and always free. If it earns its keep, drop a coin in the jar — it funds maintenance and the next tool like this one.
Insert a coin · Venmo @InsertCoinThis page speaks MCP, too
Fittingly, the site for an MCP server is one. If your browser supports WebMCP, an AI agent can call semkeep_faq to answer questions about the project straight from this page — no scraping required.