Safeguard
Developer Tools•

How to audit installed editor extensions across a dev team

A step by step way to inventory VS Code and JetBrains extensions across a team, rank them by risk, and decide what to keep, pin, replace or remove.

Safeguard Security Team
3 min read

To audit editor extensions, collect a list of installed extensions and versions from each developer, merge it into one inventory, rank each entry by publisher trust and need, then remove, pin or allowlist. The command line makes the collection step quick for VS Code and JetBrains IDEs.

Step 1: Collect the list

For VS Code, the documentation gives code --list-extensions, and adding --show-versions includes versions. Ask each developer to run it and send the output, or collect it through your device management tool.

For JetBrains IDEs, the Plugins settings page lists installed plugins under the Installed tab. Bundled plugins ship with the IDE and can be disabled but not uninstalled, so focus on the others, which come from JetBrains Marketplace, a custom repository or a local file.

If your team uses Open VSX compatible editors, the same idea applies using that editor's own list command or settings screen. Check its documentation, since this guide has not verified every editor.

Step 2: Merge into one inventory

Use a spreadsheet or a small script. For each extension record the ID, version, publisher, number of machines, and where it was installed from. Mark anything installed from a VSIX file or from disk, since those do not come through the usual Marketplace route.

Step 3: Score each entry

Use a simple four question score:

  1. Is the publisher verified, and do you recognise it?
  2. Is the extension actively maintained, with a source repository you can read?
  3. Does the team need it, or does a built in feature do the same job?
  4. How many people have it?

The vetting checklist gives the questions to ask about each one.

Step 4: Decide

  • Keep and allowlist. Common, vetted extensions.
  • Keep and pin. Extensions that touch sensitive code, with exact versions.
  • Replace. Duplicates that do the same job.
  • Remove. Anything unknown or unused.

Step 5: Enforce

For VS Code, extensions.allowed and the AllowedExtensions policy turn the decision into a rule. See the allowlist guide. For JetBrains, the idea.plugins.host property can point the IDE at a different default repository, which limits sources to the repositories you configure.

Step 6: Repeat on a schedule

Run the audit each quarter and when someone joins or leaves. A new starter often arrives with a long list synced from an old setup, so check what Settings Sync copies.

A small example

Imagine a team of twenty. The inventory shows eighty distinct extensions. Forty are installed on one machine each. A dozen overlap, such as three Markdown previewers. A few have no recent updates and no repository link. The audit does not need to be perfect to be useful: removing the unknown and the duplicates cuts the surface by half in an afternoon, and the allowlist keeps it from growing back.

What to tell the team

Explain the reason, not just the rule. Developers accept an allowlist when they understand that extensions run as them, with access to their keys, and when there is a quick path to request an addition. Pair the policy with a named owner and a response time.

Quick check

Does this cover extensions installed from files?

Only if you record the source. VSIX installs in VS Code and installs from disk in JetBrains IDEs are easy to miss, so ask about them directly.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.