Search Intelligence

LocalLens

Search every teammate's index at once and find out who else has the same file.

Free right now — no account, no card

Get LocalLens free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design LocalLens, 1 of 1
Screenshot LocalLens running on Windows today

Free while we’re in preview

Get LocalLens

Search every teammate's index at once and find out who else has the same file.

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, LocalLens is included in every plan along with the rest of the range.

The question one index can’t answer

Ask any search tool on your laptop where a document is and it will tell you about your laptop. It has no idea that Priya has the same handbook, byte for byte, sitting in her Documents folder.

LocalLens works from index files. Each person runs locallens index on their own machine, which writes one small JSON file. Drop all of those into a shared folder and search them together. Every hit says which machine it came from, and any document whose SHA-256 turns up on more than one machine is marked SHARED with the list of who holds a copy. duplicates totals the wasted bytes.

Two things to know before you use it

There is no network in this. Nobody’s index reaches anyone else’s machine on its own. You copy the files into a shared folder yourself, by whatever means you already use.

An index file is unencrypted JSON. Anyone who can read it can read every indexed path, size and hash, and reconstruct a good deal of the original text. Don’t index a folder you wouldn’t hand over wholesale.

Indexes are snapshots. They go stale the moment somebody saves a file.

Reading on the job itself

Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams

A working CLI prototype of federated search: each machine builds its own index, and LocalLens queries many of them at once, attributing every hit to its source machine and spotting the same file living on several machines by content hash. Verified that same-name/different-content files are correctly not treated as copies, and the wasted-bytes arithmetic matches by hand. Index files are shared by copying, not synced — a real sharing service with permissions is on the roadmap.

Naming status

Working name only — brand verdict **RENAME** (High). Collision: Local Lens. Rename before launch.

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.

locallens - federated search across many machines' indexes (Techlosoft Search Intelligence, Team)

USAGE
  locallens index <dir> --out <index.json> --machine <name> [--max-size 5MB]
  locallens search <terms...> [--index <a.json>]... [--dir <indexes-dir>] [--machine NAME] [--limit N] [--json]
  locallens duplicates --dir <indexes-dir> [--index <a.json>]... [--json]
  locallens machines --dir <indexes-dir> [--index <a.json>]... [--json]
  locallens help | -h | --help

COMMANDS
  index       Index one machine's directory into a single portable index file.
              Text-like files only; binaries and oversize files are skipped.
              Records path, size, mtime and SHA-256 content hash per document.

  search      AND-match every term against EVERY supplied index at once.
              Results are grouped by machine and attributed to their machine.
              A document whose content hash is present on more than one machine
              is marked SHARED and every holder is listed.

  duplicates  Content-hash groups that span 2+ machines, with wasted bytes.
              Wasted bytes for a group = (machines_with_copy - 1) * size.

  machines    Inventory of the loaded indexes: machine, documents, bytes, built.

FLAGS
  --out <file>       (index)  destination index file
  --machine <name>   (index)  machine name to stamp on the index
                     (search) restrict results to this machine
  --max-size <size>  (index)  skip files larger than this (default 5MB)
                              accepts 900, 64KB, 5MB, 1GB, 5MiB
  --index <file>     index file to search; repeatable
  --dir <dir>        load every *.json index in this directory
  --limit N          (search) maximum hits to show (default 20, 0 = all)
  --json             machine-readable output

NOTES
  A malformed or unreadable index is skipped with a reason; the remaining
  indexes are still searched. Index files are never modified by search,
  duplicates or machines.

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