“Where do I even start?”
Get an overview of an unfamiliar repository: its main parts, how they connect, and useful places to begin reading.
roam understandGet your bearings
For you and your coding agent
New repo. Tricky change. One more file to understand.
Roam connects the dots between functions, files, and tests, so you can see where to start and what a change might affect.
Open source. Runs on your machine. No account needed.
“What else uses this function?”
calculate_total()checkout/pricing.pyCalled by
place_order()orders.pypreview_order()preview.pyapply_discount()discounts.pyNow you know where else to look.
roam impact calculate_totalStart with a question
You don’t need to learn a long list of commands. Start with the thing you’re trying to figure out.
Get an overview of an unfamiliar repository: its main parts, how they connect, and useful places to begin reading.
roam understandGet your bearings
Follow the callers and related code. Check a function before editing it, and find connected tests worth looking at.
roam preflight <symbol>Look before you edit
Once you have local changes, review the diff with the surrounding code in view, including related copies that may need the same fix.
git diff | roam critiqueTake another look
Replace <symbol> with a function or class in your project. Explore more examples
A better starting point for your agent
Give your coding agent the same local map you use: relevant files, the functions that call each other, and context around a planned change.
Use the CLI directly, or connect through MCP — a standard way for assistants to use tools. Your agent still makes the decisions; Roam gives it more to work with.
Connect your coding agentSetup guides for Claude Code, Cursor, Codex, VS Code, and more.
A small habit for a new project
Already using Claude Code? Optional hooks can prepare context before a prompt.
Your project. Your machine.
Roam builds a local index of your repository. You and your tools can come back to it as the code changes.
The CLI and MCP server are open source under Apache 2.0. Local analysis needs no account or API key.
There is no automatic repository upload or telemetry. Installation, parser downloads, and optional online features have a documented network boundary.
Roam adds context to your editor, search, tests, and code review. Its map can be incomplete; a useful finding is a starting point for investigation, not a guarantee.
See where Roam fitsMeet your codebase
You’ll need Python 3.10+ and a Git repository. Open a terminal, then follow these three steps.
pip install roam-codePrefer an isolated install? Use pipx install roam-code or uv tool install roam-code.
cd path/to/your/repo
roam initReplace the path with your project. This builds the index and creates project configuration.
roam understandSee the big picture, then follow the parts you want to understand.
For agent tools, install pip install "roam-code[mcp]", then follow the editor setup guide. Learn about MCP.
No. Use Roam yourself in the terminal to explore a repository or check a change. Connecting an agent is optional; it gives the agent access to the same local tools.
The CLI and MCP server are free and open source under Apache 2.0, for individuals and teams. Paid services and planned team products are separate; you do not need them to use the local tools. See team options.
Ordinary analysis is local, with no automatic source-code or telemetry upload. Installation and the first parser download need network access. Optional online features have explicit triggers; opt-in MCP model summarization can include source snippets. Read the network boundary for the full details.
Roam runs on Windows, macOS, and Linux with Python 3.10+. It supports 28 languages, including Python, JavaScript, TypeScript, Go, Rust, Java, C#, PHP, and Ruby. The depth of analysis varies by language and framework. Explore the documentation.
It depends on the size of your repository, its history, your machine, and whether parsers are already downloaded. The first index does more work; later refreshes reuse it and process changed files. Run roam index to refresh after changes.
No. Roam helps you investigate code connections and potential risks. Static analysis can miss connections, a suggested test list is not test coverage, and a health score is not permission to merge. Keep your tests, security checks, and human review.
Yes. Run Roam checks in your build, review changes, and export findings for code-scanning tools. You can also enable a local run ledger and proof bundles to record which checks ran. Signed records help detect later changes to evidence; they do not prove every relevant check was captured. See integration guides and review records for teams.
Already have a few changes in mind?
Run a local sample review of recent merged pull requests. See which structural findings are worth following up.
roam pr-replay --tier sampleRequires Roam and local merge history. This replay sends no email and performs no repository upload.
Explore review and team options