XERJ
XERJ is an AI-native search engine that indexes code, documents, and data, then answers agent questions from the index instead of the context window. It speaks the Elasticsearch API and ships as one Rust binary.
Visit xerj-org/xerjOverview
XERJ is an AI-native search engine that indexes code, documents, and data, then answers agent questions from the index instead of the context window. It speaks the Elasticsearch API and ships as one Rust binary.
Key Features
- One Rust binary with no JVM, Apache-2.0 licensed, running from laptop to server with the same artifact.
- Autoindex sniffs 13 format families by content, infers mappings, records junk instead of crashing, and resumes idempotent ingest.
- AST code search parses source with tree-sitter across 36 languages into symbols, kinds, line numbers, and searchable definitions.
- Hybrid search supports 50 query types, including native BM25 and kNN fusion in one query tree.
- Elasticsearch API compatibility with 1,366 of 1,369 wire-conformance cases green on every commit.
- Agent memory and graph features provide namespaced /_memory REST APIs and a /_graph knowledge layer with evidence on every link.
Use Cases
- Reference coding: clone and index open-source repos closest to a task, then retrieve how they solved a problem before writing code.
- Codebase Q&A and RAG: index a repo and get the mechanism with file line details instead of a directory listing.
- Security audits: index a target tree and query for sink patterns, secrets, and dangerous calls across every file type at once.
- Agent long-term memory: store what an agent learns and recall it by meaning in later sessions.
Getting Started
- Install XERJ with the one-line installer.
- Start a node with xerj --insecure --data-dir ./data & for local development.
- Run xerj autoindex ~/my-project to index a folder by content.
- Use xerj search for ranked passages and xerj def for go-to-definition results.
Deployment & Requirements
- Prebuilt for Linux, macOS, and Windows on x86-64 and arm64.
- Static musl by default, so it can run on any distro including Alpine.
- No JVM and no dependencies; the same static binary runs from laptop to server.
- Auth is on by default unless --insecure is used; autoindex needs --api-key or XERJ_API_KEY when auth is enabled.
- The default lexical embedder is offline; neural mode needs three model files staged locally before the first semantic operation.
Before You Adopt
- License: Apache-2.0. Review its terms before using, modifying, or distributing the project.
- The built-in embedder is lexical rather than neural, so semantic retrieval is based on vocabulary overlap, not neural understanding.
- Neural embedding mode requires staging three model files locally before semantic operations.
- Reference coding can be neutral or harmful on popular public libraries the model already knows.