renv
Open source · MIT · local-first

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.

renv.local/graph
Library
Experiment
Claims
agent session · MCP

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.

terminal
$ 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.

env.db
CLI
MCP · agent
cockpit

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.

001
002
003
004
run 4 · git e4f1a9c · seed 7 · recall .84

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.

reref log add result "recall hit 0.84"
✗ rejected: a result must link a done run
reref log add result "…" --evidence run:4
✓ recorded · provenance: run 4 · sha e4f1a9c
$ reref log check → 0 violations

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.

run 3
survival 0.97

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.

toolsearch_corpus"sentence anchoring"
toolcite_claimclaim=1 --write
toolstart_run003-anchor seed=7
toollog_decision"anchor at sentences"

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

⟶ weave

results_table.tex

Dense & 0.84 \\
Anchor & 0.97 \\

regenerated from the store, so hand-typed numbers can't drift

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 publish 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

public
4
claims
3
experiments
3
papers

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.