pi-everything-search
v1.1.1
Published
Pi extension: ultra-fast file search via Everything (voidtools) — replaces slow find/ls/grep
Maintainers
Readme
pi-everything-search
Pi extension: ultra-fast Windows file search via Everything and es.exe.
It registers everything_search, nudges agents away from slow filename searches, auto-detects Everything instances, and can silently start Everything when IPC is unavailable.
Requirements
- Windows for Everything runtime search
- Everything 1.4, 1.5 beta/release, or legacy 1.5 alpha
es.exein PATH
scoop install everything-beta everything-cliLinux/macOS CI still runs type checks and non-Windows guard tests, but Everything search itself is Windows-only.
Install
pi install npm:pi-everything-searchWhat it does
| Feature | Behavior |
| --- | --- |
| everything_search tool | Search filenames/folders through es.exe with structured results |
| Auto-start | If IPC is unavailable, start Everything.exe -startup silently and retry |
| Readiness wait | Wait for IPC, then run a lightweight JSON query before searching |
| Instance detection | Try default first, then legacy 1.5a for old alpha builds |
| Soft hints | Notify when agent uses slower filename search commands |
| System prompt | Adds concise Windows file-search guidance |
| Details | Returns count, truncation flag, files, detected instance/version, warnings |
Tool parameters
| Parameter | Default | Description |
| --- | --- | --- |
| query | required | Everything search query |
| max_results | 100 | Result cap, 1-1000 |
| path_filter | unset | Limit search to a folder; maps to -path |
| instance | auto | auto, default, 1.5a, or custom instance name |
| match_case | false | Case-sensitive query |
| regex | false | Treat query as regex |
| files_only | false | Exclude folders; maps to /a-d |
| sort_by | date-modified | name, path, size, date-modified |
| auto_start | true | Start Everything silently when IPC is unavailable |
| everything_path | auto | Full path to Everything.exe if not discoverable |
| startup_timeout_ms | 15000 | Wait time for IPC after auto-start |
| index_ready_timeout_ms | 30000 | Wait time for query readiness |
| probe_interval_ms | 500 | Startup/readiness polling interval |
| wait_for_index | query-ready | none, query-ready, or strict |
Instance behavior
| Value | Behavior |
| --- | --- |
| unset / auto | Probe default instance, then legacy 1.5a |
| default | Force no -instance |
| 1.5a | Force legacy alpha instance |
| custom string | Force custom Everything instance name |
Search syntax examples
| Query | Matches |
| --- | --- |
| ext:ts | TypeScript files |
| ext:py;js | Python and JavaScript files |
| *.config.* | Files with .config. in name |
| test* | Files starting with test |
| folder:src | Items under folders named src |
Regex:
{ "query": ".*\.test\.ts$", "regex": true }Path filter:
{ "query": "ext:dll", "path_filter": "C:\Windows", "files_only": true }Strict startup/readiness:
{
"query": "package.json",
"auto_start": true,
"wait_for_index": "strict",
"startup_timeout_ms": 30000,
"index_ready_timeout_ms": 60000
}Disable auto-start:
{ "query": "ext:ts", "auto_start": false }Auto-start details
When es.exe reports IPC not found, the tool:
- Locates
Everything.exefromeverything_path, PATH, Program Files, LocalAppData, or Scoop locations. - Starts it silently with
Everything.exe -startup. - Polls
es.exe -get-everything-versionuntil IPC is ready. - Runs
es.exe -json -n 1 *to confirm query readiness. - Executes the requested search.
wait_for_index: "query-ready" treats readiness timeout as a warning and still attempts the real search. strict fails instead.
Troubleshooting
es.exe not found
Install Everything CLI and ensure es.exe is in PATH.
scoop install everything-cli
where es.exeEverything.exe not found
Install Everything or pass everything_path.
scoop install everything-betaEverything IPC not found
Default behavior now tries auto-start. If it still fails:
- Open Everything manually once.
- Increase
startup_timeout_ms. - Check whether Everything and pi run at different privilege levels.
Permission mismatch
If pi/terminal runs elevated while Everything runs as normal user, IPC can fail. Run both at same privilege level.
Legacy 1.5a
Use:
{ "query": "ext:ts", "instance": "1.5a" }Development
npm ci
npm run check
npm run e2e:non-windows # Linux/macOS
npm run e2e:windows # Windows with Everything installedGitHub Actions run:
- CI on Windows/Linux/macOS
- Windows E2E with Everything +
es.exe - Non-Windows guard E2E
- npm publish on
v*tags
License
MIT
