How RepoGates works, what it covers, and how to run it — for the developer who installs it, the administrator who manages it, and the AI agent that is told to ask it first.
preflight), a package named on it —
npm install express, pip install flask —
resolved to the repository it declares; the
Claude Code plugin's hook
refuses a blocked line before it runs; the
skill makes Claude.ai and
Cowork ask first.git clone, package managers or
curl — outside Claude Code with the RepoGates plugin,
whose hook refuses a clone or install that names a blocked
repository on the command line, before it runs. A browser
extension cannot see other processes; that is structural, not a
roadmap item.curl is not stopped. In Claude.ai
and Cowork the skill is the same — advisory.Read/Edit/Write,
not MCP git tools, not another agent, not a human at a
terminal.The personal user guide: install, sign in, the free limit, what each verdict means, the decision page and overrides, deep scans, every tab of the options page, devices, troubleshooting.
Personal user guide →The MCP server and its nine tools, the Claude Code plugin whose hook refuses a blocked clone before it runs, the skill for Claude.ai and Cowork, and five real runs with screenshots.
AI agents & MCP guide →Every check on its own page — what it detects, its weight, its false-positive rate — in four families, plus the four dimension verdicts derived from them.
The checks →FakeGit, the campaign this was built after; AgentBaiting, the technique only the browser can see; the Rules File Backdoor inside agent configuration.
FakeGit · AgentBaiting · Rules File Backdoor →The roadmap — shipped, building now with a date and a gate, not planned with the reason; where things stand today; support; what the extension sends and never sends.
Roadmap →| Where | What runs | What you get |
|---|---|---|
| Claude Code | The plugin: a PreToolUse
hook on the Bash tool, the MCP server and the skill, installed
with /plugin marketplace add https://repogates.com/plugin/marketplace.json
— published from this site and nowhere else, the zip's sha256
pinned in that file. Needs a personal API token and a paid plan. |
Enforced. A blocked line is refused before it runs; a warning asks you; a PASS is a note and Claude Code's own rules still apply. |
| Claude.ai and Cowork | The skill, downloaded from this site and uploaded under Settings → Capabilities → Skills, with the RepoGates connector attached. | Advisory. Claude checks before it clones or installs, tells you what fired, stops on a refusal and never routes around it; each tool call asks you first. |
| Any MCP client — Cursor, Codex, Copilot, Gemini… | The MCP server, nine tools, OAuth 2.1, paid plan. | Advisory. assert_allowed raises rather than
returning prose a model can argue with; an agent that never
calls it is not stopped. |
Five things it does for an agent, each one a real run with a screenshot in the agents guide:
git clone of a repository that
comes back REVIEW: the answer is ask, Claude names what
fired and the checks that did not run, clones nothing, and waits for
you.preflight raises, the campaign is named, nothing
is installed and no other route is tried.npm install express or
pip install flask names no repository, so the registry
is asked which one the package declares and that repository is
assessed — allowed, or asked about when it warns.ls, npm test,
pip install -r requirements.txt: the hook says nothing
and no request leaves the machine.
ask. Claude
names C1 and C2, the two checks that did not run and why, and waits.
npm install
github:repogates-canary/always-blocked — preflight
raises, Claude installs nothing and looks for no other route.
All five runs →codeload.github.com,
release assets under /releases/download/, raw files, and
downloads clicked from a repository page whose bytes come from a
GitHub host. It holds the download while it decides.owner/repo to the verdict service at
api.repogates.com — plus, if you arrived from a known AI
surface, that surface's hostname. Never a full URL, never page or
repository contents. (Through the Claude Code plugin or the MCP
preflight tool it is the command line instead, with URL
credentials and NAME=value assignments redacted, parsed
on the server and not stored.)PASS, REVIEW or BLOCK — with
the findings that fired. Verdicts are cached, so popular repositories
answer in milliseconds.The whole decision is budgeted at about eight seconds, inside the fifteen-second ceiling Chrome gives a download listener. What happens when that ceiling is hit is described plainly in troubleshooting.
| Verdict | Meaning |
|---|---|
| PASS | No finding reached your policy's warn or block threshold. The download proceeds. |
| REVIEW | Findings worth reading. The download is stopped and shown to you; you may proceed, and that is recorded. |
| BLOCK | A finding your policy blocks on, or a listing in an active malware campaign. Stopped; override only if permitted, always recorded. |
| NOT CHECKED | The repository was not assessed — trial used up, sign-in needed, or device limit. This is not a judgement about the repository. Known malware is still blocked. |
The full table, with what to do in each case, is in the personal guide.
Four groups. The first three run on the verdict service; the last one can only run in the browser.
.envrc). Read from the file list — no clone — except
the devcontainer configuration, which is read so that a command that
runs on your host (initializeCommand) is told apart from
one that runs inside the container.Four dimension verdicts, from the same roster.
Beside the single verdict, the score answers the four things you might
do with the repository — open it in an editor (C10, C11, C13,
C14, C17, C18–C21), clone it (C1–C8, C11, C12), install and
run it (C9, C10, C14, C15, C16), hand it to an AI agent
(C10, C18–C22) — each PASS, REVIEW, BLOCK or not assessed, with your
profile's action. A dimension is a maximum over its checks, never a
sum, so the score does not change; it is PASS only when every check in
it ran and none fired, and a Scorecard result that does not exist or
the browser-only C22 is listed as not checked without withholding it.
/v1/score, the MCP check_repo and the
preflight carry them, and the preflight's one-line reason ends with
the dimension the verb is about (clone: REVIEW,
install: PASS). On the board they are the four chips
above the family pills. Shipped 10 September 2026 on the API and the
agent path; the chips arrive with the next extension release.
The repository timeline. Every fresh answer is
kept for 180 days — the date, the verdict, the score and which checks
fired, by number; nothing about who asked — and a new point is added
only when the answer changed, so a repository that stays the same has
one point that keeps being confirmed. /v1/score carries
the last twelve as history and the difference since the
previous one as drift: the score delta, the checks that
newly fired or cleared, and whether the engine changed in between —
in which case the movement reflects updated checks, not the
repository. A point exists only when someone looked; nothing is
re-checked on a schedule. The MCP check_repo and the
preflight say the same as changed_since_last; on the
board it is the delta beside the score and one line naming what
changed. Shipped 10 September 2026 on the API and the agent path;
the board part arrives with the next extension release.
| Surface | Status |
|---|---|
| Website sign-in, account page, repository checker | Available. Sign in with Google or Microsoft at /account. |
| Browser extension | Available. Published on the Chrome Web Store (unlisted — install from the link; Edge installs it too). Unpacked builds remain for development (how). |
| MCP server | Available. Endpoint https://mcp.repogates.com/mcp; OAuth 2.1 and a paid plan; nine tools, including preflight on the exact command line and deep_scan with your yes. The extension's Test connection button and the /clients endpoint tell you whether it is reachable from where you are (how). |
| Claude Code plugin | Available — version 0.3.1, published from this site 9 September 2026 (the zip, its sha256 pinned in the marketplace file). /plugin marketplace add https://repogates.com/plugin/marketplace.json, then /plugin install repogates@repogates; needs a personal API token from the account page and a paid plan. Its hook refuses a clone or install that names a blocked repository before the Bash tool call runs, asks on a warning, and does not see anything else (what it covers). |
| Skill for Claude.ai and Cowork | Available. Download the zip from this site and upload it under Settings → Capabilities → Skills; with the connector attached, Claude checks before it clones or installs and reports what fired. Advisory — there is no hook outside Claude Code (how, five real runs). |
| Personal API tokens | Available. Created on the account page, shown once, up to five, revocable; the plugin's hook and any script use one to call /v1/preflight. Paid plans. |
| Organisation tier | Not available: no SSO, no policy per organisational unit, no central audit log — withdrawn in August 2026, because the tier needed roughly 660 paying seats to pay for itself, against about 40 for the individual product. Team remains as a 3–5 seat licence with no console. Listed as not planned, with the reason, on the roadmap. |
| Deep scans | Available. Reads a repository's files in an isolated sandbox with no network access — OpenGrep, Gitleaks, Trivy, ClamAV, ScanCode. In the extension the result replaces the verdict; for an AI agent it does not — the agent reports both. One credit per scan; a scan that produces no answer refunds it; an agent may start one only with your yes to that call, at most five a day, and a repeat within 15 minutes is free. Described in the personal guide. |
This table is what exists today. What is being built, with a date and the gate it must pass, and what is not planned, with the reason, is on the roadmap. When something here changes, the table changes.
Questions, bug reports, false blocks, security disclosures and
procurement all reach the same human:
support@repogates.com.
For a false block, include the owner/repo and the check
names shown on the decision page — that is everything we need.
Related: Privacy · Pricing · How we measured ourselves · Honest coverage.