context-mode vs xerj
Local plugin for 10 coding agents that runs tool calls in a sandbox, indexes full output in SQLite FTS5 and returns only what the agent asks for — ~99% fewer bytes in context, zero telemetry. — versus — One Rust binary for agent search: BM25, vector and hybrid search over code, docs, logs and PDFs, an Elasticsearch-compatible API, MCP, and Query-1, which answers by running programs over facts.
Both index large output so agents search instead of reading. context-mode is a per-session plugin; XERJ a persistent search server.
| context-mode | xerj | |
|---|---|---|
| Stars | 34k | 19k |
| Forks | 2.3k | 1.4k |
| Language | JavaScript | Rust |
| License | NOASSERTION | Apache-2.0 |
| Last activity | yesterday | today |
| Topics | coding, local | rag, storage |
| Curated connections | 6 | 3 |
context-mode — the curator's take
Use it when long sessions die from tool-output bloat (logs, test runs, fetched pages) and you want the agent to search output rather than read it, across Claude Code, Codex, OpenCode and more. Skip it if you need an OSI license (it's ELv2, source-available) or your agent rarely produces large outputs; the hosted Gateway is a separate paid product, not needed for the plugin.
xerj — the curator's take
Use it when you want a single self-hosted search engine for agents across code, docs and data instead of Elasticsearch plus a vector DB, or when wrong answers are costly and you want UNKNOWN or CONFLICT instead of guesses. Skip it if you just need grep-replacement for one repo, since it is a whole engine to operate. The headline benchmark numbers come from the project itself.