Mecanismo de busca CLI local, executado no dispositivo, para notas em markdown, transcrições de reuniões e documentação, que combina BM25, busca vetorial e reranking por LLM.
xerj-org/xerj
Mecanismo de busca local com IA que indexa automaticamente qualquer pasta (código, documentos, logs, PDFs) e oferece a API do Elasticsearch, feito em Rust.
Alternativa open source a:Elasticsearch
- Estrelas
- 8,758
- Forks
- 470
- Issues abertas
- 86
- Último commit
- ontem
O que é?
O XERJ é um binário único em Rust que indexa uma pasta com um comando: `xerj autoindex <folder>`. Ele detecta os tipos de arquivo automaticamente e cria um índice consultável por conjunto de dados. A indexação abrange código-fonte (analisado com tree-sitter para preservar símbolos e números de linha), CSV, JSON, YAML, SQLite, PDF, documentos do Office, e-mails e arquivos de log, sem precisar criar um schema ou pipeline.
O projeto foi pensado para permitir que agentes de programação e pipelines RAG recuperem trechos exatos, em vez de ler arquivos inteiros. A busca oferece pesquisa de texto completo com BM25, busca vetorial kNN e consultas híbridas pela API REST do Elasticsearch, permitindo conectar diretamente clientes Elasticsearch existentes e o Kibana. Um servidor MCP disponibiliza ferramentas de busca, memória e grafo para clientes compatíveis com MCP, como Claude Code e Cursor.
O embedder padrão é lexical e funciona offline; um embedder neural é opcional e requer o download prévio dos arquivos do modelo. O modo de desenvolvimento `--insecure` desativa TLS e autenticação, por isso foi pensado para uso individual em uma máquina local.
Recursos principais
- 01Indexa automaticamente uma pasta com um comando, detectando os tipos de arquivo e criando um índice por conjunto de dados.
- 02Analisa código-fonte com tree-sitter, preservando símbolos e números de linha.
- 03Oferece uma API REST compatível com Elasticsearch, permitindo conectar diretamente clientes existentes e o Kibana.
- 04Oferece busca de texto completo com BM25, busca vetorial kNN e busca híbrida em um único mecanismo.
- 05Inclui um servidor MCP para agentes como Claude Code e Cursor.
- 06Distribuído como um único binário estático, sem JVM, para Linux, macOS e Windows.
Casos de uso
- Permitir que um agente de programação encontre funções específicas em uma base de código, em vez de ler arquivos inteiros.
- Criar sistemas RAG ou de perguntas e respostas sobre bases de código e documentos locais, sem um banco de dados vetorial separado.
- Fazer auditorias de segurança consultando padrões de sinks ou segredos em uma árvore de código-fonte.
- Substituir uma implantação autogerenciada do Elasticsearch para analisar logs em uma única máquina.
Início rápido
- 1
Baixe e instale o binário
Instale seguindo as instruções oficiais do README - 2
Inicie o servidor para desenvolvimento local (sem TLS nem autenticação)
xerj --insecure --data-dir ./data & - 3
Indexe a pasta que preferir
xerj autoindex ~/my-project - 4
Execute uma consulta de busca na pasta indexada
xerj search "how do we rotate the WAL segment"
Antes de usar
- A flag --insecure desativa o TLS e a autenticação por API key, portanto só é segura para uma pessoa em uma máquina de desenvolvimento.
- O modo de embeddings neurais é opcional e baixa cerca de 90 MB de arquivos de modelo.
Tópicos
Perguntas frequentes
- O que é xerj?
- Mecanismo de busca local com IA que indexa automaticamente qualquer pasta (código, documentos, logs, PDFs) e oferece a API do Elasticsearch, feito em Rust. O XERJ é um binário único em Rust que indexa uma pasta com um comando: `xerj autoindex <folder>`. Ele detecta os tipos de arquivo automaticamente e cria um índice consultável por conjunto de dados. A indexação abrange código-fonte (analisado com tree-sitter para preservar símbolos e números de linha), CSV, JSON, YAML, SQLite, PDF, documentos do Office, e-mails e arquivos de log, sem precisar criar um schema ou pipeline.
- xerj é gratuito? Qual é a licença?
- xerj é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- xerj ainda é mantido?
- Manutenção ativa. O último commit de xerj foi em 19 de out. de 2026.
- Para que posso usar xerj?
- Permitir que um agente de programação encontre funções específicas em uma base de código, em vez de ler arquivos inteiros. Criar sistemas RAG ou de perguntas e respostas sobre bases de código e documentos locais, sem um banco de dados vetorial separado. Fazer auditorias de segurança consultando padrões de sinks ou segredos em uma árvore de código-fonte. Substituir uma implantação autogerenciada do Elasticsearch para analisar logs em uma única máquina.
- Como instalar xerj?
- Baixe e instale o binário Inicie o servidor para desenvolvimento local (sem TLS nem autenticação): xerj --insecure --data-dir ./data & Indexe a pasta que preferir: xerj autoindex ~/my-project Execute uma consulta de busca na pasta indexada: xerj search "how do we rotate the WAL segment"
- Onde consigo xerj?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/xerj-org/xerj
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Memória persistente para agentes de programação: registra a atividade das sessões, compacta as informações com IA e injeta contexto relevante em sessões futuras.
Banco de dados open source de embeddings para apps de IA, que armazena documentos e vetores para buscas semânticas, híbridas e de texto completo.
Busca local-first no histórico de sessões do Claude e do Codex, com núcleo de busca em Rust, CLI JSON e app para desktop.
Mecanismo distribuído e RESTful de busca e análise que também funciona como armazenamento escalável de dados e banco de dados vetorial.
Um banco de dados vetorial open source que roda dentro da aplicação e oferece busca por similaridade com baixa latência, sem precisar de um servidor.