semble 是什么?

Semble 是 MinishLab 为编码 Agent 开发的本地代码搜索工具。它用静态嵌入把自然语言查询映射到相关代码片段,可作为 CLI、MCP 服务或 Agent 指令使用。

⭐ 4,406 Stars 🍴 175 Forks Python MIT 作者: MinishLab
来源:github.com/MinishLab/semble 查看 GitHub 仓库 → 📘 使用教程 →

为什么值得关注

官方项目在 0.6.0 加入多仓库搜索,并把安装流程统一为 uv tool install semble 与交互式 semble install,已明显超出旧页面记录的 0.2.0。

来源:github.com/MinishLab/semble;https://github.com/MinishLab/semble/releases

核心功能

自然语言代码检索

首次查询时建立本地索引,返回带文件位置的相关片段,并在文件变化后使缓存失效。

来源:github.com/MinishLab/semble
多种 Agent 接入

semble install 可配置 MCP、AGENTS.md/CLAUDE.md 指令和专用搜索子代理。

来源:github.com/MinishLab/semble
本地与多仓库搜索

查询可指向本地路径或 Git URL;0.6.0 新增一次搜索多个仓库的支持。

来源:github.com/MinishLab/semble;https://github.com/MinishLab/semble/relea…

技术架构

Python 包把代码切片后交给 model2vec 静态嵌入,在本机 CPU 上建立和查询索引;CLI 负责 search/install/uninstall 等入口,MCP 适配层把检索暴露给支持该协议的 Agent。无需远程向量数据库或 API key。

来源:github.com/MinishLab/semble;https://github.com/MinishLab/semble/blob/…

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) model2vec >=0.4,<0.10model2vec >=0.… numpy watchfiles GitPython 自然语言代码检索 多种 Agent 接入 本地与多仓库搜索 semble 项目本体 核心功能 关键依赖

技术栈

语言Python 3.10+框架CLI + MCP server
model2vec >=0.4,<0.10numpywatchfilesGitPython
uv;本机 CPU;无需 GPU、API key 或外部检索服务
来源:github.com/MinishLab/semble/blob/main/pyproject.toml;https://github.c…

快速上手

安装 Python 3.10+ 和 uv,运行 uv tool install semble,再运行 semble install 并选择已检测到的 Agent 与 MCP、instructions 或 subagent 集成。随后用 semble search 'authentication flow' ./my-project 做第一次查询。自动化环境可显式传 --agent、--type 和 --yes。
来源:github.com/MinishLab/semble;https://github.com/MinishLab/semble/blob/…

使用场景

适合让编码 Agent按意图找实现、在陌生仓库定位入口、跨多个相关仓库检索,以及在不发送代码到外部检索服务的环境使用。精确字符串的穷举、正则匹配和遗漏必须为零的审计仍应使用 ripgrep 等字面搜索工具。

来源:github.com/MinishLab/semble;https://github.com/BurntSushi/ripgrep

优势与局限

优势

  • 本机 CPU 运行且无需 API key
  • CLI、MCP、指令和子代理接入路径完整
  • 0.6.0 支持多仓库搜索

局限

  • 官方性能和 99% token 节省来自项目自有 benchmark,需在目标代码库复测
  • 语义检索不能保证穷举全部字面命中
  • 首次查询要下载模型并建立索引
  • 仍是 0.x 版本,命令与索引行为可能继续变化
  • 本轮没有安装或运行代码
来源:github.com/MinishLab/semble;https://github.com/MinishLab/semble/releases

最新版本

最新 GitHub Release 为 v0.6.0,发布页记录了多仓库搜索、CLI 进度条与美化输出,以及分块行号修复。旧稿中的 v0.2.0 已经过时。

来源:github.com/MinishLab/semble/releases/tag/v0.6.0;https://github.com/Mi…

实测与证据

status: official_docs_checked_not_run  |  checked_at: 2026-09-23  |  environment: 核对 MinishLab/semble 官方 README、pyproject.toml、安装文档与 Releases  |  limitations: 未安装 uv/semble、未下载模型、未索引仓库、未运行 benchmark,也未验证官方性能数字  |  observed_output: pyproject 要求 Python >=3.10;README 当前推荐 uv tool install semble 后执行 semble install;Releases 标记 v0.6.0 为 Latest

来源:github.com/MinishLab/semble;https://github.com/MinishLab/semble/blob/…

同类项目对比

ripgrep 按正则逐行搜索,并默认遵守 gitignore,适合精确、可穷举的文本匹配;Semble 把自然语言意图映射到排序后的代码片段,适合不知道符号名时先缩小范围。实际排查可先用 Semble 找方向,再用 ripgrep 验证所有字面命中。

来源:github.com/BurntSushi/ripgrep;https://github.com/MinishLab/semble

总结评价

Semble 适合给编码 Agent 增加轻量的本地语义检索。先在一个熟悉的仓库比较召回结果与耗时,再决定是否写入全局 Agent 配置;需要精确穷举时保留 ripgrep。

来源:github.com/MinishLab/semble;https://github.com/BurntSushi/ripgrep

常见问题

Semble 0.6.0 需要什么 Python 版本?

官方 pyproject.toml 要求 Python 3.10 或更高版本,当前 README 推荐通过 uv 安装。

Semble 会把代码发送到外部服务吗?

官方说明索引和检索在本机 CPU 上完成,不需要 API key、GPU 或外部服务;远程 Git URL 仍会按需克隆仓库。

Semble 能完全替代 ripgrep 吗?

不能。Semble 适合按语义找相关片段;需要完整枚举精确字符串或正则命中时,ripgrep 更合适。

更新 Semble 后为什么 MCP 还在用旧版本?

官方更新说明建议执行 uv tool upgrade semble,清理 semble 的 uv 缓存,然后重启 MCP 客户端。

资料与核验范围
本文依据项目公开资料整理。版本、安装命令和功能边界可能随上游更新,请以所列来源和项目当前版本为准。 资料核对时间: 2026-09-23 13:55.

参考材料:README、GitHub API、依赖文件