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.1.0. 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.1.0-py3-none-any.whl repogates-checkup

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

cbca5ab5f40e2a8eb245e2c262064d7371647347d1c04fac80cf68825d3406fb
curl -fsSLO https://repogates.com/cli/repogates_checkup-0.1.0-py3-none-any.whl && shasum -a 256 -c repogates_checkup-0.1.0-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 with every NAME=value, path and token-shaped string replaced, the package it launches (npx -y @scope/pkg@version) 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, redacted arguments 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.

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.