depwall/
/

    Home / Docs / Configure

    Browser extension

    See the verdict the gate would return on npm and PyPI package pages, and on install commands you find anywhere. It reports; it does not block.

    Install from the Chrome Web Store. Free, open source, and it works without the CLI — though the two together are the point.

    It does not block anything

    A browser extension sits beside a page you are reading. It has no position in the install path, so there is nothing for it to stop. The badge says what the gate would return; the PATH shims from depwall init are what actually stop an install. If you only install the extension, nothing is gated.

    What it does

    SurfaceWhat you get
    Package pageA verdict card on any npmjs.com/package/… or pypi.org/project/… page.
    Toolbar iconThe tier as a letter as well as a colour — B, ?, OK — so it survives colour blindness.
    Right-clickCheck a selected package name, a whole install command, or a link to a package page. Works on any site.
    PopupType or paste anything: express, @types/[email protected], npm install -D @scope/[email protected], requests==2.31.0. Pre-filled from the page you are on. Alt+Shift+D opens it.
    Page scanOptional, per site. Underlines npm install … lines in READMEs and answers, with the verdict beside them.

    The confidence meter

    Every ASK and BLOCK carries a number, a band word, and one line naming what the call rests on. It rates the evidence, not the package: a byte-for-byte match to a published advisory and a package that was uploaded last Tuesday both stop an install, and they are not the same claim.

    The bar wears the verdict's own colour and strength is how much of it is filled, so it can never look like a second opinion. ALLOW draws no meter at all — a confidence bar next to a clean result reads as a safety score, and "no signals fired" is the absence of a measurement rather than one.

    There is a longer write-up in Two BLOCKs are not the same claim.

    What leaves your browser

    An ecosystem, a package name, and a version. That is the entire payload.

    Full detail in the privacy policy.

    Page scanning is off until you grant it

    Scanning a page means reading it, which is a different thing from checking a package you are already looking at. So the wildcard host lives in optional_host_permissions and is requested by a switch in the popup, per site. Installing the extension grants nothing.

    Detection only looks inside <pre>, <code> and highlighted blocks. Prose is where false positives live — "you should install express" is a sentence, not a command. ALLOW hits are unwrapped rather than marked, because decorating every install command with "checked, fine" is noise that hides the real ones.

    Pointing it at your own service

    The options page takes one setting: the base URL of a verdict service you run. It must be https:// and it refuses to save anything else. Whatever it points at, the request carries the same three things.

    An unreachable service is not a clean result

    If the lookup times out or fails, the badge says so in those words. It never shows anything that could be read as "fine" — the same fail-mode rule the CLI holds, applied to a surface that cannot enforce it.