VibeRevert について
VibeRevertは、AIコーディングセッション向けのローカルなプロジェクト保護ツールです。作業状態を記録し、検査可能なルールでリスクを示し、セッション全体または選択したファイルを復元できます。
主な機能
- 01追跡済み・ステージ済み・未追跡の作業をチェックポイント化
- 02セッション中の変更を記録
- 03決定論的なルールでリスクの高い編集を検出
- 04エージェント向け修正プロンプトを生成
- 05ロールバックをプレビューして選択適用
活用シーン
- 01エージェントの実行前に未コミット作業を保護
- 02決済やインフラ関連の変更を確認
- 03有用な編集を残して指定ファイルを復元
MCP 対応
VibeRevertはClaude CodeとCursor向けにMCPサーバー連携を提供します。接続したコーディングエージェントからプロジェクトの安全チェックと復元機能を利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
VibeRevert
実際に作業しているプロジェクトを守ります。
記録 · チェック · 修正 · 復元。
VibeRevert は、AI コーディングのためのプロジェクト整合性レイヤーです。エージェントが作業を始める前に実際の作業状態を記録し、決定論的なルールでリスクのある変更にフラグを立て、残したい変更はそのままに、不要なエージェントの作業だけを取り除けます。
エージェントが80個のファイルを変更しました。そのうち75個は役に立ちます。不要な5個だけを取り除けます。
AI が AI を判定することはありません: リスクの検出結果は再現可能で、説明が明確であり、確認可能なルールに基づいています。
すでにある作業状態もプロジェクトの一部です。 ステージ済みの作業、未ステージの編集、既存の未追跡ファイルはセッション開始前に記録され、復元後も保持されます。エージェントに作業を頼む前に、作業内容をコミットにまとめる必要はありません。
今使っているコーディングエージェントをそのまま使えます。 VibeRevert は Claude Code、Cursor、その他のコーディングエージェントのワークフローと併用できます。Git のワークツリーを使うと、エージェント専用の隔離されたチェックアウトが作成されます。VibeRevert は、エージェントが実際に変更した作業状態を保護し、選択して復元できます。これらは異なる問題を解決するため、併用できます。
AI がプロジェクトを壊しましたか?一週間分の作業ではなく、セッションを元に戻しましょう。 セッション全体のロールバックは、今も1つのコマンドで実行できます。
動作を見る
実際のベータ版決済実行から抜粋した CLI の動作です。check でフラグを立て、rollback で --apply を実行する前に変更内容をプレビューします:
$ viberevert check
risk: CRITICAL · payments
app/api/checkout/route.ts payments (critical)
app/api/webhooks/stripe/route.ts payments (critical)
$ viberevert rollback <session> # preview — nothing changed yet
package.json tracked_restored
app/page.tsx tracked_restored
app/api/checkout/route.ts untracked_deleted
app/api/webhooks/stripe/route.ts untracked_deleted
lib/stripe.ts untracked_deleted
.gitignore README.md (your uncommitted work) skipped_unchanged
約束ではなく、実証
実際の AI コーディングセッション3件。プロジェクトファイルの完全な復元3件。 決済、データベースのマイグレーション、デプロイインフラストラクチャのすべてで、既存の未コミット作業も保持されました。ベータ版レポートを読む →
クイックスタート
Git リポジトリ内で動作し、Node.js 22 以降が必要です。VibeRevert は記録をお使いのマシンに保存し、VibeRevert アカウントやホストサービスは必要ありません。
npm install -g viberevert@beta
viberevert init # one-time setup in your project
viberevert run <your-agent> # records the session and saves your files' starting state
viberevert check # see what changed and what looks risky
viberevert rollback <session> # preview putting your files back; add --apply to restore
セッションの一部だけを復元する場合も、セレクターを使って同じように操作できます:
viberevert rollback <session> --only 'app/api/**' # preview just that part
viberevert rollback <session> --only 'app/api/**' --apply # restore just that part
保護できる対象
AI エージェントにプロジェクト全体で作業させたところ、予想以上に変更されてしまったとします。たとえば決済コードやデータベースのマイグレーション、デプロイファイルなどです。その一方で、自分の未完成の作業も未コミットのまま残っています。VibeRevert はまずプロジェクトの開始時点のファイル状態を取得するため、気に入らないセッションのせいで午後を台無しにせずに済みます。
VibeRevert の機能
AI コーディングセッションの前後で、VibeRevert は次のことを行います。
- まずプロジェクトのチェックポイントを作成します — 作業ツリー、ステージ済みの変更、未追跡ファイルを含め、コミットしていない作業も対象です。
- セッションと、実行中に変更されたプロジェクトファイルを記録します。
- リスクの高い編集にフラグを付けます — 認証、決済、データベース、シークレット、依存関係、インフラに関わる変更が対象です(リスク分類)。
- 検出結果からエージェント向けの修正プロンプトを作成します。次のイテレーションで貼り付けて使用できます。
- 必要なときにファイルをチェックポイントの状態に復元します。
VibeRevert は警告を出しますが、作業を黙ってブロックすることはありません。オプションのコミット前フックを使えば、設定したリスクしきい値を超えるコミットを拒否できます。これはオプトイン方式で、調整可能であり、ローカルの Git フックと同様に回避できます。
ルールが判断し、エージェントが修正します
VibeRevert は、別の言語モデルにエージェントの変更が危険に見えるかどうかを尋ねません。チェックは決定論的です。同じ入力と設定であれば同じ検出結果になり、フラグごとに確認可能な理由が示されます。
対応が必要な場合、VibeRevert は検出結果をエージェント向けの修正プロンプトにできます。何にフラグを付けるかはルールが判断し、次に何をするかはユーザーが決めます。
すべてをロールバックするか、問題があった部分だけをロールバックします
viberevert rollback は、ローカルのプロジェクトファイルを、追跡対象、ステージ済み、未追跡のファイルを含め、セッション開始時の状態に復元します。コミット前の作業も対象です。デフォルトではプレビューを表示します。--apply を指定すると変更が書き込まれ、適用のたびに復旧可能な緊急チェックポイントが保存されます。
0.8.0 以降では、セッションの一部だけを復元することもできます。たとえば、エージェントが行った決済関連の変更には問題があったものの、テストの追加は問題なかった場合、決済関連の作業だけを元に戻し、その他はすべて残せます。
$ viberevert rollback <session> --only 'app/api/**' # preview — nothing changed yet
[RESTORED] app/api/checkout/route.ts
[RESTORED] app/api/webhooks/stripe/route.ts
Eligibility: eligible
$ viberevert rollback <session> --only 'app/api/**' --apply
選択方法は 4 つあり、いずれか 1 つを指定するとロールバックは選択モードに切り替わります。
| セレクター | 対象 |
|---|---|
--only <glob> | パスパターンに一致する変更 |
--except <glob> | それ以外のすべて。最後に差し引かれます |
--risk <level> | 指定したレベル以上と評価された検出結果が関わる変更 |
--finding <id> | 特定の 1 件の検出結果が適用される変更 |
複数の肯定的なセレクターを指定すると、対象は共通部分になります。そのため、--only 'payments/**' --risk critical は payments/ 内の重大な変更を意味し、payments 関連の変更と無関係な重大ファイルすべてを意味するわけではありません。パスセレクターは名前が変更されたファイルも追跡するため、payments/ の外に移動したファイルも対象になります。選択したものをすべて復元できる場合に限り、何かが復元されます。セッション終了後に選択したパスのいずれかが変更されていた場合、操作全体が拒否され、部分的に適用されることはありません。また、--force でもこの動作は無効にできません。選択的な適用が中断された場合、次の適用はフェイルクローズし、別の部分的な復元を重ねるのではなく、緊急チェックポイントを確認するよう案内します。
利用する前に知っておきたい、現在の制限が 2 つあります。
- 0.8.0 より前に終了したセッションは、選択的にロールバックできません。 そのセッションが加えた変更の記録がなく、再構築もできないためです。セッション全体のロールバックは、これまでどおり利用できます。MIGRATIONS.md を参照してください。
--findingには、完全な検出結果 ID が必要です。viberevert check --since <session> --jsonの出力に表示される ID を指定してください。現時点では短いプレフィックスは受け付けていません。
プロジェクトファイルの外部で発生した影響は元に戻しません。デプロイ、データベースへの書き込み、サードパーティ API の呼び出し、決済、送信済みメールには、それぞれ独自の復旧方法が必要です。ロールバックは状態ベースであり、アトミックではありません。AI セッションに対するセーフティネットであって、テストやレビューの代わりではありません。利用する前に、ロールバックで復元できるものとできないものをお読みください。
コーディングエージェント全体で使える復旧レイヤー
お好みのコーディングツールをそのまま使えます。VibeRevert はコマンドラインのエージェントセッション(viberevert run <your-agent>)をラップでき、インストーラーを通じて Claude Code や Cursor などのツールと連携します。
組み込みのチェックポイントはエージェントのワークフロー内にあります。VibeRevert はプロジェクトとともに動作します。
未コミットの作業も含めてプロジェクトの開始状態を取得し、セッションを記録して、リスクのある変更にフラグを立て、ロールバックをプレビューします。そして、エージェント自体の外部に復旧手段を保持します。
今日は Claude Code、明日は Cursor、あるいは別のターミナルエージェントをラップしても、安全レイヤーはプロジェクトとともにあります。
ツールに組み込む
VibeRevert は既存の環境を破壊せずにインストールでき、きれいに削除できます。Claude Code および Cursor(MCP サーバーとフック)と連携し、すべてのインストールで変更内容を事前にプレビューし、復旧ジャーナルを保持します。始め方をご覧ください。
実験的なターミナルブリッジ(--pty)を使うと、インタラクティブなエージェントシェル内のコマンドをインターセプトできます。ただし、ベストエフォートであり、そのように説明されています。詳細はPTY の仕様をご覧ください。
プラットフォーム
Node.js 22 以降で、Linux、macOS、Windows に対応しています。CI では Node 22 と 24 を使って、3 つすべてのプラットフォームでテストスイートを実行します。各プラットフォームでのテスト内容の詳細は、互換性をご覧ください。
詳細
- 始め方 · コマンド · 設定
- ロールバックで復元できるもの・できないもの · リスク分類
- セキュリティポリシー · 脅威モデル · 貢献
VibeRevert を支援する
VibeRevert は Apache-2.0 のオープンソースです。スポンサーからの支援は、クロスプラットフォームテストの継続、セキュリティ作業、ロールバックと復旧のテスト、独立したレビューの費用に充てられます。スポンサーからの支援が、リスクに関する評価やリリースの判断に影響を及ぼすことはありません。 → VibeRevert を支援する · 支援金の使い道
ライセンス
Apache-2.0。NOTICEとライセンス監査もご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。