Use for dependency security audits and compliance checks. Use when auditing project dependencies for vulnerabilities, answering "is [library] [version] safe?" questions, or remediating vulnerable libraries. Also activates automatically when the user opens or modifies a manifest file (package.json, package-lock.json, yarn.lock, pnpm-lock.yaml, requirements.txt, pom.xml, Cargo.toml, go.mod, Gemfile, composer.json, build.gradle, *.csproj, pubspec.yaml, conanfile.txt, conanfile.py, project.clj, deps.edn, Package.swift, pubspec.lock, Package.resolved, Gemfile.lock, poetry.lock, uv.lock, Cargo.lock, composer.lock).
96
90%
Does it follow best practices?
Impact
99%
1.83xAverage score across 8 eval scenarios
Passed
No known issues
You have access to the Meterian CLI (@meterian/cli). Always invoke it via npx @meterian/cli (not a bare meterian command) — this ensures cross-language support and access to the full Meterian advisory database.
Always use the following mapping to determine the language parameter:
| Manifest file | language |
|---|---|
package.json, package-lock.json, yarn.lock, pnpm-lock.yaml | nodejs |
requirements.txt, Pipfile, pyproject.toml, poetry.lock, uv.lock | python |
pom.xml | java |
build.gradle, build.gradle.kts | java |
Cargo.toml, Cargo.lock | rust |
composer.json, composer.lock | php |
Gemfile, Gemfile.lock | ruby |
go.mod, go.sum | golang |
*.csproj | dotnet |
conanfile.txt, conanfile.py | cpp |
pubspec.yaml, pubspec.lock | dart |
project.clj, deps.edn | clojure |
Package.swift, Package.resolved | swift |
When asked to audit, scan, or check all dependencies:
Find all manifest files in the workspace using Glob (search for the filenames in the Language Parameter Reference table above)
Extract dependencies with their pinned versions:
Build a JSON array of {language, name, version} objects and pipe it to the CLI:
echo '<json-array>' | npx @meterian/cli checkPackage, Version, Severity, ID, Safe Versions. Do not split information across multiple tables. Include a summary line in exactly this format: X vulnerabilities found across Y packages (Z clean).## Meterian Security Audit Report
| Package | Version | Severity | ID | Safe Versions |
|---------|---------|----------|----|---------------|
| lodash | 4.17.15 | HIGH | CVE-2021-23337 | 4.17.21 |
...
X vulnerabilities found across Y packages (Z clean).If vulnerable is empty, output: "✅ No vulnerabilities detected across N packages."
After presenting the report, if vulnerabilities were found:
reachability-analysis skill, including the list of vulnerable packages (name, version, CVE ID) in the invocation promptIf no vulnerabilities were found, the audit is complete — do not propose reachability analysis.
When asked "is [library] [version] safe?" or similar:
npx @meterian/cli advisories get <language> <name> <version>For each vulnerable dependency:
check output already contains safeVersions — an array ordered [latestPatch, latestMinor, latestMajor] (nulls excluded). Select the first (least-disruptive) entry.Update the version in the manifest file and/or run the ecosystem's install command (e.g. npm install lodash@4.17.21, cargo update -p <crate>, pip install <pkg>==<ver>).
After applying all fixes, re-run the full audit (Mode A). If new vulnerabilities are found, repeat the remediation cycle. If all are clean, output: "✅ All packages are now clean."