[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2djp85jtpj3yn":3},{"code":4,"message":5,"data":6,"timestamp":46},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":42,"homepage":43,"updated_at":44,"history":45},"xerj-org\u002Fxerj",8,"Local-first search engine and MCP server for AI agents. One Rust binary indexes code, docs, logs, JSONL\u002FCSV and PDFs for BM25 full-text, vector and hybrid search, code search without grep, agent memory and RAG. Elasticsearch-compatible API; Corpus Hub serves hundreds of reference memory corpora.","Rust",15237,1055,12285,116,[],"A local Rust search engine and MCP server so coding agents retrieve cited passages instead of grepping whole files.","## The problem\n\nCoding agents still explore a repository the way a person with grep does: match a pattern, pull whole files into context, read around to find the answer. On large trees or unfamiliar dependencies that means a lot of input tokens spent on code the model never needed. XERJ indexes a folder once into a local search node — code, docs, logs, CSV\u002FJSONL and PDFs — and exposes ranked passages with `file:line` citations over MCP, so the agent asks a question and gets the snippet rather than the file.\n\n## What's different\n\nThe usual alternatives are grep-based tooling, a hosted search service, or pasting context manually. XERJ's bet is packaging: one static binary with BM25, vector and hybrid search, an Elasticsearch-compatible API, and an MCP server in the same process, so there is no JVM or separate service to operate. The default embedder is lexical and offline, with the neural one opt-in. Its other distinct move is \"reference coding\" — cloning and indexing open-source repos near the task so the agent reuses prior solutions. That is an approach, not a feature, and it changes how you think about what belongs in the index. The README's 2.7x token-reduction study is self-published on 8 tasks, so treat it as a hypothesis to verify, not a benchmark.\n\n## Who it's for\n\nIndividual developers running Claude Code or Cursor on a laptop, and small teams who want search to stay local without standing up Elasticsearch. It fits best when there is a stable, sizable corpus: a monorepo, a docs set, or a log archive. Look elsewhere if you need multi-tenant, authenticated search serving many users — the quick-start `--insecure` mode disables TLS and API-key auth, and the hardening story is deferred to a docs page. Teams already invested in a managed vector database will not gain much.\n\n## Cost of adoption\n\nThe README's install path is a shell pipe from xerj.org:\n\n```sh\ncurl -fsSL https:\u002F\u002Fxerj.org\u002Fget | sh\n```\n\nThen a data dir, `xerj init` to wire MCP into the agent, and `xerj autoindex`. Apache-2.0, Rust, single binary, no JVM. Real costs are operational: keep the data directory out of any tree you index (the README warns the node will index its own storage), decide on the embedder (neural adds a ~90 MB download), and learn the security model before binding beyond localhost. The project also asks for a field-report PR as a kind of membership card, which is unusual and worth knowing before you commit.\n\n## Verdict\n\nXERJ is young — created in June 2026, so roughly four months old at the time of these signals — yet it has already collected about 15.2k stars and is moving fast on HotRepo's Rust boards: #2 weekly at +7,783 and #8 monthly at +12,285. That pattern (rapid, recent, board-driven growth with no Hacker News discussion) reads as a spike riding the agent-tooling wave rather than a long-settled project. The architectural choices are coherent and the Elasticsearch-compatibility angle is a genuine differentiator, but the self-reported benchmarks and a security model that starts with `--insecure` argue for a trial on a scratch corpus before it becomes load-bearing in your workflow.",{"slug":19,"name":20},"ai-engineering","AI Engineering",[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"agent-memory","ai-agents","bm25","claude-code","cli","code-search","cursor","elasticsearch","elasticsearch-alternative","full-text-search","hybrid-search","jsonl","local-first","mcp","mcp-server","model-context-protocol","rag","rust","search-engine","vector-search","Apache-2.0","https:\u002F\u002Fxerj.org","2026-10-24T14:36:58Z",[],1792867589]