Install
openclaw skills install semfindSemantic search over local text files using embeddings. Use when grep/ripgrep fails to find relevant results because the exact wording is unknown, or when searching by meaning rather than pattern — e.g., searching logs for "deployment issue" when the actual text says "container build failed". Install with `pip install semfind`. Ideal for searching memory files, project docs, logs, and notes by meaning.
openclaw skills install semfindSemantic grep for the terminal. Searches files by meaning using local embeddings (BAAI/bge-small-en-v1.5 + FAISS). No API keys needed.
grep or ripgrep returned no results or irrelevant resultsDo NOT use semfind when grep works — grep is instant and has zero overhead.
pip install semfind
First run downloads a ~65MB model (~10-30s). Subsequent runs use the cached model.
# Basic search
semfind "deployment issue" logs.md
# Search multiple files, top 3 results
semfind "permission error" memory/*.md -k 3
# With context lines
semfind "database migration" notes.md -n 2
# Force re-index after file changes
semfind "query" file.md --reindex
# Minimum similarity threshold
semfind "auth bug" *.md -m 0.5
| Flag | Description | Default |
|---|---|---|
-k, --top-k | Number of results | 5 |
-n, --context | Context lines before/after | 0 |
-m, --max-distance | Minimum similarity score | none |
--reindex | Force re-embed | false |
--no-cache | Skip embedding cache | false |
Grep-like with similarity scores:
file.md:9: [2026-01-15] Fixed docker build with missing env vars (0.796)
file.md:3: [2026-01-17] Agent couldn't write to /var/log (0.689)
Higher scores (closer to 1.0) mean stronger semantic match.
/tmp/fastembed_cache/~/.cache/semfind/, auto-invalidates on file changes# Step 1: Try grep first
grep "deployment" memory/*.md
# Step 2: If grep fails, use semfind
semfind "something went wrong with the deployment" memory/*.md -k 5