Shopify CEO's side project for your local search in CLI
Snaplyze Digest
GitHub Repos intermediate 2 min read Apr 8, 2026 Updated Apr 15, 2026

Shopify CEO's side project for your local search in CLI

“19k developers just discovered what the CEO of Shopify builds on weekends — and it solves the one thing Obsidian can't do.”

In Short

Tobias Lütke built a CLI search engine that hit 19,447 stars in just 4 months — and it runs entirely on your machine with no API calls. QMD indexes your markdown notes, docs, and code files, then searches them using BM25 + vector embeddings + LLM reranking, all locally via SQLite and GGUF models. It solves the problem Obsidian users keep asking about: semantic search that actually understands conceptual connections, not just keyword matches. The project already has 25+ community PRs and is being used as a dependency in other AI tools.

clisearchlocal-firstmarkdownvector-search
Why It Matters
The practical pain point this digest is really about.

You know that feeling when you have hundreds of markdown notes scattered across folders, and Obsidian's search finds exact keyword matches but completely misses the conceptual connection you're looking for? You remember writing something about authentication flows, but searching 'auth' returns 50 files and none of them are what you need. QMD gives you semantic search that understands 'how do users log in' should surface your OAuth implementation notes, even if those exact words never appear together.

How It Works
The mechanism, architecture, or workflow behind it.

Think of QMD like having three librarians working together: one who's great at finding exact keyword matches (BM25), one who understands the meaning behind your question (vector embeddings), and one who's a subject expert who double-checks the results (LLM reranking). You point it at your folders, it indexes everything into a local SQLite database, generates vector embeddings for each chunk of text, and when you search, it runs all three approaches in parallel then blends the results. The clever bit: it chunks code files at function and class boundaries using tree-sitter, so a 500-line Python file becomes searchable by individual functions, not as one giant blob.

Key Takeaways
6 fast bullets that make the core value obvious.
  • Three search modes — you get fast keyword search (BM25), semantic understanding (vector), or hybrid with AI reranking for best results
  • AST-aware code chunking — your Python and TypeScript files get indexed by function and class boundaries, not arbitrary line breaks, so you find the right function, not just the right file
  • MCP server for AI agents — Claude, Cursor, or any MCP-compatible AI can search your docs directly, enabling agentic workflows without you manually copy-pasting context
  • Fine-tuned query expansion model — a custom 1.7B model trained with GRPO generates better search variations, not just a stock LLM
  • Entirely local with no cloud APIs — ~2GB of models download once, then everything runs offline with zero external dependencies or data leaving your machine
  • SDK library mode — you can embed QMD directly in your Node.js or Bun apps via `@tobilu/qmd`, not just use the CLI
Should You Care?
Audience fit, decision signal, and the original source in one place.

Who It Is For

If you're a developer with hundreds of markdown notes in Obsidian, VS Code, or scattered across folders, and you've ever been frustrated that search only finds exact keyword matches — this is for you. Also valuable if you're building AI agents and need a local knowledge base they can query via MCP. Not for you if you need cloud sync, team collaboration, or a GUI — this is CLI-first, single-user, ...

Worth Exploring?

Yes, worth trying if you have a local markdown collection and want semantic search. The project is in active development (v2.1.0 released April 5, 2026 with 25+ community PRs), has clear momentum (19k stars in 4 months), and the architecture is well-documented. The main caveats: macOS requires Homebrew SQLite, Windows has reported CUDA issues (Issue #519), and there's no cloud API option — it's local-only by design. If you're on macOS or Linux with a GPU, it's a solid weekend experiment.

View original source
What the full digest unlocks

There is more here than the public preview.

This page gives you the hook. The full Snaplyze digest goes deeper so you can move from curiosity to decision with less noise.

Open the full digest to read the deeper breakdown, compare viewpoints, and get the practical next-step playbooks.

Open the full digest

Snaplyze

Go beyond the preview

Read the full digest for deep-dive insight, Easy Mode, Pro Mode, and practical playbooks you can actually use.

Install Snaplyze