ターミナルの Claude Code(CLI)がファイルを読み書きする直前に、VS Code で編集中の未保存ファイルを自動保存する拡張機能です。CLI 利用時に、人間の未保存編集と Claude のディスク編集が衝突したり、古い内容が読まれたりするのを防ぎます。VS Code パネルの autosave("Auto-save files before Claude reads or writes them")と同じ保護を、ターミナルの CLI 利用者に提供します。
必要なもの
- VS Code 1.85 以上
- Claude Code(
claudeコマンド) - macOS または Linux(フックが
curlを使用します。Windows は非対応)
インストール
常用する場合(拡張をパッケージ化してインストール)
npm install
npm run compile
npx @vscode/vsce package # autosave-before-ai-edits-0.1.0.vsix が生成される
code --install-extension autosave-before-ai-edits-0.1.0.vsix
試すだけの場合(デバッグ実行)
VS Code でこのフォルダを開き、メニュー 実行 → デバッグの開始 を選びます。新しいウィンドウ(拡張開発ホスト)で拡張が動作します。
使い方
- 拡張を入れると、VS Code 起動時に自動で有効になり、Claude の設定ファイル
~/.claude/settings.jsonにフックを登録します。 - フックを反映させるため、登録後に新しい
claudeセッションを開始してください(起動中のセッションには反映されません)。 - あとは普段どおり作業するだけです。VS Code で編集中(未保存)のファイルを Claude が読み書きする直前に、そのファイルが自動保存されます。
右下のステータスバーに ✓ AI Autosave と表示されていれば稼働中です。
コマンド
コマンドパレット(Cmd+Shift+P)から実行できます。
| コマンド | 内容 |
|---|---|
| Enable Integration | 有効化(フック登録・保存サーバ起動) |
| Disable Integration | 無効化(フック削除)。全 VS Code ウィンドウに影響します |
| Show Status | 現在の状態を表示 |
| Open Logs | ログを開く |
設定
| 設定キー | 既定値 | 内容 |
|---|---|---|
autosaveBeforeAiEdits.enabled |
true |
有効/一時停止 |
autosaveBeforeAiEdits.saveTools |
["Read","Edit","MultiEdit","Write"] |
保存の引き金とするツール。Read を外すと読み取り時は保存しません |
autosaveBeforeAiEdits.excludeGlobs |
[] |
保存しないパス(ワークスペースルートからの相対) |
autosaveBeforeAiEdits.hookTimeoutMs |
800 |
応答待ちの上限(ミリ秒)。超えたら保存を待たずに進みます |
設定は変更すると自動で反映されます。
仕組みと制限
- Claude のフックが対象ファイルのパスを拡張に通知し、拡張がそのファイルを保存します。ファイルの内容を外部に送信することはありません。
Bashツール経由の書き込み(sed -i、リダイレクトなど)は対象パスを取得できないため保護されません。保護対象はRead/Edit/MultiEdit/Writeです。- 保存に
hookTimeoutMs(既定 800ms)以上かかると、フックは保存を待たずに進みます。このとき Claude が古い内容を読む可能性があります(大きいファイルや遅いディスク、重い format-on-save で起きやすい)。該当時はログに警告を記録します。大きいファイルを扱う場合はhookTimeoutMsを増やしてください。 - 複数のウィンドウで同じファイルを別々に未保存編集している場合、保存により一方の変更が失われることがあります。この検出(警告)は未実装です(既知の未対応)。
アンインストール
拡張を削除する前に、コマンド Disable Integration を実行してください。これで ~/.claude/settings.json のフックが削除されます。先に拡張だけを削除するとフック登録が残るため、その場合は以下を手動で削除します。
~/.claude/settings.json内の、~/.autosave-before-ai-edits/hook.shを指すPreToolUseエントリ- ディレクトリ
~/.autosave-before-ai-edits/
開発
npm install
npm run compile
npm test