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. Global settings: ~/.config/entire/settings.json
  4. 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,
  "strategy": "manual-commit",
  "log_level": "info",
  "telemetry": true,
  "strategy_options": {}
}

Settings Reference

SettingTypeDefaultDescription
enabledbooleantrueWhether Entire is active in this repository
strategystring"manual-commit"Capture strategy: manual-commit or auto-commit
log_levelstring"info"Log verbosity: debug, info, warn, error. Can be overridden by ENTIRE_LOG_LEVEL env var.
telemetrybooleannullSend anonymous usage analytics. null = not asked yet (will prompt), true = opted in, false = opted out
strategy_optionsobject{}Strategy-specific configuration options (see Strategies)

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,
  "defaultStrategy": "manual-commit"
}

Global Settings Reference

SettingTypeDefaultDescription
telemetrybooleanfalseDefault telemetry setting for new repositories
defaultStrategystring"manual-commit"Default strategy when enabling Entire

Environment Variables

Certain settings can be overridden via environment variables:
VariableDescription
ENTIRE_ENABLEDSet to false to disable Entire globally
ENTIRE_STRATEGYOverride the capture strategy
ENTIRE_LOG_LEVELSet log verbosity
ENTIRE_TELEMETRYEnable/disable telemetry
# Temporarily disable Entire
ENTIRE_ENABLED=false git commit -m "Quick fix"

# Enable debug logging for a session
ENTIRE_LOG_LEVEL=debug claude

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

# Change strategy
entire enable --strategy auto-commit

# 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,
  "defaultStrategy": "auto-commit"
}
Project (.entire/settings.json):
{
  "strategy": "manual-commit",
  "log_level": "info"
}
Local (.entire/settings.local.json):
{
  "log_level": "debug"
}
The effective configuration would be:
{
  "strategy": "manual-commit",  // from project
  "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.