Omni:Mac 本地语义搜索
一款原生 macOS 应用,用语义而非文件名搜索本机的文本、图片、音视频等各类文件,全程离线运行。
- 浏览
- 5
- 访问
- 0
- 下载
- 0
- 版本
- v0.19.8
- 平台
- macOS
详细介绍
项目简介
Omni 是一款原生 macOS 语义搜索应用。它把文本、代码、PDF、幻灯片、表格、图片、音频和视频放进同一个向量空间,因此任意一条查询都能找到任意类型的文件。
内置的嵌入模型 jina-embeddings-v5-omni 被移植到 MLX-Swift,在本机 GPU 上以进程内方式运行:不需要 Python,不需要服务器,也不经过云端。模型下载完成后,即使拔掉网线也能正常搜索。

主要功能
- 跨类型语义搜索:文本、代码、PDF、幻灯片、表格、图片、音频、视频统一检索。
- Finder 式浏览:界面操作接近 Finder,基于 Metal 加速,并随文件变化持续更新索引。
- 全离线:模型下载后搜索完全在本机完成,不依赖网络。
- 可选 OCR:可额外下载 OCR 模型(4.2 GB),用于转录扫描件和照片中的文字。
- Linked Macs 联机搜索:通过
File > Link a Mac,在两台安装了 Omni 的 Mac 上打开该功能,选择对方设备,再输入其中一台显示的六位验证码即可配对。此后本机搜索会同时搜索对方的索引,并使用对方的 GPU,对方的文件像本地文件夹一样打开。不涉及服务器:设备在局域网内互相发现,或经 VPN 按地址连接;链路为 TLS 1.3,密钥在配对时固定。关机或休眠的 Mac 会直接跳过。 - 本地 HTTP API:在
Settings > Serving中开启后,会在127.0.0.1:51234暴露接口,并在/mcp提供 MCP 端点。
安装与使用
从 hanxiao.io/omni 或 Releases 下载 DMG,把 Omni 拖入 Applications 即可。构建已公证,不会弹出 Gatekeeper 提示。
首次启动时,Omni 会从本仓库的 GitHub Releases 下载搜索模型(约 1.9 GB),之后不再联网。
开启 Serving 后可以这样调用:
curl -sX POST localhost:51234/v1/search -d '{"query": "invoice from march"}'
curl -sX POST localhost:51234/v1/sources/add -d '{"path": "~/Projects"}'
如果想从源码构建:
brew install xcodegen
export OMNI_TEAM_ID=XXXXXXXXXX # 你的 Apple Team ID,免费账号也可用于本地构建
./Scripts/build-app.sh
构建需要 Xcode 26 与 Metal Toolchain。应用会自行下载模型;设置 OMNI_MODEL_DIR 可以改为指向本地模型副本。make test 会运行测试套件,包括与 Python 参考数据进行的数值一致性校验。
注意事项
- 仅支持 Apple Silicon Mac(M1 或更新)与 macOS 14 及以上系统。
- 首次启动必须联网下载搜索模型;OCR 模型为可选项。
- 应用本体采用 Apache-2.0 许可;模型权重遵循上游 Jina 许可(CC-BY-NC-4.0)。
- Linked Macs 依赖局域网互通,或通过 VPN 按地址直连,无需也不会经过中心服务器。
本作品整理自 GitHub 开源项目 hanxiao/omni-macos,原作者 @hanxiao,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.19.8当前版本
Serving 搜索接口调整:内容键改为十六进制表示,每条命中结果都返回大小信息,REST 分页请求统一由同一资源池处理。
- v0.19.7
新增对演示文稿、工作簿及其 PDF 中未携带文本页面的索引能力,站点与 README 补充幻灯片和表格说明;修复 read_file 读取 Windows 换行文件时第 1 行之后内容异常的问题。
- v0.19.6
明确提示文件夹范围过宽的原因;历史记录超过 30 天后按月折叠;历史记录取消数量上限、减少渲染次数,并缩短搜索等待时间。
评论