xerj-org/xerj

Source
GitHub
First trending
Category
RAG and search
GitHub stars
4,248
Main language
Rust
Website
xerj.org (opens in a new tab)

This page introduces an external open-source repository. It is not an HDATF product.

xerj-org/xerj

What it does

XERJ is a search engine written in Rust that indexes local folders for AI coding agents and other programs, ships as one static binary, and implements the Elasticsearch REST API so existing Elasticsearch clients and Kibana can connect to it. The README's main use case is reference coding, in which an agent clones open-source projects close to its task, indexes them, and retrieves how they solved a problem as passages with file and line references instead of whole files found with grep. The xerj autoindex command turns the files in a folder into typed indices without a schema, parses source code with tree-sitter so symbols and line numbers are kept, and also handles files such as PDF, XLSX and mail. Search covers BM25 full-text, vector kNN and hybrid queries, and the /_memory API stores an agent's memories in a separate index per namespace and recalls them by keyword, meaning or vector. The xerj mcp command is a stdio MCP server with 13 tools that forwards calls to a node started separately, and xerj init registers XERJ with Claude Code and Cursor. It installs through an install script or binaries for Linux, macOS and Windows, the default embedder is offline feature hashing, and turning on the neural embedder downloads about 90 MB of model files once. The --insecure flag in the quick start turns off TLS and API key authentication so anyone who can reach the port is a superuser, while other starts turn on authentication with an admin key. SECURITY_MODEL.md lists limits such as TLS off by default, no field or document level security and no encryption at rest, and share links that open whole indices to guests. According to RERANK.md, a default node opens no outbound connections and sends no telemetry, and the features that send document text off the node, namely reranking through TypeSafe AI's Jev, proxy embeddings, the WAL tap and the S3 backend, work only after an operator turns them on. In the project's own study cited in the README (8 tasks in 4 languages), the agent using XERJ spent 9,982 output tokens against 26,477 for a grep-driven agent, and both had a solve rate of 16 of 16. The README says the gain holds for private or post-cutoff code and is neutral to harmful on popular libraries the model already knows, and the 40 times token saving in the repository description could not be traced to a file in the repository. The latest release at research time was the release candidate v1.0.0-rc.95 from 2026-10-12, the LICENSE file and GitHub metadata are both Apache-2.0, and code contributions require signing a CLA.

License

Apache-2.0 Permissive, with a patent grant. Commercial use is allowed; keep the notices and state your changes.

More in this category

  • ARahim3/DigUp
    DigUp is a menu bar app for Apple Silicon Macs on macOS 14 or later that searches the files in folders the user picks by their content. It is meant for people who want to find photos, screenshots, PDFs, documents, recordings and videos by describing them in their own words, and it is free and open source under the MIT license. The app runs EmbeddingGemma 2, Google DeepMind's multimodal embedding model (a model that turns text, images and sound into number vectors that can be compared), on the device. It reads images by what they show, screenshots also by their text through Apple's text recognition, PDFs page by page including scans, audio in overlapping 30-second windows, and video as a frame every few seconds plus its soundtrack. A result opens at the match where its app allows it, so a recording or video starts at its moment in QuickTime Player or IINA, and a PDF opens in Preview with words from the matching page placed in its search field. Inside, llama.cpp runs an 8-bit build of EmbeddingGemma 2 on the Mac's GPU, and the 768-dimensional vector made for every picture, page, passage and stretch of sound is stored in one SQLite file next to an FTS5 keyword index. A search compares the query vector with every stored vector and adds a boost for exact word matches, so invoice numbers and error codes in file names, document text and screenshots are found as written. It installs from the DMG on GitHub Releases or through Homebrew and needs no account, and on first launch it downloads 865 MB of model files from Hugging Face at a pinned revision and checks their size and SHA-256. According to the README, indexed content stays on the Mac, the network is used only for that download and a daily update check that can be turned off, and the app only reads files, skipping key files, certificates and hidden folders such as .ssh. After the folders are picked, the first indexing pass takes from a few minutes for a few hundred files to about an hour for a large Downloads folder, and a build from source also produces a digup command-line tool that can return search results to another program as JSON lines. The published releases, 0.6.0 and 0.6.1 from October 2026, are macOS DMGs only, and Windows and Linux builds exist in the code without a public release. The project's evals cover only English, Bengali and Arabic, and exact word matching cannot split languages written without spaces, such as Chinese, Japanese and Thai, into words.
  • yifanfeng97/Hyper-Extract
    Hyper-Extract is a Python library that extracts facts and relations from documents into structured knowledge such as knowledge graphs, and it ships the he CLI and the he-mcp server. It is meant for developers and analysts who want to turn scattered documents into knowledge that supports search and question answering. It reads txt and md files directly, and an optional install extra based on markitdown adds PDF, DOCX, PPTX and XLSX. Results are stored in structures such as lists, sets, graphs, hypergraphs, temporal graphs, spatial graphs, spatio-temporal graphs and document collections, and they can be exported to Obsidian, GraphML, CSV, JSON-LD and Cypher. Users choose among domain YAML templates such as finance, legal, medicine and industry and extraction methods such as GraphRAG, LightRAG, Hyper-RAG and KG-Gen. Extraction needs an LLM that supports function calling, a way of receiving answers in a fixed format, together with an OpenAI-compatible embedding model. According to the provider documentation, Anthropic, Gemini and DeepSeek need a separately paired embedding model, and Bailian qwen-max and deepseek-v3 support only the json_object format and cannot be used. Each document's source and content hash are recorded so only changed documents are processed again, and the content that came from one document can be rolled back on its own. The he-mcp server only reads and exports, offering tools for listing templates, viewing information, search, question answering and export. Knowledge templates accept only Chinese or English as the language option, directory processing reads only the files directly inside the given folder, and PDFs without a text layer need OCR first.
  • mongodb-developer/mongodb-jvm-showcase
    Independent MongoDB example projects for Java and Kotlin. Examples cover drivers, frameworks, RAG and vector search.
  • hydra-db/hydradb
    A Rust distributed graph database with durable S3-compatible object storage, OpenCypher queries, Bolt connectivity, and an HTTPS API. Query-serving nodes and indexers operate as separate compute roles.
  • realZachi/pg-jev
    A PostgreSQL extension that filters, ranks and classifies rows using natural-language conditions evaluated by TypeSafe's Jev. It uses returned probabilities rather than generated text.

Only repositories in the ranked Trendshift lists are included, and the lists are used only to find candidates. We do not copy their ranks. Descriptions, licenses and star counts come from each GitHub repository. The notes are our own reading. We have not tested these projects, and a place on a trending list does not prove quality.

View on GitHub (opens in a new tab)