yurijmikhalevich/rclip

grep for images – local, offline image search for the terminal

rclip – 图像的 grep 工具

这是什么rclip 是一个命令行工具,允许你使用自然语言、示例图片或两者的组合,在你自己的计算机上的图像文件内容中进行搜索。它会为文件夹中的图像构建一个本地的基于 CLIP 的嵌入索引,然后对查询结果进行排序,整个过程不会将任何数据发送到云端。

主要功能

  • 仅文本搜索 – 例如 rclip "两只鹦鹉在树枝上"
  • 反向图像搜索 – 提供本地路径或 URL,获取视觉上相似的图片。
  • 混合/算术查询 – 可以组合或减去文本和图像项,可选地加权(2:金毛寻回犬 + ./pool.jpg - 水果)。
  • 增量索引 – 后续运行时仅处理新文件或已更改的文件,使重复搜索快速高效。
  • 交互式终端界面 – 一个在支持 Kitty 图形的终端(Kitty、Ghostty、iTerm2、Konsole)中工作的缩略图网格。键盘快捷键可让你在不离开 shell 的情况下浏览、复制、下载或打开图像。
  • 广泛的格式支持 – JPEG/PNG/WebP/TIFF/GIF 以及 macOS/Windows 上的原生 HEIC;通过标志支持实验性 RAW 格式(arwcr2dng)。
  • 跨平台 – 以 Snap、AppImage、Homebrew 公式、MSI 安装程序和 pip 轮子形式打包;可在 Linux、macOS(仅 Apple Silicon)和 Windows 上运行。

工作原理

  • 使用 OpenCLIP ViT-B/32 模型(与 OpenAI 的 CLIP 使用相同架构)将图像和文本都转换为 512 维嵌入。
  • 嵌入被本地存储在每个文件夹的简单索引中;通过计算查询嵌入与存储的图像嵌入之间的余弦相似度来回答查询。
  • 所有计算都在 CPU 上进行(如果底层 PyTorch 构建支持 GPU 则使用 GPU),因此该工具可离线运行并保护你的照片隐私。

典型工作流程

# 首次运行 – 为当前文件夹构建索引
cd ~/Photos && rclip "湖上的日落"

# 后续运行速度很快(仅索引新文件)
cd ~/Photos && rclip "两只猫"

# 带内联预览的交互式界面
rclip --interactive

# 图像到图像的搜索
rclip ./example.jpg

该工具还可以输出纯文件路径(-f),以便管道传递给其他命令(例如 xargs cpfeh 或自定义脚本)。

安装

  • Linuxsudo snap install rclip(或下载 AppImage,或使用 PyTorch CPU 轮子安装 pip install rclip)。
  • macOSbrew install yurijmikhalevich/tap/rclip(Apple Silicon)或 pip install rclip
  • Windows – 从最新发布版下载 MSI 安装程序,或 pip install rclip

许可证 – MIT。

了解更多 – README 中链接了博客文章、YouTube 演示和一篇简短论文;欢迎通过 GitHub Discussions 页面参与讨论和贡献。

一个真正强大的本地图像搜索工具,无需上传数据,即可通过自然语言或图像示例找到你想要的照片。— @yurijmikhalevich

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目