- QuietEcho5051小时前⭐️ 新访客5940
magpie:本地优先的 Spotlight 式启动器,找回你 star 过就忘的项目、存过就丢的文件和书签
不知道大家有没有同感:
GitHub 上 star 了上千个项目,真要用的时候想不起名字,GitHub 自带的 star 搜索只搜标题描述,形同虚设
截图和图片存了一堆,只记得画面内容,不记得文件名
书签埋在浏览器文件夹树里,比重新 Google 一遍还难找
我做了个小工具解决这件事:magpie,一个开源( MIT )的桌面启动器,
Alt+Space 唤出一个搜索框,检索三类你「存过就忘」的东西。仓库: https://github.com/newdee/magpie
能搜什么
GitHub Stars —— 贴一个无 scope 的 PAT ,同步全部 star:名称、描述、topics 、
README 全文(分块嵌入)。搜「视频超分」能命中英文 README 里的
video super resolution 。可按相关度 / 收藏时间 / 星数排序。本地文件 —— 只索引你显式添加的文件夹(详见下面隐私部分)。近 80 种文本/
代码格式全文检索,PDF ( pdf-inspector 转 markdown )、Word/Excel/PPT 都能解析;
其余文件按文件名索引。命中的段落高亮显示上下文。图片 —— SigLIP 2 嵌入,两种玩法:
文搜图:任何语言输入「海边日落」,匹配的照片带缩略图混在结果里
以图搜图:拖一张图进搜索框(或粘贴截图),返回最相似的图片和相似度百分比
浏览器书签 —— 不走任何 API ,直接读浏览器本地存储。不光是 Chrome/Edge/
Firefox:任何 Chromium 内核的浏览器( Vivaldi 、Arc 、各种小众分支)都按磁盘
profile 结构自动发现。检索是混合的,不只是关键词
SQLite FTS5 ( BM25 )+ 本地语义向量( multilingual-e5-small ,100+ 语言),
RRF 融合排名。中文查询命中英文文档,反之亦然。长文档分块(~1600 字符带重叠),
第 100 页里的一句话也能被搜到。隐私:靠架构保证,不靠承诺
永不全盘扫描。只索引你添加的文件夹,其余位置永远不会被读取
数据不出本机。索引是用户目录里一个 SQLite 文件;嵌入模型走 ONNX 本地
推理,首次下载后完全离线。没有任何东西被上传每个文件夹一键移除,文件、索引、向量一并清除
国内网络下载模型可以在设置里一键切到 hf-mirror.com http://hf-mirror.com 镜像。
技术栈(感兴趣的话)
Tauri v2 + Rust ,前端 React 。核心是一个无 UI 依赖的 Rust 库:SQLite +
FTS5 external content 表、fastembed/ort 跑 ONNX 、向量就是 L2 归一化的 f32
BLOB 存 SQLite 内存暴力点积——几万个 chunk 15ms 内出结果,100% 召回,
不需要向量数据库。安装
Windows / macOS (Apple Silicon) / Linux:
https://github.com/newdee/magpie/releases/latestmacOS 未签名,curl 安装可跳过 Gatekeeper:
curl -L https://github.com/newdee/magpie/releases/latest/download/magpie_aarch64.app.tar.gz | tar xz -C /Applications
刚发第一个正式版,功能建议和 bug 欢迎提 issue ,觉得有用的话给个 star (然后
用 magpie 搜它 :)精简版(纯文本场合)
做了个开源小工具 magpie:Alt+Space 唤出的本地搜索框,专治「存过就忘」。搜 GitHub stars (含 README 全文,中文能搜英文文档)、搜本地文件全文
( PDF/Office 都解析,只索引你指定的文件夹,永不全盘扫描)、搜图片
(文字描述画面或以图搜图,SigLIP 2 )、搜浏览器书签(任意 Chromium
内核浏览器自动发现)。关键词 + 语义混合检索,全部本地推理,数据不出本机,MIT 开源,
Win/mac/Linux 都有包。https://github.com/newdee/magpie

主楼 我之前也写了个类似的,不过是用的 dioxus 和复用 openclaw 的 embedding
搜索+整理日渐复杂的 workspace 目录。哈哈,可以的,不过我最初动机还只是是每次写代码时候想翻一下 github 的 star ,看看之前有没有 比较好的项目可以用的,但找起来太费劲了,就写了这个,然后顺便把 local search 以及图像检索也加了,然后又想到了浏览器历史记录和书签,就又加了,顺便把应用启动和快速网页搜索页加了一下。
确实涉及到云端比较麻烦,所以我没有做成知识库,rag 那套在模型记忆中还是差点意思,但用来检索够用了,所以也没有 llm ,纯做检索,所有数据在本地,初始化完成后离线就能运行,没任何外部依赖了。
- 想说集成 app intents 结果拦路虎是免费 ADP 即使申请了 app group 也不会给 provisionprofile 里写
- star(别人的 repo 2.5K 个) search 本身之前也想做,+browser ext 调用本地 embedding 和 GitHub api 或存 supabase (结果耽误在 supabase worker 上了)
赞一个,最近刚想搞类似的东西。
不难,需要的话后续可以加上。
在设置里切换中文后,输入拼音或相关词汇标签,可以直接匹配应用。目前主要对启动应用做了,至于对文件和浏览器记录,性价比还在衡量中。
希望支持拼音英文搜索 如 daili 搜索到代理。
还有什么需求,可以提一下,有意思的话可以马上加。
#7 没找到设置里哪里可以切换语言;且窗口里没有通往设置的地方,只能挪动鼠标到右下角任务栏,这一点可以学一下。
搞完了,还有没有什么有搞头的。
目前用户不多,确实可能会有很多问题,欢迎随时提出。
- JackalZhao46分钟前⭐️ 新访客5959
算了。我找到了 [hister]( https://github.com/asciimoo/hister) 可实现了。
设置一般是访问频次很少的,所以之前的设计是只给任务栏图标入口,后续如果经常需要访问设置的话,可以增加一个快捷键切换。
另外如果找不到语言切换的话,可以在设置里尝试一下更新版本,v0.1.14 及之后的版本有。
v0.1.15 新增了图搜视频,晚点发布。项目取名都不先搜一下吗,github 已经有一个叫 Magpie 的项目了。
浏览器历史记录检索有,但是 cookie 后面可能都消失了,解析都是小事,除非实时监控浏览器,这个是不是不太好?
- JackalZhao45分钟前⭐️ 新访客5959
需要能记录浏览器看过的网页里的文字。很多新闻啊,知乎文章啊,过一段时间就和谐,又忘记保存。这个需求很有用,但是会比较难,例如如何获得历史记录,如何解析网页,涉及到 cookie 复用和网页解析,或许可以通过浏览器插件实现?
我的意思其实并不是实现难度,而是这种方式,设计初衷是隐私优先,只索引用户主动添加的东西,持续监控浏览器,保存用户浏览器内容这件事本身就违背了设计初衷。前面的 microsoft recall 就是个很好的例子。
好用,我主要本地搜索文件内容用来代替 everything 不错。
反馈一个搜索卡顿问题:反复输入、删除 “vscode” 时,可能先触发很耗时的单个字符“v”的查询;旧版只丢弃结果、不取消查询,导致数据库连接被占用,后续搜索卡住。
让 gpt 修了一下:前端只保留最新请求,后端用 SQLite InterruptHandle 取消旧查询并释放连接。修改后连续输入和快速重复搜索均正常。没事没事,不在同一个赛道就好了。
这名字啥意思, 最近不少项目都叫这个。
这个名字好像和另一个玩 galgame 的提升分辨率的插件撞车了,之前植物大战僵尸还没出重置版的时候我也用过。
不是一个赛道,没啥可喷的。贾维斯现在有多少了。
- RustyWolf21243分钟前⭐️ 新访客5929
Magpie这想法不错,但用户真的会记得自己存过什么内容吗?我线上见过太多人连自己文档名都记不清的。
收到反馈,谢谢,马上改!
- JackalZhao43分钟前⭐️ 新访客5959
浏览器历史记录只能检索到标题,页面中的内容无法检索。对的,所以我上面就提到了,用浏览器插件监控用户的网页,并解析结果返回给本地的 magpie 客户端。
github 上也挺多 muninn 这个名字的。暂时先这样吧,我觉得名字没啥好纠结的。
有没有考虑改名 Muninn ,同样是鸦科()
我搓过类似的,但是完成度太低了,你这个好,直接用了,主要手机里面图太多了,经常要斗图。
这个名字太多重名。
欢迎使用,有什么问题随时提!
偶偶,是的,这个名字没起好,我后来是搜了一下,同名的挺多的,不过这个 spotlight 的 Launcher 倒还没有重名。

