searchLABSCO SUMMARY
The docs stop costing a page of context each.
On the author's own MacBook Pro M2 over 100 files, a search took 95ms and about 300 tokens against 25s and about 12,000 tokens for reading the files outright — the same answer, a fraction of the budget.
What it is
A single-binary RAG server for developers using Claude Code. It indexes your markdown, then answers a natural-language query with the matching chunks instead of the whole document. It works as an MCP server and as a standalone CLI.
What you get
search— semantic search withtop_k, plus adirectoryfilter and afile_patternglob such asapi-*.md, combinable in one callindex_markdown,list_documents,delete_documentandreindex_documentfor keeping the index honest- Documents indexed automatically at startup from
document_patterns— directories, recursive globs, or absolute paths outside the project - No Python and no separate model install: one binary, models downloaded on first run, GPU or CPU chosen automatically with a CPU fallback
- Multilingual embeddings — the default model is
multilingual-e5-smallat 384 dimensions, covering Japanese and English among others - The same operations as CLI commands, JSON by default and
--output textwhen a human is reading --configto point at a different configuration file, so one binary can serve several projects
Requirements
A release binary for macOS (Apple Silicon or Intel), Linux (x64 or ARM64) or Windows, wired in as a stdio server. On macOS keep libonnxruntime.dylib beside the devrag binary for CoreML acceleration. Configuration lives in config.json — document_patterns, db_path, chunk_size, search_top_k, and the compute and model blocks. Nothing leaves the machine.
Setup effort
Follow the published steps — tar -xzf devrag-*.tar.gz
USE CASES
Answering a question buried in a long specification
Vector search returns the relevant chunks, so the model never loads the whole file.
Searching without knowing the filename
The query is natural language; the index decides which document it lives in.
Narrowing to one area of the docs
Restrict the search to a directory, a filename pattern, or both together.
Keeping the index current after a pull
Re-index the files that changed, or let startup pick them up from the configured patterns.
Sharing the setup across a team
Keep the docs in git and the config in the repo; each developer runs their own local index, refreshed by a normal pull.
Dropping a document that no longer applies
Remove it from the index so stale guidance stops surfacing in answers.
6 tools
Listed in project docs. Your client may show a different list.
index_markdownlist_documentsdelete_documentreindex_documentindex_codeBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Download the archive for your platform from https://github.com/tomohiro-owada/devrag/releases — devrag-macos-apple-silicon.tar.gz, devrag-macos-intel.tar.gz, devrag-linux-x64.tar.gz, devrag-linux-arm64.tar.gz, or the Windows zip (extract it and place it in a folder such as C:\Program Files\devrag\)
tar -xzf devrag-*.tar.gz
chmod +x devrag-*
sudo mv devrag-* /usr/local/bin/MCP Clients
Claude Code
{
"mcpServers": {
"devrag": {
"type": "stdio",
"command": "/usr/local/bin/devrag"
}
}
}The release archives unpack to a platform-named file — the v1.4.4 Linux x64 archive holds devrag-linux-x64 — so after the move the command is /usr/local/bin/ followed by that file name. Change "command" to match.