Package Exports
- @synsoftworks/depgraph-cli
- @synsoftworks/depgraph-cli/dist/cli/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@synsoftworks/depgraph-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
DepGraph CLI
DepGraph is a supply chain security tool that lives in your terminal, scans an npm package plus its current registry-resolved dependency tree projection for attack signals, and tells you why a package looks suspicious before you ship it.
Run it before every install. Use the JSON output in CI. Agent friendly 🤖
Get Started
Install globally:
npm install -g @synsoftworks/depgraph-cliRun without installing:
npx -p @synsoftworks/depgraph-cli depgraph --helpQuick Start
Show help:
depgraph --helpScan a package with plain terminal output:
depgraph scan axios --no-tui --depth 2Scan the same package with JSON output:
depgraph scan axios --json --depth 2Scan a local project from an explicit lockfile path:
depgraph scan --package-lock ./package-lock.jsonDetect a supported lockfile in the current project root:
depgraph scan --project . --jsonAppend a review outcome to a stored scan finding:
depgraph review <record_id> --target package_finding:axios@1.14.0 --outcome benign --notes "reviewed by analyst"Inspect local dataset coverage:
depgraph evalPlain-Text Example
Plain-text output from a real scan:
Scan: plain-crypto-js@0.0.1-security.0
Mode: registry_package
Target: plain-crypto-js
Overall risk: critical (1.00)
Total scanned: 1
Suspicious packages: 1
Changed edges in current tree view:
- none
Findings:
- plain-crypto-js@0.0.1-security.0 [critical 1.00] via plain-crypto-js@0.0.1-security.0
target: package_finding:plain-crypto-js@0.0.1-security.0
explanation: package was published 1 day(s) ago; package has only 1 published version(s); package is an npm security placeholder or tombstone for a previously malicious package
Current tree view:
- plain-crypto-js@0.0.1-security.0 [critical 1.00]JSON Example
Use --json when DepGraph is being called from CI, scripts, or agents. JSON mode bypasses terminal rendering and emits a deterministic result shape.
depgraph scan axios --json --depth 2Trimmed example:
{
"record_id": "2026-04-02T00:00:00.000Z:axios@1.14.0:depth=2",
"scan_mode": "registry_package",
"scan_target": "axios",
"baseline_record_id": null,
"requested_depth": 2,
"threshold": 0.4,
"root": {
"name": "axios",
"version": "1.14.0",
"risk_score": 0.32,
"risk_level": "safe"
},
"findings": [],
"total_scanned": 9,
"suspicious_count": 0,
"overall_risk_score": 0.32,
"overall_risk_level": "safe"
}This mode is intended for automation, CI checks, and agent tooling that needs machine-readable output instead of terminal formatting.
Current Scan Modes
registry_packagescans start from an npm package spec and resolve structure from registry metadatapackage_lockscans start from a localpackage-lock.jsonand read dependency structure from the lockfile itself
package_lock scanning currently supports package-lock.json with lockfileVersion >= 2 and a packages map only.
Local Data Model
DepGraph now persists repo-local history under .depgraph/:
scans.jsonlfor immutable scan recordsreview-events.jsonlfor append-only review annotations
Status
DepGraph is pre-v1 and under active development. Core scanning works. Some dependency types degrade gracefully rather than fully enriching. See the roadmap for what's coming.
Roadmap
Shipped
- npm package scanning with BFS traversal
- rich Ink terminal UI and plain text mode
- deterministic JSON output for agents and CI
- local scan persistence and append-only review history
- projected dependency edge delta against prior baseline
- package-lock.json project scanning
- graceful degradation for private and non-registry dependencies
- finding-level review targets and source-precedence label integrity
- local dataset evaluation
Coming Soon
- pnpm and yarn lockfile support
- advisory database integration
- sensitive import analysis
- explain command
- CI/CD GitHub Action
- depgraph.sh
Future
- pip / cargo / gem ecosystem support
- maintainer history signals
- organization-level scan aggregation
Philosophy
DepGraph follows a simple rule: data first, presentation second.
Each command produces structured scan data first, then renders it for either a human terminal session or an agent-oriented JSON consumer. The CLI is designed to work well for both without mixing business logic into presentation.
Contributing
See CONTRIBUTING.md for local setup, workflow, and contribution guidelines.
Security
If you believe you found a security issue in DepGraph itself, see SECURITY.md.
License
DepGraph is available under the MIT License.