Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>RepoGates: what runs on openNew to Visual Studio Code? Get it now.
RepoGates: what runs on open

RepoGates: what runs on open

RepoGates

|
1 install
| (0) | Free
Open a folder and see what would run on open. It reads the folder's settings; it does not stop the editor.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

RepoGates for VS Code: what runs on open

Open a folder and see what would run on open. It reads the folder's settings; it does not stop the editor.

When a folder opens (and whenever you run RepoGates: Show what runs on open), the extension reads a short list of the folder's own files and lists every command they would start without anyone asking: a task, a dev container's set-up, an AI agent's hook or MCP server, a terminal profile, direnv. A count appears in a message; the panel lists each command, the file it comes from, when it would run, and the folder files it starts.

It is a list, not a verdict, and not a control: nothing it shows is stopped, and a short list does not mean the folder is fine.

Two ways to use it

Without an account With a RepoGates account
What you see The list of everything the folder would run on open, from the folder's own files The same list, plus RepoGates' verdict on the folder's GitHub or gitlab.com repository
Where it runs On your machine only The list on your machine; the verdict from api.repogates.com
What leaves your machine Nothing; works offline The repository's owner/repo, with your token. Never a file or its contents
How to turn it on Nothing to do: it is on from install Turn on repogates.askService in your user settings and run RepoGates: Set API token
Cost Free Within your account's plan: a free account gets the free trial's 10 repositories in its first 14 days, a paid plan has no repository limit

Without a token the panel says the service was not asked; the list is the same either way.

What it reads

Only these files, in each workspace folder, and only up to 1 MB each:

File What is listed Grade
.vscode/tasks.json, *.code-workspace (root) tasks with runOptions.runOn: "folderOpen", and the tasks they depend on HIGH
.devcontainer.json, .devcontainer/devcontainer.json, .devcontainer/<name>/devcontainer.json initializeCommand (runs on your machine) CRIT
onCreateCommand, updateContentCommand, postCreateCommand, postStartCommand, postAttachCommand (inside the container) HIGH
a Dockerfile build MED
.claude/settings.json, .claude/settings.local.json, .mcp.json, .cursor/mcp.json, .gemini/settings.json, .vscode/mcp.json a hook that runs a file from this folder on SessionStart; an MCP server that runs a script from a hidden folder; any command that fetches something and hands it to an interpreter CRIT
a hook that runs a file from this folder on any other event HIGH
any other SessionStart hook MED
any other hook or MCP server, and a remote server's address INFO
.vscode/settings.json, *.code-workspace settings terminal.integrated.profiles.{osx,linux,windows} (a path inside the folder is HIGH, elsewhere MED); python.defaultInterpreterPath, python.pythonPath, git.path (inside the folder HIGH, elsewhere INFO) as stated
.envrc that it exists, and its first lines MED

The grades follow the RepoGates service's own checks on the same files (C10 for dev containers, C13 for .vscode, C20 for agent configurations), with a simpler reading of a command line than the service's. They are the panel's grades, not a RepoGates verdict.

The list of settings keys is deliberately short. Other settings can make an extension run a program (a linter's path, a formatter's binary); they are not read.

A file that is present and not read is listed as not read, with the reason, never as "nothing found": a file over 1 MB, a file reached through a symbolic link (links are never followed, in the file or in a folder on the way to it), a file that is not valid JSON with comments.

What it never does

  • It never runs, imports or evaluates anything from the folder, and never starts git, a shell, a package manager or any other program.
  • It never sends a file, a path or any content anywhere. With the service call off (the default) it makes no network request at all.
  • It does not stop a task, a dev container, an agent or the editor, and it changes no setting.

Workspace Trust

The panel says whether the window is trusted. VS Code runs folder-open tasks and applies the folder's settings only once the folder is trusted (and, for tasks, when automatic tasks are allowed by task.allowAutomaticTasks); a dev container's commands run when the folder is opened in the container. The extension itself runs in Restricted Mode too, because that is when the list is useful: before you decide to trust.

AI agents (Claude Code, Cursor, Gemini CLI) and direnv do not ask VS Code: they read their own files when they start in the folder.

The RepoGates service (optional, off by default)

Turn on repogates.askService in your user settings and run RepoGates: Set API token (a personal token, rgp1.…, from your RepoGates account page; stored in VS Code's secret storage). When the folder's git remote is on github.com or gitlab.com, the panel then asks https://api.repogates.com/v1/score/{owner}/{repo} (or /v1/gl/score/…) and shows the verdict and its dimensions as the service sent them.

  • Only the remote's owner/repo (or the gitlab.com project path) is sent, with your token. Never a file or its contents.
  • The remote is read from .git/config as text; git is not run. For a worktree or submodule (.git is a file), the git directory it names is followed only when it is inside the folder or inside a .git directory above the folder; a network or device path (\\server\share, //host/…) or another drive is refused before anything is opened. A worktree kept elsewhere shows no remote and is not asked about.
  • The address is fixed. There is no setting for it, and the setting that turns the call on is a user setting only ("scope": "application"): a project's workspace settings can neither turn it on nor point it elsewhere.
  • A refusal or a failure is shown as "not assessed" with the reason.
  • RepoGates: Remove API token deletes the stored token.

Build

No npm and no build step. python3 tools/build_vsix.py packs vscode/ into vscode/dist/repogates-<version>.vsix (gitignored), reproducibly. Tests: node --test vscode/tests/*.test.mjs and pytest tools/test_build_vsix.py.

MIT licence (LICENSE).

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft