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 重试。
- 新增
auto、sdk和http三种传输模式。
实现原理
Skill 将普通关键词或 Everything 查询表达式交给 Python 脚本。
Python 使用
ctypes 绑定 Everything Unicode SDK 接口。桌面同 Session 场景优先使用官方 SDK IPC,保持原有快速路径。
IPC 错误码 2 时查询本机 HTTP JSON,并统一输出完整路径。
速度来自 Everything 已经维护好的文件名索引。脚本只查询现成索引,因此与逐目录扫描相比,磁盘访问更少,响应也更稳定。Everything 后台进程仍然是必需条件。
为什么把 DLL 做成文本载荷
不同 Skill 平台对二进制附件的支持并不一致。为了让同一个 Skill 能在文本型分发平台完整安装,我把 voidtools 官方 SDK 中的 x86、x64、ARM 和 ARM64 DLL 转换为 Base64 文本载荷。
首次调用时,脚本会按 Python 运行架构选择对应载荷,释放到系统临时缓存,核对 SHA-256 后再加载。后续调用只复用校验通过的缓存文件。官方 DLL 的来源、许可证和哈希记录随 Skill 一起分发。
使用方式
先确保 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.1、localhost 或 ::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 文档为准。