Safer-dependencies is a security layer for Claude Code that audits dependencies Safer-dependencies, a new security layer for Claude Code, automatically audits and blocks risky dependencies—including CVEs, typosquats, abandoned packages, and version-age issues—across npm, PyPI, RubyGems, Maven, Go, Rust, and PHP (Composer), correcting vulnerable versions on disk before they run. The tool, created by Robert Auger, is source-available under a license that permits free use and modification for internal and commercial products but requires a paid license to monetize the software itself. When AI coding assistants like Claude add packages to your project, they often pick whatever version sounds right — without checking whether it has known security vulnerabilities, whether the package is still actively maintained, or whether the name is a typo away from a malicious lookalike. safer-dependencies is a security layer for Claude Code: it sits between Claude and your manifest files and runs its security checks automatically: vulnerable installs are denied before they run, and a risky version written to a manifest is corrected on disk right after the write. It detects and fixes risky dependencies — CVEs, typosquats, abandoned packages, and version-age issues, plus a cooldown period on brand-new releases — across npm, PyPI, RubyGems, Maven, Go, Rust, and PHP Composer . See CAPABILITIES.md /robert-auger/safer-dependencies/blob/main/CAPABILITIES.md for exactly what is and isn't covered. New here? GETTING-STARTED.md takes you from zero to a working install in about five minutes. Security & privacy:see SECURITY.md vulnerability disclosure , PRIVACY.md data egress, no telemetry , and CAPABILITIES.md what the tool defends against and what it doesn't . License source-available — NOT OSI "open source" :Free to use and modify for your own purposes,including for-profit/company internal use and building products you sell. A separate paid license is requiredonlyto monetize the softwareitself— selling it, shipping it inside a product or service that is sold, or offering its functionality to third parties for a fee including hosted/SaaS/API . Redistribution and derivatives must keep the license and credit this project. See Section 4 for the commercial restriction ; commercial-license requests via LICENSE github.com/robert-auger . Getting started getting-started — zero to installed in about five minutes What it does what-it-does How it works how-it-works What triggers it what-triggers-it What's in this repo whats-in-this-repo Supported ecosystems supported-ecosystems Install install Warning levels warning-levels Audit log audit-log Requirements requirements FAQ faq GETTING-STARTED.md takes you from zero to a working install in about five minutes — prerequisites, the interactive install, and verification. For the full install reference global/project/manual installs, Windows specifics, the permissions allowlist /robert-auger/safer-dependencies/blob/main/INSTALLATION.md permissions-allowlist , updating, and uninstalling , see . INSTALLATION.md /robert-auger/safer-dependencies/blob/main/INSTALLATION.md Everyday use: once the hooks are installed, there's nothing to run — safer-dependencies works automatically in the background. As Claude adds or installs packages, it flags risky dependencies and upgrades vulnerable versions to a safe one in place — and blocks a known-vulnerable install before it even runs — so unsafe packages are caught and corrected without you having to ask. You can still invoke it directly any time: "is axios@1.2.0 safe?" , "check safer-dependencies setup" , or "show safer-dependencies stats" . When Claude is about to add a package to your project, safer-dependencies intercepts and runs 5 checks: Provenance -- official registry, typosquat detection npm/PyPI/RubyGems/Maven/crates.io , package age Version age -- picks the newest stable version published 7+ days ago cooldown window Vulnerability scan -- OSV API, with ecosystem-native tools npm audit, pip-audit, bundle audit when available Hash-pin integrity -- for PyPI requirements.txt lines with --hash=sha256:... pins, the declared hash is validated against PyPI's published hashes; mismatch emits a WARNING Abandoned & stale packages -- known-abandoned packages e.g. paperclip , request , pycrypto , github.com/dgrijalva/jwt-go are hard-blocked immediately with a suggested replacement; packages with no stable release in 2+ years get an advisory STALE: warning. Hard-blocked packages are removed from the manifest and Claude will ask how to proceed; stale-only packages are left in place. If issues are found, Claude emits warnings and may step back to a safer version. All checks are logged to ~/.claude/safer-dependencies-audit-YYYY-MM.log one file per calendar month . The skill operates in five modes summarized below; the deepest design rationale lives in skills/safer-dependencies.md : When Claude is about to write an import , add a package to a manifest, or update a lock file, the skill runs inline in your session: - Queries the package registry for stable versions - Auto-selects the newest version published 7+ days ago deterministic -- no LLM judgment - Checks for known vulnerabilities via ecosystem tools and the OSV API - Verifies package signatures where available - Emits warnings if issues are found, pins the exact version - Logs the result to the audit trail The version selection is handled by standalone Python scripts bundled with the skill, not by the LLM interpreting rules. The command outputs SELECTED: