Repository navigation
[External Plugin]: installguard #4812
Description
Plugin name
installguard
Short description
Looks up every new package before Copilot installs it: holds made-up names, typosquats, days-old releases and curl-into-shell for your answer, and lets the rest through.
GitHub repository
griches/installguard-copilot
Plugin path inside the repository
No response
Ref to review
v1.0.0
Commit SHA to review
0fd5b5080f209c6c50b121e87144d754d8dfcb3f
Version
1.0.0
License identifier
MIT
Author name
Gary Riches
Author URL
Homepage URL
No response
Keywords
security
supply-chain
npm
pypi
cargo
typosquatting
slopsquatting
guard
hooks
Additional notes for reviewers
A preToolUse hook plus one /installguard command; no skills, agents or MCP servers.
When Copilot is about to run a shell command that adds a package the project does not already have (npm, PyPI, crates.io, RubyGems), the hook asks that package's public registry about it and answers ask with a reason if something is flagged: a name that is not on the registry, a lookalike of a popular package, a package or release that is days old, very low downloads, or a download piped into a shell. Otherwise it prints nothing, so Copilot's own approval applies unchanged; it never answers allow.
What it runs and contacts is listed in the README under "What it does on your machine", and in PRIVACY.md: the only hosts are the registries themselves plus api.npmjs.org, pypistats.org and api.deps.dev, and the only thing sent is the package name and version. No telemetry, no account, no model calls.
Needs Node 18+ on the PATH; macOS and Linux (the hooks are bash entries only, so nothing runs on Windows yet). dist/ is committed and CI fails if it is out of date with src/. Tested on Copilot CLI 1.0.93.
Submission checklist
- The plugin lives in a public GitHub repository.
- The ref and/or sha I provided is immutable (release tag and/or full 40-character commit SHA), not a branch.
- This submission follows this repository's contribution, security, and responsible AI policies.
- This plugin is not already listed in the Awesome Copilot marketplace.
Activity
github-actions commentedon Oct 9, 2026
🔴 Contributor Reputation Check: HIGH risk
Maintainers: please review this contributor before merging.
See the workflow run for full details.
Automated check powered by AGT.
github-actions commentedon Oct 9, 2026
This submission passed blocking quality checks and is ready for maintainer review, but it has non-blocking Agent Plugins spec compliance warnings.
View workflow run · Download full quality gate logs
v1.0.00fd5b5080f209c6c50b121e87144d754d8dfcb3fReviewer signals
These are non-blocking heuristics for maintainer review; they are not evidence of misconduct or low quality.
Quality gate summary
Legend: ✅ pass ·⚠️ warning · 🛑 fail
spec compliance output (⚠️ warning)
vally lint output (✅ pass)
install smoke test output (✅ pass)
Version match output
Ref/SHA consistency output
Canvas structure output
Canonical external.json payload
{ "name": "installguard", "description": "Looks up every new package before Copilot installs it: holds made-up names, typosquats, days-old releases and curl-into-shell for your answer, and lets the rest through.", "version": "1.0.0", "author": { "name": "Gary Riches", "url": "http://github.com/griches" }, "repository": "http://github.com/griches/installguard-copilot", "license": "MIT", "keywords": [ "security", "supply-chain", "npm", "pypi", "cargo", "typosquatting", "slopsquatting", "guard", "hooks" ], "source": { "source": "github", "repo": "griches/installguard-copilot", "ref": "v1.0.0", "sha": "0fd5b5080f209c6c50b121e87144d754d8dfcb3f" } }