There is a version of the local-first argument that is about privacy, and a more useful version that is about correctness: a model asked to judge something it cannot see will produce a confident wrong answer, while a parser or a measuring tool will produce a boring right one. This batch sits mostly on the second side. Several of these tools run a model locally, and several deliberately do not run one at all.
Search that is allowed to return nothing
Glossdex is the clearest statement of the idea. It is private semantic search over a folder of photos and documents, and its distinguishing feature is that it returns nothing when nothing matches. A local model writes a short gloss for each file — a list of independent phrases about what is in it — and at query time glossdex decides how many results the evidence supports. Often that is one or two, and sometimes none: ask a photo library for a giraffe and you get nothing rather than ten unrelated pictures, which matters most when those ten are about to be fed to a language model as context.
anygrep is the everyday version of the same thing. It searches notes, PDFs and screenshots by meaning from the terminal, running one model, EmbeddingGemma 2 as int8 ONNX, on the CPU with a single local index. Results come back as up to ten files closest in meaning, exact substrings such as an invoice number are promoted and marked, weak matches are hidden by default, and near-duplicates appear once.
One map instead of per-session context
Mnemify is open-source context infrastructure that turns notes, wikis, tickets and meeting transcripts into one local, persistent knowledge map you and your tools can explore, query and cite. Notion, Confluence and Obsidian import today, with Jira, Slack and Gmail built and landing next.
Celorga gets to the same place through a different door: everything is stored as ordinary .org files you own, and the apps, editors, CLI and agents read them through one runtime — a Mac app, an iPhone app, a headless server for always-on agents, the celorga CLI, an MCP server, a language server and editor plugins, with no Emacs dependency.
Galahad is long-term memory for agents distributed as the galahad-kv package on PyPI, built around a very large context window and working with vLLM and SGLang servers, with the deduplication and KV-cache grafting approach published on arXiv.
Facts from a parser, not guesses from a model
Gen System reviews code changes with facts from a parser. For each change it reports what may break — a removed function still called, a changed signature with callers outside the change — what the change now touches, whether any test reaches it, and how much it grew. No model takes part, so the same change always gets the same answer, and it ships as an npm package and an MCP server covering six languages.
Pose Lab MCP makes the same argument in three dimensions. Models are weak at judging 3D space from pictures: which side of a rifle faces the eye, whether a finger sits inside the receiver. Pose Lab reports positions in named frames, how deeply anything clips, and how squarely a surface faces the eye, and its solver searches rifle moves against goals and reports which goals no move can meet. It scans an animation clip frame by frame against the same checks.
tgv does it for genomics. It is a terminal genome viewer that navigates BAM, VCF, BED and bigBed with vim-style commands, and exposes the underlying data engine through MCP so an analysis is a few lines of SQL instead of glue scripts chaining samtools, bcftools and awk — which also removes the off-by-one bugs that come from mixing 0-based and 1-based tools.
Running the model yourself
dlgo runs GGUF models locally in pure Go on CPU or GPU, with no Python, CUDA or external inference runtime. It installs as a chat CLI, a web server with a UI, and vision and image commands, and can pull compatible Unsloth GGUF releases or read any local file or HTTPS URL.
TurboGPT is the far end of that spectrum: tiny byte-level GPT training in CUDA C++, MIT licensed, which you build for your GPU's compute capability and run against a plain text file. It checkpoints model, optimizer, scheduler and trainer state and writes TensorBoard-compatible logs, with a published result of 2.5295 bits per byte on the hn1g set.
Choosing the boring right answer
The line running through these ten is not "local is more private" but "local is more checkable". A gloss is a list of phrases you can read. A file list from anygrep is something you can open. A Gen System report names the caller that still exists. A Pose Lab report gives a number in a named frame. A tgv query returns rows. None of them ask you to trust a judgement you cannot inspect.
That is also why several of them deliberately keep the model out. Gen System uses a parser, Pose Lab uses a solver, tgv uses a database, and all three will give you the same answer tomorrow that they give today. The ones that do run a model — glossdex, anygrep, dlgo, TurboGPT — run it where you can see the weights, the index and the cost, which is the difference between a tool that is wrong sometimes and a tool you cannot audit at all.