Thanks for considering a contribution. SafeInstall sits in the install path of every developer who uses it, so we hold the bar high for safety, deterministic behavior, and a small dependency footprint.
git clone https://github.com/ATOM00blue/safeinstall.git
cd safeinstall
go test ./...
go build -o sical ./cmd/safeinstall # local binary; rename if Windows AV is twitchy
./sical check lodashGo 1.22+ supported. We use stdlib only — please don't add runtime dependencies without prior discussion.
- Typosquat additions. Pull requests adding popular package names to
internal/typosquat/{npm,pypi,cargo}_top.go. - False-positive reports. A trusted package scoring > 50 unfairly. Open
an issue with the package name and the report output (
--json). - New detection signals for documented attack patterns. Open an issue describing the pattern before opening a PR.
- Bug reports that are reproducible (provide ecosystem, package name, version, expected vs actual).
- Doc improvements, especially real-world usage examples.
- New runtime dependencies. We use stdlib + a single dev-only dep (none yet). This is intentional. Security tools should be small.
- Vendor-specific allowlists in code. Use the
--allowlistflag or.safeinstall.json. - Telemetry or any non-essential network call. The user's network calls are: registry lookup, OSV lookup. That's it.
- Auto-uninstall or auto-quarantine logic. Detection only; user takes action. v0.1 boundary.
-
go test ./...passes -
go vet ./...clean - No new go.mod entries (unless discussed)
- If adding a signal: documented in
README.md"Risk signals" table - If touching scoring: explain the weight choice in the PR description
- Functions have brief doc comments
If you discover a malicious package in the wild:
- Report to the registry first (npm, PyPI, crates.io) — they have takedown power.
- Submit it to OSV at https://osv.dev — that's the source we query.
- Open an issue here so we can add an integration test fixture.
We do not ship a private IOC list. Use OSV.
By contributing, you agree your contributions will be licensed under the MIT License.