Merv is a plugin for agentic coding platforms that helps agents run machine learning research as gated, reviewable experiment workflows.
It is designed to work with Claude Code, Codex, Cursor, Gemini CLI, OpenCode, and other MCP-capable agent platforms. It includes a frontend for humans to observe agent behavior ranging from macro research strategy to experiment execution specifics.
The goal is to give research agents enough structure to plan experiments, execute them, review results, and reflect on the project direction to handle open-ended research problems.
Each experiment begins with a generated plan that is adversarially reviewed by another agent. The plan/review loop persists until the reviewer approves the plan. After approval, the agent proceeds to execution. When it is done, it submits a report that is adversarially reviewed by a different agent. The reviewer can send the agent back to execution to fix something in the execution or the report, or it can send it back to the planning stage if the experiment proved faulty.
After a set of experiments is complete, the plugin drives a project-wide reflection. Five different sub-agents are called, each analyzing the wave's snapshot of all terminal experiments and current claim statuses under a different lens. Their goal is to look for patterns of what works, what does not, and what has not been tried, in order to set up the next phase of experiments. The analysis of the sub-agents is consolidated into a report, logic graph, and change spec. Those artifacts are adversarially reviewed by a different agent for accuracy.
Merv has three main pieces:
- Agent adapters connect Claude Code, Codex, Cursor, Gemini CLI, OpenCode, and other agentic clients to the same workflow.
- Backend owns the research state: projects, claims, experiments, resources, review gates, reflections, and sandbox orchestration.
- Frontend gives humans a visual way to inspect the project: experiments, reviews, artifacts, logic graphs, timelines, and current progress.
By default the plugin connects to the hosted brain; it can also run fully locally. In either deployment the checkout root, folder-to-project links, and caller SSH private keys stay on the user's machine. The proxy explicitly sends project ids, repo-relative resource metadata, and selected submitted bytes; the brain never opens the checkout directly. Brain management keys remain separate operational credentials.
Prerequisites for every client are python3 3.11+ and a POSIX shell. No pip
install or local brain is required; the proxy talks to the hosted brain by
default. Sandbox SSH and output-pull workflows additionally use the system
OpenSSH client and rsync. For Codex, Gemini CLI, and OpenCode, see
merv/docs/CLIENTS.md.
claude plugin marketplace add https://rapidreview.io/marketplace.json
claude plugin install merv@rapidreviewRestart Claude Code.
Cursor loads local plugins from a directory. Clone the repo and copy the plugin bundle into ~/.cursor/plugins/local (Cursor rejects symlinks that point outside that directory):
git clone https://github.com/NGXT-Inc/Merv.git ~/Merv
mkdir -p ~/.cursor/plugins/local
rsync -a --delete --exclude '.venv' --exclude '__pycache__' --exclude '*.egg-info' \
~/Merv/merv/ ~/.cursor/plugins/local/merv/
# Optional but recommended if `python3` on PATH is older than 3.11:
python3.11 -m venv ~/.cursor/plugins/local/merv/.venvThen enable merv on Cursor's Customize page and restart Cursor (or run Developer: Reload Window). To update later: git -C ~/Merv pull, re-run the rsync, and reload.
The hosted brain requires a RapidReview account. The merv-client helper
ships inside the plugin (it is not added to your PATH). Once per machine, run
the copy your install created:
# Claude Code (marketplace install):
~/.claude/plugins/cache/rapidreview/merv/*/merv/bin/merv-client login
# Cursor / cloned repo:
~/Merv/merv/bin/merv-client loginThis opens the browser to complete sign-in; the session is stored locally and
shared by every client on the machine. On a headless box, add --no-browser
(prints the URL to open elsewhere) or use --api-key rr_sk_....
For instructions on creating and storing an API key, see Authenticate this machine.
Open the repo you want to research as the workspace, then ask the agent to call
project(action="current"). If the folder is unlinked, connect or create the
project with project(action="connect"); then call
workflow.status_and_next().
Upgrading from the old research-plugin? Everything was renamed in v0.0012
and the hosted brain now requires sign-in, but your data carries over
untouched. See MIGRATING.md for the per-client steps
(Claude Code, Cursor, Codex).