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):
- Local settings (highest priority):
.entire/settings.local.json
- Project settings:
.entire/settings.json
- Global settings:
~/.config/entire/settings.json
- 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
| Setting | Type | Default | Description |
|---|
enabled | boolean | true | Whether Entire is active in this repository |
strategy | string | "manual-commit" | Capture strategy: manual-commit or auto-commit |
log_level | string | "info" | Log verbosity: debug, info, warn, error. Can be overridden by ENTIRE_LOG_LEVEL env var. |
telemetry | boolean | null | Send anonymous usage analytics. null = not asked yet (will prompt), true = opted in, false = opted out |
strategy_options | object | {} | 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
| Setting | Type | Default | Description |
|---|
telemetry | boolean | false | Default telemetry setting for new repositories |
defaultStrategy | string | "manual-commit" | Default strategy when enabling Entire |
Environment Variables
Certain settings can be overridden via environment variables:
| Variable | Description |
|---|
ENTIRE_ENABLED | Set to false to disable Entire globally |
ENTIRE_STRATEGY | Override the capture strategy |
ENTIRE_LOG_LEVEL | Set log verbosity |
ENTIRE_TELEMETRY | Enable/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):
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:
This shows all settings and their sources.