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
- 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
| Setting | Type | Default | Description |
|---|
enabled | boolean | true | Whether Entire is active in this repository |
external_agents | boolean | false | Enable discovery of external agent plugins from $PATH |
log_level | string | "info" | Log verbosity: debug, info, warn, error. Can be overridden by ENTIRE_LOG_LEVEL env var. Set to debug to enable performance traces. |
telemetry | boolean | null | Send anonymous usage analytics. null = not asked yet (will prompt), true = opted in, false = opted out |
strategy_options | object | {} | Additional configuration options (see Strategy Options below) |
Strategy Options
The strategy_options object contains settings that control how Entire captures and stores session data.
| Setting | Type | Default | Description |
|---|
push_sessions | boolean | true | Automatically push entire/checkpoints/v1 branch on git push |
checkpoint_remote | object | null | Push checkpoint branches to a separate repository (see Checkpoint Remote below) |
summarize.enabled | boolean | false | Auto-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.
Global Settings Reference
| Setting | Type | Default | Description |
|---|
telemetry | boolean | false | Default telemetry setting for new repositories |
Environment Variables
Certain settings can be overridden via environment variables:
| Variable | Description |
|---|
ENTIRE_ENABLED | Set to false to disable Entire globally |
ENTIRE_LOG_LEVEL | Set log verbosity |
ENTIRE_TELEMETRY | Enable/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:
| Agent | Hook Location | Format |
|---|
| Claude Code | .claude/settings.json | JSON hooks config |
| Gemini CLI | .gemini/settings.json | JSON hooks config |
| OpenCode | .opencode/plugins/entire.ts | TypeScript plugin |
| Factory Droid | .factory/settings.json | JSON 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):
Project (.entire/settings.json):
Local (.entire/settings.local.json):
The effective configuration would be:
{
"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.