Skip to content
项目

newdee/magpie has 174 GitHub stars and 6 forks. GitHot measured +1 stars in 24 hours and -2 in 7 days. Last checked 2026-11-10 02:28 UTC. Last push 2026-10-31.

这些数字如何统计

Spotlight-style local search for everything you saved and forgot: GitHub stars, local files, images, and bookmarks. Privacy-first, no full-disk scanning, fully on-device.

174 星标6 forks +1 24小时

实测星标增长

24小时
+1
7天
-2
15天
更新延迟
1个月
更新延迟

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

README.zh-CN.md

原文

magpie

一个 Spotlight 式启动器,找回你存过但忘掉的一切。

English · 功能一览 →

喜鹊爱收集闪亮的东西,又出了名地忘记藏在哪。人也一样:star 过再也没打开过的 GitHub 项目、埋在项目目录深处的文件、能描述出画面却找不到的截图、迷失在浏览器 里的书签和历史、一小时前复制的那段话、藏在三层菜单里的应用。magpie 是一个 小巧的桌面启动器,把它们统统找回来。按下快捷键,输入模糊的印象(或者拖进一张 图),回车。

60 秒看完 magpie:唤出、全域搜索、OCR 识别截图与视频、输入框工具带
▶ 带声音的完整高清版 · 60s · 2.4 MB

magpie 本地检索:应用置顶命中、全文高亮

检索 GitHub stars
GitHub stars 含 README 全文检索,带排序与时间
书签与历史合并检索
书签和浏览器历史合并在一个 Web tab
剪贴板历史
剪贴板历史:复制回、多选、删除
以图搜图,显示相似度百分比
拖进一张图,最相似的文件按相似度排列

为什么选 magpie

隐私这件事,你可以自己查。

  • 永不全盘扫描。 只索引你显式添加的文件夹,把常用工作路径加进去即可, 其余任何位置永远不会被读取。文件夹内递归扫描,尊重 .gitignore(非 git 目 录同样生效),跳过隐藏文件,绝不追踪符号链接越出白名单;重复或嵌套的文件夹 会被直接拒绝。设置里的「添加常用位置…」会列出这台电脑上东西通常存去的地方 (下载、桌面、截图文件夹,Windows 上还有微信、QQ 收到的文件),带文件数, 只加你勾选的。
  • 数据不出本机。 索引是用户目录里的一个 SQLite 文件;嵌入模型通过 ONNX 在本地运行,首次下载后完全离线。书签直接读浏览器本地文件,不走任何 API、 不要账号。没有任何东西被上传。
  • 索引内容完全透明:文件夹随时一键移除(文件、全文索引、向量一并清除), 每个文件夹和 star 索引都有「从零重建」按钮。

能听懂你意思的搜索。

  • 混合检索:SQLite FTS5(BM25)关键词 + 本地语义向量 (multilingual-e5-small),RRF 排名融合。
  • 跨语言:中文查询命中英文 README 和代码,反之亦然(100+ 语言)。
  • 长内容自动分块(约 1600 字符、带重叠),每块独立向量,第 100 页里的一句 话也能被搜到,文档和 README 按最佳块得分排名。
  • 关键词命中显示高亮上下文片段(前后省略号)。
  • 毫秒级:向量常驻内存,查询嵌入约 5ms;模型预热期间关键词搜索照常可用。

一个启动器,收纳你存下的一切。

  • 六类东西,一个快捷键:本地文件(全文 + 文件名)、以内容搜图、GitHub stars、浏览器书签和历史、剪贴板、已装应用,全在 Alt+Space 之后。
  • 全屏应用之上也能唤出(macOS):浮窗直接进入你当前所在的 Space,全屏的 浏览器、终端也一样。macOS 上 magpie 住在菜单栏,不占 Dock、不进 Cmd-Tab, 和 Spotlight 一样。
  • 搜到视频内部:镜头切分 + 嵌入,一张图或一句描述直接定位到具体场景, 带精确时间范围。
  • 真正的应用启动器:输入应用名(前缀、子串或首字母缩写如 vsc)回车即 启动,开始菜单、/Applications、Linux .desktop 都覆盖。Windows 的商店应用 (记事本、计算器、画图、终端、设置等)也在,notepad 或 jsb 都能找到记事本。 中文应用名支持拼音匹配:wx、weixin、txhy 直接启动微信、腾讯会议,不用切输入法。
  • 中英双语界面:整个 UI(含托盘菜单)支持简体中文和英文,默认跟随系统, 设置里可切换。
  • 尊重机密的剪贴板历史:默认关、本地存储,密码管理器标记为机密的内容永不 记录(Windows 与 macOS 都遵守)。自己复制的密码和密钥,中间打上星号,要看 再点开;MCP 客户端只拿得到打码后的样子。可按条数和时间限制、多选删除, Shift+Enter 直接粘贴回你刚才所在的应用。Ctrl+P 钉住常用条目:置顶显 示,且不被条数/时限清理。
  • 复制的图片也进历史:截图和复制的图片带缩略图入库,SigLIP 对剪贴板同样 生效,之后用描述就能找回(「那个报错弹窗」)。
  • 截图里的字能搜,视频里的字也能搜:可选 OCR(PP-OCRv4,约 15 MB, 中英文)识别已索引图片和每个视频镜头帧里的文字,字幕、PPT、屏幕上的 代码都变成可搜的,视频命中直接跳到文字出现的时刻。设置里可选 PP-OCRv4(15 MB)或更准的 PP-OCRv6 small(30 MB),默认关闭。独立子开关 还能识别扫描版 PDF(无文字层的页面),大部头较耗时,开不开由你。
  • 越用越懂你:真正被打开的结果随时间上浮(频次 + 近期加权衰减)。这份统 计留在本机,也永远压不过更优匹配。
  • 视频从场景直接播:默认播放器是 VLC / mpv / PotPlayer / MPC 时, 镜头命中 Enter 直接从时间点开播。
  • 多显示器感知:浮窗唤出在鼠标所在的屏幕。
  • 配置随身走:一键导出/导入全部设置(GitHub token 除外)。
  • 输入框自带计算器:3*(5+2)^2、0xff + 1、100 mb to gb、 32 f to c,结果显示在首行,Enter 复制。它的兄弟们:uuid、 now / ts 1700000000、pwd 24(密码学随机密码)、b64 / unb64 / url / unurl,以及 #ff6600 显示色块和 rgb/hsl 互转。
  • 日期也会算:today + 30d、2026-10-01 - today、until 2026-10-01、 tomorrow + 3 months。单独输 2026-10-01 告诉你星期几、离今天多远。
  • 时区换算,离线可用:东京时间、time in new york、tokyo time, 或 3pm pst to beijing、9am to london(从本地时间换算)。夏令时按日期 自动处理;单独输 tokyo 仍然是普通搜索。
  • 系统命令:锁屏、睡眠、重启、关机、清空废纸篓(回收站)、切换深色模式, 中英文名都认(lock、锁屏、sp)。重启、关机和清空废纸篓要按两次 Enter。
  • 系统设置一步直达:wifi、蓝牙、显示、声音、电源、默认应用、 卸载、打印机 等十几项,中英文都认(bluetooth、分辨率),直接打开系统 设置里对应的那一页。卸载 和 存储 只在 Windows 上有;Mac 上只列出本机 确实有的面板;Linux 需要装有 GNOME 设置。
  • 路径直达:输入 D:\Projects、~/Downloads、%APPDATA% 或 $HOME/.config(粘贴带引号也行),回车打开这个文件夹;是文件的话,就在 文件夹里把它显示出来。只有真实存在的路径才会占用顶行,打到一半不会碍事。
  • 音量:vol 看当前音量,vol 40 设成 40%,vol +10、vol -10 调大调小, mute、unmute(静音、取消静音)静音和恢复。顶行先显示调整前后,回车才生效。
  • 结束进程:kill chrome 按名字列出运行中的进程和占用内存,按两次 Enter 结束选中的那个。top(或 内存)列出此刻最占内存的进程,cpu 列出最占 CPU 的;每行还会标出同名进程加起来一共多少,浏览器那二十几个小进程就不会藏在 小数字后面。port 3000(或 kill :3000)则列出正在监听这个端口的进程。 magpie 自己和系统进程永远不会列出。
  • 截图取字:单独输入 ocr,读出剪贴板里那张图片上的文字(比如刚截的图), Enter 复制。用的是 OCR 引擎,所以要先在设置里打开「图片文字(OCR)」。
  • 本机 IP:ip 显示本机在局域网里的地址,真实网卡排在虚拟网卡(WSL、 Docker)前面。直接从网卡读取,离线可用,不往外发任何请求。
  • 最近下载:dl(或 最近下载)列出「下载」文件夹里最新的文件,不用建索引; Enter、Ctrl+K 这些操作和普通文件一样。还没下完的文件不会列出来。
  • 金额大写和拼音:大写 1234.56 得到「壹仟贰佰叁拾肆元伍角陆分」,报销、写合同 都用得上。py 重庆 得到 chóng qìng,带声调;银行、长大这类常见多音词能读对, 其他多音字按最常用的读音。
  • 农历,离线可查:农历(或 nl)显示今天是「农历丙午年八月十九」,附带生肖年、 节日和当前节气;农历 2026-10-1 查任意一天。反过来,农历 八月十五、农历 腊月廿三、 农历 中秋 给出下一次是公历哪天、还有几天;节气 告诉你下一个节气,节气 清明 查下一个清明。阿拉伯数字按公历,汉字数字按农历。覆盖 1900 到 2100 年,不用联网。 法定假日和调休每年单独公布,没法推算,所以不包含在内。
  • 节气提醒:二十四节气交节当天,上午 9 点后弹一条通知,配一联应节的古诗。 每个节气备有五联,每年换一联,120 联都逐句核对过原文和出处。Windows 上点通知 会打开 magpie,显示这个节气。当天搜索框下方的小贴士里,这联诗也会和其他贴士 交替出现。中文界面默认开启,设置 → 通用 里可以开关。
  • 全半角和转义:半角、全角 转换字母、数字和符号(中文句子里的标点保持全角); unicode、html 负责转义和反转义。不带内容时都处理剪贴板。
  • 二维码双向:剪贴板里是图片时,qr 读出图中的二维码;是文字时,就把文字画成 二维码。
  • 对比两次复制:diff 逐行显示最近两次复制的文字有什么不同,需要打开剪贴板历史。
  • 倒计时:timer 25m 开会 开始倒计时,结束时弹出系统通知。单独输入 timer 列出正在进行的倒计时,Enter 全部停止。
  • 系统状况和随机:sys 显示 CPU、内存和各磁盘剩余空间。random 1 100、 pick 火锅 烧烤 麻辣烫、dice(骰子)、coin(抛硬币)。
  • 每一行都有操作菜单:Ctrl+K(macOS 上 ⌘K)列出选中结果能做的事:用默认 应用打开或在文件夹中显示、复制路径或文件本体、在终端中打开文件所在的文件夹 或用已安装的编辑器(VS Code、Cursor、Trae、Zed、Sublime Text 等)打开文件、把文件 移到回收站或废纸篓(按两次 Enter 确认)、以管理员身份运行应用(Windows)、 复制仓库的 clone 命令或把网页复制为 Markdown 链接、把剪贴板历史里的图片另存为 文件、钉住或删除剪贴条、结束进程。
  • 用你自己的软件编辑:在文件上按 Ctrl+E(macOS 上 ⌘E),用你在设置 → 本地文件里为这类文件选定的软件打开,比如图片用 Photoshop;没选软件的类型用 系统自带的编辑方式。
  • PDF 转 Markdown:在 PDF 上按 Ctrl+K,可以复制为 Markdown或另存为 Markdown…(默认存在 PDF 旁边)。所有页按顺序转换,标题、列表、表格都保留; 扫描页在开启 OCR 时会被识别,没开时会标注出来。
  • 文本动词直接处理剪贴板:单独输 json 就把刚复制的 JSON 格式化; upper、lower、trim、slug、lines(去重排序)、count(字数/ 词数/行数)同理。带参数(slug Hello World)就处理参数。Enter 把结果 放回剪贴板。
  • JSON、哈希、token、命名、二维码:json 保持键的原有顺序,json min 压成一行,json sort 按键名排序,解析不了会指出错在哪一行哪一列(日志里被转义 的 JSON 会先还原)。md5 / sha1 / sha256 计算哈希。jwt 解码 token 的 header 和 payload 并说明何时过期,全程在本机完成。snake / kebab / camel / pascal / title 转换命名风格(snake MyMacCleaner → my_mac_cleaner)。qr 生成二维码,Enter 复制成图片。
  • 搜文件时顺手缩范围:ext:pdf 或 .md、>10mb / <500kb、7d (一周内改过;2w、3m、1y)、in:projects。可以和关键词混用: 发票 ext:pdf 30d。
  • 快速记录:note 明天回邮件 把一行带时间戳的记录追加到你指定的 markdown 文件(设置 → 笔记文件)。Enter 写入,浮窗随即收起。
  • 划词搜索:在任何应用里选中文字,按 Ctrl+Alt+Space(macOS 是 Option+Shift+Space),magpie 复制选区并带着它弹出来。设置里可改键或移除。 macOS 上复制这一步要在 系统设置 → 隐私与安全性 → 辅助功能 里允许 magpie; 没有权限时 magpie 会提示,并带一个按钮直接打开那一页。
  • 空搜索框显示最近打开:开启后每个 tab 列出你最近从它打开过的条目, 回到一分钟前那个文件只要两下按键。本地文件 tab 还会列出文件夹里这一周 新增或改过的文件,刚存的截图、刚下好的文档,没从 magpie 打开过也在。
  • 空框第一屏:搜索框为空时,框内右侧显示今天的日期和星期(中文界面带农历、 节日和节气),设置里可单独关掉。本地文件页签的列表最上面是你置顶的文件夹(设置 → 本地文件,最多 4 个,可调顺序,不必在索引里,回车打开)。
  • 旧物重现(默认关闭,在设置 → 通用里打开):空框里再往下是很久以前收藏的 书签和 star 的仓库,每天换:Web 页签只有书签,Stars 页签只有仓库,本地文件页签 两个都有。那天正好是几年前收藏它的 日子就优先它(「2 年前的今天收藏的」),否则从半年前收藏、还没从 magpie 打开过的 里挑。行上只写什么时候收藏的。Ctrl+K →「不再提醒这条」,它就不会再出现。
  • 工作现场:把常一起打开的文件、网页、应用、仓库存成一组,比如「报销」。 在任一结果上按 Ctrl+K →「加入工作现场」,选已有的或新建一个。之后输入名字 按 Enter,全部一次打开;打不开的(文件已删、应用已卸载)会列出来,不影响 其余的。名字支持拼音和首字母;gzxc、ws 或 工作现场 列出全部。设置导出时一起带上。
  • 脚本命令:把脚本放进脚本文件夹(设置 → 脚本命令),开头用注释写上名字, 它就成了搜索框里的命令。格式与 Raycast 的脚本命令相同(@raycast.title、 @raycast.mode、@raycast.argument1 等),现成的 Raycast 脚本直接能用; @magpie.keyword tr 再加一个短触发词,tr 你好 就把「你好」作为参数传给它。 按 shebang 或扩展名选解释器(PowerShell、bash、Python、Node 等),在脚本所在 文件夹里运行,最长一分钟,超时连同它启动的进程一起停掉。只在你按 Enter 时运行。
  • 网页快搜:gh magpie 直达 GitHub 搜索、g … Google、bd … 百度, 前缀规则可在设置里编辑(前缀 = 带 {q} 的 URL)。
  • 表情和符号查找:输入 : 加关键词(:fire、:火),点击或 Enter 复制。 不是 emoji 的常用符号也在里面,比如 :arrow →、:乘 ×、:rmb ¥、:cmd ⌘; :sym 列出全部符号。
  • 每一行都能复制:Ctrl+C 复制这一行的标识,文件是路径、repo 和网页 是网址、剪贴条是文本。Ctrl+Shift+C 把文件本体放上剪贴板,粘到微信/ 邮件直接变附件。
  • 自动保持最新:从这版起支持签名校验的原地自动更新,无需重装。启动时 检查,常驻期间每 24 小时再查;有新版时托盘图标、设置入口和设置里的 「关于」页签都会出现红点,托盘菜单多一项「有新版本」。装不装始终由你决定。
  • 一键预览:→ 原地展开选中结果,文件正文带命中高亮、图片大图、视频 镜头条带、repo README 开头、剪贴条全文,先看清再打开。下载来的文件,浏览器 记下了来源时还会显示「下载自 github.com」,点一下打开那个网页。书签或浏览记录 会显示是哪个网站、Firefox 记下的网页简介、收藏在哪个文件夹和收藏时间、访问过 几次以及浏览器还记得的最早和最近一次访问;都来自浏览器自己的文件,不联网。
  • 顺序随你排:自定义 tab 顺序、指定启动时(也可以是每次唤出时)打开哪个 tab。
  • 自己教你用:空搜索框下方一行小贴士,快捷键或隐藏技巧,每次唤出 随机一条(设置里可关)。
  • 网络不通也能用:一键切 hf-mirror.com 下模型,断点续传 + 实时进度。 Hugging Face 和镜像都不通时,自动回落到 magpie 自己的 GitHub Release 资产(和 ffmpeg 同一套兜底)。
  • 跨平台:Windows、macOS(Apple Silicon)、Linux。

数据源(Tab 键切换)

本地文件

添加日常工作目录后,其中任何文件都能按文件名搜到,可解析的格式支持全文 检索:

  • 近 80 种文本/代码格式,整文件读取(大小上限可配置,支持无上限)
  • PDF:经 pdf-inspector 解析(扫描页在设置里打开 OCR 和其下的「扫描版 PDF」后可搜正文,没开时仍可按文件名找到)
  • Word / Excel / PowerPoint(docx、xlsx、pptx)
  • ZIP 压缩包:按包里的文件名索引,搜一个只存在于压缩包里的文件,能找到那个包 (加了密码的也行,ZIP 的文件名不加密;Windows 自带压缩打的中文文件名也能正确读出)。 预览里列出包里的文件,命中的那个在视野内
  • 其余一切,包括视频、其他压缩包、二进制,按文件名索引
  • 范围切换(点选或 Shift+Tab):全部 / 仅文本 / 仅图片 / 仅视频 / 文件夹
  • 「文件夹」范围按名字找文件夹:记得放在哪,不记得文件叫什么时用。列出所有含已索引文件的文件夹, 同名文件夹靠路径区分,显示每个文件夹下的文件数;回车在文件管理器里打开,预览列出里面最新的文件。 名字的匹配方式和应用一样(前缀、词首、首字母、名字中任意位置、拼音);输入多个词时,每个词都出现在名字里就算匹配。没有任何已索引文件的文件夹不会列出。
  • git 的 linked worktree 在其所属 checkout 已被索引时自动跳过,一个项目开六个 worktree 不会被索引六遍。作为唯一副本的 worktree 照常索引;设置里可关。
  • 索引时每个模型(文本、图片、OCR 同一上限)最多占用 4 个 CPU 线程,嵌入过程 不会把机器占满。设置里可选 1、2、4、8 或全部核心,改完立即生效。
  • 索引文件夹里的改动几秒内进索引:文件监听上报变化,只重读被动过的路径。 每 30 分钟(可调或关闭)一次全量遍历兜底,"立即重扫"随时手动跑。
  • 图片模型只在用得上时才加载:索引文件夹里有图片或视频,或剪贴板历史里有 图片。只索引文字的话,它一点内存都不占。

图片经 SigLIP 2 嵌入,按画面内容检索:

  • 文字搜图:任何语言输入「海边日落」,匹配照片带缩略图混排在结果中。
  • 以图搜图:拖一张图进窗口、粘贴截图、或点选图按钮,返回最相似的已索引 图片,并显示余弦相似度百分比。

视频再深一层:文件夹里的每个视频按镜头切分(2 fps 抽帧 + 直方图场景变化检 测,纯 Rust 实现),每个镜头的代表帧经 SigLIP 嵌入,图片和文字查询都能命中 视频内部:结果行显示匹配镜头的缩略图和精确时间范围(3:24 – 3:42)。本地 tab 的 videos 范围把文件名匹配和画面描述搜索合在一个列表里。解码用 ffmpeg: 自动使用系统安装,缺失时从 magpie 自己的 Release 一次性下载静态版(能下 magpie 就能下它;GPL 构建,源码见 ffmpeg.org)。设置里可开关,并显示 ffmpeg 状态。预览面板里视频显示它的镜头;镜头索引还没轮到它时显示一帧画面(需本机 已有 ffmpeg,预览不会触发下载)。没有可渲染内容的文件改为显示所在文件夹、 大小和修改时间。

索引全程增量:启动时、手动刷新、常驻期间每 30 分钟自动跟进增删改。

GitHub Stars

贴一个 PAT(无需任何 scope),同步完整 star 列表:名称、描述、topics 和 README 全文(分块嵌入)。自动检测取消 star,README 用 ETag 增量拉取,只 有变化的内容才重新嵌入。结果可按相关度 / 收藏时间 / 星数排序(点选或 Shift+Tab),每行显示最后 push 时间,一眼识别弃坑项目。token 保存前先向 GitHub 核验;连上以后设置里有「更换 token」和「断开连接」,断开会删掉本机的 token 和星标索引。

应用启动

在「本地」tab 输入时,匹配的已装应用作为置顶命中出现,带应用自己的图标和 应用 徽章,Enter 启动。名字支持前缀、任一单词开头(mac → MyMacCleaner)、 首字母缩写(vsc → Visual Studio Code,mt → MacTap:驼峰命名的大写字母也算单词开头) 和子串匹配。中文名还支持全拼和首字母拼音(wx / weixin → 微信, wangyiyun → 网易云音乐),多音字全覆盖(cq、zq 都能找到重庆…), 启动应用彻底告别切输入法,设置里可开关。应用来源:Windows 开始菜单、 macOS /Applications、Linux .desktop。macOS 上文件夹里的应用(实用工具、厂商 文件夹)也能找到,应用还认它的本地化名称:活动监视器 或 huodong 都能找到 Activity Monitor,界面为中文时直接显示中文名。唤出浮窗时会刷新应用列表(最多每分钟 一次),后台也每 30 分钟刷新一次,新装或移动过的应用不用重启就能搜到;图标有缓存, 只有新装或更新过的应用才重新读取。装在别处的应用(比如外接硬盘上)可以在 设置 → 本地文件 → 应用文件夹 里把所在目录加进来:只收应用本身(macOS 收 .app; Windows 收快捷方式和程序,跳过卸载、更新程序;Linux 收 .desktop 和 AppImage),应用里的零碎文件不收。硬盘拔掉时这些应用暂时不列,插回来就回来。

应用还认别名:内置中英名对照表打通两个方向(输 lark 找到飞书、输 weixin 找到装成 WeChat 的微信),常用软件简称也是内置的(ps 找到 Adobe Photoshop 2026、ae 找到 After Effects、ppt 找到 PowerPoint,取自 Adobe 图标上的官方简称),Linux 免费吃进 .desktop 的 Keywords=/GenericName=,设置里还能自定义规则(proxy = clash,一行 一条)。别名当作第二名字参与匹配,拼音同样生效。

Web(书签 + 历史)

「Web」tab 同时检索浏览器书签和历史;Shift+Tab 切换 全部 / 书签 / 历史。历史覆盖页面标题和 URL(不只网址),按访问次数加权,常开的页面排 更前;每个 profile 只保留访问最多的页面。书签和历史来自任意 Chromium 内核 浏览器(Chrome、Edge、Brave、Vivaldi、Arc、Opera、Helium……)和任意 Firefox 内核浏览器(Firefox、LibreWolf、Zen、Floorp、Waterfox……),按磁盘上的 profile 结构自动发现,不靠固定名单;暂不读取 Safari。直接读浏览器本地存储 (全部 profile,浏览器开着时新加的书签和刚访问的页面也能搜到),按标题、 URL、文件夹路径检索;输入的词一个都没匹配上时,才按意思给出最多三条,并标注「可能相关」。同一个页面在多个浏览器里都有时只占一行,后面列出各浏览器的图标。Enter 在默认浏览器打开。

顺手一个快捷浏览器入口

magpie 也是去往网页的最短路径:在任何应用里唤出浮窗,输入网址或想搜的内容, 按 Ctrl+Enter,像网址就直接在默认浏览器打开,其余自动变成网页搜索。不用切 窗口、不用先去点浏览器地址栏。

剪贴板历史

默认关闭。在设置里开启后,复制的文本会记录到本地数据库(不是系统剪贴板 历史),从「剪贴板」tab 检索。这是唯一空查询也有用的源,直接列出你最近 复制的内容。Enter 把某条复制回去;Ctrl+Delete 删除选中;Shift+方向键 多选(Enter 合并复制多条)。密码管理器标记为机密的内容永不记录。自己复制的 内容会查一遍有没有密钥:格式公开的密钥(GitHub、OpenAI、AWS、Slack、JWT、 私钥等)不论夹在哪里都认得出;password = …、API_KEY: … 后面的值;以及整条 就是一个词、混着三类字符、像生成出来的密码的。这些只显示头尾,中间是 ****; 点行尾的「显示」(或 Ctrl+K → 显示完整内容)可看全文,浮窗失去焦点就重新 遮上。复制、粘贴出去的始终是完整内容,MCP 服务只返回打码后的样子。可按条数 (500 / 2000 / 无限)和时间(7 / 30 天 / 永久)限制历史,或一键清空。

快捷键

键 动作
Alt+Space 唤出 / 收起浮窗(设置中可重绑)
↑ ↓ / PgUp PgDn 选择 / 翻页
Enter 按类型动作:repo/书签/历史进浏览器、文件在资源管理器定位、启动应用、复制剪贴条。做完后输入框清空,下次唤出是空的(Esc 收起则保留)
Ctrl+Enter 把输入交给浏览器:像网址就直接打开,否则网页搜索
Ctrl+C 复制这一行的标识:路径、网址或剪贴条文本(Ctrl+Shift+C:文件本体)
Ctrl+K 选中结果的操作菜单(↑↓ 选择,Enter 执行,Esc 关闭)
Ctrl+E 用为这类文件选定的软件编辑选中的文件
Ctrl+Alt+Space 在任何应用里:搜索选中的文字(macOS 是 Option+Shift+Space;可改键)
Tab 下一个数据源(本地 / Stars / Web / 剪贴板,顺序在设置里定)
Ctrl+1 … Ctrl+9 直接切到对应序号的 tab,按 tab 栏顺序(设置里可改成 Alt 或关闭)
Shift+Tab 循环当前源的模式:本地范围(全部/文本/图片/视频/文件夹)、Web 范围(全部/书签/历史)、star 排序
Shift+Enter 把选中剪贴条直接粘贴到上一个应用(剪贴板 tab)
Shift+↑ ↓ 扩展多选(剪贴板 tab)
Ctrl+Delete 删除选中的剪贴条(剪贴板 tab)
→ / ← 展开 / 收起预览面板(→ 需光标在输入末尾)
Alt+, 或 Ctrl+,(macOS 上 ⌘,) 设置 ↔ 搜索 切换
Esc 关闭操作菜单 → 清除图片查询 → 关闭设置 → 收起窗口
拖拽 / 粘贴 / 选图 以内容搜本地图片

macOS 上表里写 Ctrl 的地方用 Cmd 同样有效。

浮窗固定在屏幕中上、置顶于所有窗口,按住顶部标签条可拖动。点到别的窗口时 浮窗收起:macOS 默认开启;Windows 和 Linux 默认保持显示直到手动收起,方便从 其他窗口拖文件进来。设置里两边都能切换。tab 顺序和启动时打开哪个 tab 都可 自定义;打开一个开关后,每次唤出都回到这个 tab,而不是上次离开的 tab。

命令行,以及 Wayland 下的快捷键

再运行一次 magpie,参数会交给已经在运行的那个:

  • magpie --toggle:显示浮窗,已经显示时则收起
  • magpie --source clips:打开到指定 tab,可选 local、stars、web、clips
  • magpie --query "发票":打开时搜索框里填好这段文字,可以和 --source 一起用

这些命令都可以绑到窗口管理器的快捷键上,或者写进脚本。

Wayland 桌面不允许应用自己抢占按键,唤出快捷键得由桌面来绑定。在 sway 和 Hyprland 上,magpie 启动时通过它们的 IPC 绑定快捷键,并让浮窗浮动显示,不会改动 你的配置文件;在设置里换了快捷键,也会照样重新绑定。niri、GNOME、KDE 等桌面上, 设置 → 唤出快捷键 下面会给出要绑定的命令(niri 给的是要加进 config.kdl 的几行)。

设置(托盘图标 → Settings…)

GitHub token(带连接徽章)· 索引文件夹(添加/移除/重建)· 主题(跟随系统/ 浅色/深色/纸张/纸张深色)· 界面语言(跟随系统 / English / 中文)· 开机启动 · 节气提醒 · 失焦时隐藏 · 数字键切换 tab(Ctrl/Cmd、Alt 或关闭)· 拼音匹配应用开关 · 应用别名 · 唤出快捷键(按键录制)· 划词搜索快捷键 · 笔记文件 · 空搜索框 显示最近打开 · 模型下载源(huggingface.co 或 hf-mirror.com 国内镜像)· 文件大小上限(4/16/64 MB 或无上限)· 视频镜头 搜索开关 · 解码限制(线程/硬解)· 索引线程数(1 到全部核心)· 文件变化监听 · 全量重扫间隔与"立即重扫" · 标签页顺序与默认标签页 · 剪贴板历史 开关 · 模型下载状态 · 一键原地更新(minisign 签名校验)· 设置导出/导入 · MCP 服务(给 AI 助手用,默认关闭)· 打开日志文件夹(本地运行日志,报 issue 用;搜索内容永不记录)· 版本号。

AI 助手(MCP)

magpie 可以把索引通过本机回环地址上的 HTTP 提供给 Claude Code、Cursor 等任何 MCP 客户端。默认关闭。在设置里打开"MCP 服务(给 AI 助手用)",点"复制 Claude Code 命令",粘贴到终端:

claude mcp add --transport http magpie http://127.0.0.1:端口/mcp --header "Authorization: Bearer 令牌"

其他客户端用同一 URL 和同一个 Authorization 请求头,只是填的位置不同:

  • Cursor(.cursor/mcp.json):{ "mcpServers": { "magpie": { "url": "http://127.0.0.1:端口/mcp", "headers": { "Authorization": "Bearer 令牌" } } } }
  • VS Code(.vscode/mcp.json):{ "servers": { "magpie": { "type": "http", "url": "http://127.0.0.1:端口/mcp", "headers": { "Authorization": "Bearer 令牌" } } } }
  • Codex CLI(~/.codex/config.toml):[mcp_servers.magpie] 下写 url = "http://127.0.0.1:端口/mcp" 与 http_headers = { Authorization = "Bearer 令牌" }
  • Gemini CLI(~/.gemini/settings.json):mcpServers.magpie 用 httpUrl 加 headers
  • 只会 stdio 的客户端(Claude Desktop 的本地配置属于这类):用 npx mcp-remote http://127.0.0.1:端口/mcp --header "Authorization: Bearer 令牌" 桥接

只有 Claude Code 是端到端实测过的;其他客户端以上只标出 URL 和请求头放哪, 细节看各自文档。

三个只读工具:

  • search:source 为 local / stars / bookmarks / history / clips 之一;本地搜索支持面板同款过滤(ext:pdf、>10mb、7d、in:文件夹), 排序与面板完全一致。
  • read_file:某个本地命中的已索引文本(PDF、Office、OCR 文本都在),默认 最多 20000 字符;只限已索引文件夹内的路径。
  • recent:你最近通过 magpie 打开过的东西。

边界:只绑定 127.0.0.1,端口随机分配后记住;每个请求都要带令牌(首次开启 时生成,"换新令牌"可作废旧的);非本机的 Host 与浏览器 Origin 一律拒绝; 不做任何写入。令牌和端口不会进入设置导出。若终端设置了 HTTP_PROXY,把 127.0.0.1 加进 NO_PROXY,客户端才能直连。

安装

从 Releases 下载:Windows NSIS 安装包、macOS dmg(Apple Silicon)、Linux AppImage/deb/rpm。Linux 版在 Ubuntu 22.04 及以上、以及 glibc 2.35+ 的其他发行版上可用,语义搜索用的是随包 附带的微软官方 ONNX Runtime 库。

Mac 上也可以用 Homebrew。Homebrew 6 起第三方源要先信任才能用,所以有第二行(只需一次):

brew tap newdee/tap
brew trust --tap newdee/tap
brew install --cask newdee/tap/magpie

macOS 构建自 v0.1.24 起已 Developer ID 签名并公证,像普通应用一样直接 打开,升级后文件夹授权保持不失效。

第一次启动会先显示一个简短的欢迎页,问你要不要开启语义搜索。你同意之前什么都不 下载;开启后才下载一次文本模型(约 500 MB),下载期间关键词搜索照常可用;图片 模型(约 200 MB)等索引到图片、视频或剪贴板图片后才下载。不开的话,搜索按字词 匹配(视频按文件名列出,不拆镜头),其余功能完全一样。设置 → 通用 里可以随时开关,还能暂停它,把模型占的内存 (Windows 上约 0.8 GB)让给游戏或其他大程序;托盘菜单里也有这一项。暂停期间只按 关键词搜索,直到你恢复或重启 magpie。在此之前安装的,语义搜索保持开启。

从源码构建

pnpm install
pnpm tauri dev      # 开发
pnpm tauri build    # 发布构建
cargo test -p magpie-core    # 核心测试

Linux 上先运行一次 scripts/fetch-onnxruntime.sh,它会把微软的 ONNX Runtime 库放到打包时取用的位置。开发版用 ORT_DYLIB_PATH="$PWD/src-tauri/lib/libonnxruntime.so" pnpm tauri dev 找到它。

需要 Rust、Node + pnpm、WebView2/WebKit 运行时(Windows 11 与 macOS 自带)。

架构

core/       Rust 库:SQLite + FTS5、GitHub 同步、目录索引、书签+历史+剪贴板
            +应用 数据源、e5 + SigLIP 嵌入、混合排名
src-tauri/  Tauri 薄壳:命令、托盘、全局快捷键、窗口、剪贴板监视、自动更新
src/        React 浮窗 UI(单窗口)

向量「数据库」刻意保持朴素:L2 归一化的 f32 BLOB 存 SQLite,内存暴力点积 (数万块 <15ms,100% 召回)。规模超出时可在同一数据库文件上换用 sqlite-vec。

路线图

  • Twitter/X 点赞源(通过数据导出档案,不依赖付费 API)

致谢

感谢每一位在 Issues 里报告问题、提出建议的朋友:

Tikas Hyphen-H qczlight

协议

MIT

探索相关项目