开源 Everything 本地搜索 Skill:不扫盘,直接查询后台索引
技术 5

Windows · Everything SDK · IPC · HTTP JSON

开源 Everything 本地搜索 Skill:不扫盘,直接查询后台索引

这是一个面向 Codex 和其他 Agent 的 Windows 本地搜索 Skill。v1.1.0 新增本机 HTTP JSON 通道,在 SSH、Windows 服务和计划任务中遇到跨 Session IPC 错误时可自动回退。

这次解决了什么

  • 通过 Everything 原生搜索语法快速定位文件和文件夹。
  • 直接返回完整路径,适合 PowerShell、Python、RPA 和 Agent 后续处理。
  • 支持文件、文件夹、分页、JSON 输出以及 Codex 会话日志定位。
  • 不依赖 es.exe,也不会打开 Everything 搜索窗口。
  • SDK 返回 IPC 错误码 2 时,自动通过本机 Everything HTTP JSON 重试。
  • 新增 autosdkhttp 三种传输模式。

实现原理

1. Agent 调用
Skill 将普通关键词或 Everything 查询表达式交给 Python 脚本。
2. SDK 封装
Python 使用 ctypes 绑定 Everything Unicode SDK 接口。
3. 优先 IPC
桌面同 Session 场景优先使用官方 SDK IPC,保持原有快速路径。
4. HTTP 回退
IPC 错误码 2 时查询本机 HTTP JSON,并统一输出完整路径。

速度来自 Everything 已经维护好的文件名索引。脚本只查询现成索引,因此与逐目录扫描相比,磁盘访问更少,响应也更稳定。Everything 后台进程仍然是必需条件。

为什么把 DLL 做成文本载荷

不同 Skill 平台对二进制附件的支持并不一致。为了让同一个 Skill 能在文本型分发平台完整安装,我把 voidtools 官方 SDK 中的 x86、x64、ARM 和 ARM64 DLL 转换为 Base64 文本载荷。

首次调用时,脚本会按 Python 运行架构选择对应载荷,释放到系统临时缓存,核对 SHA-256 后再加载。后续调用只复用校验通过的缓存文件。官方 DLL 的来源、许可证和哈希记录随 Skill 一起分发。

验证结果:释放后的 64 位 DLL 与官方源 SHA-256 一致,Windows Authenticode 签名有效,签名者为 voidtools PTY LTD;真实 IPC 查询已返回本机文件结果。

使用方式

先确保 Windows 上的 Everything 后台进程正在运行,然后在 Skill 目录执行:

python scripts/search_everything.py "report" --limit 100
python scripts/search_everything.py "ext:xlsx 供应商" --type file
python scripts/search_everything.py "项目资料" --type folder --json
python scripts/search_everything.py "report" --transport http
python scripts/search_everything.py "report" --transport http --http-url "http://127.0.0.1:22080/"

脚本接受 Everything 搜索语法。默认使用 --transport auto:先尝试 SDK IPC,仅在错误码 2 时回退到 HTTP。默认每行输出一个完整路径;使用 --json 时会同时输出结果类型。

为什么 SSH 中进程存在仍会报 IPC 错误码 2

Everything SDK 的 IPC 基于 Windows 窗口消息。桌面 Everything 客户端通常位于交互式 Session,而 Windows OpenSSH、服务或计划任务可能运行在另一个 Session。即使两边使用同一个用户,Windows 仍不允许窗口消息跨 Session 通信,因此 SDK 会判断 IPC 不可用。

v1.1.0 不再要求 SSH 会话额外常驻第二个 Everything 客户端。自动模式检测到错误码 2 后,会读取 EVERYTHING_HTTP_URL、命令行参数或 Everything.ini 中的 HTTP 端口,然后通过环回地址查询。HTTP 地址只接受 127.0.0.1localhost::1

Codex 会话日志定位

Skill 也包含 Codex 会话日志的定位流程:先通过 Everything 按日期、会话 ID、路径和扩展名找到候选 JSONL,再用文本搜索或逐行 JSON 解析查找正文。文件名索引与正文检索是两个步骤,不能混为一谈。

处理会话日志时只读取用户指定的会话和字段;发现令牌、Cookie、密钥或其他敏感信息时不得回显。

安全边界

  • 默认只返回 Everything 索引中的路径,不主动读取文件内容。
  • 不启动、不操控 Everything 图形窗口。
  • 不包含访问令牌、账号、Cookie、本机用户名或私人绝对路径。
  • 只使用 voidtools 官方 SDK 载荷,并在运行时校验固定 SHA-256。
  • 支持用 --dll 或环境变量覆盖,但应只使用架构匹配且来源可信的 DLL。
  • HTTP 回退仅允许本机环回地址,不把索引查询发送到外部服务器。
  • Everything HTTP 服务应绑定到 127.0.0.1,并关闭不需要的文件下载能力。

公开发布状态

公开 Slug:everything-search-ipc

版本:1.1.0

ClawHub:1.1.0 已发布。

SkillHub:1.1.0 已提交,内容审核、安全扫描和人工审核进行中。

Everything SDK 的接口与 IPC 说明以 voidtools 官方 SDK 文档为准。

开源 Everything 本地搜索 Skill:不扫盘,直接查询后台索引
https://www.quietphoenix.top/archives/everything-search-ipc-skill
作者
QuietPhoenix
发布于
更新于
许可