Home
TR

Four faces

A terminal command, a desktop window, a browser page and a full-screen terminal — which is for what, and what they share.

Scour is one service. scourd holds the index, listens to the filesystem and answers over a socket. Every interface you see is a client of that socket — none of them opens the index itself, and none is more “real” than another.

The practical consequence: the settings are shared. The language you pick in the window applies in the browser too. Column widths, sort order, ignore rules — all of it sits beside the index, and every face reads from the same place.

scour — the terminal command

scour report                   # search
scour "ext:pdf size:>1mb" -n 20
scour tree /usr/share --depth 2
scour du ~/Projects            # folder sizes
scour status                   # what the index is doing
scour where                    # where settings and index live
scour syntax                   # the whole query language

Its output is made to be piped. This is the face xargs and your scripts use.

scour-gui — the window

A native desktop window in Rust and Slint. The CPU draws it, and that is a choice that was measured: the GPU renderer wins nothing on idle CPU for this scene while costing 24 MB more memory and doubling the time to first row. A list of text gives a GPU nothing to do.

Twelve columns to pick from (the at the end of the header row), drag and resize; a name that was cut says the whole of itself on hover. Selections multiply, the preview opens beside the list, the right-click menu behaves like a file manager’s. A second scour-gui does not open a second window — it brings the first forward, which is what makes a hotkey safe to bind. It opens on a query:

scour-gui --query "ext:pdf dm:30d"

scour-web — the browser

It opens a port on your own machine and serves the page from there; there is no remote server. The link carries a token, and the token changes every run — an old link does not work.

The same twelve columns, grid and large-icon views, the system’s own thumbnails, CSV export, duplicate finding and a report tab.

scour-tui — full-screen terminal

A full-screen terminal face written with ratatui. It works wherever a window cannot open: a remote machine, a rescue shell, a server, a tmux session. Type, location and size rails on the left; the result list in the middle; the distribution over time below.

scour-mcp — for language models

A Model Context Protocol server. It opens the same index so a model can explore a filesystem: eleven read-only tools, every answer bounded and saying when it was cut — scour_tree lists a directory of a million files as fast as one of ten and says how many it left out, which is the only way such a thing fits in a context window.

scour mcp-config                    # Claude Desktop
scour mcp-config --for claude-code  # one command: claude mcp add …
scour mcp-config --for codex        # ~/.codex/config.toml

cursor, gemini and vscode too; each says which file it goes in.

Which face opens

The application menu entry and the hotkey (Super+F on GNOME and KDE, bound by the installer) do not name a face — they ask for Scour, and which face that means is a preference you set from inside one of them. The “how should it run” button in any interface changes it.