SearchForge
Index your files once, then get results back with no disk scan at all.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get SearchForge
Index your files once, then get results back with no disk scan at all.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, SearchForge is included in every plan along with the rest of the range.
Pay the cost once
Live search tools re-walk the tree and re-read every file each time you type a query. SearchForge doesn’t. You run searchforge index ~/docs --index docs.json once, which is slow, and after that a query is a map lookup against the stored file. Move that folder away entirely and queries still answer from the index alone.
Several terms are ANDed by intersecting each term’s file list, so query invoice 2024 returns only files holding both.
Updating without rebuilding
The index stores, per file, the exact list of tokens that file contributed. Re-running index compares size and mtime: unchanged files are left completely alone, changed ones are re-tokenised, and a file you deleted has its path surgically removed from just its own token buckets. --rebuild throws all of that away and starts from nothing.
Binary files get their name and nothing else
One NUL byte anywhere in the first 8KB and the file is treated as binary, so its content is never read for tokens. The filename still is.
No phrases, no regex, yet
A token is a run of letters or digits, lowercased, and every other character is a separator that gets discarded. That buys the speed and costs you phrase search. OCR indexing and a quick launcher are roadmap.
Reading on the job itself
- How to search your files by what is inside them Two approaches, and the right one depends on how often you will search. Reading the disk each time is alway...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of the persistent-index engine: build a real inverted index once, then query it near-instantly with no filesystem re-scan — proven by moving the indexed folder away entirely and confirming queries still work from the stored index alone. OCR indexing and a quick-launcher UI are still on the roadmap.
Naming status
Working name only — brand verdict **AVOID** (Very High). Collision: SearchForge. Do not use.
What it draws on
Existing paid software whose best ideas shaped this program: dtSearch Desktop, FileLocator Pro, Listary Pro, Copernic Desktop Search.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
SearchForge - persistent inverted-index search tool
SearchForge is the "Pro" tier build-once/query-many search engine: build an
on-disk index once, then run many near-instant queries against it without
ever re-walking or re-reading the filesystem being searched.
Usage:
searchforge index <dir> --index <indexfile> [--rebuild]
Walk <dir> and build/update the inverted index at <indexfile>.
Without --rebuild, an existing index is updated incrementally:
unchanged files (same size+mtime) are left alone, new/changed files
are (re)tokenized, and files that no longer exist are removed.
--rebuild ignores any existing index content and rebuilds from
scratch.
searchforge query <term...> --index <indexfile> [--json] [--max N]
Look up one or more space-separated terms in the index (AND
semantics: a file must contain every term to match). This is a
direct map lookup against the stored index - it does not touch the
filesystem that was indexed. --max limits printed results (default
50). --json prints structured JSON instead of plain text.
searchforge stats --index <indexfile> [--json]
Report index metadata: file count, unique token count, index file
size, and when it was built/last updated.
searchforge help
Show this message.
Flags accept "-flag value" or "--flag value" form.
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan