CLI reference
Every repoops command, 34 of them, generated from the registry the binary reads, and how to reach them from any terminal. A check in CI fails the build when a command ships without an entry here, so the list below is the list that ships.
How to
Node on your PATH, for npm and npx. The commands themselves run under the RepoOps desktop app's install.
- Install the app.
Follow Install, or run
npx repoops: it signs you in, then on Windows downloads the signed installer, checks it against the release feed and launches it. On macOS and Linux it opens your build in the browser. - Put repoops on your PATH, or go through npx.
The
repoopspackage on npm is a front door: it finds your installed app and hands it your arguments. Install it once withnpm i -g repoopsand typerepoops <command>, or prefix any command withnpx.repoops help # the same list as this page npx repoops doctor # or through npx, same commands - Sign in once when a command asks.
init,runandbench --contributeask for a one-time, free sign-in that opens repoops.ai in your browser; the token is cached so later runs need no browser. In CI or Docker, setREPOOPS_AUTH_TOKENand no browser opens. A command marked local only below never talks to a server. - Find the command, then ask it for its flags.
The full list is under Every command below. Run a command with
--helpfor its full set of flags: the front door hands the flag to the app, sorepoops mcp-scan --helpprints the scanner's help, not this list.
Use cases
A tab is empty and you cannot tell why
- Situation
- You tracked a repository, but its brain tab shows nothing, and you cannot tell whether the repository or the server is at fault.
- You do
- Run repoops doctor in the repository's folder, or pass the folder: repoops doctor <dir>.
- You see
- Doctor checks the repository's brain and its wiring into the dashboard, and names what is missing.
Check your MCP servers before you install anything
- Situation
- You want to know whether a configured MCP server's tool descriptions changed after you approved them, on a machine with no RepoOps app.
- You do
- Run npx repoops mcp-scan. With no app installed, the front door signs you in, downloads the command bundle, checks its sha256 and caches it for the version.
- You see
- The scan reads the MCP servers configured on this machine and reports definition drift. It runs locally, and later runs work offline from the cached bundle.
Expected outcome
Next step: The front door could not find the app, so it starts the install. Finish it, then run the same command again. Only adopt, connect, mcp-scan and readiness run with no app.
Next step: Set REPOOPS_AUTH_TOKEN in the job's environment so the command skips the browser.
Next step: The first run of a bundle command needs a connection to download it. Connect once; after that it runs offline.
What else to consider
Every command
34 commands in 7 groups, rendered from the registry repoops help reads. Each card lists the flags worth knowing before you type the command, not all of them.
Setup
Install a brain, track a repo, start the dashboard, bind to a team.
run
Boots the dashboard and opens the sign-in gate, then serves http://localhost:4000. This is the command the desktop app runs for you; type it when you want the server in a terminal you control.
repoops runStart the dashboard (sign-in gate + http://localhost:4000)
init
Writes a .claude/brain/ into a repo that has none. The scaffolder reads the same canonical tab registry the dashboard renders from, so a fresh brain matches what the dashboard expects. Hand the generated brain-bootstrap-prompt.md to your coding agent to fill the stubs with real content.
repoops init [dir]Scaffold a .claude/brain/ into a repo (default: current dir)
add
Tracks a repo in the RepoOps you are running, so its brain, docs, and telemetry appear alongside everything else you track. With no app running, it writes the store the app opens next. When an app is listening but does not answer, it stops and names the port instead.
repoops add [path]Track a repo (default: current dir)
repoops add [path] --server <url>Track it in the app at this address only
remove
also: repoops rmStops tracking a repo. It leaves the repo and its brain on disk; only the dashboard's registration goes away.
repoops remove <id|path>Stop tracking a repo
doctor
Checks a repo's brain and its wiring into the dashboard, and names what is missing. Run it when a tab is empty and you cannot tell whether the fault is the repo or the server.
repoops doctor [dir]Check a repo's brain + dashboard wiring
native-host
Registers the browser capture extension's native messaging host with Chrome and Edge for this user, so captured sessions reach the local RepoOps stores over stdio and never over a port. The desktop app does this at startup; this is the same step for a source install, and the way to see or undo it.
repoops native-host register --extension-id <id> [--launcher <path>]Write the host manifest for Chrome and Edge (and the Windows registry value) allowing the given extension id; the launcher defaults to node on scripts/native-host.mjs (local only)
repoops native-host unregisterRemove the host manifests and registry values (local only)
repoops native-host statusPrint where the manifests live for this platform (local only)
connect
Binds this install to a team using a one-time code from /team/connect. Until you run it, the install is a solo one and nothing leaves the machine.
repoops connect <code>Bind this install to a team with a one-time connect code (from /team/connect)
repoops connect --me [--url <mcp-url>]Wire your own portable brain into this repo's .mcp.json
repoops connect --localRegister the installed app's brain MCP server in this repo's .mcp.json (stdio, the app's own runtime)
Attribution
Which session, prompt, or agent produced a line, and what that measures out to.
blame
Answers who wrote a line, where the answer includes the agent. Given a file it reports the session and prompt behind each line; given a commit it reports the agent and human split.
repoops blame <file>Which session/prompt wrote a line, or a commit's agent/human split
bench
Runs the accountability metrics against this repo and prints the real numbers, not a sample. It reads local evidence only, so the figures are yours and nothing is uploaded. The published figures on /accountability-benchmark come from this command run against RepoOps itself.
repoops benchRun the real accountability metrics against this repo (local only)
import
Reads a Git AI refs/notes/ai note and maps it into a RepoOps proposal, so attribution captured by another tool lands in the same ledger. Only the git-ai source is wired.
repoops import git-ai --dry-runMap a Git AI refs/notes/ai note into a RepoOps proposal (local only)
Memory and skills
Hold agent memory and agent capabilities to a signed, sanctioned state, and rewind the tree when one goes wrong.
memory
Agent memory is an input to every run, which makes it worth poisoning. Sign records the state you sanctioned; verify checks the current .claude/ brain and CLAUDE.md against those signatures and flags what changed without your say-so.
repoops memory verifyVerify agent memory (.claude/ brain + CLAUDE.md) against its sanctioned signatures; flags poisoning candidates (local only)
repoops memory signRecord the sanctioned state of agent memory (local only)
skills
The same signed-state check, applied to what your skills and subagents are allowed to do. Sign records each capability manifest; verify reports drift from it.
repoops skills verifyVerify each skill / subagent against its signed capability manifest; flags drift (local only)
repoops skills signRecord the sanctioned capability manifests of your skills + subagents (local only)
ask
One question over a brain, answered from the running dashboard with the files it drew on. `--me` asks your own portable brain instead of this repo's, which is the same scope switch `connect --me` makes. The dashboard has to be running; this is a client, not a second retrieval engine.
repoops ask "<question>" [--me] [--repo <id>] [--k <n>]Ask a brain one question and print the answer with citations
chat
The same ask, in a loop. Stateless per turn on purpose: each line is one question, so nothing is remembered between them that the brain does not already hold, and a dashboard restart mid-session costs you a question rather than a conversation.
repoops chat [--me] [--repo <id>] [--k <n>]Ask a brain repeatedly; type exit to leave
checkpoint
Snapshot and restore the working tree without a commit and without moving HEAD. Use it before letting an agent make a large change, so undoing it costs one command rather than a rebase.
repoops checkpoint <cmd>Snapshot, list, or restore a working-tree checkpoint (create|list|restore)
Security
What the agent can reach, what it is allowed to reach, and how it behaves when something tries to steer it.
nhi
Inventories the long-lived secrets a non-human identity on this machine can read, and reports which are over-exposed for what the agent actually does. Discovery only: it reads, it does not rotate.
repoops nhiInventory the long-lived secrets your agent can see, with an over-exposure report (local only)
secrets
The secrets manager on the command line. Run starts a command with the vault's values for this repo's .env variables in its environment, so local work needs no plaintext .env file. No value is written to disk or printed. Scan, export and backup come with their slices.
repoops secrets run [--repo <id>] [--env-file <path>] [--keep-env] -- <cmd> [args...]Start a command with this repo's secrets from the vault in its environment; no value touches disk (local only)
broker
A loopback-only credential broker, so the agent holds a short-lived task-scoped token instead of your raw key. Opt in and it mints on demand; leave it off and nothing listens.
repoops brokerLocal credential broker: status, or mint a short-lived task-scoped token so the agent never holds the raw key (opt-in, loopback-only)
injection-eval
Scores this repo's resistance to prompt injection by running a probe corpus against your agent configuration, and treats the score as an eval bar: it exits non-zero when the repo does not clear it, so CI can hold the line.
repoops injection-evalScore this repo's injection resistance (probe corpus vs agent config) as an eval bar; exits 1 when it does not clear (local only)
readiness
One day-one score out of 100 from local discovery plus the advisory detectors, with the top five fixes named. The starting point when you want to know where a repo stands before picking a specific scan.
repoops readinessDay-one security readiness score (0-100) + top-5 fixes from local discovery + advisory detectors (local only)
egress-policy
Shows or edits the pinned domains and IPs a repo's sandbox may reach. An agent that cannot resolve an unexpected host cannot quietly exfiltrate to one.
repoops egress-policyShow or set a repo's sandbox egress allowlist (pinned domains/IPs); add/remove <host> (local only)
mcp-scan
Reads the MCP servers you have configured and reports definition drift, the tool-poisoning case where a server's tool description changes under you after you approved it.
repoops mcp-scanScan configured MCP servers for tool-poisoning definition drift (local only)
mcp-allow
Pins the MCP servers you approve and lists what mcp-scan has flagged against those pins.
repoops mcp-allowPin the MCP servers you approve; list what is flagged (local only)
redteam-mcp
Attacks your own MCP setup with a library of tool-poisoning attacks and reports which ones land. Where mcp-scan watches for drift, this one goes looking.
repoops redteam-mcpRed team your own MCP setup against a tool-poisoning attack library (local only)
Attestation
Verify an AI-authorship record with no server and no account.
verify
Checks an AI-authorship attestation offline: no server, no network, no account. A tampered or unknown record fails honestly, and the verdict is the same one the dashboard page gives. --key is the install's public verification material, never a private signing key.
repoops verify <record>Verify an attestation OFFLINE (no server, no network)
conform
Grades a third-party emitter's attestation against the v0.2 conformance suite, check by check (graded band, honest-null cost, digest, signature). --key is optional; without it the signature check is skipped rather than faked.
repoops conform <record>Check an attestation against the v0.2 conformance suite
go-live
Reports the Wave B public-claims preconditions and which of them this install currently meets.
repoops go-liveReport the Wave B public-claims preconditions (CNA.31)
seal-incident
Seals an AI incident case, or an evidence pack, to Evidence Rooms (which also publishes the INCIDENT record on aisourceoftruth.com) or straight to the registry. Sends the bundle's hash, the attribution handles (commit, PR, session, prompt hash, model, a developer handle) and the agent trace; never a name, an email or prompt text. Stores the Rooms case id, registry digest and URL on the case. Off until the Rooms or registry settings are set; --dry-run prints what would leave.
repoops seal-incident <caseId>Seal an incident to Evidence Rooms or aisourceoftruth.com
aisot-publish
Publishes our own public facts to aisourceoftruth.com as the publisher repoops: one provenance record per merged PR in a public sellingascode repository (PR URL, the linked Claude Code session id, the opening prompt's hash, the approving reviewer) and the transparency log head, refusing a rollback or a fork. Never customer repositories, private PRs, telemetry or prompt text. Off until AISOT_PUBLISH_MODE is set; records wait for approval (--list, --approve) until a kind is set to auto.
repoops aisot-publishPublish merged-PR provenance and log checkpoints to aisourceoftruth.com
Capture and fleet
Get session evidence off a machine and into the dashboard, on one install or across a fleet.
sensor
The capture pass on a bound install: read new session evidence, buffer it, push it. Run it once, or run it as a daemon that repeats on an interval. With --otlp-receive the daemon also hosts a loopback OTLP/HTTP receiver, so OTLP-emitting tools can push into a bare Sensor with no other agent installed.
repoops sensor --oncePassive capture + buffered push on a bound install (--enroll <secret> for headless fleet)
repoops sensor --watchLong-running daemon: repeat the capture+push pass every --interval <sec> (default 60)
repoops sensor --watch --otlp-receiveAlso host a localhost OTLP/HTTP receiver (127.0.0.1, --otlp-port <n>, default 4318) so OTLP tools push into a bare Sensor
tap
An optional in-path tee for capture. The Sensor is the supported default and this is an unsupported beta; reach for it only when a passive pass genuinely cannot see what you need.
repoops tap --helpThe optional in-path tee (UNSUPPORTED BETA; the Sensor is the default capture)
enroll-secret
Mints the enrollment secret a headless install passes to `sensor --enroll`, so a fleet machine can bind with no browser. Owner or admin only.
repoops enroll-secret mintMint a fleet enrollment secret (owner/admin; for headless sensor --enroll)
sources
Scaffolds a production evidence source in a RepoOps source checkout: a manifest skeleton, a sample fixture and a conformance test. The manifest fails the conformance kit until its field mapping is filled in, and its connect steps are what the Connectors page shows.
repoops sources new <id>Scaffold an evidence source manifest, fixture and conformance test; takes --mode, --auth, --name, --dir
Engagements
Scaffold the deliverables of a forward-deployed engagement.
fde
Scaffolds one of the named forward-deployed engagement deliverables. The mcp kind takes --connector, --auth, and --no-eval; the others take the name alone.
repoops fde new <kind> <name>Scaffold an FDE deliverable (mcp|subagent|skill|auth|eval); mcp takes --connector, --auth, --no-eval
Four commands run with no app installed
adopt, connect, mcp-scan and readiness work from a bare npx repoops: the front door downloads the auth-gated command bundle once after sign-in, checks its sha256, caches it per version and runs it against the repository you are in. The gate is a verified email, never a plan check. Every other command needs the app, and the front door says so before it starts the install.
Where to read more
For what the numbers from repoops bench mean, see the accountability benchmark. For what the security commands defend against, see AI Security. For calls over HTTP rather than a terminal, see the hosted API reference.