360 Secure SkillHub
360 安全技能中心

semfind

semfind 是终端语义搜索工具,通过 pip 安装,调用本地嵌入模型与向量检索按含义而非精确文本匹配搜索本地文本文件,输出带相似度分数的匹配行;适用于 grep/ripgrep 无法命中或不知确切措辞时,无需 API 密钥,首次运行需下载模型。

paperboardofficial
paperboardofficial
热度 87.11
最近更新 2026-05-11 17:26:37
分类:搜索依赖:代码执行 / 读写文件应用场景:研究 / 笔记整理 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add semfind
Metadata
name
semfind
description
Semantic 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.

semfind

Semantic grep for the terminal. Searches files by meaning using local embeddings (BAAI/bge-small-en-v1.5 + FAISS). No API keys needed.

When to reach for semfind

  1. grep or ripgrep returned no results or irrelevant results
  2. You don't know the exact wording of what you're looking for
  3. You want to search by concept/meaning rather than exact text

Do NOT use semfind when grep works — grep is instant and has zero overhead.

Install

pip install semfind

First run downloads a ~65MB model (~10-30s). Subsequent runs use the cached model.

Usage

# 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

Options

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

Output format

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.

Resource usage

  • ~250MB RAM while running, freed immediately on exit
  • ~65MB model cached in /tmp/fastembed_cache/
  • ~2s first query (model load), ~14ms cached queries
  • Embedding cache in ~/.cache/semfind/, auto-invalidates on file changes

Workflow pattern

# 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