Vibgrate MCP について
Vibgrate MCPは、AIコーディングアシスタント向けのローカル優先サーバーです。コードグラフの検索、依存関係の遅れや脆弱性の確認、利用中のバージョンに合ったライブラリ文書を提供し、CLIにはコーディングエージェントとコンテキスト圧縮機能もあります。
主な機能
- 01コードグラフ検索と影響分析
- 02オフラインでの依存関係の遅れと脆弱性の確認
- 03バージョンに合ったライブラリ文書
- 04ローカルで原文を取得できるコンテキスト圧縮
- 05CLIのコーディングエージェントと優先順位付きの更新計画
- 06有効化できるプロジェクト単位のメモリツール
活用シーン
- 01コード変更の影響を受ける呼び出し元やテストの特定
- 02依存関係の遅れと脆弱性リスクの確認
- 03プロジェクトのライブラリバージョンに合うAPIの参照
- 04エージェントのコンテキストで重複するツール出力を削減
MCP 対応
`vg serve`はローカル優先のMCPサーバーを起動し、コードグラフ検索、依存関係の遅れ、ローカルモデル、バージョンに合ったライブラリ文書を提供します。オプションで圧縮、メモリ、レビュー用ツールを有効にできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@vibgrate/cli
AI コーディングエージェントのためのローカルコードベースインテリジェンス — グラフ、ドリフト、バージョンに合ったドキュメントをマシン上で提供
協力したい方は、CONTRIBUTING.md と 初めての方におすすめの課題をご覧ください。
npx @vibgrate/cli scan # drift score + upgrade priorities
npm install -D @vibgrate/cli # install for repeat runs
vg は、あらゆるリポジトリについて次の3つの質問に答えます。
- このコードベースは何ですか? — 決定論的なコードグラフです。呼び出しツリー、インポートパス、影響範囲、依存関係の情報を提供します。
- どれだけ遅れていますか? — ランタイム/フレームワークの遅れ、依存関係の古さ、EOL までの近さを含む、優先順位付きの DriftScore(0~100)と、優先順位を付けた修正リストで確認できます。リスクへの露出度は別途 RiskScore として評価され、この2つを合わせたものが DriftRisk Index です。数式、情報源、制限事項を含む全手法は、CC BY 4.0 の ホワイトペーパーとして公開されています(DOI 10.5281/zenodo.21336304)。
- ここで修正できますか? — VG Code は、grep ではなくコードグラフを検索ツールとして使うコーディングエージェントです。ターミナルで
vg codeとして、また Vibgrate for VS Code の VG Code パネルとして利用できます。さらに、適用可能な優先順位付きアップグレード計画を提示するvg fixもあります。
すべてマシン上で実行されます。API キーもネットワーク呼び出しも不要で、明示的にプッシュしない限り、リポジトリ外にデータが出ることはありません。vibgrate コマンドは vg のエイリアスで、相互に置き換えて使えます。
実行してみる
実際の vg scan の再生です。1つのコマンドでドリフトスコア、内訳、優先順位付き項目を確認できます。GitHub 上でアニメーションが再生されます。ブラウザー上で処理が実行されることはありません。
▶ ライブのインタラクティブ CLI シミュレーターを試す →
実際のサンプルリポジトリを使って、すべてのコマンド(scan、build、ask、why、…)を順に試せます。
10秒で試す
インストールもサインアップも不要です。
npx @vibgrate/cli scan # drift score + upgrade priorities
npx @vibgrate/cli build # build the code graph
npx @vibgrate/cli ask "what does AuthService do?"
npx @vibgrate/cli code # a coding agent — it asks before every edit
繰り返し実行する場合はインストールしてください。
npm install -D @vibgrate/cli
npx vg scan # vg is the primary command; vibgrate is an alias
ローカルバイナリは
node_modules/.binに置かれます。グローバルにインストールしない場合は、npx vg(または npm スクリプト)を使用してください。
Windows へのインストール
Node.js 22 以降で Windows がサポートされています。Windows インストーラーには PowerShell の使用を推奨します。
irm https://vibgrate.com/install.ps1 | iex
npm を使う場合は、CLI をグローバルにインストールします。
npm install -g @vibgrate/cli
PATH を変更せずに一度だけ実行する場合は、次を使います。
npx @vibgrate/cli scan
npm のグローバルインストールでは、vg.cmd と vibgrate.cmd の shim が npm のグローバルプレフィックスに配置されます。正確な場所は npm config get prefix で確認できます。vg が見つからない場合は、そのディレクトリをユーザーの PATH に追加し、新しい PowerShell ウィンドウを開いてください。次のコマンドでインストールを確認します。
vg --help
vg doctor
vg doctor は読み取り専用の診断コマンドです。vg がシステム上の別のコマンドと競合する場合は、同じ機能を持つ vibgrate コマンドを使ってください。この README の他の箇所にあるコマンド例は POSIX 形式のパス構文を使っています。Windows では、パスを PowerShell 用に調整してください。
AI アシスタントで使う
vg serve は Vibgrate AI Context を起動します。これはローカル優先の MCP サーバーで、MCP 対応のあらゆるアシスタント(Claude、Cursor、Windsurf、Copilot、Gemini CLI、…)に、コードマップ、オフラインのドリフト検出、ローカルモデル、バージョンに合ったライブラリのドキュメントを提供します。すべてお使いのマシン上で動作します(アカウント不要、アップロードなし。--local を指定しない限り、ローカルのドキュメントが不足している場合はホストされたカタログにフォールバックします)。コンテキストウィンドウに情報を詰め込む必要も、API の幻覚もありません。マップは自動で最新の状態に保たれます。ファイルが変更されると(アシスタント自身が直前に加えた編集も含みます)、次のツール呼び出しの前に差分更新で再構築されます。ウォッチャーやデーモンは必要ありません。
node-turborepo/serve — vg serve --http で Vibgrate AI Context を起動します。ライブシミュレーター。
次の 1 つのコマンドで接続できます。
vg install # interactive: pick your assistant(s) and done
vg install --all # install for every detected assistant at once
選択したツールの MCP 設定を書き込み、グラフのクエリ方法をアシスタントに教えるスキルをインストールします。アシスタントを再読み込みすると、グラフを把握した回答が得られます。呼び出しツリー、影響分析、ドリフト検出結果、バージョンに合ったライブラリのドキュメントなど、すべてローカルデータに基づいて回答します。トークン削減量は、方法論とともに計測・公開されています。vibgrate.com/cli/benchmarks/token-savings をご覧ください。
サポート対象の 21 種類以上のアシスタントと、それぞれのスキルの説明は vibgrate.com/skills でご覧いただけます。
アシスタントが読み直す量を減らす:コンテキスト圧縮
ターンごとに、AI アシスタントは会話全体を再送します。そこには、20,000 行のテストログ、400 行の JSON ペイロード、すでに処理済みの grep 出力も含まれます。そのコンテキストの料金を、ステップごとに再び支払うことになります。Vibgrate CLI は、ツール出力や過去のターンがモデルに届く前に圧縮し、元の内容はマシン上で取得できる状態に保ち、削減量を報告します。
vg install claude --compress # point Claude Code at the listener and start it (undo with `vg uninstall claude`)
vg savings # tokens and estimated dollars saved, today / 7 days / 30 days
新たに覚えるコマンドはありません。圧縮は、すでに実行しているサーバーのモードであり、すでに使っているインストーラーのフラグです。vg install <agent> --compress は、エージェント独自のベース URL 設定を書き込み、リスナーをバックグラウンドで起動(または、すでに起動中のものを再利用)します。また、Claude Code の場合は、再起動後にリスナーを再起動する SessionStart フックを追加します。vg serve --compress
は、コードマップの提供と圧縮を1つのフォアグラウンドプロセスで実行し、vg serve --compress --background はリスナーのみを起動して終了します。設定を書き込まずに1つのセッションだけ実行する場合は、vg serve --compress claude でエージェントを通して実行でき、終了時には環境が元に戻ります。vg code の内部ではすでに有効になっており、大きなツールの結果はループに戻る前に圧縮されます。モデルは vg_retrieve を使って元の内容を取得できます。
処理の順序は次のとおりです。
- ブロックの内容に応じて振り分けます — JSON 配列、ログとビルド出力、grep の結果、差分、HTML、表、設定ファイル、ソースコード、文章など、それぞれの形式に合わせた圧縮処理を適用します。エラー、ID、スタックトレース、依頼内容に一致する行は常に保持されます。
- まずは可逆圧縮です。 繰り返しの行、grep の見出し、差分のインデックス行は、バイト単位で復元可能なマーカーに折りたたまれます。損失のある圧縮は、明らかに大きな削減効果がある場合にのみ実行し、ファイルの読み取りや編集には適用しないため、読み取り後の編集内容は正確なままです。
- 何も失われません。 圧縮されたブロックにはマーカーが付き、モデル(または
vg serve retrieve <hash>を使うユーザー自身)が元の内容、あるいは必要な部分だけを取得できます。元の内容は短期間保持されるローカルストアに保存され、アップロードされることはありません。 - プレフィックスキャッシュに対応しています。 デフォルトの
cacheモードでは、最新のターンのみを圧縮するため、プロバイダーのプロンプトキャッシュが引き続き機能します。tokenモードでは、最大限の削減が見込める対象をすべて圧縮します。 - どのエージェントでも使えます。
vg install <agent> --compressは、Claude Code、Codex、Cursor、Aider、Copilot、OpenCode、Cline、Continue、Goose、OpenHands、Gemini CLI、Kimi、Grok などに対応しています。vg uninstall <agent>を実行すると、それぞれの設定がバイト単位で元に戻ります。または、Anthropic、OpenAI、Vercel AI SDK の形式に対応する SDK ラッパーを使用できます。
すべての処理はローカルかつオフラインで実行されます。リスナーはループバックにバインドし、プロバイダーの認証情報には手を加えずに転送します。ディスクに書き込む前に秘密情報の形式をマスキングし、外部に通信することもありません。vg serve config で設定可能な項目をすべて一覧表示でき、vg serve config set KEY VALUE で変更できます。
ツール
vg serve は24個のMCPツールを公開します(--memoryを指定するとメモリツールが2個追加されます)。
- orient — まずはここから:プロジェクトの概要、エントリーポイント、最初に確認する場所。
- search_symbols — 名前または文字列からシンボルを検索します。
- query_graph — 意味からコードを探します:症状、関連性、変更によって何が壊れるか。
- get_node — 1つのシンボルを調べます:シグネチャ、呼び出し元、呼び出し先、領域。
- find_path — 2つのシンボル間の最短経路を、各経路のエッジ種別とともに表示します。
calls_onlyは呼び出しをたどり、各呼び出し箇所の行番号を表示します。 - impact_of — 変更の影響範囲:依存元、ファイル、対象テスト、リスク。
- tests_for — あるシンボルをカバーするテスト。
- get_graph_summary — コードマップの概要:件数、言語、主な領域とハブ。
- list_areas — サイズ順のコード領域(コミュニティ)。
- list_hubs — 最も依存されているシンボル。
- get_facts — ノードに関する決定論的な事実(契約/不変条件/特性)。
- guide_node — ノードに関連する引用付きの標準と実践(OWASP/CWE)。
- check_drift — オフラインの依存関係一覧。任意でgitによる追加者の帰属情報も確認できます。
- vuln_attribution — 各未解決の脆弱性を導入した人、影響を受けた期間、CRAの修正指標。
- list_vulnerabilities — 直近の
vg scan --vulnsによる既知の脆弱性:CVE、深刻度、CVSS、修正バージョン、およびスキャン時に記録されている場合はEPSSや既知の悪用状況のフィールド。 - upgrade_impact — パッケージをアップグレードすると何が壊れるか:メジャーバージョンの差、インポートの影響範囲、修正される脆弱性。
- list_models — ディスク上のローカルモデル(Ollama / LM Studio / gguf)。
- resolve_library — ライブラリの正式なIDと、プロジェクトで使用しているバージョンを特定します。
- library_docs — トークン予算に合わせて分割された、ライブラリのバージョンに適合する使用方法のドキュメント。
- compress_content / retrieve_original / compression_stats(
--compressを指定)— ツールの出力をコンテキストに入れる前に圧縮し、マーカーを元の内容または必要な部分だけに展開し、圧縮による削減量を報告します。 - memory_search / memory_save(
--memoryを指定)— AI エージェント間で共有される、プロジェクト単位のメモリ。 - review_doc(
--reviewを指定)— 変更のレビュー文書を作成します:文書を開く、IDでブロックにパッチを適用する、すべてのピンを確認する、履歴を読む、バージョンを復元する、Vibgrate Cloud上でプッシュされた文書に残されたコメントを読み、返信する。.vibgrate/review-docs/に保存され、リポジトリには保存されません。
最後の3グループは、必要なときにのみ表示されます。公開されるすべてのツールスキーマは、エージェントの各ステップで再送信されるため、有効にしていない機能も継続的なコストになります。
チームのスキャンデータよりホステッドサーバーを優先しますか? Vibgrate Cloud MCP はアシスタントをVibgrate Cloudに接続します(OAuth 2.1、読み取り専用ツール14個)。
あらゆるコードベースを理解する
グラフは一度構築すれば、継続的にクエリできます。以下はサンプルリポジトリで実際の CLI を記録したリプレイです — ライブで実行できます。
node-turborepo/build — vg build で pnpm モノレポをマッピングします。
vg build # index the repo (incremental; re-run after changes)
vg show src/auth/service.ts # what this file does, calls, and is called by
vg ask "where is rate limiting enforced?"
vg impact src/db/connection.ts # what breaks if this changes + tests to run
vg path src/api/handler.ts src/db/query.ts # shortest call path between two files
vg tree src/server.ts # call tree rooted at a node
vg insights # overview: hubs, hotspots, untested paths
node-turborepo/ask — vg ask はチャットの長文ではなく、出典を示すノードを返します。
node-turborepo/impact — 編集する前に、ハブを変更した場合の影響範囲を確認できます。
グラフはバイト単位で決定的に再現可能です。同じリポジトリからは、どのマシンでも常に同じグラフが生成されます。
vg share # make the graph committable + auto-updating for the team
vg serve # start Vibgrate AI Context (local-first MCP: code map + drift + version-correct docs)
VG Code — レポートだけでなく、変更を記述する
VG Code は Vibgrate CLI に組み込まれたコーディングエージェントです。その検索ツールは決定論的なコードグラフであり、grep でも、チャンクに対する埋め込みでもありません。ローカルモデルとホスト型モデルのどちらで実行するかは、自由に選べます。
vg code # guided: pick a model, then describe tasks
vg code "add a --timeout flag to the scan command"
ディスクに書き込みますか? はい。承認したステップのみを実行します。読み取り専用のステップ(検索、読み取り、一覧表示、影響分析)は確認なしで実行されます。編集やコマンドの実行には、毎回確認を求めます。CI では --auto を指定すると、確認なしで同じループを実行できます。ターミナルがなく、--auto も指定されていない場合、vg code は無人で書き込みを行わず、起動を拒否します。
2 つの操作画面、1 つのエージェント。 vg code はターミナルでの操作画面です。Vibgrate for VS Code の VG Code パネルはグラフィカルな操作画面で、多くの人にとっては日常的に使う場所になります。タスク間で維持されるセッション、チャット履歴、差分付きのインライン承認/却下カード、チェックポイント、@メンションを利用できます。この拡張機能はエージェントを再実装するのではなく、この CLI に同梱されたエージェントを --stream-json 経由で実行し、ユーザーの判断をエージェントに中継します。そのため、ターミナル、エディター、CI で同じように動作します。
なぜ別のチャットウィンドウではなく、ここでエージェントを使うのか?
- 検索対象はグラフです。
search_codeは、vg buildが生成したマップからシンボル、呼び出し元、呼び出し先を解決します。そのため、モデルには該当する3つの関数が渡され、同じ単語を含む40個のファイルが渡されることはありません。 - 編集前に影響範囲を確認できます。
graph_impactはシンボルを変更する前に、そのシンボルに依存するものをモデルに示します。また、変更後に実行するテストはvg testsが把握しています。 - ライブラリのドキュメントはバージョンに準拠します。
library_docsはロックファイルに記載されたバージョンに固定するため、モデルは実際に使用しているAPIに基づいてコードを作成します。 - 架空の識別子は警告ではなく、ブロックされます。 編集内容を書き込む前に、置換後の本文がグラフの識別子トライでスキャンされます。グラフに存在せず、対象ファイル内にもすでにないシンボルがある場合、書き込みは中止されます。
- ローカルモデルを第一級でサポートし、ホステッドモデルもフラグひとつで利用できます。 プル済みのモデルなら、アカウントもキーも不要です。また、Code Modes がモデルをマシンに合わせます。さらに必要な場合は、Vibgrate Relay が Vibgrate アカウントでホステッドモデルを提供します。プロバイダーごとのAPIキーは不要で、接続できない場合はローカルモデルに切り替わります。
- すでに利用している MCP サーバーを取り込みます。
.mcp.json(Claude Code)、.cursor/mcp.json、.vscode/mcp.jsonを読み込み、.vibgrate/code.jsonと統合します。同じ名前が競合する場合は.vibgrate/code.jsonが優先されます。 - コストを確認できます。 各タスクの実行後と
/costでトークン数と料金を表示します。vg savingsは、モデルごとにグラフを利用した呼び出しをレポートします。
トレードオフ: CLI にモデルは同梱されておらず、VG Code の性能は指定するモデル次第です。ローカルの7Bモデルは最先端モデルではありませんが、プライバシー、オフラインでの推論、トークンごとのコストがかからないという利点があります。Relay では、トークンごとの料金でより高い処理能力を利用できます。タスクに合った階層を選んでください。どちらを選んでも、グラフによる根拠付けは同じです。
セッションの全体像
VG Code · graph-grounded coding · v2026.x
✔ Code map built
✔ Model catalog loaded
◆ Ready — ollama/qwen2.5-coder:7b · graph 48213. Describe a task, or /help.
code › add a --timeout flag to the scan command and use it
→ search_code(query: --timeout flag scan command)
scanCommand (function) src/commands/scan.ts:12
→ graph_impact(symbol: runScan)
3 symbol(s) depend on runScan: …
→ edit_file(path: src/commands/scan.ts, …)
? Apply edit to src/commands/scan.ts? [Y/n] y
✔ edited src/commands/scan.ts
→ run_command(command: npm test -- scan)
? Run `npm test -- scan`? [y/N] y
✔ exit 0 … 12 passing
✔ added a --timeout flag to scan and covered it with tests
+6 -1 across 1 file(s) · via ollama/qwen2.5-coder:7b
実際の処理の流れは次のとおりです。
- コードマップを作成するか、差分だけを解析して更新します。再解析されるのは変更されたファイルのみです。
- モデルカタログを読み込み、ローカルモデルまたはホステッドプロバイダーを選択します。ローカルモデルをプルする前に、メモリの事前確認で推定使用量を利用可能なRAM/VRAMと比較し、このマシンでは実行できないモデルを拒否します。
- Vibgrate Graph(
vg serve)がセッション中、子プロセスとして起動し、終了時に停止します。グラフへの各呼び出しは、VG Code と使用中のモデルに紐付けられます。 - エージェントは、検索 → 読み取り → 影響の評価 → 編集 → 実行、のサイクルを繰り返します。
- 変更を伴う各ステップは承認できます。または
--autoを指定して無人で実行できます。 - 編集は決定的なマージを通じて反映されるため、変更は意図した場所に正確に適用されます。
承認モード
| モード | 動作 |
|---|---|
| 対話型(デフォルト) | 読み取り専用のステップは自由に実行されます。編集とコマンドはすべて、実行前に確認を求めます。 |
--auto | プロンプトは表示されません。ファイルシステムの全消去、curl … | sh、強制プッシュ、sudo など、致命的なコマンドを拒否リストでブロックします。CI やスクリプトからの実行に適しています。 |
--single | 1回限りの実行です。差分を提示して終了します。ツールのループもコマンドの実行もありません。--apply --yes を指定しない限り、ドライランになります。 |
--max-steps <n> はループの上限を設定します(デフォルトは24)。--worktree を指定すると、セッション全体が独立した git worktree で実行されます。変更を適用するまで、メインのツリーには一切影響しません。
どのモデルを使うか — ローカル、または Relay 経由のホステッドモデル
Code Modes は、実際の RAM、VRAM、ディスク容量を確認し、ダウンロードを開始する前に、このマシンに本当に適したローカルモデルを選びます。
| モード | 用途 |
|---|---|
| Spark | 高速で軽量 — 素早い編集や、メモリに余裕がない場合に |
| Flow | 日常的なコーディングに適したバランス重視のデフォルト |
| Forge | 余裕があり、より高い性能が必要な場合の大容量モデル |
vg models # what's set, and what fits this machine
vg models install flow # install the pack (--dry-run to preview)
vg models pull qwen2.5-coder:7b
Vibgrate Relay は、マシンの性能を超える容量が必要なタスクで、ローカルモデルを補完するホステッドプランです。Vibgrate アカウントとエンドポイントは 1 つで、厳選されたホステッドモデルのカタログを利用でき、前払いクレジットに対してトークンごとに課金されます。プロバイダーごとの API キーを管理する必要はありません。
export VIBGRATE_RELAY_TOKEN=… # Relay is then preferred, with local fallback
vg code --provider vibgrate-relay --model <slug>
Relay の利用は必須ではありません。--provider には ollama、lmstudio、foundry-local、llama-cpp、openrouter、litellm、openai、together も指定できます。これらの API キーは環境変数(OPENROUTER_API_KEY など)からのみ読み込まれ、フラグとして渡すことはありません。--provider を指定しない場合、vg code はすでに設定されているものを使用します。トークンが設定されていれば、まず Relay、次に別のホステッドモデル用キー、最後にローカルモデルを使用し、設定していないエンドポイントには接続しません。--local を指定すると、デバイス上でのみ実行します。
エージェントが使えるツール
| ツール | 機能 | 承認 |
|---|---|---|
search_code | コードグラフを検索 — シンボルと関係に加え、完全一致するフレーズも文字列検索 | 不要 |
read_file / list_files | ファイルまたは行範囲を読み取り、マップ内のファイルを一覧表示 | 不要 |
graph_impact | シンボルを変更した場合の影響範囲を確認 | 不要 |
library_docs | 実際にインストールされている依存関係のバージョンに合ったドキュメントを表示 | 不要 |
edit_file / create_file / delete_file / apply_patch | 作業ツリーを変更 | 必要 |
run_command | テスト、ビルドなどを実行 | 必要 |
web_fetch / web_search | 公開ウェブを取得または検索 — 信頼できない情報として扱い、シークレットを秘匿し、サイズを制限 | 必要 |
browser_* / read_notebook / spawn_subagent | ブラウザーを操作し、Jupyter ノートブックで作業し、サブタスクを委任 | 必要 |
mcp__<server>__<tool> | 設定済みの MCP サーバーのツール | 読み取り専用なら不要、それ以外は必要 |
セッション内のコマンド
| コマンド | 機能 |
|---|---|
/undo | 最後のタスクで変更したファイルを元に戻す |
/diff | 最後の変更を表示 |
/model | セッションを終了せずにモデルを切り替える |
/cost | トークンとドルの累計コストを表示(ローカルモデルは無料) |
/compact | ここまでのセッションを 1 つのチェックポイント要約にまとめる |
/help / /exit | コマンドを一覧表示/終了 |
状態の保存場所
| ディスク上 | セッション内 |
|---|---|
コードマップ(.vibgrate/)、Git の追跡対象外 | 会話とステップの履歴 |
設定(.vibgrate/code.json) | /undo スタック |
| 編集内容 — ローカルに保存され、Git で元に戻せます | トークン/ドルのメーター |
セッションストア。--continue で再開できます | vg serve の子プロセス |
--continue を使うと、直近のセッションを再開します。モデルにこれまでの作業を要約して伝え、/undo の状態も復元します。
一度だけ設定
.vibgrate/code.json — フラグで引き続き上書きできます。
{
"provider": "ollama",
"model": "qwen2.5-coder:7b",
"testCommand": "npm test",
"auto": false,
"denyCommands": ["deploy", "kubectl\\s+delete"],
"maxSteps": 24,
"mcpServers": {
"playwright": { "command": "npx", "args": ["-y", "@playwright/mcp"] }
}
}
securityTier、capsule、modelProfile を含むすべてのキーの説明は、DOCS.md にあります。
安全性
- シークレットファイル(
.env、.npmrc、.netrc、キーのマテリアル)はプロンプトに読み込まれません。また、エージェントが読み取るファイル内の認証情報に該当する形式はすべて秘匿されます。 --autoでは、致命的なコマンドを拒否リストでブロックします。対話形式では、すべてのコマンドを自分で確認して承認できます。- すべての変更はローカルに保存され、Git で元に戻せます。
/undoは最後のタスクを元に戻し、--worktreeを使うとセッション全体をメインのツリーから切り離して実行できます。 - ウェブやブラウザーの結果は信頼できないコンテンツとして扱い、指示としては扱いません。
アップグレードの乖離を測定・管理する
calcom/scan — サンプルの Cal.com データに対して、vg だけで実行する乖離スキャンです。ライブシミュレーター。
vg scan # drift score + risk level + ranked priorities
vg scan --push # same, and upload to Vibgrate Cloud for trend tracking
vg baseline # snapshot current drift for regression gating
vg report # generate a report from a saved scan artifact
スキャンを1回実行すると、次の情報が得られます。
- 全体スコア(0~100)とリスクレベル(低/中/高)
- スコアの内訳 — ランタイム、フレームワーク、依存関係、EOL
- Node.js/TypeScript、.NET、Python、Java にわたるプロジェクトごとの詳細
- 影響の大きさが見込まれる順に並べた実行可能な検出結果
- SBOM のエクスポート(CycloneDX/SPDX)
- 既知の脆弱性(
--vulnsで有効化)— 深刻度、CVSS、修正バージョン、アドバイザリーデータに含まれる場合は EPSS、さらに Git リポジトリでは導入者
既知の脆弱性と、それを導入したユーザーを特定する
vg scan --vulns は、インストール済みの依存関係を公開されている OSV データベースと照合し、既知の脆弱性ごとに、深刻度、CVSS スコア、および修正されるバージョンをテキスト、JSON、または SARIF 形式で報告します。JSON には、アドバイザリーデータにすでに含まれている場合、epss、epssPercentile、および kev も含まれます。スコアがない場合は省略され、0 として出力されることはありません。--package-manifest を追加すると、ローカルのアドバイザリーバンドルを使って完全にオフラインで実行できます。オフラインスキャンとマニフェストスキャンでは、EPSS サービスに接続しません。npm、pnpm、yarn のプロジェクトでは、ロックファイルから読み取った依存関係が取り込むパッケージもチェックし、それぞれのパッケージへのパスを示します。マニフェストがない場合、または無効な場合は、終了コード 1 で終了し、スキャンを実行しません。マニフェストの形式とエラーテキストについては、DOCS.md をご覧ください。
SARIF では、パッケージとアドバイザリーごとに結果が出力されます(vg scan --vulns --format sarif)。各結果には partialFingerprints["vg/finding-id/v1"] が含まれるため、変化のない検出結果は同じコードスキャンアラートを維持します。アドバイザリー独自の ID が主要な ID です。CVE やその他の別名は、同じ結果に保持されます。スキャンで 2 つのアドバイザリー ID が保持された場合、それらの ID が互いを別名として挙げている場合も含め、2 つ目のコードスキャンアラートが作成されます。フィールドのレイアウト、結果の順序、フィンガープリントの生成方法については、DOCS.md と DOCS.md をご覧ください。
JSON(vg scan --vulns --format json および .vibgrate/scan_result.json)では、パッケージとバージョンごとに 1 件の検出結果が出力されます。これらの ID が 3 つ目の ID を介して別名になっている場合も同様です。グループ内のいずれかの関連 ID が CVE であれば、検出結果の ID はグループ内で最も小さい CVE となり、そうでなければ最も小さいアドバイザリー ID となります。アドバイザリーが 1 つだけの場合は、独自の ID が維持されます。aliases には、その他の ID がソートされて列挙されます。--offline --package-manifest でも同じ方法でグループ化されます。ID の規則については、DOCS.md をご覧ください。
vg scan --vulns # drift score + known vulnerabilities
vg scan --full # drift + vulnerabilities + a banned-dependency report
Git リポジトリでは、すべての検出結果について履歴をたどり、脆弱なバージョンを導入したユーザー、そのコミット、および脆弱性にさらされていた期間を特定します。こうした曝露期間は、深刻度ごとの曝露時間と SLA 違反の指標に集計され、EU Cyber Resilience Act (CRA) に照らして示されます。そのため、「十分な速さで修正できているか?」を数値で把握できます。
これは このチェックアウト に関する質問への回答です。規制当局からの質問、つまり、どの 出荷済み 製品に脆弱性が含まれているかについては、以下の Vibgrate Evidence をご覧ください。
vg why lodash # who added a dependency, every version since, and any open vulnerabilities
vg bisect lodash 4.17.21 # the commit where lodash crossed a version line (e.g. reached the fix)
検出と帰属の対象は、npm エコシステム全体(npm、pnpm、yarn)に加えて、pip/poetry、cargo、composer、bundler、pub、hex、NuGet、Maven/Gradle に及びます。各プロジェクトのロックファイルから読み取るため、どのような環境でビルドしていても機能します。Go は go.mod の直接の require 行から照合されます。疑似バージョンと +incompatible タグの比較方法については、DOCS.md で説明しています。
AI アシスタントもこの情報を利用できます。vg serve は list_vulnerabilities、vuln_attribution、およびアップグレードにかかるコストをエージェントに伝える upgrade_impact ツールを提供します。これには、バージョンの差、パッケージをインポートしているファイルの数、修正される脆弱性、および(オンラインで、オプトインした場合)現在のバージョンから最新バージョンまでの破壊的変更に関する説明が含まれます。
Vibgrate Evidence —「この製品を出荷したものはどれか?」に回答
スキャナーが知らせてくれるのは、目の前にあるコードについてです。規制当局が尋ねるのは、出荷したコードについてです。つまり、18か月前にバージョン 3.2.1 としてドイツとフランスに出荷され、今もサポート期間内にあるコードです。Vibgrate Evidence は、この問いへの回答を、第三者がオフラインで検証できる署名付きアーティファクトとして提供します。アカウントもネットワークも不要です。
生成するのは、判定ではなくエビデンスです。 コンプライアンスを満たしているとは判断しません。また、法的助言でもありません。根拠を示せて再現可能な回答と、その裏付けとなる監査証跡を提供します。判断と申告はお客様ご自身に委ねられます。
vg evidence init --regime cra # who files, and to which coordinator
vg evidence product add "Acme Gateway" --markets DE,FR --in-scope
vg evidence release acme-gateway 3.2.1 --from sbom.cdx.json --ship-date 2025-02-14
vg evidence exposure CVE-2025-12345 --bundle ./ev # signed answer, exit code for CI
なぜ再スキャンせずにマニフェストを固定するのか?
- 出荷済みのものは不変ですが、ツリーは変化します。
exposureはHEADではなく、出荷時に固定されたマニフェストと照合します。今日再スキャンして分かるのは、今出荷する場合の内容であり、問われていることとは異なります。 - 推測はしません。 固定されたマニフェストがないリリースに紐付けられた製品は、理由とともに
undeterminedとして返されます。確信があるように見えるnot affectedには決してなりません。この違いこそが、アーティファクトの価値です。 - 設計上、管轄区域に依存しません。 報告義務は制度としてモデル化されています。EU CRA(
--regime cra、2026 年 9 月 11 日から適用)とDORAインシデント報告(--regime dora-incident)は、本日から利用できます。新たな管轄区域は制度プロファイルとして追加でき、新しいコマンドやツールは必要ありません。 - モデルが数値に関与することはありません。 エビデンスの処理過程で、言語モデルが生成するものはありません。すべての数値は、固定されたマニフェストとアドバイザリーデータから計算されます。
- 最初から最後までオフラインで利用できます。 ローカルのアドバイザリーファイルを使う
--offlineではネットワークは不要です。また、vg evidence verifyはVibgrateのことを一度も知らなかったマシンでも動作します。
トレードオフ: 回答の精度は、固定したマニフェストの精度に左右されます。エビデンスから、記録を始める前に出荷した内容を再構築することはできません。固定したことのないリリースは、永久に undetermined のままです。記録を始めた日から価値が積み重なるため、9月まで待たずに今始めるべきです。
ライフサイクル
| ステップ | コマンド | 内容 |
|---|---|---|
| 1. セットアップ | vg evidence init | 組織、調整役を務めるCSIRT、および申告権限を持つ担当者を設定します |
| 2. 登録 | vg evidence product add | デジタル要素を含む製品を登録します。市場、分類、対象範囲の根拠を指定します |
| 3. 固定 | vg evidence release | SBOM、スキャン、またはBuildKitのビルド結果から、出荷済みバージョンを不変のコンポーネントマニフェストに紐付けます |
| 4. 確認 | vg evidence exposure <vuln> | どの出荷済み製品に含まれているか、どのバージョンと市場が対象か、サポート期間内かを確認します |
| 5. 証明 | vg evidence verify <bundle> | あらゆるマシンで、署名付きの回答をオフラインで再検証します |
これらの間には、制度の義務に照らした決定論的なギャップレポートを出す vg evidence readiness、制度とその期限を一覧表示する vg evidence regimes、シミュレートされたアドバイザリーを使って時間を計測しながらリハーサルを実行する vg evidence drill、CISA KEVカタログと固定済みマニフェストを突き合わせる vg evidence watch、担当者が報告プラットフォームに貼り付ける申告パックを作成する vg evidence pack、すべてをエアギャップ環境用バンドルとして書き出す vg evidence export も利用できます。regimes、readiness、drill が参照する内容と、アップロード前に完了するローカルのドライランについては、DOCS.md をご覧ください。
ビルドで生成された情報からコンテナリリースを固定する
配布する成果物がコンテナイメージの場合、マニフェストに必要な情報はビルドですでに生成されています。vg evidence release を使えば、誰かが手入力する代わりに、それらの情報を直接読み取れます:
docker buildx build --push --provenance=true --sbom=true --metadata-file build.json -t ghcr.io/acme/gateway:3.2.1 .
vg evidence release acme-gateway 3.2.1 --image ghcr.io/acme/gateway:3.2.1 --ship-date 2025-02-14
--from で渡す、またはイメージにアタッチされた SBOM は、有効な CycloneDX または SPDX JSON である必要があります。ファイルが途中で切れている、JSON ではない、必須フィールドがない場合は、終了コード 1 で終了します。メッセージにはファイル名と期待される形式が示され、SBOM の再生成が促されます。ドキュメントの内容は含まれません。コンポーネントまたはパッケージに name がない場合、その項目を除外するのではなく、コマンドが失敗します。
--image <ref> は、Docker からイメージのダイジェスト、org.opencontainers.image.* ラベル、およびイメージにアタッチされた来歴と SBOM のアテステーションを取得します。アタッチされた SBOM はマニフェストになります。このコマンドは docker image inspect と docker buildx imagetools inspect を実行し、参照先のイメージがローカルにない場合、後者はレジストリに接続します。デーモンを使わない場合は、同じ情報をファイルで渡します。ダイジェストとビルド参照には --buildkit-metadata build.json、SLSA アテステーション(ソースリポジトリ、コミット、ベースイメージ)には --provenance <file>、CycloneDX または SPDX SBOM(単体またはアテステーションとして)には --from <file> を指定します。結果は固定されたマニフェストの build に記録されます。ビルド情報と矛盾する --digest を指定するとエラーになります。アテステーションの署名は未検証として記録されます。vg にはレジストリの信頼ルートがないため、cosign で検証してください。
バンドルの内容と「verified」の意味
--bundle <dir> は、result.json、その内容に対する DSSE/Ed25519 の in-toto アテステーション(evidence.intoto.jsonl)、第三者が手順に従って検証できる VERIFY.md、および --tsa <url> を指定した場合は RFC 3161 の信頼できるタイムスタンプトークン(timestamp.tsr)を書き込みます。
vg evidence verify は、3 つの状態のいずれかを報告します。特に重要なのは中間の状態です:
| 状態 | 意味 |
|---|---|
verified | 署名が検証され、署名者が指定した信頼ルート(--pub)にピン留めされており、かつ結果のダイジェストが一致します |
unverified | 暗号学的に完全で、改変されていませんが、署名者はピン留めされていません。実在するものの、まだ信頼されていない状態です |
failed | 署名が不正、または署名時の内容と一致しなくなった result.json です |
途中で切れている、無効、または読み取れないバンドルは、これらの状態には該当しません。vg evidence verify は終了コード 1 で終了し、バンドルを復元するか、vg evidence exposure --bundle で再作成するよう案内します。メッセージにファイルの内容は含まれません。
終了コードは CI のゲートとして使えます:0 露出なし · 2 露出あり · 3 判定不能、手動確認が必要 · 1 運用エラー。
証拠の状態は .vibgrate/evidence/ に保存されます。Ed25519 署名鍵は、独自の鍵を VG_ATTEST_KEY で指定しない限り、初回使用時に .vibgrate/attest-key.pem(モード 0600、隣に .pub も生成)として作成されます。バックアップを取り、決してコミットしないでください。
時間の経過に伴うドリフトを追跡する → 無料のワークスペースを作成する
CLI はオフラインでも十分に利用できます。実行やリポジトリをまたいだ傾向を把握し、ドリフトを不意に発見するのではなく、管理する指標にしたい場合は、スキャン結果を Vibgrate Cloud のワークスペースにプッシュしてください:
- ワークスペースを作成して dash.vibgrate.com にアクセスし、DSN をコピーします。
- 接続してプッシュ:
VIBGRATE_DSN="vibgrate+https://<key_id>:<secret>@us.ingest.vibgrate.com/<workspace_id>" \
vg scan --push
アップロードはオプトインです。--push を実行するまで、データがマシンの外部に送信されることはありません。DSN は CI シークレットとして保存し、決してコミットしないでください。
CI 連携
java-spring/budget — CI ゲートとしての vg scan --drift-budget 60(この記録では終了コード 0)。ライブシミュレーター。
GitHub ですぐに始めるなら、コマンドを 1 つ実行するだけです。.github/workflows/vibgrate.yml を作成し、vibgrate/cli Action で各プルリクエストをスキャンして、SARIF を GitHub Security にアップロードします。Vibgrate アカウントは不要です。
vg init --ci github
自分で記述したい場合は、同じワークフローを vibgrate/cli Action の 1 ステップで実行できます。
- uses: actions/checkout@v4
- uses: vibgrate/cli@v1
with:
upload-sarif: true
max-score: 40 # optional: fail the job when DriftScore is above 40
任意のパイプラインに vg を追加して、ドリフトスコアを品質ゲートにできます。
# GitHub Actions — drift gate + SARIF upload
- name: Vibgrate scan
env:
VIBGRATE_DSN: ${{ secrets.VIBGRATE_DSN }}
run: npx @vibgrate/cli scan --push --format sarif --out vibgrate.sarif --fail-on error
- name: Upload SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: vibgrate.sarif
ドリフト予算と、ベースラインに対するリグレッションを基準にゲートを設定できます。
vg baseline
vg scan --baseline .vibgrate/baseline.json --drift-budget 40 --drift-worsening 5
vg scan --vulns --fail-on-epss 0.1
--drift-budget <score>は、ドリフトが予算を超えた場合にビルドを失敗させます。--drift-worsening <percent>は、ベースラインと比べてドリフトが X% を超えて悪化した場合にビルドを失敗させます。--fail-on-epss <threshold>は、いずれかのアドバイザリの EPSS スコアがしきい値以上の場合にビルドを失敗させます。スコアは 0 から 1 までの確率です。スコアがしきい値と等しい場合も失敗します。スコアがない場合は比較されず、0 として扱われません。このフラグは.vibgrate/config.ymlまたはvibgrate.config.jsonのfailOnEpssを置き換えます。vg scan --vulnsまたはvg scan --fullのアドバイザリを読み取ります。DOCS.md を参照してください。--summary-out <file>は、小さな JSON サマリー(driftScore、riskLevel、--baseline以降の変化、driftBudgetの判定)を書き出します。ゲートに失敗して実行が終了した場合でも、CI ステップで読み取れます。予算が設定されていない場合、driftBudgetはnullです。--drift-budgetと--drift-worseningはsourceがflagsとして記録されます。未測定のスコアは0ではなく、nullです。完全なアーティファクトには、コンポーネントごとのスコアと同じdrift.*フィールドが含まれます。DOCS.md を参照してください。--junit <file>は、検出結果と各ゲートの決定的な JUnit XML サマリーを、--format(JSON または SARIF)と並べて書き出します。終了コードは変わりません。DOCS.md を参照してください。
vg scan --format sarif --out vibgrate.sarif --junit vibgrate.junit.xml --fail-on error --drift-budget 40
--baselineを指定したスキャンでは、スナップショットにすでに存在する検出結果(ルール、場所、ID)も記録されます。テキストレポートには件数が表示され、SARIF には同じ ID が抑制として記載されます。これらの検出結果はレポートに残ります。
コピーして使える CI テンプレートは examples/github-actions/ にあります。ジョブが失敗する条件、警告モードで成功状態を保つ方法、固定するバージョン、DriftScore バッジの設定方法については、examples/github-actions/README.md を参照してください。Azure DevOps と GitLab CI のスニペットは DOCS.md にあります。
バージョンに対応したライブラリドキュメント
vg lib <pkg> は、指定したライブラリの使用方法に関するドキュメントを出力します。プロジェクトのルートにあるロックファイルにそのパッケージが記載されている場合、バージョンラベルにはその固定バージョンが表示されます。読み取られるファイル、固定バージョンが見つからない場合、インストール済みバージョンと一致しない場合、またはカタログの取得に失敗した場合の動作については、DOCS.md を参照してください。
vg lib react
MCP 経由で接続された AI アシスタントは、プロジェクト内のライブラリ API に関する質問に回答する際、vg lib を自動的に使用します。
SBOM と OpenVEX
strapi/sbom — vg sbom export --format cyclonedx --out sbom.cdx.json。コンプライアンスの判定ではなく、インベントリです。ライブシミュレーター。
vg sbom export --format cyclonedx --out sbom.cdx.json
vg sbom export --format spdx --out sbom.spdx.json
vg sbom delta --from .vibgrate/baseline.json --to .vibgrate/scan_result.json --out delta.txt
vg vex # generate an OpenVEX document for attestation
vg sbom export はコンプライアンスの判定ではなく、インベントリを書き出します。CycloneDX のコンポーネント type は、メタデータコンポーネントでは application、コンテナイメージを含むすべての依存関係の行では library です。SPDX の primaryPackagePurpose は省略されます。マッピング、対象外の項目(OS パッケージ、イメージの内容、Terraform リソース)、短いフィクスチャの例については、DOCS.md を参照してください。
各コンポーネントの vibgrate:scope は direct または transitive です。開発用の依存関係では、CycloneDX コンポーネントの scope が excluded に設定され、SPDX の DEV_DEPENDENCY_OF 関係が設定されます。オプションの依存関係では、scope が optional に設定され、OPTIONAL_DEPENDENCY_OF が設定されます。エクスポートで省略されるフィールドを含むマッピングについては、依存関係のスコープ を参照してください。
コンポーネントはパッケージ URL(CycloneDX の purl、SPDX の purl 外部参照)で照合します。スキャン JSON では同じ座標(projects[].type、dependencies[].package、resolvedVersion、extended.vulnerabilities.packages[])が使われ、purl 文字列は繰り返されません。これらのファイルに CPE フィールドはありません。CLI が CPE を生成することはなく、別のカタログ作成ツールの CPE で purl を置き換えることもできません。フィールドとローカルの例については、DOCS.md を参照してください。
ロックファイルにパッケージダイジェストが記録されている場合、CycloneDX の hashes と SPDX の checksums には、アルゴリズム名、次にダイジェスト値の順でソートして一覧表示されます。記録されたダイジェストがないパッケージでは、配列が省略されます。スキャンの依存関係にダイジェストフィールドはありません。serialNumber、documentNamespace、projectId、solutionId は識別子です。フィールドとローカルの例については、DOCS.md を参照してください。
--format は cyclonedx(デフォルト)または spdx です。同じスキャンでもファイルによってどのように異なるか(purl の配置、依存関係グラフ、ライセンス、ツールのメタデータ、ドキュメント ID)については、CycloneDX と SPDX の選択 を参照してください。
変更をレビューする
Vibgrate Review は、宣言されたアーキテクチャおよびセキュリティ制御ポリシーに照らして、現在の変更を読み取ります。報告するのは変更の整合性であり、セキュリティの証明ではありません。
dotnet-clean-arch/review — Clean Architecture のフィクスチャでの vg review。ライブシミュレーター。
vg review
vg review findings-from-diff --base origin/main --format json
vg review propose blast:<node_id> --model forge --json
vg review propose arch:<rule>:<path> --model forge --json --findings findings.json
vg review findings-from-diff は決定論的な vg.review.findings.v1
ドキュメント(影響範囲とアーキテクチャポリシーの correctness 行、およびセキュリティスキャナー)を出力し、.vibgrate/review-propose-handoff.json に書き込みます。
JSON フィールドの一覧、すべての kind、並べ替え順、取得済みの例、失敗時の終了コードについては、DOCS.md を参照してください。
vg review propose <id> は PatchIR のドライランを関連付けます。--model は
relay:<slug>(ホスト型 Review)または spark | flow | forge(ローカル Code Mode)です。
検索対象は、現在の変更セット、次に --findings JSON、最後に直近の実行で生成されたハンドオフです。変更セットを明示的に指定する場合は、findings-from-diff と同じ --base / --in-place / --diff を渡してください。トピックブランチ上で --apply --yes を渡さない限り、何も書き込みません。
プライバシーとオフラインファースト
--push/vg push/vg shareを実行しない限り、データがマシンの外に送信されることはありません。- ドリフトスコアリングでは、マニフェストと設定ファイルのみを読み取ります。コードグラフ(
vg build/vg map)と一部の拡張スキャナー(コード品質、データベーススキーマ、UI テキスト)では、構造上の事実や指標を計算するためにソースコードをローカルで読み取ります。ソースコードの行そのものを外部に送信することはなく、そのままアップロードすることもありません。各スキャナーが読み取る内容の詳細は、DOCS.md を参照してください。 - ログインや SaaS への依存なしで動作します。
--offlineはパッケージレジストリに接続せず、結果もアップロードしません。--package-manifest <file>を使うと、ローカルの JSON または ZIP マニフェストからドリフトスコアリングに必要な情報を取得できます。また、--vulnsと併用すると既知の脆弱性も確認できます。マニフェストがない、または無効な場合は1で終了します。同じツリーと同じマニフェストを使用すれば、検出結果の順序とアドバイザリ ID は常に同じになります。DOCS.md を参照してください。--max-privacyはローカルへのアーティファクト書き込みと、コンテキストを多く必要とするスキャナーを抑制します。--no-local-artifactsは.vibgrate/*.jsonのディスクへの書き込みをスキップします。vg code --localはモデルの推論をデバイス上にとどめます。ローカルモデルとローカルグラフを使用し、ホストされたサービスへの呼び出しやモデルカタログの取得は行いません。エージェント独自の Web ツールは引き続き利用できますが、他のすべてのネットワーク操作と同様、実行前にあなたの承認が必要です。vg codeはシークレットファイルをプロンプトに読み込まず、読み取るファイルに含まれる認証情報の形式もマスキングします。vg evidenceはローカルで動作します。ローカルのアドバイザリファイルと--offlineの組み合わせではネットワークは不要です。また、アカウントや接続がないマシンでもvg evidence verifyでバンドルを検証できます。vg evidence pushを実行するまで、Vibgrate Cloud に情報が送信されることはありません。vg evidence regimes、vg evidence readiness、vg evidence drillもローカルで動作します。プロファイルは CLI に同梱され、ギャップレポートとドリルは.vibgrate/evidence/に保存されます。ドライランについては DOCS.md を参照してください。
vg scan --offline --package-manifest ./package-versions.zip --max-privacy --format json --out scan.json
.vibgrate/ を .gitignore に追加してください。これらは再生成されるローカル出力です。
Vibgrate によるコードとデータの取り扱いについて詳しくは、vibgrate.com/security とサブプロセッサー登録簿をご覧ください。
AI アシスタントですぐに始める
以下を AI コーディングツール(Claude、Cursor、Copilot、Gemini CLI など)に貼り付けてください。
Set up Vibgrate for local codebase intelligence:
1. Install: npm install -g @vibgrate/cli@latest
2. Build the graph: vg build
3. Wire your assistant: vg install
4. Ask: vg ask "what are the main entry points?"
Then explain the architecture and my top 3 upgrade priorities.
プロンプト全文は docs/QUICKSTART-PROMPT.md を参照してください。
コマンドリファレンス
各セット内のコマンドは A~Z 順に記載しています。必要に応じて、一般的な手順(通常の実行順)も示します。
コードグラフ
一般的な手順: vg build → vg status → vg ask → vg impact → vg share
vg ask はローカルマップに基づいて回答します。質問とコードはこのマシンから外に出ません。--offline は、任意のモジュール取得と、このプロセスによる埋め込みモデルのダウンロードをスキップします。ローカルにとどまる情報とネットワークを使用するタイミングを参照してください。
| コマンド | 説明 |
|---|---|
vg ask "<question>" | 自然言語でマップに問い合わせます |
vg build [path] | コードマップをビルド/更新します(増分処理、決定論的)。--attest はマップに署名し、--verify はディスク上のマップと照合して署名を検証します。フラグ、鍵、失敗時のメッセージについては、DOCS.md をご覧ください。--policy hexagonal-v1|layered-v1|vertical-v1 は、アーキテクチャモジュールが評価する境界ルールを選択します(デフォルトは .vibgrate/architecture.toml の設定です。このファイルには独自の [[overlay]] ルールも設定できます)。--init-policy はビルドで分類された内容に基づいて、このファイルの初稿を書き込みます(ポリシーパックとオーバーレイについては docs/architecture-policies.md で説明しています) |
vg bundle | エアギャップ環境用バンドルをビルドします(文法定義+グラフ+ライブラリカタログ) |
vg code ["<instruction>"] | グラフに基づくコーディングエージェントです。ローカルモデルまたはホスト型モデルを使用し、編集とコマンドはすべて承認が必要です(CI 用の --auto、単発の差分用の --single) |
vg embed | vg ask を即座に実行できるよう、セマンティックインデックスを事前計算します |
vg export | マップをエクスポートします(json / ndjson / graphml / dot / cypher / md / html / SBOM) |
vg facts <file> | ノードの決定論的な事実情報(コントラクト、不変条件) |
vg guide <file> | ノードに関する出典付きの標準/プラクティス(無料パック) |
vg impact <file> | 変更時に何が壊れるか、および実行すべきテスト |
vg install / vg uninstall | AI アシスタントに Vibgrate AI Context とスキルを接続(または削除)します(--detect、--all、--list) |
vg lib <package> | バージョンに合致し、差異の注釈が付いたライブラリドキュメント |
vg locale | アプリの翻訳を管理します。Vibgrate Cloud のロケールプロジェクト、キー、翻訳(push / pull / status。vg localize はエイリアスです) |
vg map / vg hubs / vg areas / vg oddities | マップの分析情報:概要、依存先として最も多く参照されるコード、自然なグループ分け、領域間の問題点 |
vg models | Code Modes(Spark / Flow / Forge)+ローカルモデル群(Ollama / LM Studio / gguf)。デフォルトでは install / pull を実行します(プレビューには --dry-run) |
vg module | オプションのローカルモジュール(relevance、hcs)を管理します:status、install、remove |
vg path <from> <to> | A と B のつながり方(最短経路)。--diagram は固定された呼び出し経路として描画します |
vg show flow <entry> | 関数の処理を、固定されたフローダイアグラムで順を追って示します |
vg show scratchpad | 説明用スクラッチパッドです。--keep またはエージェントによって保持された説明が、新しいものから順に表示されます |
vg savings | トークン/$ の節約に関するローカルレポートです。マップへの問い合わせと grep の比較、およびウィンドウ、モデル、クライアント別のコンテキスト圧縮(推定値)を示します |
vg watch | ファイル変更時にマップを再ビルドします |
vg serve | Vibgrate AI Context を起動します(ローカル優先の MCP:コードマップ+差異+バージョンに合致したドキュメント) |
vg share | チームでコミット可能かつ自動更新されるよう、グラフを設定します |
vg show <file> | ノードを説明します:ノードの内容、呼び出す先、呼び出し元 |
vg show arch | ローカルのアーキテクチャマップを開きます。まずワークスペースのパッケージを表示し、次に列をスライスして表示します(UI → service → store)。ループバック。--focus <symbol>、--no-open |
vg status | キャッシュ/鮮度、件数、古さ |
vg tests <file> | ノードをカバーするテスト |
vg tree <file> | ノードをルートとする呼び出しツリー |
vg unknowns | グラフで解決できない項目を、影響範囲の大きさ順に表示します |
vg attest-actions コマンドはありません。vg attest と vg verify は廃止された名前で、現在はそれぞれ vg build --attest と vg build --verify を使用します。
vg build --attest は、DSSE in-toto ステートメントを .vibgrate/attestation.intoto.jsonl に書き込みます(--attestation <file> で変更できます)。鍵には、--attest-key <path>、それがない場合は VG_ATTEST_KEY、さらにそれもない場合は .vibgrate/attest-key.pem が使用されます。このデフォルトパスに鍵がない状態で初めて実行すると、Ed25519 鍵を生成します(モード 0600。同じ場所に .pub ファイルも作成されます)。鍵を保管し、gitignore に追加するよう案内されます。指定したパスにファイルがない場合は、使用方法エラーになります。Ed25519 以外の鍵は拒否されます。アテステーションはコミットしてください。秘密鍵はコミットしないでください。
vg build --verify は、そのファイルをディスク上の既存のマップと照合します。署名を確認するために再ビルドすることはなく、マップを置き換えることもありません。同じコマンドでメモリ上のマップも再構築し、ビルドが決定的であることを確認します。--pub <path> を指定すると、署名者を固定できます。指定しない場合、有効な署名が示すのはファイルが改変されていないことだけであり、署名者を信頼してよいということではありません。デフォルトパスにファイルがない場合は、その旨が報告されます。存在しない証明ファイルを指定すると失敗し、vg build --attest を案内します。
署名と確認にはローカルの暗号処理を使用します。アップロードは行いません。署名時にのみ、git が利用可能な場合に限り、コミットを記録するために使用します。vg build --attest もビルドであるため、そのビルドでArchitectureモジュールや埋め込みモデルをダウンロードさせない場合は、--offline または --local を渡してください。すべての入力、出力、および各エラー行については、DOCS.md を参照してください。
vg build --attest
vg build --verify --pub .vibgrate/attest-key.pem.pub
証明ファイルがまだ存在しない場合、そのファイルをパスで指定して要求すると失敗します。プロセスは 3 で終了し、次の内容を出力します。
error: no attestation at .vibgrate/attestation.intoto.jsonl — sign one with `vg build --attest`
パスが意図したファイルを指していることを確認してから、vg build --attest で署名してください。
コンテキスト圧縮
圧縮のための新しいコマンドはありません。vg serve のモード、vg install のフラグ、vg savings のセクションとして利用できます。
一般的な手順: vg install claude --compress → いつもどおりClaude Codeを使用 → vg savings
| コマンド | 説明 |
|---|---|
vg serve --compress | コードマップを提供し、同時にコンテキストを圧縮します。あらゆるエージェント向けの、ループバック上のAnthropicおよびOpenAI互換リスナーです |
vg serve --compress --background | リスナーをバックグラウンドプロセスとして起動(または実行中のものを再利用)して戻ります。vg serve stop で終了します |
vg serve --compress <agent> | 1つのエージェントセッションを環境変数のみで実行します。何も書き込まず、何も残しません |
vg install <agent> --compress | エージェント独自のベースURL設定を書き込み(マーカーで追跡され、元に戻せます)、エージェントの接続先を永続的に変更してリスナーを起動します |
vg uninstall <agent> | vg install が書き込んだほかのすべてのものとともに、その設定をバイト単位で元に戻します |
vg install <agent> --learn | 過去のエージェントセッションを、指示ファイル内のガードレールに変換します。繰り返し発生する失敗、ループ、コンテキスト不足が対象です(--apply で書き込みます) |
vg savings | モデル、クライアント、プロジェクトごとに、今日/7日間/30日間で節約したトークン数と金額を表示します |
vg savings --benchmark | 組み込みフィクスチャを使用したオフライン圧縮ベンチマークです。コンテンツタイプごとのレイテンシと圧縮率を表示します |
vg show savings | vg show arch の隣に、同じ数値をローカルページとしてリアルタイムで表示します |
vg serve status / vg serve stop | リスナーの状態と、接続先として設定されているエージェントを表示します。バックグラウンドリスナーを停止します |
vg serve config | すべての VG_* 設定項目と値の取得元を表示します。set / unset は settings.json に書き込みます |
vg serve memory | エージェント間で共有するプロジェクトメモリです。list、search、add、delete、stats、export、import を利用できます |
vg serve compress [file] | ファイルに対してパイプラインを手動実行します。デバッグ用であり、通常の使用には含まれません |
vg serve retrieve <hash> | 圧縮マーカーを元の内容またはその一部に展開します(--grep、--lines、--head、--tail、--json-path) |
Holistic Code Specification(vg hcs)
Rust、Ruby、PHP、Dart、Swift、Scala、C++、COBOL、VB6 の決定的なコードファクトです。ファクトごとに NDJSON の 1 行で出力され、どのマシンでも再現できるため、ファクトストリームをコミット、差分比較し、CI のゲートに使用できます。デフォルトでは抽出はインクリメンタルに行われます。既存のストリームを対象に再実行しても、コストは差分の分だけです。
HCS の計算はすべて、オプションで別ライセンスのエンジンモジュール内で実行され、ローカルの WASM サンドボックスで動作します。ネットワーク呼び出しやプロセスの起動はありません。初回使用時に取得されるほか、事前に vg module install hcs でインストールできます。利用できない場合、すべての vg hcs コマンドは 6 で終了し、決して 2 では終了しません。そのため、CI ゲートが「エンジンが見つからない」ことを判定結果と取り違えることはありません。
一般的な流れ: vg hcs extract → vg hcs digest / vg hcs map / vg hcs gate
| コマンド | 説明 |
|---|---|
vg hcs extract [dir] | ファクトを NDJSON ストリームに抽出します(デフォルトではインクリメンタル。再抽出するには --full を指定します) |
vg hcs digest | ファクトストリームを読みやすい仕様書(md / json / html)として出力します |
vg hcs gate | ガバナンスゲート:2 つのストリームを比較し、重大な構造上の後退があれば失敗します(終了コード 2) |
vg hcs map | ファクトストリームから System Map を作成します(json / md / mermaid) |
vg hcs validate <file> | ストリームを HCS 仕様(Appendix-I 準拠コード)に照らして検証します |
診断、IDE、ランタイム
一般的な流れ: vg doctor → vg lsp → vg daemon
| コマンド | 説明 |
|---|---|
vg daemon | マルチルートのグラフセッション(IDE / エージェント)用のローカルワークスペースデーモンです。status、ensure、publish、query、impact、…を提供します |
vg doctor | 読み取り専用の診断です。設定、認証情報(マスキング済み)、マップの鮮度、ホストへの到達性、MCP の起動、圧縮プロキシ、ストアを確認します |
vg llm-host | エンタープライズ向けのプロセス分離を実現する、分離されたローカル推論ホストプロセスです(serve、status) |
vg lsp | 言語サーバー(stdio)です。VS Code 用の Vibgrate や、その他の薄型 IDE クライアントを支えるエンジンです |
vg policy | 本番環境のコンテキストポリシーのピン留めを表示します。署名済みの学習パッチについては vg policy verify <file> を実行します |
ドリフトスコアリングとサプライチェーン
一般的な手順: vg init → vg scan → vg baseline → vg report → vg fix
| コマンド | 説明 |
|---|---|
vg baseline [path] | ドリフトのベースラインを作成します |
vg bisect <package> <constraint> | 依存関係がバージョンの境界を越えたコミットです(CI のゲートには --assert を指定します) |
vg drift | 依存関係のうち古くなっているものを確認します(オフライン。最新情報を確認するには --online を指定します) |
vg evidence | 署名付きで再現可能な規制対応エビデンスです。管轄区域に依存しない制度に対応します(まず EU CRA に対応し、DORA のインシデント報告にも対応します):init、product、release、exposure、readiness、drill、watch、pack、verify、push、export |
vg fix | ホスト型プランナーがリスクレベル別に優先順位を付けたアップグレード計画を提示します。その後、選択した計画を適用します |
vg init [path] | 設定と .vibgrate/ を初期化します |
vg report | スキャン成果物からレポートを生成します |
vg review | Vibgrate Review — 現在の変更について、アーキテクチャとセキュリティ制御をローカルでレビューします(--in-place、--local、--loop)。vg review findings-from-diff では、コードグラフから決定論的な影響範囲の検出結果を取得できます。vg review propose <id> は PatchIR のドライランを添付します(同じ --base / --in-place / --diff、--findings、または .vibgrate/review-propose-handoff.json)。署名付きレシートには 1 つの判定(pass / needs_review / fail / undetermined)が記録されます(レシートダイジェストに対する Ed25519 署名。vg review verify <receipt.json> でオフライン検証できます)。保護対象の検出結果を承認して pass にすることはできません。レポートが示すのは変更の完全性であり、セキュリティの証明ではありません。コードマップが存在しない、または古い場合は自動で構築または更新します(オプトアウトするには --no-auto-build を指定します) |
vg sbom export / delta / vex | CycloneDX/SPDX SBOM をエクスポートするか、2 つの成果物を比較するか、OpenVEX ドキュメントを出力します |
vg scan [path] | アップグレードによるドリフトをスキャンします |
vg scan --full | ドリフト、脆弱性、禁止依存関係レポートを含む包括的なスキャンです |
vg scan --push | スキャンを実行し、結果を Vibgrate Cloud にプッシュします |
vg scan --vulns | 既知の脆弱性も検出します(OSV。--package-manifest を使えばオフラインで実行できます) |
vg update | 更新を確認してインストールします |
vg why <package> | 依存関係を導入したユーザー、そのバージョン履歴、未解決の脆弱性を確認します |
vg why <file:line> | その行を最後に変更したコミットと、変更を書き込んだ VG Code セッションを確認します(vg review trailer on でオプトインします) |
vg review trailer push | コミットに関連する VG Code セッションを Vibgrate Cloud で共有します。これにより、チームメイトが vg why <file:line> --cloud を使えるようになります |
ワークスペース認証とクラウドへのアップロード
ローカルでのスコアリングには必要ありません。プッシュするまで、データがマシンの外に送信されることはありません。
一般的な手順: vg login → vg dsn create → vg push → vg logout
| コマンド | 説明 |
|---|---|
vg dsn create | DSN トークンを生成します |
vg login / vg logout | Vibgrate ワークスペースで CLI を認証します(または保存済みの認証情報を消去します) |
vg push | スキャン結果を Vibgrate Cloud にアップロードします |
vg scan [path] [--vulns] [--full] [--format text|json|sarif|md] [--out <file>] [--fail-on warn|error|architecture-finding|architecture-warning] [--fail-on-epss <threshold>] \
[--offline] [--package-manifest <file>] [--no-local-artifacts] [--max-privacy] \
[--drift-budget <score>] [--drift-worsening <percent>] [--baseline <file>] [--summary-out <file>]
フラグと設定の完全なリファレンス:DOCS.md · vibgrate.com/cli · ヘルプセンター · 用語集。
チームが Vibgrate を採用する理由
ほとんどのシステムは一度にすべてが壊れるのではなく、アップグレードの負債とアーキテクチャのドリフトが気づかれないまま蓄積し、移行が高くつくようになります。vg はその負債を測定可能かつ再現可能にします。これはコードドリフトインテリジェンスと呼ぶ手法であり、AI アシスタントが役立つために必要なローカルコンテキストを提供します。チームやエンタープライズでの活用方法をご覧いただくか、現在お使いのツールと比較してください:Renovate との比較 · Dependabot との比較 · Snyk との比較。
| モード | 得られるもの | 最適な用途 |
|---|---|---|
| 単発スキャン | ドリフトスコア、遅延、検出事項をすばやく把握 | 監査、デューデリジェンス、移行計画 |
| CI 統合スキャン | 継続的なドリフトシグナル、SARIF アノテーション、リグレッション防止策 | アップグレードの負債を長期的に管理 |
| MCP + グラフ | リアルタイムかつオフラインでコードベースのコンテキストを把握する AI アシスタント | 日々の開発、コードレビュー、リファクタリング |
| VG Code | ターミナルまたは VS Code パネルで使える、グラフに基づくコーディングエージェント。ローカルモデルまたは Relay を利用し、編集ごとにガバナンスを適用 | 計画だけでなく、実際に変更を加える |
推奨する導入手順:今すぐ vg build + vg install を実行し、今週中に vg scan を CI に追加して、小さなタスクで vg code を試してください。
既知の制限
- ドリフトスコアとリスクスコアは推定値です。 マニフェスト、ロックファイル、公開アドバイザリーデータに基づいて算出されます。優先順位付けのためのシグナルであり、コンプライアンスの判定や認証ではありません。
- VG Code の品質は、選択したモデルに左右されます。 CLI にモデルは同梱されていません。小型のローカルモデルは機械的な編集には適していますが、横断的な設計変更は苦手です。
vg modelsが示すのは、このマシンに適合するモデルであり、作業を完遂できるモデルとは限りません。タスクがマシンの能力を超える場合は、Relay または別のホスト型モデルを利用してください。 - ガイド付きの
vg codeにはターミナルが必要です。 CI では、指示と--auto(または--mock)を渡してください。対話型ピッカーは表示されず、エージェントはこれらのオプションなしでは無人実行を拒否します。 - マップが可視範囲の上限です。 リゾルバーが定義に関連付けられなかったものは、
search_codeとgraph_impactからは見えません。vg unknownsを実行すると、グラフに欠けているものを影響範囲の大きい順に確認できます。 --autoは拒否リストであり、サンドボックスではありません。 既知の壊滅的なコマンドはブロックしますが、エージェントを隔離するものではありません。信頼できない指示はコンテナ内で実行するか、--worktreeと--security-tier L1を併用してください。--verifyはテストを再実行しますが、正しさを証明するものではありません。 失敗は修正を試みるためにフィードバックされます。テストが通ったということは、テストが通ったということです。- 脆弱性データの鮮度は、データソース次第です。
--vulnsはスキャン時点で OSV が把握している情報を報告します。オフライン実行では、指定したバンドルに含まれる情報を報告します。 - Vibgrate Evidence が作成するのは証拠であり、コンプライアンスの判定ではありません。 規制への対応を支援しますが、要件を満たしているかどうかを判断したり、何かを認証したりするものではなく、法的助言でもありません。申請内容の責任は利用者にあります。
- Evidence は過去にさかのぼって確認できません。 影響の判定は、出荷時点で固定されたマニフェストに基づきます。一度も固定していないリリースは
undeterminedのままで、後から再構築する方法はありません。 vg evidence watchが提示するのは KEV の一覧であり、判定ではありません。 申請において脆弱性が「実際に悪用されている」と見なせるかどうかは、ツールではなく利用者が判断します。vg evidence verifyは TSA 証明書チェーンを再検証しません。 RFC 3161 トークンのインプリントがresult.jsonに結び付いていることを確認し、信頼できる時刻を提示します。チェーン全体を確認するには、openssl ts -verify -in timestamp.tsr -data result.json -CAfile <tsa-ca.pem>を使用してください。
要件
- Node.js 22+
- macOS、Linux、Windows
- VG Code では、モデルも必要です。ローカルランタイム(Code Mode パック、Ollama、LM Studio、またはディスク上の GGUF)、Vibgrate Relay トークン、あるいはほかのホスト型プロバイダーの API キーを用意してください。
vg modelsを実行すると、このマシンで利用できるものを確認できます。
コマンド名の競合
vg は短いため、ほかのツール(virtualgo、vugu、oh-my-zsh の git verify-commit エイリアス、カスタムシェルエイリアスなど)と競合することがあります。
vibgrate は同一のエイリアスです。同じバイナリ、同じフラグ、同じ動作です。お使いのシステムで vg が使われている場合は、代わりにどこでも vibgrate を使用してください。
vibgrate scan # same as: vg scan
vibgrate build # same as: vg build
vibgrate serve # same as: vg serve
@vibgrate/cli をインストールすると、両方の bin エントリが無条件に登録されます。インストール時に vg がほかのツールによってすでに使われていることを検出した場合は、vibgrate の使用を案内する通知を1行表示します。
Vibgrate が提供するその他の機能
| Vibgrate CLI | このパッケージでは、あらゆるリポジトリをスキャンし、スコアを付け、マッピングできます。ライブデモ · ベンチマーク · トークン削減量 |
| Vibgrate for VS Code | エディター上で同じスコアを確認できるほか、VG Code パネルも利用できます。これは、同じエージェントを実行する vg code のグラフィカルなインターフェイスです。マーケットプレイス · Open VSX |
| Vibgrate Relay | 1 つの Vibgrate アカウントで VG Code 用のホスト型モデルを利用できます。プロバイダーごとの API キーは不要で、トークン単位の前払いクレジットを使います。ローカルモデルは引き続きオフライン利用の手段です |
| Vibgrate Graph | vg map、vg impact、vg show を支える、決定論的なローカルコードマップです |
| Vibgrate AI Context | vg serve — バージョンに合ったライブラリのドキュメント、コードマップ、オフラインでの差異を、あらゆるアシスタントに提供します。対応アシスタント · mcp.so |
| Vibgrate Cloud MCP | ワークスペースのデータを扱うホスト型 MCP サーバー(OAuth 2.1)です |
| Vibgrate Cloud | 履歴、傾向、チーム全体の集計を確認できます。ワークスペースを作成 · 料金 |
| Vibgrate Review | vg review — この変更は、システムを宣言されたアーキテクチャに近づけたでしょうか。それとも、セキュリティ制御を弱めたでしょうか。コードマップを使ってローカルで実行します。プッシュされるのはリポジトリではなく、判定記録です |
| Vibgrate Evidence | vg evidence — リリース済みの製品を固定し、「この脆弱性を含むリリース済み製品はどれか?」という問いに、署名付きでオフライン検証可能な証拠を提示して答えます。特定の法域に限定されない規制に対応し、EU CRA にまず対応します |
スコアの仕組み: DriftScore · RiskScore · DriftRisk Index · 公開済みの評価方法 · 実際のスキャン結果の公開インデックス · README バッジ
リファレンス: パッケージレジストリ · インテグレーションマーケットプレイス · 用語集 · ヘルプセンター · セキュリティ · ミッション
無料のワークスペースを作成 → · ライブデモを試す · VG Code · Evidence · ドキュメント全文
Apache-2.0 ライセンス · Copyright © 2026 Vibgrate
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
