> ## 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.

# Local, Project, and Global Settings

> Configure shared repository behavior, personal overrides, and the files Entire writes under .entire.

Entire uses a layered configuration system that allows project-wide settings to be shared via Git while supporting personal overrides.

Use this page when you are deciding whether a setting should apply to everyone on the project, only to your machine, or to all repositories you work in.

<Tabs>
  <Tab title="Local settings">
    Local settings have the highest priority and are used for personal preferences, private rules, machine-specific paths, and temporary debugging.

    ## Local settings file

    Local settings are stored in `.entire/settings.local.json` and are automatically ignored by Git.

    Local settings are merged with project settings. You only need to specify the settings you want to override:

    ```json .entire/settings.local.json theme={null}
    {
      "log_level": "debug",
      "telemetry": false
    }
    ```

    ## Local settings reference

    Use these settings locally when the behavior should not affect teammates.

    | Setting path                         | Type         | Use for                                                                    | Learn more                                                                                       |
    | ------------------------------------ | ------------ | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
    | `commit_linking`                     | string       | Personal commit-linking behavior during `git commit`                       | [Capture Checkpoints](/guides/checkpoints/capture-checkpoints#link-future-commits-automatically) |
    | `strategy_options.push_sessions`     | boolean      | Checkpoint push behavior only on your machine                              | [Checkpoint Storage](/guides/configuration/checkpoint-storage#keep-checkpoints-local)            |
    | `strategy_options.checkpoint_remote` | object       | Personal checkpoint remote while testing storage behavior                  | [Checkpoint Storage](/guides/configuration/checkpoint-storage#checkpoint-remote)                 |
    | `redaction.pii.enabled`              | boolean      | Optional PII redaction for your own captured sessions                      | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#pii-redaction)               |
    | `redaction.custom_redactions`        | object       | Private regex redaction rules that should not be committed                 | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#user-defined-redaction)      |
    | `telemetry`                          | boolean/null | Personal analytics preference in this repository                           | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#telemetry)                   |
    | `sign_checkpoint_commits`            | boolean      | Personal checkpoint commit signing preference                              | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#checkpoint-commit-signing)   |
    | `log_level`                          | string       | Temporary debug logging without changing team settings                     | [Logging and Diagnostics](/guides/configuration/logging-and-diagnostics#log-level)               |
    | `external_agents`                    | boolean      | External agent plugin discovery only on your machine                       | [Agent Hooks](/guides/configuration/agent-hooks#external-agent-plugins)                          |
    | `absolute_git_hook_path`             | boolean      | Full `entire` binary path in Git hooks for GUI Git clients on your machine | [Git Hooks](/guides/configuration/git-hooks#gui-git-clients)                                     |

    ## Modify local settings

    <Tabs>
      <Tab title="Use the CLI">
        Add `--local` when the command should write to `.entire/settings.local.json`.

        ```bash theme={null}
        entire configure --local --telemetry=false
        entire configure --local --skip-push-sessions
        entire configure --local --absolute-git-hook-path
        ```

        If a setting does not have a CLI flag, edit `.entire/settings.local.json` directly.
      </Tab>

      <Tab title="Edit JSON">
        Edit `.entire/settings.local.json` directly:

        ```bash theme={null}
        vim .entire/settings.local.json
        ```

        Top-level settings are written directly:

        ```json .entire/settings.local.json theme={null}
        {
          "log_level": "debug"
        }
        ```

        Dotted setting paths are written as nested objects:

        ```json .entire/settings.local.json theme={null}
        {
          "redaction": {
            "custom_redactions": {
              "private_codename": "PROJECT_[A-Z]{4}"
            }
          }
        }
        ```
      </Tab>
    </Tabs>

    ## Verify local settings

    After editing local settings, run:

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

    Use this to confirm Entire is still reading the repository configuration. If the behavior does not match `.entire/settings.local.json`, check the setting name and JSON nesting. Local settings override project and global settings for the same setting path.
  </Tab>

  <Tab title="Project settings">
    Project settings apply to the current repository and are used for shared behavior such as checkpoint storage, team redaction rules, and default repository behavior.

    ## Project settings file

    Project settings are stored in `.entire/settings.json`.

    When Entire creates project settings, the file starts with:

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

    Most projects can start here. Add settings only when the repository should share that behavior.

    ## Project settings reference

    Use these settings in `.entire/settings.json` when the behavior should apply to the whole project.

    | Setting path                         | Type         | Default    | Description                                                                                 | Learn more                                                                                         |
    | ------------------------------------ | ------------ | ---------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
    | `enabled`                            | boolean      | `true`     | Whether Entire is active in this repository                                                 | [Local, Project, and Global Settings](/guides/configuration/settings-layers#project-settings-file) |
    | `commit_linking`                     | string       | `"prompt"` | Controls whether Entire prompts before linking a Git commit to recent agent session context | [Capture Checkpoints](/guides/checkpoints/capture-checkpoints#link-future-commits-automatically)   |
    | `strategy_options.push_sessions`     | boolean      | `true`     | Automatically push checkpoint data when someone runs `git push`                             | [Checkpoint Storage](/guides/configuration/checkpoint-storage#store-checkpoints-with-your-code)    |
    | `strategy_options.checkpoint_remote` | object       | `null`     | Push checkpoint data to a separate repository                                               | [Checkpoint Storage](/guides/configuration/checkpoint-storage#checkpoint-remote)                   |
    | `strategy_options.summarize.enabled` | boolean      | `false`    | Auto-generate checkpoint summaries at commit time                                           | [Checkpoint Storage](/guides/configuration/checkpoint-storage#auto-generate-checkpoint-summaries)  |
    | `redaction.pii.enabled`              | boolean      | `false`    | Enable optional PII redaction on top of always-on secret redaction                          | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#pii-redaction)                 |
    | `redaction.custom_redactions`        | object       | `{}`       | Add shared regex rules that replace matches with `REDACTED`                                 | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#user-defined-redaction)        |
    | `telemetry`                          | boolean/null | `null`     | Send anonymous usage analytics for this repository                                          | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#telemetry)                     |
    | `sign_checkpoint_commits`            | boolean      | `true`     | Sign checkpoint commits using your existing Git signing key                                 | [Privacy and Redaction](/guides/configuration/privacy-and-redaction#checkpoint-commit-signing)     |
    | `log_level`                          | string       | `"info"`   | Log verbosity: `debug`, `info`, `warn`, `error`                                             | [Logging and Diagnostics](/guides/configuration/logging-and-diagnostics#log-level)                 |
    | `external_agents`                    | boolean      | `false`    | Enable discovery of external agent plugins from `$PATH`                                     | [Agent Hooks](/guides/configuration/agent-hooks#external-agent-plugins)                            |
    | `absolute_git_hook_path`             | boolean      | `false`    | Embed the full `entire` binary path in Git hooks for GUI Git clients                        | [Git Hooks](/guides/configuration/git-hooks#gui-git-clients)                                       |

    ## Modify project settings

    <Tabs>
      <Tab title="Use the CLI">
        Add `--project` when the command should write to `.entire/settings.json`.

        ```bash theme={null}
        entire configure --project --checkpoint-remote github:owner/repo
        entire configure --project --skip-push-sessions
        entire configure --project --telemetry=false
        ```

        If a setting does not have a CLI flag, edit `.entire/settings.json` directly.
      </Tab>

      <Tab title="Edit JSON">
        Edit `.entire/settings.json` directly:

        ```bash theme={null}
        vim .entire/settings.json
        ```

        Top-level settings are written directly:

        ```json .entire/settings.json theme={null}
        {
          "telemetry": false
        }
        ```

        Dotted setting paths are written as nested objects:

        ```json .entire/settings.json theme={null}
        {
          "strategy_options": {
            "push_sessions": false
          }
        }
        ```
      </Tab>
    </Tabs>

    ## Verify project settings

    After editing project settings, run:

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

    Use this to confirm Entire is still reading the repository configuration. If the behavior does not match `.entire/settings.json`, check for an override in `.entire/settings.local.json`. Local settings have higher priority than project settings.
  </Tab>

  <Tab title="Global settings">
    Global settings apply to all repositories and are used for personal defaults that should apply across projects.

    ## Global settings file

    Global settings are stored in `~/.config/entire/settings.json`.

    Use global settings for personal defaults that should apply across repositories.

    Example:

    ```json ~/.config/entire/settings.json theme={null}
    {
      "telemetry": false
    }
    ```

    ## Global settings reference

    Use global settings for personal defaults that should apply unless a project or local setting overrides them.

    | Setting path | Type    | Default | Description                                    |
    | ------------ | ------- | ------- | ---------------------------------------------- |
    | `telemetry`  | boolean | `false` | Default telemetry setting for new repositories |

    ## Modify global settings

    <Tabs>
      <Tab title="Use the CLI">
        `entire configure` updates repository settings. There is no global flag for `entire configure`, so edit `~/.config/entire/settings.json` directly.
      </Tab>

      <Tab title="Edit JSON">
        Create the config directory if it does not exist, then edit the file:

        ```bash theme={null}
        mkdir -p ~/.config/entire
        vim ~/.config/entire/settings.json
        ```

        Example:

        ```json ~/.config/entire/settings.json theme={null}
        {
          "telemetry": false
        }
        ```
      </Tab>
    </Tabs>

    ## Verify global settings

    After editing global settings, run this from an Entire-enabled repository:

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

    Use this to confirm Entire is still reading configuration. Global settings apply only when the same setting is not set in `.entire/settings.json` or `.entire/settings.local.json`.
  </Tab>
</Tabs>
