CodeRLM is a Rust server that indexes a codebase and exposes it to LLM agents as a queryable JSON API. It parses supported files with tree-sitter, builds a symbol table with cross-references, and answers targeted questions - project structure, symbol search, function implementations, callers, tests, and grep - so an agent requests exactly the code it needs instead of loading a repository into context or scanning files heuristically.
The approach applies the Recursive Language Model pattern, published by Alex L. Zhang, Tim Kraska, and Omar Khattab, which treats a large input as external data that a root model recursively examines. CodeRLM adapts an earlier document-oriented implementation from documents to codebases, replacing a Python REPL with the indexing server. Indexing respects .gitignore, and the server caps file size and the number of concurrently indexed projects.
A companion plugin wraps the API for Claude Code: a /coderlm skill with a structured exploration workflow (init, structure, search, implementation, callers, synthesize), session lifecycle hooks that auto-initialize and steer the agent toward indexed lookups, and a Python command-line wrapper that uses only the standard library. A generator produces equivalent configuration for other platforms, and the CLI can be used directly against a running server.
Features
- Index-backed lookups: symbol search, file symbol lists, caller lookup, grep, and exact source retrieval over one JSON API
- tree-sitter parsing: full symbol tables for Rust, Python, TypeScript, JavaScript, Go, Java, Scala, Ruby, PHP, and Zig; SQL falls back to regex
- Rust server: configurable port, bind address, maximum file size, and maximum concurrently indexed projects
- Claude Code plugin: a /coderlm skill plus SessionStart, UserPromptSubmit, PreCompact, and Stop hooks
- Other platform targets: a generator emits configuration for platforms such as Cursor, Windsurf, Copilot, Gemini, and Codex
- Standard-library CLI: the Python wrapper needs no third-party packages
- Ignore-aware indexing: the server walks the project directory and skips paths excluded by .gitignore




