Common questions
How is Roam different from CodeRabbit, Greptile, or Qodo?
They review what the code does — semantics. Roam reviews what
the code touches — structure: callers, layers, dependency
cycles, copy-paste duplicates. Different layer, different findings.
Most teams keep their existing reviewer and add Roam alongside it.
See the full comparison.
Two extras most teams care about:
(1) the CLI runs entirely on your machine — no PR diff is uploaded
anywhere from local use, and
(2) every analysis emits a tamper-evident audit-trail entry.
Will the CLI stay free?
Yes. Forever. Apache 2.0. Free for individuals, teams, and companies
of any size. We charge for PR Replay, hosted Review/Cloud, and scoped
private-deployment pilots — not the local engine.
What audit-trail evidence does Roam produce?
On every analysis, Roam writes two things: a tamper-evident log
file (each entry chained with a SHA-256 hash to the previous one)
and signed records you can verify with cosign. The kind of evidence
SOC 2 CC8.1 (change management), ISO 42001 (AI management system),
and internal AI-governance policies want to see.
Roam is provided as evidence-generation tooling — the artefact, not
the framework mapping. EU AI Act Article 12 (record-keeping) only
attaches to providers of high-risk AI systems listed in Annex III;
code-generation tooling is not in Annex III, so most teams using
Cursor, Claude Code, or Codex have no direct Article 12 obligation.
If your own product is a high-risk AI system (HR-tech,
edtech, fintech credit-scoring, healthtech), Roam's review
attestations are useful as Article 14 human-oversight evidence —
not Article 12 logs themselves. The classification call is for you
and your DPO or counsel.
Does any of my source code leave my machine?
From the CLI: no. It runs locally and only writes a SQLite file
inside your repo's .roam/ directory.
From Roam Cloud (when launched, early access): metrics only — health scores,
complexity numbers, dependency counts. Never source code.
From Roam Review (when launched, early access): the PR diff is processed
ephemerally in our cloud. Private-deployment pilots are scoped
separately when hosted processing is blocked by policy. Always a
fair question to ask any PR-bot vendor what their threat model is.
Does Roam fit into my CI?
Yes. roam --sarif health exports findings in the SARIF
2.1.0 format, which GitHub Code Scanning, GitLab, and most CI
platforms understand natively. Ready-to-drop GitHub Actions
templates ship with the package. roam critique returns
exit code 5 on any high-severity finding so a CI step can gate on it.
How long does it take to index a typical repo?
A 100k-line monorepo indexes in roughly 20-40 seconds on a modern
laptop. Incremental rebuilds after a single PR's worth of changes
are sub-second. The DB lives in .roam/index.sqlite in
your repo; agents and CI both read from the same artefact.
What languages does Roam support?
28 languages with tree-sitter grammars: Python, JavaScript,
TypeScript, Go, Rust, Java, Kotlin, Scala, C, C#, C++, PHP, Ruby,
Swift, Apex, SQL DDL, FoxPro, plus YAML, HCL, JSON, XML configs and
framework-specific bridges (Django, Salesforce, REST APIs, .proto
stubs, Jinja/Django templates, env-var configs). Most of the 28
languages have dedicated extractors with first-class symbol
extraction; the rest use generic tree-sitter walks.
Does Roam replace my existing reviewer?
No, and we recommend against it. CodeRabbit, Greptile, Qodo, and
SonarQube each catch a class of bug Roam doesn't (semantic correctness,
code-style violations, security smells inside a single function).
Roam catches the bugs between the code: callers two layers
up, tests that no longer assert, clones modified inconsistently,
runtime hot paths that just got slower. Most teams keep their
existing reviewer and add Roam alongside it on a flat tier (Starter
$99/mo, Team $299/mo, Business $799/mo) so adding a structural layer
doesn't trigger a per-seat headcount conversation.
What data does Roam Cloud send back?
Metrics only. Health scores, complexity numbers, dependency counts,
architectural-layer counts, churn aggregates, test-coverage ratios.
Never function bodies, identifier names, file paths, or commit
messages. The shipping payload is a JSON envelope with numeric
fields and bucket aggregates only — auditable per push at
.roam/cloud-payload.json before it leaves your machine.
How does Roam Self-Hosted differ from running the CLI offline?
The CLI is already 100% local by default (opt-in metrics-push is the only outbound surface) — that's the free path. A private-
deployment pilot would scope the extra pieces you actually need:
long-lived indexing, Review-style PR checks, Cloud-style dashboards,
and centrally collected signed evidence. It is not a boxed GA product
today; deployment, support, and retention terms are written into the
pilot SOW.
Why no analytics or telemetry on this site?
Two reasons. First, every third-party script is part of the
attack surface — less surface, fewer surprises. Second, we
sell to teams that read Privacy policies. Asking them to read
ours and seeing zero cookies, zero trackers, zero "anonymous
usage data" is a stronger signal than any logo wall. See the
receipt; the supply-chain detail
lives on the security page.