HTTP API: add compact path-list output for automation

Have a suggestion for "Everything"? Please post it here.
Serg2000Mr
Posts: 4
Joined: Wed Apr 15, 2026 6:05 am

HTTP API: add compact path-list output for automation

Post by Serg2000Mr »

Everything HTTP already supports JSON output with json=1, which is useful for structured integrations. I would like to request a compact, line-based output mode for automation and agent tools.

For agent workflows, this is not only more human-readable, but also much more token-efficient. Tool output is often shown in chat or stored in logs, and large JSON/HTML responses consume many more tokens than a simple list of matching paths.

Use case:

I run automation in restricted environments such as LLM agent sandboxes and Docker containers on Windows. In these environments, the Everything CLI may not be able to access the user session IPC window, while the local Everything HTTP server on 127.0.0.1 or a forwarded port works reliably.

The current JSON request works, but it is verbose:

http://127.0.0.1:8888/?s=V8PulsarProxy. ... scending=0

For many automation tasks, the most useful output is simply the full matching paths, one per line, similar to es.exe output:

http://127.0.0.1:8888/?s=V8PulsarProxy.epf&format=paths

Example output:

C:\1C\Выгрузки баз\УТ\V8PulsarProxy\V8PulsarProxy.epf
C:\1C\Проекты\WatchDog1C\v8-pulsar\Resources\V8PulsarProxy.epf
C:\Users\Sergey\AppData\Local\Temp\V8PulsarProxy.epf

This would be useful for both humans and agents:

- humans can quickly inspect tool output in logs or chat;
- agents can consume it with simple line-based processing;
- it is more token-efficient for LLM agents because the tool output contains only the useful paths;
- it matches the familiar CLI style of es.exe;
- it avoids parsing HTML or printing large JSON objects for simple file lookup.

As a complementary structured option, it would also be helpful to have a full_path field in JSON:

http://127.0.0.1:8888/?s=V8PulsarProxy. ... h_column=1

But the main request is a compact text path-list mode for the HTTP server.
void
Developer
Posts: 19899
Joined: Fri Oct 16, 2009 11:31 pm

Re: HTTP API: add compact path-list output for automation

Post by void »

I will consider a full path option for json.
I will consider a text/plain option for the http server.

Thank you for the suggestions.



For now, what about a HTTP server wrapper for ES?

The following worked for me:

Code: Select all

$esPath = "C:\Tools\es.exe"  # <-- update this to your es.exe location
$everythingInstance = "1.5a"  # <-- update this to your everything instance name (1.5a for the alpha version)

$listener = New-Object System.Net.HttpListener
$listener.Prefixes.Add("http://localhost:8080/")
$listener.Start()
Write-Host "Server listening on http://localhost:8080/"
Write-Host "Usage: http://localhost:8080/?s=*.log"

while ($listener.IsListening) {
    $context = $listener.GetContext()
    $request = $context.Request
    $response = $context.Response

    $query = $request.QueryString["s"]

    if ($query) {
        try {
            $esOutput = & $esPath -instance $everythingInstance $query 2>&1 | Out-String
            $body = $esOutput
            $response.StatusCode = 200
        } catch {
            $body = "Error: $_"
            $response.StatusCode = 500
        }
    } else {
        $body = "Missing ?s= query parameter.`nExample: http://localhost:8080/?s=*.log"
        $response.StatusCode = 400
    }

    $response.ContentType = "text/plain; charset=utf-8"
    $bytes = [System.Text.Encoding]::UTF8.GetBytes($body)
    $response.ContentLength64 = $bytes.Length
    $response.OutputStream.Write($bytes, 0, $bytes.Length)
    $response.OutputStream.Close()
}
http://localhost:8080/?s=foo