# Entire を触ってみたメモ

## この記事のポイント

- Entire は AI エージェントのセッション（プロンプト・応答）を Git のチェックポイントブランチに記録するツール
- 有効化・無効化は `entire enable` / `entire disable` だけで完結する
- ウェブサービス側では機密情報の匿名化・暗号化が行われるが、Git ブランチ上のデータについては該当する記述を見つけられなかった
- チェックポイントブランチはデフォルトで `git push` 時にリモートへ自動送信されるので、設定を把握しておくとよい

## Entire とは何か

Entire は、Claude Code や Gemini CLI などの AI エージェントとのセッションを Git ワークフローに統合するツールです。コードを書いた「過程」、つまり AI への指示とその応答を記録し、コミットと紐づけて保存します。コードだけでなく、なぜそのコードが生まれたのかという文脈も残そうという発想です。

## インストールと有効化

Homebrew か curl でインストールできます。

```bash
# Homebrew
brew tap entireio/tap && brew install entireio/tap/entire

# curl（SHA256 チェックサム検証あり、$HOME/.local/bin に配置）
curl -fsSL https://entire.io/install.sh | bash
```

`entire enable` で Git hooks がインストールされ、記録が始まります。やめたくなったら `entire disable` で hooks が削除されるだけで、コードやコミット履歴には影響しません。試しに入れてみて、合わなければすぐ外せるという気軽さがあります。

設定ファイルは `.entire/` に置かれます。`settings.json`（チーム共有）は Git にコミットして問題なく、`settings.local.json`（個人用）はデフォルトで `.gitignore` に追加されます。

## チェックポイントブランチの仕組み

Entire はセッションのメタデータを `entire/checkpoints/v1` という専用ブランチに JSON ファイルとして保存します。メインブランチのコミット履歴には影響しません。記録されるのは、AI とのプロンプト・応答、変更されたファイルの情報、タイムスタンプです。

試行錯誤の過程がまるごと残るので、雑に書いたプロンプトが後から読まれるとちょっと恥ずかしいかもしれません。

### 機密情報の扱い

[公式ドキュメント](https://docs.entire.io/web/overview)によると、Entire.io のウェブサービス側では API トークンなどの機密情報の匿名化が試みられ（"attempts to anonymize sensitive data such as API tokens in the session transcript"）、セッションデータは暗号化して保存されます。

ただし、これはウェブサービス側の話です。Git ブランチ上のチェックポイントデータに同じ処理が適用されるかについては、現時点では該当する記述を見つけられませんでした。また、メタデータにはローカルのファイルパス（`/Users/username/projects/...` のような形式）がそのまま含まれることもあります。

### 自動 push の設定

チェックポイントブランチはデフォルトで `git push` 時にリモートへ自動送信されます。チームでセッションの文脈を共有するには便利ですが、パブリックリポジトリではセッション内容やディレクトリ構成が見える状態になるので、気になる場合は自動 push を切っておくのが無難です。

```bash
# セットアップ時に無効化
entire enable --skip-push-sessions
```

`settings.json` の `strategy_options.push_sessions` を `false` にしても同じです。

## まとめ

Entire は「コードの背景にある文脈を残す」という面白いコンセプトのツールです。導入・撤去が簡単で、ウェブサービス側では機密情報の匿名化や暗号化にも対応しています。

使い始めるときは、チェックポイントブランチの中身を `git log entire/checkpoints/v1` で一度確認しておくと安心です。自動 push の設定もプロジェクトの公開範囲に合わせて調整しておくとよいでしょう。

## 参考

- [entireio/cli - GitHub](https://github.com/entireio/cli)
- [Entire.io ドキュメント](https://docs.entire.io)
