Add the Safeguard extension to VS Code, sign in, and edit your manifest as usual. As you type a dependency into package.json or a similar file, the extension checks the name for typosquats, namespace confusion and known malicious packages, and marks the line before you ever run an install.
That is the whole idea: catch a bad name while it is still text in an editor.
What does the check actually look at?
According to the Safeguard docs, the inline check covers three things.
- Typosquats. A name one or two edits away from a popular package, such as
expresinstead ofexpress, triggers a "did you mean" suggestion. - Dependency confusion. A scoped package that shadows a popular unscoped name under an unrecognized scope gets flagged.
- Known malicious packages. Names that match documented malicious packages are blocked inline.
Flags appear as badges next to the dependency line, with a hover card and a fuller verdict in the details panel. It works in the same place as vulnerability warnings, so you do not learn a second interface.
What is it not?
Be clear about the limit. The docs describe this as an editor-native companion to the install-time proxy. It evaluates the package name as you type, and it does not intercept a real install command in your terminal. If a teammate runs an install from a shell, this check is not in the path.
It is also documented for the VS Code and Cursor extension only. The docs say the JetBrains plugin's published documentation does not mention inline Package Firewall checks.
How do you set it up?
- Install the extension. Open the Extensions view, search for Safeguard, and click Install. You can also use the
codecommand line with its install-extension option and the extension IDSafeguard-sh-Inc.SafeguardshIdeExtension. Cursor installs the same package from Open VSX. - Run the command Safeguard: Login from the Command Palette. A browser tab opens on app.safeguard.sh with a verification code. Approve the device, return to the editor, and your tenant is filled in for you.
- Open a project that has a manifest. The extension activates when it finds files such as package.json, requirements.txt, pom.xml, go.mod, Cargo.toml or Gemfile.
- Check the two settings that control this feature.
safeguard.enablePackageFirewallis on by default.safeguard.packageFirewallUseBackendis off by default. - Decide which mode you want, as explained next.
Offline heuristic or backend verdicts?
With the backend setting off, a local heuristic runs entirely on your machine. That is quick and works without a network round trip, but it is a lighter judgment. With the backend setting on, the extension asks Safeguard for a verdict, which requires you to be signed in.
If you want every dependency you add to get a backend verdict, set both options to true in your settings file. A stricter personal setup might also set the remediation strategy to safe, so suggested fixes stay within minor version updates, and the severity threshold to medium so low noise stays out of view.
What happens after you add a clean package?
The same extension scans your manifests for known vulnerabilities. It does so automatically when you open the project and again on save, both on by default. You can also run Safeguard: Scan Project for Vulnerabilities at any time. Hover a flagged dependency and open the lightbulb menu to see suggested fixes, which follow the strategy you chose: safe, balanced or aggressive.
Open the full walkthrough at /demos/gate-dev-ide.
What to do
- Install the extension and sign in with the device flow.
- Turn on backend verdicts if your team can accept the network call.
- Treat any flagged name as a stop sign. Open the package page in the registry and compare it to the one you meant.
- Keep a second control at install time, such as a registry proxy or a reviewed lockfile, because the editor check cannot see a terminal install.
- Agree as a team on what happens to a flagged dependency that someone truly needs. Write it down.
Quick check
Does the extension block an install I run in the terminal?
No. The inline check looks at dependency names as you edit a manifest. It does not sit between your shell and the registry.
Do I need to be signed in for the check to work?
The offline heuristic runs locally without a session. Backend verdicts need you to be signed in.
Does this work in JetBrains IDEs?
The published docs describe inline Package Firewall checks for VS Code and Cursor only.
Sources
Last reviewed: 18 October 2026.