
CLIおよびMCPサーバーで、npm、PyPI、crates.io、Goモジュール、GitHub Actionsを含む14以上のエコシステムにわたって、パッケージバージョンの既知の脆弱性をチェックします。フックとスキルを介してAIエージェントと統合します。
__ __ __
___/ /___ ___ / /________ _______/ /_
/ _ / __ \/ _ \/ __/ ___/ / / / ___/ __/
/ __/ /_/ / __/ /_/ / / /_/ (__ ) /_
\__,_/\____/ .___/\__/_/ \__,_/____/\__/
/_/
deptrust は、npm、PyPI、crates.io、Go モジュール、RubyGems、NuGet、Maven、Packagist、pub.dev、CocoaPods、Hex.pm、Hackage、GitHub Actions などについて、パッケージバージョンの既知の脆弱性をチェックする CLI です。
CLI および MCP サーバーとしてローカルで動作します。公開パッケージレジストリと OSV API を直接呼び出します。信頼したり設定したりするホスト型 deptrust サービスはありません。
このツールは、AI エージェントが常に古いバージョンを使用するというフラストレーションから生まれました。
対応エコシステム:
@clidey/ux のようなスコープ付きパッケージを含む)groupId:artifactId 形式のパッケージ名を使用)vendor/package 形式のパッケージ名を使用)owner/repo 形式のパッケージ名と、タグ、ブランチ参照、コミット SHA をバージョンとして使用)deptrust は現在、既知の脆弱性を報告し、シンプルな推奨を提供します:
| 最高既知の深刻度 | 推奨 |
|---|---|
| 重大 | ブロック |
| 高 | ブロック |
| 中 / 不明 | 確認 |
| 低 | 許可 |
| なし | 許可 |
許可 は、公開データソースでブロックする既知の脆弱性が見つからなかったことを意味します。パッケージが安全であることを証明するものではありません。
deptrust は CVEs ではないリスクシグナルも出力します。たとえば、過去 72 時間以内に公開されたバージョンは確認対象としてマークされ、エージェントが新しいリリースを盲目的にインストールしないようにします。
アドバイザリプロバイダーは並行して照会されます:
プロバイダーのカバレッジはエコシステムによって異なります。deptrust がレジストリメタデータを解決できても、設定された脆弱性プロバイダーがそのエコシステムをサポートしていない場合、パッケージを安全として扱う代わりに 不明 を返します。
プロバイダーカバレッジ:
| エコシステム | レジストリメタデータ | OSV | GitHub Advisory DB |
|---|---|---|---|
| npm | あり | あり | あり |
| PyPI | あり | あり | あり |
| Cargo / crates.io | あり | あり | あり |
| Go モジュール | あり | あり | あり |
| RubyGems | あり | あり | あり |
| NuGet | あり | あり | あり |
| Maven | あり | あり | あり |
| Packagist / Composer | あり | あり | あり |
| pub.dev | あり | あり | あり |
| CocoaPods | あり | なし | あり |
| Hex.pm | あり | あり | あり |
| Hackage | あり | あり | なし |
| GitHub Actions | あり | あり | あり |
JSON 出力には、アドバイザリカバレッジに関するフィールドが含まれます:
checked_providers:deptrust が実際に照会した脆弱性プロバイダーskipped_providers:スキップされた設定プロバイダー(エコシステムがサポートされていないため)advisory_coverage:full、partial、none、または erroradvisory_coverage_reason:カバレッジ値の簡単な説明registry_verification:レジストリメタデータがバージョンを確認した場合は verified、過渡的なレジストリ障害の後に正確なバージョンチェックが続行された場合は unverifiedregistry_verification_reason:検証が利用できなかった場合のレジストリエラー正確なバージョンチェックは、レジストリ検証が一時的に利用できない場合でも、アドバイザリプロバイダーに照会します。その結果は常にインストール不可となり、許可 の推奨は決して受けません。latest のチェック、不明なパッケージ、および確定的に存在しないバージョンは、依然として正常なレジストリ解決を必要とします。
HTTP リクエストは、429、502、503、504 の応答に対して最大 3 回の再試行を行います。再試行では短い指数関数的遅延を使用し、Retry-After 値は最大 2 秒まで尊重します。サーバーから要求されたより長い待機は即座に失敗し、CLI がハングしないようにします。アドバイザリの再試行を使い果たすと、結果は不完全になり、許可 の推奨を防ぎます。
GitHub Advisory Database および GitHub Actions API リクエストでは、有効期間が短く、最小権限の GitHub App トークンを使用できます。CI では、DEPTRUST_GITHUB_TOKEN を介して渡します:
DEPTRUST_GITHUB_TOKEN="$GITHUB_APP_TOKEN" deptrust check npm lodash 4.17.20
認証情報の優先順位は DEPTRUST_GITHUB_TOKEN、GITHUB_TOKEN、GH_TOKEN の順です。ローカル使用では、オプションの GitHub CLI フォールバックを DEPTRUST_GITHUB_AUTH=gh deptrust check ... で明示的に有効にできます。プロンプトなしで gh auth token を実行します。認証情報がない場合、DepTrust は認証なしで続行します。GitHub API のレート制限または権限エラーが発生すると、診断情報とともに 不明 が生成され、OSV のみの成功として扱われることはありません。
DepTrust は GitHub トークンを保存、バンドル、キャッシュ、ログ、テレメトリ、または出力することは決してありません。認証ヘッダーは https://api.github.com にのみ送信されます。
正確なバージョンをチェック:
deptrust check npm lodash 4.17.20
通常の応答例:
npm [email protected]: 2 件の既知の脆弱性が見つかりました
推奨: ブロック
リスクスコア: 80
最新バージョンをチェック:
deptrust check pypi requests latest
JSON を返す:
deptrust check --json cargo serde latest
Go モジュールをチェック:
deptrust check go golang.org/x/crypto latest
RubyGems、NuGet、または Maven をチェック:
deptrust check rubygems rails latest
deptrust check nuget Newtonsoft.Json latest
deptrust check maven org.apache.logging.log4j:log4j-core latest
Packagist、pub.dev、CocoaPods、Hex.pm、Hackage、または GitHub Actions をチェック:
deptrust check packagist monolog/monolog latest
deptrust check pub http latest
deptrust check cocoapods AFNetworking latest
deptrust check hex plug latest
deptrust check hackage aeson latest
deptrust check github-actions actions/checkout v7.0.0
deptrust check github-actions actions/checkout main
GitHub Actions の場合、完全なコミット SHA は固定として扱われます。v4.2.2 のような完全なセマバータグは、追加の固定シグナルなしで受け入れられます。v4 のようなメジャーのみのタグや main のようなブランチ参照は有効な参照ですが、deptrust はそれらが移動する可能性があるため、確認シグナルを追加します。
JSON 応答例:
{
"ecosystem": "npm",
"package": "lodash",
"version": "4.17.20",
"latest_version": "4.17.21",
"known_vulnerabilities_found": true,
"safe_to_use": false,
"should_install": false,
"risk_score": 80,
"recommendation": "block",
"classification": "vulnerable",
"reason": "Found 2 known vulnerability records.",
"next_action": "do_not_install; use suggest_safe_version or compare_versions to choose a safer version",
"summary": "lodash 4.17.20 has 2 known vulnerabilities, including high severity. Block this exact version and prefer a fixed release.",
"signals": [],
"checked_providers": [
"OSV",
"GitHub Advisory DB"
],
"skipped_providers": [],
"advisory_coverage": "full",
"advisory_coverage_reason": "all configured vulnerability providers were checked",
"registry_verification": "verified",
"vulnerabilities": [
{
"id": "GHSA-35jh-r3h4-6jhm",
"aliases": [
"CVE-2021-23337"
],
"cve_ids": [
"CVE-2021-23337"
],
"ghsa_ids": [
"GHSA-35jh-r3h4-6jhm"
],
"summary": "Command Injection in lodash",
"severity": "high",
"source": "OSV",
"advisory_url": "https://github.com/advisories/GHSA-35jh-r3h4-6jhm",
"affected_ranges": [
"SEMVER: introduced 0, fixed 4.17.21"
],
"fixed_versions": [
"4.17.21"
],
"references": [
{
"type": "ADVISORY",
"url": "https://github.com/advisories/GHSA-35jh-r3h4-6jhm"
}
]
}
],
"provider_errors": []
}
既知の脆弱性が見つからない場合にのみ、最新バージョンを提案:
deptrust suggest npm lodash
最新バージョンが許可されていない場合、suggest は既知の古いバージョンをチェックし、許可 推奨のある最新のバージョンを返します。
アドバイザリに修正バージョンが含まれている場合、suggest はレジストリバージョンリストを遡る前に、プロバイダーが報告した修正バージョンを最初にチェックします。
2 つのバージョンを比較:
deptrust compare npm lodash 4.17.20 4.17.21
比較応答例:
lodash 4.17.20 -> 4.17.21 はリスクを改善: スコア 80 → 0。
推奨: 許可
次のアクション: upgrade_to_target
インストール済みバージョンを表示:
deptrust version
最も簡単なインストール方法は npx または pnpx です:
npx @clidey/deptrust install
pnpx @clidey/deptrust@latest install
デフォルトのインストーラはガイド付きです。バイナリをインストールし、統合するエージェント統合を尋ね、変更前にユーザーレベルの宛先を表示し、確認を求めます。ガイド付きインストーラはデフォルトで MCP、スキルフォールバック、Codex および Claude Code の依存関係安全フックを有効にします。非対話的なバイナリのみのインストールには --yes を追加するか、明示的な統合フラグを渡します。
インストーラを再実行しても安全です。変更されていない MCP、スキル、フックの設定は静かにそのまま残します。統合が古い deptrust バイナリを指しているか、管理対象設定が変更された場合、インストーラは自動的に更新します。ユーザーは手動で MCP サーバーを削除して追加し直す必要はありません。カスタマイズされたスキルは置き換え前にバックアップされます。
ユーザーレベルのバイナリ、スキル、MCP エントリを削除するには:
npx @clidey/deptrust uninstall
pnpx @clidey/deptrust@latest uninstall
Homebrew ユーザーは Clidey tap からインストールできます:
brew install clidey/tap/deptrust
または、最初に tap してから、通常どおりインストールおよびアップグレードします:
brew tap clidey/tap
brew install deptrust
brew upgrade deptrust
Homebrew はインストール後にリマインダーを表示します。Homebrew バイナリ自体を使用してガイド付きの Codex および Claude Code セットアップ(MCP 登録と依存関係安全フック)を実行するには:
deptrust setup
ガイド付きセットアップは、MCP と依存関係安全フックを有効にする前に確認を求めます。現在のバイナリを既に使用している登録はそのままにし、古い npm、Homebrew、またはソースインストールパスを指している既存の DepTrust 登録を調整します。
Go ユーザーは直接インストールできます:
go install github.com/clidey/deptrust/cmd/deptrust@latest
このプロジェクトは、既に Nix を使用しているユーザー向けに、オプションの Nix flake 出力を提供します。フレークは、プリビルドされたリリースバイナリをラップします。