← Projects · Sep 2026
repo-ask
Ask a codebase a question and get an answer with file:line citations, or an honest “not found”: every citation is checked against the code it actually read.
repo-ask is a small command-line tool for finding your way around an unfamiliar repository. It splits the code into one chunk per function or class with tree-sitter, retrieves the most relevant chunks with BM25 and ripgrep, and asks Claude to answer from those chunks only. Every citation is then checked against what was actually retrieved; if none survives, it prints “Not found in this repo” instead of guessing.
There is no server and no vector database: it is about 700 lines of Python, and the index is a JSON file in a cache folder, never in the repo. Only the six retrieved chunks are sent to the API, and files that .gitignore excludes, such as .env, are never indexed.
On Soliton, a TypeScript and JavaScript codebase of about 280 files, it answered 8 of 10 held-out questions correctly and declined both questions whose answer wasn’t in the code, with no rejected citations. The question sets are small, so I read these numbers as indicative. I built it alone, starting in September 2026.