Skip to main content
Glama


なぜagentvcなのか

Gitは、人間が人間のペースでコミットするために作られました。AIエージェントはマシンのペースであなたのワークスペースを変更していきます。1分間に数十のファイル、誤った方向転換、未完成のリファクタリング、頼んでもいない削除。気づいたときには、git stash では救えません。

agentvcは、すべてのエージェントセッションにタイムマシンを与えます。 ワークスペース全体をミリ秒単位でスナップショットし、並行する試行をブランチにフォークし、以前の任意の状態を即座に復元します。しかも設計上、データ損失ゼロです。

Related MCP server: checkpointer

機能

⏱ 即時チェックポイント

1つのコマンドまたは1回のツール呼び出しで全ファイルをスナップショット。コンテンツアドレス方式で重複排除され、ミリ秒で完了。

↩ ロスレスのロールバック

復元のたびに、まず現在の状態が自動保存されます。ロールバック自体も取り消し可能です。

⑃ 並行試行

セッションをブランチし、アプローチBを試し、比較して、勝者を採用します。

🤖 MCPネイティブ

8つのツールで、Claude Code、Cursor、Codexが自らチェックポイントを作成し、復旧できます。

🔍 本物の差分

任意の2時点の間にエージェントが触れたものを正確に確認できます。avc diff -p で行単位まで。

🔒 ローカル&プライベート

すべては .avc/ の中に格納されます。デーモンなし、クラウドなし、テレメトリなし。

なぜgitだけではダメなのか?

git

agentvc

設計対象

人間によるコミット

マシンペースのエージェントのステップ

ステージングの儀式

add / commit が必要

1コマンドですべてを記録

ロールバックの安全性

checkout は未コミットの作業を破壊しうる

復元前に自動セーフティチェックポイント

"別のアプローチを試す"

重量級のブランチ運用で、絡まりやすい

1回のツール呼び出し — エージェント自身が実行

エージェント向けインターフェース

なし

ファーストクラスのMCPサーバー + TypeScript API

ステップごとのメタデータ

手動のメモ

構造化JSON(task、attempt、model、tokens)

agentvcは、コードをリリースするためのgitを置き換えるものではありません。エージェントのループの下層に位置し、git log を汚すことのない、安価で使い捨て可能で巻き戻し可能な履歴を提供します。

要件

Node.js 20以上。その他のランタイム依存関係はありません。

インストール

npm install -g agentvc

または、インストールせずに実行する場合:

npx agentvc init

クイックスタート

mkdir demo && cd demo
avc init                              # initialise .avc/

echo "v1" > app.txt
avc save -m "known good state"        # checkpoint everything

echo "v2" > app.txt                   # ...agent goes wrong...
avc status                            # see what changed
avc diff -p                           # see exactly which lines changed
avc rollback HEAD                     # instant undo — nothing lost

avc branch plan-b && avc switch plan-b   # fork a parallel attempt
avc save -m "trying redis instead"
avc timeline                          # every attempt, side by side

エージェントにタイムマシンを

同梱のMCPサーバーを一度登録するだけで、エージェントが自力でチェックポイントを作成し、復旧できるようになります。

Claude Code

claude mcp add agentvc -- avc mcp

Cursor · Codex · その他のMCPクライアント — .mcp.json に追加します(examples/mcp-config.json も参照してください):

{
  "mcpServers": {
    "agentvc": { "command": "avc", "args": ["mcp"] }
  }
}

サーバーに作業ディレクトリを使わせたくない場合は、AVC_ROOT=/path/to/project を設定してください。

いつチェックポイントを作成するかを教える

これを AGENTS.md / CLAUDE.md に追加してください。便利なツールで終わるか、真のセーフティネットになるかの分かれ目です:

## Session checkpoints (agentvc)

- Before any risky operation (refactors, deletions, dependency upgrades,
  schema changes), call `avc_save` with a short message.
- After reaching a working state, call `avc_save` again.
- If an approach fails twice, call `avc_rollback` to the last good checkpoint
  and try a different plan — optionally on a new branch via `avc_branch`.
- Never leave more than ~15 minutes of work uncheckpointed.

MCPツール

ツール

エージェントが使う場面

avc_save

危険な作業の前や成功後にワークスペースをスナップショットする

avc_status

最後のチェックポイント以降の変更を確認する

avc_log

現在のブランチの最近のチェックポイントを確認する

avc_branch

現在の試行を失わずに並行試行をフォークする

avc_switch

試行間を移動する(未保存の作業を先に自動保存する)

avc_rollback

全ファイルを正常なチェックポイントに復元する

avc_diff

任意の2時点を比較する。オプションで行レベルのパッチも含む(patch: true)

avc_timeline

全ブランチにわたるすべての試行を表示する

CLIリファレンス

コマンド

説明

avc init

現在のディレクトリにリポジトリを初期化する

avc save [-m msg] [--meta json]

ワークスペース全体をチェックポイントする

avc status

最後のチェックポイント以降の未保存の変更を表示する

avc log [-n N]

現在のブランチのチェックポイントを一覧表示する

avc branch [name] [start]

ブランチを作成または一覧表示する

avc switch <branch>

ブランチを切り替えてファイルを復元する

avc rollback [ref]

ファイルをチェックポイントに復元する(デフォルトは HEAD)

avc diff [from] [to]

ref同士、またはrefと作業ツリーを比較する

avc diff -p [-U n] [from] [to]

同様の比較を、n 行のコンテキスト(デフォルト3)付きのunified diffとして出力する

avc timeline

全ブランチにわたるすべてのチェックポイントを表示する

avc mcp

MCP stdioサーバーを起動する

refには、HEAD、ブランチ名、完全なチェックポイントID、または一意のIDプレフィックスのいずれかを指定できます。

avc diff -p は標準のunified diff(--- a/path、+++ b/path、@@ ハンク)を出力するため、出力をそのまま patch -p1 や git apply にパイプできます。バイナリファイルは Binary files … differ として報告されます。2 MB / 50,000行を超えるファイルは内容なしで一覧表示され、正確な行差分には大きすぎる書き換えは、ファイル全体の置き換えとして表示されます。

ライブラリとして使う

import { AgentVCS, formatPatch } from "agentvc";

const avc = new AgentVCS(projectRoot);
await avc.ensureInit();

const cp = await avc.save({
  message: "before db migration",
  meta: { task: "upgrade-postgres", attempt: 2 },
});

const { clean, modified } = await avc.status();
if (!clean) console.log("agent touched:", modified);

await avc.branch("plan-b");
await avc.checkout("plan-b");

await avc.rollback(cp.id);   // instant, lossless

for (const p of await avc.diffPatch(cp.id, "work")) {
  console.log(formatPatch(p));   // unified diff per file, with hunks available on p.hunks
}

完全に型付けされています。AgentVCS、diffTrees、computePatch、formatPatch、およびすべての結果型がエクスポートされています。

仕組み

コンテンツアドレス方式のストレージ — gitの優れたアイデアを、gitの儀式的な手間なしで実現:

.avc/
├── objects/ab/c3ef…      blobs + trees, deduplicated by SHA-256
├── checkpoints/          parents, tree, message, structured meta
├── refs/heads/main       branch tips
└── index.json            id → summary, for fast prefix lookups
  • 同一のファイル内容は、すべてのチェックポイントとブランチにわたって一度だけ保存されます。

  • 復元時、変更されていないファイルが書き直されることはありません。

  • 既存の .gitignore は尊重され、.git/ と node_modules/ はスキップされます。

  • .avc/ を削除しても、ワークスペースには影響ありません。

[!IMPORTANT] 安全性の保証。 すべての rollback および switch は、1つのファイルにも触れる前に、未保存の変更を自動のセーフティチェックポイントとしてスナップショットします。ロールバックは取り消し可能です。agentvcには、あなたの作業を失う可能性のあるコードパスは存在しません。

ロードマップ

  • ターミナルでの行レベル差分(avc diff -p)

  • ブランチのマージ(現状はfast-forward、次は3-way)

  • 自動保存フック:ファイルウォッチャー、またはエージェントの各ターン後

  • マルチエージェント連携 — 2つのエージェント、1つのリポジトリ、別々のブランチ

  • 名前付きマイルストーンとセッションタグ

  • MCPと同等の機能を持つPython SDK

  • チェックポイントストアのオプションの暗号化リモートバックアップ

アイデアやPRは歓迎します — CONTRIBUTING.md をご覧ください。

コントリビューション

git clone https://github.com/nintechio/agentvc.git
cd agentvc && npm install
npm run typecheck && npm test && npm run build

バグ報告、機能リクエスト、プルリクエストはすべて歓迎します。CONTRIBUTING.md と 行動規範 をお読みください。セキュリティの問題は SECURITY.md を参照してください。

ライセンス

MIT © Nintech Ltd

Nintech が開発・保守しています

開発したエンジニアが自ら運用もしています。

応用AI · レジリエントなソフトウェアエンジニアリング · マネージドホスティング — 英国・EU

nintech.io · GitHub · X · YouTube · admin@nintech.io

Related MCP Connectors

Related MCP Servers