SentinelloSentinello

見守るのをやめた依存関係のための、早期警告システム。

AIの時代、あなたは維持できる以上の Node.js プロジェクトをリリースしています。Sentinelloはそのすべてを見守り、npm 依存関係に潜む既知のCVEを浮かび上がらせます。忘れられたプロジェクトがインシデントになる前に。

コマンド1つで実行:

docker run -d \
  --name sentinello \
  -p 3870:3000 \
  -v sentinello-data:/app/data \
  -v sentinello-nvm:/root/.nvm \
  -v ~/Developer:/roots/personal:ro \
  ghcr.io/walkofcode/sentinello:latest

linux/amd64 と arm64 で動作

アカウント不要。SaaSなし。テレメトリなし。Dockerイメージ1つとSQLiteファイル1つ — あなたのコードと検出結果がマシンの外に出ることはありません。

機能

セルフホスト型ポータルにすべてを — 外部サービスなし、データがネットワークの外に出ることもありません。

単一のトリアージキュー

十数個のチェックアウトに散らばった npm audit ではなく、ポートフォリオ全体のCVEを1か所で確認・トリアージできます。

プロジェクト別・ライブラリ別に見る

任意のリポジトリを開いて、検出結果、修正バージョン、履歴を掘り下げる — あるいは脆弱なパッケージに切り替えて、影響を受けるすべてのプロジェクトを確認し、一度にすべてをミュートできます。

継続的なスキャン

バックグラウンドのワーカーがスケジュールに沿って再スキャンするので、確認を覚えていなくても新しいアドバイザリが表示されます。

複数のソース

npm audit を超えて、OSV データベースと照合し、より広い CVE カバレッジと既知の悪意あるパッケージの検出を実現します。

通知とWebhook

失敗や検出のアラートを、Slack、Telegram、またはシンプルなWebhookで受け取れます — ルートまたはプロジェクト単位でスコープ指定でき、言語も選べます。自動修正エージェント向けに JSON またはプレーンテキストのペイロードを送信します。

MCP サーバー

Claude Desktop や Cursor などの MCP クライアントを接続し、チャットを離れずに検出結果・プロジェクト・ライブラリを照会し、スキャンを実行できます。

アドバイザリのエクスポート

プロジェクトまたはライブラリの検出結果を Markdown でエクスポート。チームや LLM 向けにカスタマイズ可能な修復プロンプト付き。

1つのイメージ、1つのファイル

Dockerイメージ1つとSQLiteファイル1つ。データベースサーバーも、メッセージキューも、クラウドへの依存もありません。

自動登録されるRoots

/roots にマウントしたものは起動時に登録・スキャンされます — ディレクトリ名がそのラベルになります。

プロジェクトごとのNode

各プロジェクトの .nvmrc を尊重し、固定されたNodeのバージョンを一度だけインストール・キャッシュします。

10言語

ポータルのUI、スキャンの理由コード、ステータスは10言語にローカライズされています。

スクリーンショット

実際の動作を見る — いくつかのデモプロジェクトをスキャンするポータル。任意の画像をクリックすると拡大表示します。

比較

Sentinello は重い Dependency-Track でも安価な Snyk でもありません。別のニッチを担います。誰もパイプラインに組み込まなかった Node プロジェクトのロングテールです。

SentinelloDependency-TrackSnykDependabot
設定不要 — フォルダーを指定するだけ~~
SBOM / CI ステップ不要
実際の解決済みロックファイルをスキャン~
悪意あるパッケージの検出
セルフホスト、SaaS なし
単一イメージ + SQLite
AI ネイティブ(MCP + エクスポート)~
多言語(Python、Go、…)予定
エンタープライズポリシー / VEX~~

Dependency-Track は、誰かが SBOM パイプラインで計装したプロジェクトしか見えません。Sentinello は忘れられたものを見つけます。エンタープライズポリシーでは相手が優れており、多言語カバレッジは Sentinello のロードマップにあります — 成熟したパイプラインで既に使っているなら、そのまま使ってください。Sentinello は、誰も見ていない残りのポートフォリオのためのものです。

私たちがこれを作った理由

AIの時代、あなたは維持できる以上のものをリリースしています。

今や1人の開発者が、年に十数件のプロジェクトを立ち上げ、納品し、そして離れていきます — マーケティングサイト、顧客向けダッシュボード、ひっそりと本番に出た個人プロジェクト。これらを安全に保つには、かつてはチェックアウトごとに SSH で入って手作業で npm audit を回すか、Next.js のCVEを公開から数日後にニュースの見出しで知るしかありませんでした。十数個ものリポジトリでそんなことを続けられる人はいないので、結局まったく行われません。

クリティカルなリモートコード実行の欠陥を抱えた、忘れられた依存関係が1つあれば十分です。見るのをやめた最も単純なサイトが、侵入口になります。

「Snyk や Dependabot を使えばいいのでは?」 — それらは、あなたが組み込んだ CI パイプラインの中で動きます。そしてロングテールにはそのパイプラインがありません。Sentinello は、それ以外すべてのための早期警告システムです。フォルダーを指定すれば、忘れていたすべてのプロジェクトを見守り、新しいCVEがインシデントになる前に1つのキューに浮かび上がらせます。

仕組み

3ステップ。プロジェクトにインストールするエージェントも、作成するアカウントも不要です。

コードを指定する

リポジトリを /roots にマウントするか、設定 → Roots から追加します。各ディレクトリは起動時に自動登録・検出されます。

継続的にスキャン

バックグラウンドのワーカーがスケジュールに沿って依存関係を既知のCVEと照合し、各プロジェクトが固定するNodeのバージョンを必要に応じてインストールします。

1つのキューでトリアージ

すべてのプロジェクトのすべての検出結果が、深刻度で絞り込める1つのキューに集まります。Slack、Telegram、Webhookへの通知も任意で設定できます。

対象となる人

Sentinelloは、見守れる以上のものを本番に抱えるすべての人のためのものです — 1人で開発する人、小さなチーム、顧客の仕事をやりくりするエージェンシー。

  • リリース後もずっと安全であり続ける必要のある、個人プロジェクトや顧客サイトをリリースしている。
  • すべてのリポジトリにCIを組み込まずに、ポートフォリオ全体を俯瞰したい。
  • コードの一覧をSaaSに渡すより、セルフホストしたい。

成熟したパイプラインにSnykやDependabotをすでに組み込んでいる大規模な組織なら、それを使い続けてください — Sentinelloはエンタープライズ向けSCAを置き換えようとはしていません。誰も見ていない、残りのポートフォリオのためにあります。オープンソースかつMITライセンスなので、何をしているかを正確に読むことができます。

リリースノート

Sentinello は頻繁に更新されています。各リリースの内容をご紹介します。

よりシンプルな MCP 設定 — 環境変数は不要

v2.3.0 · 2026/06/09
  • MCP の設定はすべて「設定 → MCP」で完結します。トークンを生成すると /api/mcp エンドポイントがオンになり、削除するとオフになります — SENTINELLO_MCP_ENABLED と SENTINELLO_MCP_API_TOKEN の環境変数は廃止されました(既存の環境変数トークンはアップグレード時に一度だけ取り込まれます)
  • Claude Code、Codex、Cursor、Claude Desktop 向けの貼り付けるだけの接続スニペット。トークンが入力済みです
  • SENTINELLO_PORTAL_BASE_URL を環境変数で設定している場合、優先され起動のたびに再適用されるため、「設定 → 詳細設定」では読み取り専用で表示されます

誤検知の低減と、自動で整理される検出結果

v2.2.0 · 2026/06/09
  • マルウェアのアドバイザリが、影響を受ける正確なバージョンと照合されるようになりました。かつて侵害されたパッケージでも、クリーンな、または修正済みのバージョンはもう検出されません
  • 重複した検出結果が次回のスキャンで自動的に解決され、古い項目や取り残された項目が自動でクリアされます
  • 本番(production)と開発(development)のラベルが、すべてのソース(npm と OSV)で一貫した単一の方法で算出されるようになりました

すっきりしたプロジェクトヘッダーと一貫したフィルター

v2.1.0 · 2026/06/06
  • プロジェクトヘッダーを簡素化 — タイトルの横で名前を変更でき、ミュートとタグはアイコンに
  • 依存タイプフィルターの横の新しいドロップダウンから、ソース(npm / OSV)で検出結果を絞り込み
  • アプリ全体でドロップダウンを統一し、タイムゾーンなどの長いリストでは入力して検索可能に

よりわかりやすいアップグレード手順

v2.0.1 · 2026/06/04
  • 2.0 の破壊的変更に関するアップグレード手順を拡充
  • README に localhost のみのポートバインドを明記

複数ソースのスキャンと、デフォルトで安全な堅牢化されたインストール

v2.0.0 · 2026/06/04
  • 任意の第2ソースとしての OSV(設定 → ソース、デフォルトはオフ)。悪意あるパッケージ検出を備え、ローカルキャッシュ内の公開 OSV データベースと照合します
  • 検出結果がソース間で統合されるようになりました。脆弱性ごとに1行で、各ソースをタグ付けし、利用可能な最良の修正と依存パスの和集合を示し、ソースフィルターと依存パスのポップオーバーを備えます
  • セキュリティ強化: MCP エンドポイントはデフォルトでオフかつトークンが必要、Webhook 配信は SSRF から保護、任意のポータルログインゲート、コンテナは非特権ユーザーとして実行されます
  • 設定が、サイドバーとプロフィールページを備えたトップレベルのセクションになりました

MCP 連携と新着情報

v1.4.0 · 2026/05/29
  • Claude Desktop、Cursor などのクライアント向けの /api/mcp の MCP サーバー
  • サーバー URL とトークン管理を備えた新しい「設定 → MCP」セクション
  • 新着情報バッジとリリースノートの履歴

フッターのバージョン表示の修正

v1.3.1 · 2026/05/28
  • 実行中のバージョンがフッターに正しく表示されます

通知の改善

v1.3.0 · 2026/05/28
  • 環境ごとに通知をフィルタリング
  • 通知先の編集フォームを簡素化
  • 既存の通知先を複製

プロジェクトとライブラリのページ

v1.2.0 · 2026/05/24
  • ホーム画面が専用のプロジェクトページとライブラリページに分割されました

スケジュールのライブ再読み込み

v1.1.2 · 2026/05/24
  • ポータルで変更を保存すると、ワーカーがスキャンスケジュールをすぐに再読み込みします

より安全な削除と分かりやすい更新バナー

v1.1.0 · 2026/05/23
  • ルートと通知先を削除する前に確認
  • 更新のお知らせが画面上部の閉じられるバナーに変更
  • ホストのマウントが消えると、ワーカーが古いルートを整理します

スキャナーの精度修正

v1.0.1 · 2026/05/23
  • インストール済みバージョンが実際には脆弱な範囲にない検出結果を除外
  • 送信履歴のある通知先を削除できるように

初のオープンソースリリース

v1.0.0 · 2026/05/23
  • Sentinello の最初の一般公開リリース

ロードマップ

Sentinello は今、あなたの Node.js 依存関係を見守っています。これからの方向性と、あなたがリクエストできることを紹介します。

よりスマートな優先順位付け

予定

悪用可能性と脆弱なコードが実際に到達可能かで検出結果をランク付けし、重要なものから対応します。

より多くのエコシステム

予定

同じファイルシステムネイティブの検出で、スキャンを Node を超えて Python、Go、Rust に拡張します。

より多くの連携

予定

通知チャンネルを増やし、チームがすでに使っているツールと Sentinello をつなぐ方法を広げます。

静的解析(SAST)

予定

依存関係の既知の CVE だけでなく、あなた自身のソースコードの危険なパターンも検出します。

シークレットとライセンスのスキャン

予定

コミットされたシークレットやライセンスの問題を、同じポートフォリオの同じキューで検出します。

連携やソースをリクエスト

次に連携・スキャンしてほしいものを教えてください — GitHub で Issue を立てて、ロードマップづくりに参加しましょう。