Skip to main content
Entire uses a layered configuration system that allows project-wide settings to be shared via Git while supporting personal overrides. Entire looks for configuration in the following locations (in order of precedence):
  1. Local settings (highest priority): .entire/settings.local.json
  2. Project settings: .entire/settings.json
  3. Defaults (lowest priority)

Project Settings

Project settings are stored in .entire/settings.json and should be committed to your repository. These settings apply to everyone working on the project.
{
  "enabled": true,
  "log_level": "info",
  "telemetry": true,
  "strategy_options": {}
}

Settings Reference

SettingTypeDefaultDescription
enabledbooleantrueWhether Entire is active in this repository
external_agentsbooleanfalseEnable discovery of external agent plugins from $PATH
log_levelstring"info"Log verbosity: debug, info, warn, error. Can be overridden by ENTIRE_LOG_LEVEL env var. Set to debug to enable performance traces.
telemetrybooleannullSend anonymous usage analytics. null = not asked yet (will prompt), true = opted in, false = opted out
strategy_optionsobject{}Additional configuration options (see Strategy Options below)

Strategy Options

The strategy_options object contains settings that control how Entire captures and stores session data.
SettingTypeDefaultDescription
push_sessionsbooleantrueAutomatically push entire/checkpoints/v1 branch on git push
checkpoint_remoteobjectnullPush checkpoint branches to a separate repository (see Checkpoint Remote below)
summarize.enabledbooleanfalseAuto-generate AI summaries at commit time
Example:
{
  "strategy_options": {
    "push_sessions": true,
    "checkpoint_remote": {
      "provider": "github",
      "repo": "myorg/checkpoints-private"
    }
  }
}

Checkpoint Remote

Push checkpoint data to a separate repository instead of your main code repository. See Checkpoint Remote for setup and details.

Local Settings

Local settings are stored in .entire/settings.local.json and are automatically added to .gitignore. Use these for personal preferences that shouldn’t be shared.
{
  "log_level": "debug",
  "telemetry": false
}
Local settings are merged with project settings. You only need to specify the settings you want to override.

Global Settings

Global settings apply to all repositories and are stored in ~/.config/entire/settings.json.
{
  "telemetry": true
}

Global Settings Reference

SettingTypeDefaultDescription
telemetrybooleanfalseDefault telemetry setting for new repositories

Environment Variables

Certain settings can be overridden via environment variables:
VariableDescription
ENTIRE_ENABLEDSet to false to disable Entire globally
ENTIRE_LOG_LEVELSet log verbosity
ENTIRE_TELEMETRYEnable/disable telemetry
# Enable debug logging for a session
ENTIRE_LOG_LEVEL=debug claude

GUI Git Clients

By default, Entire’s Git hooks use the entire command without a full path, relying on your shell’s PATH to find the binary. This works well for terminal commits, but GUI Git clients (Xcode, Tower, GitKraken, Sourcetree, etc.) often don’t source your shell profile, so they can’t find entire. To fix this, use the --absolute-git-hook-path flag:
# During initial setup
entire enable --absolute-git-hook-path

# Or if Entire is already configured
entire configure --absolute-git-hook-path
This embeds the full path to the entire binary directly in the Git hooks:
# Without --absolute-git-hook-path (default)
entire hooks git post-commit

# With --absolute-git-hook-path
'/Users/you/go/bin/entire' hooks git post-commit

Limitations

  • Not portable - If you move the entire binary, you’ll need to re-run entire enable --absolute-git-hook-path or entire configure --absolute-git-hook-path

Settings Reference

The setting is stored in your settings file:
{
  "absolute_git_hook_path": true
}

Agent Hook Configuration

Each agent stores its hook configuration in its own directory. When you run entire enable, hooks are installed in the appropriate location for each selected agent:
AgentHook LocationFormat
Claude Code.claude/settings.jsonJSON hooks config
Gemini CLI.gemini/settings.jsonJSON hooks config
OpenCode.opencode/plugins/entire.tsTypeScript plugin
Factory Droid.factory/settings.jsonJSON hooks config
You can enable multiple agents at the same time — each agent’s hooks are independent.

Initializing Configuration

When you run entire enable, a .entire directory is created with default settings:
.entire/
├── settings.json        # Project settings (committed)
├── settings.local.json  # Local overrides (gitignored)
└── .gitignore          # Ensures local settings aren't committed

Modifying Settings

Via CLI

# Enable telemetry
entire enable --telemetry

Manually

Edit the JSON files directly:
# Edit project settings
vim .entire/settings.json

# Edit local settings
vim .entire/settings.local.json

Configuration Precedence Example

Given these configuration files: Global (~/.config/entire/settings.json):
{
  "telemetry": true
}
Project (.entire/settings.json):
{
  "log_level": "info"
}
Local (.entire/settings.local.json):
{
  "log_level": "debug"
}
The effective configuration would be:
{
  "log_level": "debug",         // from local (overrides project)
  "telemetry": true             // from global
}

Viewing Current Configuration

To see the effective configuration:
entire status --detailed
This shows all settings and their sources.