The rv CLI
The command-line companion to Hervé: it captures your coding-agent sessions, per repo, to a branch of your own repository.
$ curl -fsSL https://app.herve.review/install.sh | bashmy_repo $ rv install> scoop bucket add herve https://github.com/herve-hq/scoop-bucket.git> scoop install herve/rvmy_repo> rv.exe installRequires Git for Windows and Scoop.
$ rv install
Set up context capture + git hooks for this repo
- --agent <AGENT>
- Agent to capture sessions for; repeat to enable multiple. Accepts claude-code (default), codex, copilot-cli, cursor, factoryai-droid, gemini, opencode, pi
- --import-history
- Backfill the last 30 days of local sessions without asking
- --no-import-history
- Skip the backfill, and the question, entirely
- --no-ignore-entire
- Don't append `.entire/` to the repo's `.gitignore`. By default `rv install` gitignores the directory so its per-repo state stays out of commits
Examples: rv install rv install --agent claude-code --agent codex rv install --no-import-history rv install --import-history rv install --no-ignore-entire
$ rv uninstall
Remove the rv pre-push hook + disable capture in this repo
- --keep-entire
- Skip disabling capture for this repo
Examples: rv uninstall rv uninstall --keep-entire
$ rv refresh-hooks
Re-apply the current git hooks and its Claude hooks to every repo in the installed-repos registry. Useful after `rv self update` when a hook template changed between versions. `rv self update` runs this for you
- --dry-run
- List the repos that would be refreshed without writing
Examples: rv refresh-hooks rv refresh-hooks --dry-run
$ rv doctor
Report on the rv runtime environment and current repo
- --quiet
- Suppress per-check output; report status via exit code only
Examples: rv doctor rv doctor --quiet
$ rv auth
Authenticate this machine to Hervé (login, status, logout)
Examples: rv auth login rv auth status rv auth logout
$ rv auth login
Log in via the browser (device login). Prints a short code, opens the approval page, and waits for you to approve
$ rv auth status
Report whether you're logged in, as whom, and whether the token is still valid
$ rv auth logout
Revoke this machine's token server-side and delete it locally
$ rv comments
Print Hervé's high-level review of a PR (read-only)
- --pr <NUMBER>
- PR / MR number (required). Naming it by the current branch is a planned follow-up
- -R, --repo <HOST/PATH>
- Repository, as HOST/PATH (e.g. github.com/acme/widget). Defaults to the `origin` remote of the current repo
- --json
- Print the typed JSON payload instead of the markdown digest
Examples: rv comments --pr 42 rv comments --pr 42 --json rv comments -R github.com/acme/widget --pr 42
$ rv scan
Scan your local agent logs for exposed secrets and failures that keep coming back
- --days <N>
- Only scan session logs from the last N days (default: every log on this machine). Your prompt history is always scanned in full for secrets
- --all
- Every project's sessions, even inside a repo
- --json
- Print the report as JSON instead of the terminal summary
- --for-agent
- Print everything as Markdown for a coding agent to act on: the fix plan for every secret, then every failure to investigate
- --verbose
- If the scan fails, show the scanner's full log instead of its first lines
- --no-open
- Don't open the HTML report in your browser. It opens only when the report is for a human anyway: stdout a terminal, no `--for-agent` or `--json`, `CI` unset
- --all-findings
- Also list likely false positives (local dev credentials, IDs, placeholders, what the false-positive check rejected), marked as such
- --no-filter
- Skip the check (your Claude Code, Codex or opencode CLI) that removes likely false positives before anything is shown
- --no-live-check
- Don't ask each shown credential's provider whether it still works
- --show-telemetry
- Run the scan, then print the anonymous counts it would send (if you opted in) and send nothing
Examples:
rv scan # this repo (every project outside one), every log on disk
rv scan --all --no-open # every project, without opening the report
rv scan --days 90
rv scan --for-agent | pbcopy # everything, for your coding agent
rv scan --json | jq '.security.findings[] | {type, masked, sessions}'
rv scan --json > report.json || [ $? -eq 2 ] # CI: fail only on errors$ rv telemetry
Turn rv scan's anonymous usage counts on or off, or show whether they are on
- <STATE>
- `on` or `off`; leave it out to see the current setting
Examples: rv telemetry rv telemetry off
$ rv self
Manage the rv binary itself (update, uninstall). Distinct from `rv uninstall`, which only touches the current repo's hook
Examples: rv self update rv self uninstall rv self uninstall --purge --force
$ rv self update
Update rv to the latest version
$ rv self uninstall
Uninstall the rv binary and its data dir
- --purge
- Also remove the global the capture engine CLI (only if rv installed it)
- --force
- Proceed even when the installed-repos registry is non-empty
Every command runs --help for the same reference in your terminal.