> ## Documentation Index
> Fetch the complete documentation index at: https://docs.entire.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Checkpoint Storage

> Configure where Entire stores and pushes checkpoint data.

Use this page when you are changing checkpoint push behavior, where checkpoint data is pushed, or which checkpoint metadata Entire writes.

For help choosing where checkpoint history should live, see [Store Checkpoint Data](/guides/checkpoints/store-checkpoint-data). This page focuses on the settings and commands that apply that choice.

## What this config affects

Checkpoint storage configuration controls:

* whether Entire pushes checkpoint data when you run `git push`
* whether checkpoint data goes to the code repository or a separate repository
* whether checkpoint history stays local to your machine
* whether generated summaries are stored with checkpoint metadata

## Configure checkpoint storage

<Tabs>
  <Tab title="Source code repository (default)">
    ## Store checkpoints with your code

    By default, Entire stores checkpoint data in the same Git repository as your code on the `entire/checkpoints/v1` branch.

    No configuration is required for the default setup.

    The effective default is:

    ```json Effective default theme={null}
    {
      "strategy_options": {
        "push_sessions": true
      }
    }
    ```

    Use this when checkpoint history should stay with the repository it describes.
  </Tab>

  <Tab title="Separate checkpoint repo">
    ## Checkpoint remote

    Use a checkpoint remote when checkpoint data should live in a separate repository from the code.

    ```bash theme={null}
    entire configure --checkpoint-remote github:owner/repo
    ```

    This writes the checkpoint remote to `.entire/settings.json`:

    ```json .entire/settings.json theme={null}
    {
      "strategy_options": {
        "checkpoint_remote": {
          "provider": "github",
          "repo": "owner/repo"
        }
      }
    }
    ```

    Commit and push `.entire/settings.json` when the checkpoint remote should apply to the whole project. Entire.io uses that setting to locate checkpoint data.

    <Note>
      Currently, `github` is the supported checkpoint remote provider.
    </Note>

    ### Keep checkpoint remotes under the same owner

    Use a checkpoint repository with the same owner or organization as your code repository.

    * **Same owner**: checkpoints push normally. If your code is at `github.com/acme/app`, a checkpoint repo like `github:acme/app-checkpoints` works because both are owned by `acme`.
    * **Different owner**: Entire won't push checkpoint data to that repository.

    The different-owner case protects fork workflows, so contributors do not need write access to the upstream project's checkpoint repository.
  </Tab>

  <Tab title="Local-only checkpoints">
    ## Keep checkpoints local

    When checkpoint history should stay on your current machine, disable automatic checkpoint pushes in local settings:

    ```bash theme={null}
    entire configure --local --skip-push-sessions
    ```

    This writes:

    ```json .entire/settings.local.json theme={null}
    {
      "strategy_options": {
        "push_sessions": false
      }
    }
    ```

    Use project settings instead when the whole repository should avoid pushing checkpoint data:

    ```bash theme={null}
    entire configure --project --skip-push-sessions
    ```

    Project settings are written to `.entire/settings.json` and should be committed only when the behavior should apply to everyone.
  </Tab>
</Tabs>

## Auto-generate checkpoint summaries

In addition to choosing where checkpoint data is pushed, you can configure Entire to add generated summaries to checkpoint metadata.

Enable generated summaries at commit time with `strategy_options.summarize.enabled`:

```json .entire/settings.json theme={null}
{
  "strategy_options": {
    "summarize": {
      "enabled": true
    }
  }
}
```

To choose the AI provider or model used for summaries, configure those values separately:

```bash theme={null}
entire configure --summarize-provider PROVIDER
entire configure --summarize-model MODEL
```

## Verify checkpoint storage

After changing checkpoint storage settings, run:

```bash theme={null}
entire status --detailed
```

Check the effective settings for the values you changed:

* `strategy_options.push_sessions`
* `strategy_options.checkpoint_remote`
* `strategy_options.summarize.enabled`

Then run a normal push:

```bash theme={null}
git push
```

What happens next depends on the storage option:

* **Source code repository**: Entire pushes checkpoint data to the same remote as your source code.
* **Separate checkpoint repo**: Entire pushes checkpoint data to the configured `checkpoint_remote`.
* **Local-only checkpoints**: Entire does not push checkpoint data because `push_sessions` is `false`.

If checkpoint data is not appearing where expected, see [checkpoint troubleshooting](/guides/checkpoints/troubleshooting#checkpoint-data-is-going-to-the-wrong-place).
