Tools for working with AI agents
rtfm
A local index of a project (code, documents, PDFs, notes) that an agent queries before searching through files.
active version 0.47.0, 23 September 2026 licence MIT
RTFM started while I was writing an article on French tax law: on a corpus of about 2,000 regulatory files, Claude Code kept rerunning the same searches, filled its context and cited the wrong passages. Its main limitation: on a small repository, under a thousand files according to the README, plain file search is enough and the index adds cost without benefit.
No playable demo: the tool runs in a terminal, alongside an agent.
A catalogue, not a memory
RTFM splits each file along its structure: the headings of a Markdown file, the functions of a Python module, the sections of a LaTeX document, the pages of a PDF. It stores these pieces in a single SQLite file, .rtfm/library.db. A search returns a short list: path, section, score. The agent then opens only what it chooses to (rtfm_expand).
Think of it as a library catalogue. It does not read on the agent’s behalf; it tells it where to look. Search is full-text by default; semantic and hybrid search are optional, with a model that runs locally on the CPU. Nothing leaves the machine.
Getting started
In Claude Code, through the roomi-fields/claude-plugins marketplace:
/plugin marketplace add roomi-fields/claude-plugins
/plugin install rtfm@roomi-fields
The plugin indexes the project on the first message, then re-indexes what changed on every message. It adds an instruction to the project’s CLAUDE.md to search the index. Python 3.10 or later is all it needs.
For another client (Cursor, Codex, Claude Desktop) or from the command line:
pip install rtfm-ai
cd my-project
rtfm init
rtfm search "authentication flow" --limit 3
The client then connects to rtfm-serve.
What it does
- Reads 22 formats: Markdown, Python, LaTeX, PDF, EPUB, DOCX, ODT, CSV, XLSX, Jupyter, SQLite, Légifrance XML and BOFiP HTML (French legal and tax sources), among others.
- Takes one more format: a Python class, about fifty lines according to the README; for JSON, a YAML mapping file is enough.
- Links files together: wikilinks and Python imports become a graph (
rtfm_graph). - Keeps the history of every indexed file (
rtfm_history). - Indexes Claude Code’s memory files across every project on the machine (
rtfm memory). - Serves an Obsidian vault:
rtfm vaultresolves links and generates navigation pages in_rtfm/. - Keeps NotebookLM answers written to disk by notebooklm-mcp, to be read again offline.
The agent gets 13 MCP tools; the same features exist on the command line and as a Python API.
Common issues
- Windows: RTFM is developed on Linux; native Windows works since the fixes from issue #8. A console window still opens when the background process starts (#9, open).
- Containers: the semantic search model is cached in an ephemeral folder by default, and is downloaded again without warning (#7, open).
- Installed extras have no effect: after
/rtfm:install-embeddingsor/rtfm:install-pdf, restart Claude Code.
Where it stands
Version 0.47.0 of 23 September 2026, 105 releases since February 2026; continuous integration passes. 25 stars and 6 forks as of 28 September 2026.
The README publishes two sets of measurements, on a document-heavy task and on FeatureBench, with their caveats: a single model, a single agent. I do not repeat their figures here until the number of runs per configuration is published. Benchmarks better suited to information retrieval (RepoQA, SWE-QA, LocAgent) are planned, with no date. What is new goes in the repository’s changelog.
Repository · Documentation · [[RTFM]] · [[NotebookLM]]
Thanks to @AVeryTastyRaspberry, who made RTFM usable on Windows: the report (#8) named the faulty line, and testing on a real Windows 11 machine found five more defects.
How it was made. Claude Code (Claude Opus 5.5), from the repository, its README and its release notes. Method