snapgrep:面向 DSH 的進程內代碼搜索插件

前言

智能體在大型倉庫中會反覆執行代碼搜索。如果每次 grep 都重新讀取磁盤文件,頻繁調用時延遲會持續累積。已有不少方案通過獨立索引進程解決檢索速度問題,但會引入 sidecar 進程或 daemon,增加啓動、同步和調試成本。

snapgrep 的做法是把 trigram 索引放在進程內,用於 Pi 與 DeepSeek Harness(下稱 DSH)的代碼搜索。它在 DSH 中提供 grepglob 兩個工具,並且強調搜索結果與 ripgrep 逐字節一致。

這是什麼

snapgrep 由 Owen718 維護,許可證爲 MIT。

它的核心定位是:

  • 進程內 trigram 索引,用於 Pi 與 DeepSeek Harness 代碼搜索。
  • 無 sidecar 進程、無 daemon。
  • 搜索結果與 ripgrep 逐字節校驗,結果一致。
  • 在 DSH 中同時替換 grepglob
  • glob 使用與內置相同的 ripgrep 調用。
  • 不支持的查詢可 fail closed,而不是近似。
  • 已覈實資料給出的 Node 引擎要求爲 >=22.19.0

核心功能

在 DSH 中替換 grep 和 glob

在 DSH 中,snapgrep 提供 grepglob 兩個工具。

資料說明,DSH 中會替換 grepglob;註冊表拒絕重複工具名,因此內置搜索行被禁用,由該插件同時提供這兩個工具。glob 使用與內置相同的 ripgrep 調用。

結果一致性

已覈實事實中說明,搜索結果與 ripgrep 逐字節校驗,結果一致。對於不支持的查詢,snapgrep 可以 fail closed,而不是返回近似結果。

部署形態

snapgrep 不引入 sidecar 進程,也不啓動 daemon。資料中還說明它不編譯,只下載當前機器可運行的 addon,約 1.2 MB,共兩個包。

平臺支持

已覈實資料中列出的預構建版本包括:

  • macOS:Apple Silicon、Intel
  • Linux:x64、arm64,glibc
  • Windows:x64

Alpine/musl 尚未構建。在不支持的平臺中,插件會指出未找到的具體文件,而不是靜默失敗。

性能表述

snapgrep 的目標是提升代碼搜索速度,具體倍數會隨查詢、倉庫大小和匹配文件數變化。不同資料中的範圍表述也不完全一致,使用時不宜把某個固定倍數當作承諾。

安裝與啓用

先確認運行環境滿足已覈實資料中的 Node 引擎要求:

>=22.19.0

已覈實資料中給出的 DSH headless 安裝命令爲:

dsh plugin --profile headless add snapgrep

安裝完成後,可以用下面這條命令檢查配置中是否出現 snapgrep

dsh --profile headless --dump-config | grep snapgrep

這條命令用於確認當前 headless profile 的 dump 配置中包含 snapgrep 相關信息。

典型用法

在 DSH 中啓用後,智能體可以使用插件提供的 grepglob 兩個工具。

在 Pi 中,可以驗證搜索後端:讓 Pi 搜索一個已知存在的字符串,工具詳情中會顯示:

actualBackend: kernel

適用場景與注意

適合在 DSH 或 Pi 工作流中頻繁執行代碼搜索的場景,尤其是希望減少進程間調用、避免額外 daemon 的本地插件安裝。

需要注意:

  • 插件以當前 dsh 進程權限運行。
  • 安裝前應檢查源碼與許可證;已覈實事實中給出的許可證爲 MIT。
  • 不支持的平臺會明確提示缺失文件,不會靜默失敗。
  • 已覈實資料中的安裝命令只覆蓋 headless profile;不要據此推斷其他 profile 的安裝方式。
  • 性能結果依賴具體查詢、倉庫規模和匹配文件數。

相關鏈接

  • 社區目錄(獨立站點):https://www.skillhub.cn/plugins/Owen718/snapgrep
  • GitHub:https://github.com/Owen718/snapgrep
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜