The agent check-up CLI

An inventory of what your AI-agent installation already has — plugins, skills, MCP servers, hooks, permissions — scored with the served rule set and what RepoGates already knows about each one's source. Version 0.5.1. Python 3.11 or newer; no dependencies. Part of the Personal, Premium and Team plans; inside Claude Code, /repogates:checkup runs the same command.

The check-up reads; it never runs a program, never changes a file, and never blocks anything.

Install and run

The wheel is served from this site and nowhere else — there is no PyPI package to install. The install line names the exact file:

uvx --from https://repogates.com/cli/repogates_checkup-0.5.1-py3-none-any.whl repogates-checkup

SHA-256 of repogates_checkup-0.5.1-py3-none-any.whl (.sha256):

156083e052ecd90e55381952ad23fab5fa6f7a217895e1f8774b2aec131e1c64
curl -fsSLO https://repogates.com/cli/repogates_checkup-0.5.1-py3-none-any.whl && shasum -a 256 -c repogates_checkup-0.5.1-py3-none-any.whl.sha256

What it reads

Claude Code (read in full)

Claude Desktop (read in full)

Cursor, Windsurf, Codex CLI, Gemini CLI, Cline, VS Code, OpenClaw

What leaves your machine

The check-up reads your AI-agent configuration on your machine and sends RepoGates identifiers, never contents. What leaves: which supported agents are present, and whether this version of the check-up reads each one's configuration or only detects it; the names and versions of installed plugins and the marketplace each came from, with its source type and repository or URL hostname; marketplace names and sources; skill, command and subagent names with where each lives (user, project or plugin), a SHA-256 of each SKILL.md that identifies a known skill without revealing it, and a subagent's declared tools and model; for each MCP server its name, transport, the launch program's name and its arguments reduced to flag names, NAME=<redacted>, URL hostnames and the package a runner starts (npx -y @scope/pkg@version), every other word replaced by <arg> and, for a remote server, the hostname only; the names of environment variables and headers a server or hook is given, never their values; each hook's event, matcher, type, program name, arguments reduced the same way and timeout; your permission rules with paths collapsed, your permission mode and the on/off flags; whether CLAUDE.md, AGENTS.md or rules files exist; the findings the served rule set produced on your machine, as a rule id, a count and a file's place in the list, never the matching text; a random check-up id stored in ~/.config/repogates that is not derived from your hardware; and your API token, to name your account. What never leaves: the contents of any file, environment-variable values, tokens, full URLs, your machine's hostname or user name, your home directory path, project paths or names (a project is sent as its position in the list), and any key of ~/.claude.json or claude_desktop_config.json other than mcpServers. RepoGates keeps the identifiers and their verdicts for your account page and deletes them with your account. The check-up reads; it never runs a program, never changes a file, and never blocks anything.

In short

What never leaves

Every run prints a sent: line with the counts and 0 file contents; with --json the local.inventory object is byte for byte what was sent. Without a token the check-up runs offline — the bundled rule set, local findings only, nothing sent and nothing written. --offline asks for the same.

Exit codes

In CI, repogates-checkup --project . --json reads a repository's .claude/, .mcp.json, CLAUDE.md and AGENTS.md before merge; the exit code gates the job.

Looking for secrets

uvx --from https://repogates.com/cli/repogates_checkup-0.5.1-py3-none-any.whl repogates-checkup secrets .

A second command in the same wheel. It matches these patterns — Gitleaks' rules and six of RepoGates' own — on this machine; a match is not proof, and no match does not mean there is no secret. Free, offline, no account or token, nothing sent; a value is never printed in full. --staged and --history run git, read-only; the check-up itself never runs a program. --check-live, only when given, sends each likely-real key to its own provider and nowhere else. The details.

What it cannot see

Runtime behaviour — what a plugin's code or an MCP server does once it runs (the RepoGates deep scan is the tool for that). An agent that is not in the list. A skill's origin when no provenance file exists. Cursor, Windsurf, Codex, Gemini, Cline, VS Code and OpenClaw configuration, in this version.