The research environment where every claim shows its work
renv is a local-first research environment: one SQLite ground truth your AI drives via MCP, with experiments as a DAG, results only from recorded runs, and citations anchored to the exact source span. Publish the verifiable graph behind your paper to renv.ai with one command.
the local cockpit, live over the same store the agent writes to
Install
Your agent installs it for you
renv is built to be driven by an AI, so let the AI set it up. The repo ships its own MCP server and agent protocol (AGENTS.md), and the whole loop runs through it.
$ claude "Set up renv from https://github.com/julianwinking/renv: clone it, run 'uv sync', index the demo library with 'uv run reref index', then show me my first span-anchored citation with 'uv run reref cite'."
Paste one command. The agent clones the repo, installs everything, and walks you through your first citation.
The engine
Research state you can audit
Everything you did, in what order, and why: one ledger your AI operates and your readers can check.
One store, thin clients
A single SQLite ground truth. The CLI, the MCP server, and the web cockpit are shells over the same domain functions. There is no second copy of anything.
gao2023_alce.pdf · char 14210–14298
“smaller retrieval units are easier to verify”
support: full · 0.92
\spancite{alce}{14210}{14298}{…}Span-anchored citations
The citation anchor is the quoted text itself (W3C selectors), verified against your claim and emitted as \spancite. It is self-verifying and survives re-indexing.
Experiments form a DAG
One experiment, one question. Branch instead of mutating; every run pins git sha, env hash, dataset, and seed for exact reproduction.
Provenance, enforced
A measured number can only enter the record through a recorded run. Asserting a result without one is rejected, and `log check` re-audits the whole store.
Span anchors are self-verifying
● open · needs evidence
Claim status is derived
Claims are first-class and traced to evidence. Supported or refuted is computed from linked runs and citations, never hand-set. Reviews flag open thesis claims.
Agent-native via MCP
The repo ships a stdio MCP server: your agent searches the corpus, cites, runs experiments, and logs decisions through the exact code paths the CLI uses.
metric rows
recall@8 0.84
survival 0.97
results_table.tex
Dense & 0.84 \\
Anchor & 0.97 \\
Numbers woven, never typed
`reref weave` regenerates the results table and bibliography straight from metric rows and cited papers, so the manuscript can't drift from the data.
local · SQLite
span-citation
renv.ai/renv/span-citation
claims · evidence · runs · spans · versioned & citable
Publish in one command
`renv publish` puts the clean, publishable subgraph online here: claims → evidence → experiments → runs → provenance → span citations. Versioned and citable.
renv.ai · the showcase
A PDF hides the scaffolding.
Your published graph shows it.
Readers see how well-backed each headline claim is, click any result number through to the run that produced it, and open every citation at the exact supporting span. There is no extra authoring. The showcase is a byproduct of doing the research in renv.
- Claims graded by evidence: confirmatory, suggestive, or anecdotal, with stance.
- Runs with provenance: git sha, env hash, seed. Code refs deep-link to the exact lines on GitHub.
- Span-anchored citations: the quoted source text with its verification grade.
$ renv publish span-citation → selecting publishable subgraph… 4 claims, 3 experiments, 3 runs → bundle sha256 9f3ac21 · version 2 ✓ live at renv.ai/renv/span-citation
renv/span-citation · v2
Span-Anchored Citations for Verifiable Research Writing
thesis: span anchors are self-verifying · supported (run 3, cite 2)
Research that shows its work
Clone the engine, let your agent run the loop, and publish a paper whose every claim, number, and citation can be checked.