Configuration & Settings

Every key below is declared in settings-keys.json at the repository root, which is the source of truth for types, defaults, ranges, and env var names. This page covers the common ones; settings-keys.json lists the rest.

Settings Files

Both settings files accept .jsonc (JSON with comments) or plain .json. If a directory contains both names, the .jsonc file is used and the .json file is ignored.

Project settings file

Parameter Type Default Description Effect
Path string none .pi/pi-config-settings.jsonc (or .pi/pi-config-settings.json) in the repository root. Highest-precedence settings source for the current project.
{
  "pidash_enable": true,
  "pidash_port": 19190,
  "cli_agents": ["claude", "cursor"]
}

Global settings file

Parameter Type Default Description Effect
Path string none ~/.pi/pi-config-settings.jsonc (or ~/.pi/pi-config-settings.json) in the current user's home directory. Fallback settings source for all projects when a key is not set in the project file.
{
  "dream_interval_hours": 6,
  "review_loop_enforcement": true
}

Resolution order

Parameter Type Default Description Effect
Resolution order ordered list built-in default last Settings resolve in this order: project file → global file → environment variable → default. Determines which value is used when the same key appears in multiple places.
project file -> global file -> environment variable -> default

Editing settings without a text editor

Parameter Type Default Description Effect
/pi-config-settings slash command none Opens an interactive settings TUI over the same keys. Saves to the file for the scope you are editing (project or global), and shows the valid values and env var for every key.
/pi-config-settings

Use it when you would rather not guess an env var name or a numeric range — the TUI shows the valid values for every key. For the internals — source indicators, smart pickers, and how writes are performed — see Project Settings Internals.

Git & Workflow Keys

commit_trailer

Parameter Type Default Environment variable Description Effect
commit_trailer string or false false PI_COMMIT_TRAILER Commit trailer name, or a comma-separated list of trailer names. Injects a trailer into git commit commands when a string value is set.

Note: A comma-separated string such as "Assisted-by,Co-authored-by" is treated as a list of trailer names; the user picks one per session and the choice is reused. The injected value is <Trailer>: PI (<model-id>) <noreply@pi.dev>.

{
  "commit_trailer": "Assisted-by"
}
export PI_COMMIT_TRAILER="Assisted-by"

allow_push_to_protected_branches

Parameter Type Default Environment variable Description Effect
allow_push_to_protected_branches boolean false PI_ALLOW_PUSH_TO_PROTECTED_BRANCHES Allows commits and pushes to protected branches. Disables the protected-branch block in git enforcement.
{
  "allow_push_to_protected_branches": true
}
export PI_ALLOW_PUSH_TO_PROTECTED_BRANCHES=true

use_worktrees

Parameter Type Default Environment variable Description Effect
use_worktrees boolean false PI_USE_WORKTREES Forces worktree-only branch workflows. Blocks git switch and branch-changing git checkout; file restores such as git checkout -- <path> still pass. Suggests git worktree add .worktrees/<name> -b <branch> <main>.
{
  "use_worktrees": true
}
export PI_USE_WORKTREES=true

dco

Parameter Type Default Environment variable Description Effect
dco boolean false PI_DCO Enables Developer Certificate of Origin signing. Adds --signoff to git commit when the flag is not already present.
{
  "dco": true
}
export PI_DCO=true

orchestrator_edit_write_block

Parameter Type Default Environment variable Description Effect
orchestrator_edit_write_block boolean false none Blocks the top-level orchestrator from calling edit and write directly. File changes must be delegated through the subagent tool. Subagent child processes are not blocked by this key.
{
  "orchestrator_edit_write_block": true
}

See Managing Custom Agents for details.

Review & PR Keys

comment_signature

Parameter Type Default Environment variable Description Effect
comment_signature boolean false none Enables an AI signature on PR comments posted through the review CLI helpers. Sets the PI_COMMENT_SIGNATURE process variable on session start for review tooling to read.
{
  "comment_signature": true
}

See Automating Code Reviews for details.

review_loop_enforcement

Parameter Type Default Environment variable Description Effect
review_loop_enforcement boolean false PI_REVIEW_LOOP_ENFORCEMENT Enables review-loop enforcement. Blocks git commit until the review state is clean and tests have passed. Also enables the review status UI slot.
{
  "review_loop_enforcement": true
}
export PI_REVIEW_LOOP_ENFORCEMENT=true

See Automating Code Reviews for details.

review_loop_max_cycles

Parameter Type Default Environment variable Description Effect
review_loop_max_cycles integer 1-10 3 PI_REVIEW_LOOP_MAX_CYCLES Maximum number of review-loop cycles when review-loop enforcement is enabled. Caps reviewer re-dispatch count. Invalid values fall through to the next resolution layer or the default.

Warning: Accepted values are integers 1 through 10, or digit strings "1" through "10". Values such as 0, 11, "01", "10.0", "1e1", and "inf" are ignored.

{
  "review_loop_max_cycles": 5
}
export PI_REVIEW_LOOP_MAX_CYCLES=7

See Automating Code Reviews for details.

Provider Registration & Model Routing

cli_agents

Parameter Type Default Environment variable Description Effect
cli_agents string or string[] [] CLI_AGENTS List of CLI-backed agent names. Registers cli-<agent> providers in the unified provider extension.
Supported built-in value Registered provider ID
claude cli-claude
gemini cli-gemini
cursor cli-cursor

Note: Values are lowercased, deduplicated, and invalid names are filtered out.

Tip: Set an explicit empty array ([]) in the project file to override inherited global or environment values.

{
  "cli_agents": ["claude", "cursor"]
}
export CLI_AGENTS="Cursor,Gemini"

See External AI Agents & CLI for details.

acpx_agents

Parameter Type Default Environment variable Description Effect
acpx_agents string or string[] [] ACPX_AGENTS List of ACPX agent names to register. Registers acpx-<agent> providers in the unified provider extension.

Note: Values are lowercased, deduplicated, and any name that is not [a-z0-9_-]+ is dropped. Unlike cli_agents, the name is not checked against a built-in list — it must match an agent the acpx binary can launch.

{
  "acpx_agents": ["cursor"]
}
export ACPX_AGENTS="cursor,claude"

See ACPX Provider Integration for details.

agent_provider

Parameter Type Default Environment variable Description Effect
agent_provider string "" none Default provider for subagents. Used when a per-agent override and agent frontmatter do not provide a provider.
{
  "agent_provider": "cli-cursor"
}

agent_model

Parameter Type Default Environment variable Description Effect
agent_model string "" none Default model ID for subagents. Used when a per-agent override and agent frontmatter do not provide a model.
{
  "agent_model": "cursor:cursor-grok-4.5-high-fast"
}

agent_overrides

Parameter Type Default Environment variable Description Effect
agent_overrides object {} none Per-agent provider/model overrides. Highest-precedence settings layer for subagent model routing.
provider string or null inherited none Provider override for a named agent. null means inherit the parent provider directly.
model string or null inherited none Model override for a named agent. null means inherit the parent model directly.
Resolution priority Source
1 agent_overrides[name]
2 Agent frontmatter (provider, model)
3 agent_provider / agent_model
4 Parent session provider/model
{
  "agent_provider": "cli-cursor",
  "agent_model": "cursor:cursor-grok-4.5-high-fast",
  "agent_overrides": {
    "debugger": {
      "provider": null,
      "model": null
    },
    "reviewer": {
      "provider": "cli-claude",
      "model": "claude-sonnet"
    }
  }
}

See Managing Custom Agents for details.

vertex_claude_1m

Parameter Type Default Environment variable Description Effect
vertex_claude_1m boolean false VERTEX_CLAUDE_1M Registers the Vertex AI Claude models with their 1M-token context window. Sets VERTEX_CLAUDE_1M=true in the process environment on session start, so the Vertex Claude provider advertises the extended context instead of the standard one.
{
  "vertex_claude_1m": true
}
export VERTEX_CLAUDE_1M=true

See Vertex Claude Provider for details.

Dashboard & UI Keys

pidash_enable

Parameter Type Default Environment variable Description Effect
pidash_enable boolean true PI_PIDASH_ENABLE Enables the global dashboard extension. Controls /pidash availability and daemon connection behavior.

Note: Environment values false, 0, no, and off disable pidash.

{
  "pidash_enable": false
}
export PI_PIDASH_ENABLE=false

pidiff_enable

Parameter Type Default Environment variable Description Effect
pidiff_enable boolean true PI_PIDIFF_ENABLE Enables the diff viewer extension. Controls /pidiff availability and per-project diff server startup.

Note: Environment values false, 0, no, and off disable pidiff.

{
  "pidiff_enable": false
}
export PI_PIDIFF_ENABLE=off

pidash_port

Parameter Type Default Environment variable Description Effect
pidash_port integer 19190 PI_PIDASH_PORT HTTP and WebSocket port for pidash. Sets the port used when spawning or reconnecting to the pidash daemon.

Warning: Only integer values in the range 1-65535 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "pidash_port": 19191
}
export PI_PIDASH_PORT=19191

See Using the Web Dashboard for details.

pidiff_daemon_startup_timeout_s

Parameter Type Default Environment variable Description Effect
pidiff_daemon_startup_timeout_s integer 10-300 60 PI_PIDIFF_DAEMON_STARTUP_TIMEOUT_S Seconds to wait for the pidiff diff server to accept connections. Bounds the startup probe after a spawn or reconnect; once it elapses, pidiff gives up on that attempt instead of hanging the caller. Raise it on slow machines or busy containers.

Warning: Only integer values in the range 10-300 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "pidiff_daemon_startup_timeout_s": 120
}
export PI_PIDIFF_DAEMON_STARTUP_TIMEOUT_S=120

pidiff_stale_lock_timeout_ms

Parameter Type Default Environment variable Description Effect
pidiff_stale_lock_timeout_ms integer 60000 PI_PIDIFF_STALE_LOCK_TIMEOUT_MS Timeout for a stale pidiff spawning lockfile (ms). If a previous pidiff process died while holding the spawn lock, the lock is treated as abandoned after this long and the next spawn may proceed. 60 seconds.
{
  "pidiff_stale_lock_timeout_ms": 60000
}
export PI_PIDIFF_STALE_LOCK_TIMEOUT_MS=60000

image_model

Parameter Type Default Environment variable Description Effect
image_model string "" PI_IMAGE_MODEL Gemini image generation model name. Enables the generate_image tool to call the Gemini API. Requires GEMINI_API_KEY or GOOGLE_API_KEY to be set.
{
  "image_model": "gemini-3-pro-image"
}
export PI_IMAGE_MODEL=gemini-3-pro-image

See Image Generation for details.

Code Map Keys

trail_enable

Parameter Type Default Environment variable Description Effect
trail_enable boolean true PI_TRAIL_ENABLE Enables the local Trail-code map integration. Adds the map-first trail_* tools to main agents and to every subagent's toolset, so agents look code up in the map before grepping. In a worktree the setting is inherited from the main checkout when the worktree has no .pi settings file. Requires the trail binary on PATH; without it the tools are absent.
{
  "trail_enable": true
}
export PI_TRAIL_ENABLE=true

Background & Async Keys

dream_interval_hours

Parameter Type Default Environment variable Description Effect
dream_interval_hours number 3 PI_DREAM_INTERVAL_HOURS Interval between automatic dream passes. Controls how frequently background memory consolidation is scheduled.
{
  "dream_interval_hours": 6
}
export PI_DREAM_INTERVAL_HOURS=6

See Background Memory Consolidation (Dreaming) for details.

Memory tuning keys

These keys tune the memory system's budgets and similarity gates (issue #915). All defaults match the pre-setting hardcoded values.

Parameter Type Default Environment variable Description
memory_token_budget number 1700 PI_MEMORY_TOKEN_BUDGET Token budget for the situation report injected into the system prompt.
memory_inject_similarity number 0.65 PI_MEMORY_INJECT_SIMILARITY Vector similarity threshold for contextual memory auto-injection.
memory_near_duplicate_threshold number 0.9 PI_MEMORY_NEAR_DUPLICATE_THRESHOLD Similarity above which memory_add reinforces an existing entry instead of adding.
memory_conflict_similarity number 0.55 PI_MEMORY_CONFLICT_SIMILARITY Similarity floor for contradiction candidates in the conflict gate.
memory_max_active_entries int 40 PI_MEMORY_MAX_ACTIVE_ENTRIES Total cap on active entries applied during rebuild.
{
  "memory_token_budget": 2000,
  "memory_inject_similarity": 0.7
}

See Memory Architecture for what each gate does.

internal_operations_provider

Parameter Type Default Environment variable Description Effect
internal_operations_provider string "" PI_INTERNAL_OPERATIONS_PROVIDER Provider pi-config uses for its own detached LLM work when the session provider cannot do it. Combined with internal_operations_model to define the sidecar provider. Used by dreaming, cron, and fire-and-forget async agents.
{
  "internal_operations_provider": "openai"
}
export PI_INTERNAL_OPERATIONS_PROVIDER=openai

internal_operations_model

Parameter Type Default Environment variable Description Effect
internal_operations_model string "" PI_INTERNAL_OPERATIONS_MODEL Model ID paired with internal_operations_provider. Combined with internal_operations_provider to define the sidecar model.
{
  "internal_operations_model": "gpt-5.4"
}
export PI_INTERNAL_OPERATIONS_MODEL=gpt-5.4

Warning: Both internal_operations_provider and internal_operations_model must be set together. If either is missing, must-async work is skipped.

Warning: internal_operations_provider cannot be an acpx-* provider ID. Non-must-async work is coerced to sync instead of using the sidecar.

See Running Background Agents and Scheduled Tasks for details.

sync_agent_max_seconds

Parameter Type Default Environment variable Description Effect
sync_agent_max_seconds integer 10-300 60 PI_SYNC_AGENT_MAX_SECONDS Estimated runtime at which a subagent must be dispatched asynchronously. A subagent call whose estimatedSeconds meets or exceeds this limit is rejected with "Use async: true instead." The same limit scales the parallel and chain fan-out timeouts.

Warning: Only integer values in the range 10-300 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "sync_agent_max_seconds": 120
}
export PI_SYNC_AGENT_MAX_SECONDS=120

async_poll_interval_ms

Parameter Type Default Environment variable Description Effect
async_poll_interval_ms integer 500-30000 3000 PI_ASYNC_POLL_INTERVAL_MS How often the async agent poller re-reads job state. Sets the cadence of the status sweep that refreshes the async widget, delivers completed results, and drops finished jobs older than 30 seconds. Lower values track jobs more closely at the cost of more frequent settings reads.

Warning: Only integer values in the range 500-30000 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "async_poll_interval_ms": 5000
}
export PI_ASYNC_POLL_INTERVAL_MS=5000

async_phantom_timeout_ms

Parameter Type Default Environment variable Description Effect
async_phantom_timeout_ms integer 5000-120000 30000 PI_ASYNC_PHANTOM_TIMEOUT_MS Grace period before an async job with no status file is declared dead. Once it elapses the job is failed with "Agent process timed out — no status file", the failure is delivered, and any group it belonged to is settled. While the worker PID is still alive, the same window suppresses the failure.

Warning: Only integer values in the range 5000-120000 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "async_phantom_timeout_ms": 60000
}
export PI_ASYNC_PHANTOM_TIMEOUT_MS=60000

See Running Background Agents and Scheduled Tasks for details.

Provider Stream Logging

log_providers

Parameter Type Default Environment variable Description Effect
log_providers string info PI_LOG_PROVIDERS Log level for the provider diagnostics namespace. Set to debug to capture every parsed provider stream event, which is how a misbehaving provider is diagnosed from the stream rather than reconstructed from rendered output.
export PI_LOG_PROVIDERS=debug

The stream is written to ~/.pi/logs/providers/<session-id>/main.log under a [provider-stream] prefix, with one line per event and credential-shaped fields redacted. Capturing every event has a real cost, so the hook only registers at debug and costs nothing at the default level.

Every other log_<module> key follows the same shape — log_pidash, log_pidiff, log_coms, log_subagent, log_dreaming, log_enforcement, log_trail, and others — with env vars PI_LOG_<MODULE> and default info. The remaining module log levels are listed in Module File Logging below.

Safety Enforcement Keys

enforcement_sleep_threshold_s

Parameter Type Default Environment variable Description Effect
enforcement_sleep_threshold_s integer 1-300 60 PI_ENFORCEMENT_SLEEP_THRESHOLD_S Longest sleep allowed in a single foreground command. A standalone bash command sleeping longer than this is blocked with a message pointing at async: true. Only enforced when the parent session provider supports async LLM calls.
{
  "enforcement_sleep_threshold_s": 30
}
export PI_ENFORCEMENT_SLEEP_THRESHOLD_S=30

enforcement_loop_sleep_threshold_s

Parameter Type Default Environment variable Description Effect
enforcement_loop_sleep_threshold_s integer 1-300 60 PI_ENFORCEMENT_LOOP_SLEEP_THRESHOLD_S Longest sleep allowed inside a while/for/until loop. A polling loop whose sleep exceeds this is blocked, forcing polling and monitoring work into an async subagent instead of tying up the session. Only enforced when the parent session provider supports async LLM calls.
{
  "enforcement_loop_sleep_threshold_s": 10
}
export PI_ENFORCEMENT_LOOP_SLEEP_THRESHOLD_S=10

enforcement_allowed_commands

Parameter Type Default Environment variable Description Effect
enforcement_allowed_commands string "" PI_ENFORCEMENT_ALLOWED_COMMANDS Comma-separated bash commands exempt from enforcement blocking. A listed command bypasses the guards that would otherwise block it. Empty means no exemptions.
{
  "enforcement_allowed_commands": "sleep 5, ls -la"
}
export PI_ENFORCEMENT_ALLOWED_COMMANDS="sleep 5,ls -la"

Warning: this is an exemption list for the enforcement guards. Anything added here runs past them, so keep it as narrow as the task allows.

See Safety Enforcements for details.

Inter-Agent Communication Keys

coms_task_heartbeat_ms

Parameter Type Default Environment variable Description Effect
coms_task_heartbeat_ms integer (min 10000) 300000 PI_COMS_TASK_HEARTBEAT_MS How often a joined coms session re-announces its task state. Sets the timer interval for the periodic task-status broadcast to peers, so the shared task board stays fresh while the session is open.
{
  "coms_task_heartbeat_ms": 60000
}
export PI_COMS_TASK_HEARTBEAT_MS=60000

coms_probe_timeout_ms

Parameter Type Default Environment variable Description Effect
coms_probe_timeout_ms integer 100-10000 1000 PI_COMS_PROBE_TIMEOUT_MS How long to wait when probing a peer's socket for liveness. If the socket does not connect within this window it is reported stale and its registry entry becomes prunable. Only ECONNREFUSED/ENOENT count as stale, so transient errors are treated as live.
{
  "coms_probe_timeout_ms": 500
}
export PI_COMS_PROBE_TIMEOUT_MS=500

coms_timeout_ms

Parameter Type Default Environment variable Description Effect
coms_timeout_ms integer 1800000 PI_COMS_TIMEOUT_MS Coms session inactivity timeout before cleanup. A session that has been idle this long is torn down and its socket and registry entry are released. 30 minutes.
{
  "coms_timeout_ms": 1800000
}
export PI_COMS_TIMEOUT_MS=1800000

coms_max_hops

Parameter Type Default Environment variable Description Effect
coms_max_hops integer 5 PI_COMS_MAX_HOPS Maximum message relay hops between peers. Caps how many times a message may be relayed across the network, which bounds routing loops when peers cannot reach each other directly.
{
  "coms_max_hops": 5
}
export PI_COMS_MAX_HOPS=5

coms_entry_grace_period_ms

Parameter Type Default Environment variable Description Effect
coms_entry_grace_period_ms integer 30000 PI_COMS_ENTRY_GRACE_PERIOD_MS Grace period for new registry entries before a stale check applies. A freshly announced peer is not probed for staleness during this window, so a slow start cannot get its entry pruned before it is reachable. 30 seconds.
{
  "coms_entry_grace_period_ms": 30000
}
export PI_COMS_ENTRY_GRACE_PERIOD_MS=30000

coms_dir

Parameter Type Default Environment variable Description Effect
coms_dir string "" PI_COMS_DIR Override the default coms registry directory. Relocates the peer registry and sockets from the default under ~/.pi/coms/. Empty means auto-detect.
{
  "coms_dir": "/run/user/1000/coms"
}
export PI_COMS_DIR=/run/user/1000/coms

See Inter-Agent Communication for details.

Sidecar Server Logging

sidecar_log_level

Parameter Type Default Environment variable Description Effect
sidecar_log_level string info PI_SIDECAR_LOG_LEVEL Log level for the pi-sidecar server. The resolved value is written into the process environment on session start, where both the Node sidecar and the Python client read it. An empty value clears the variable and lets the sidecar fall back to its own default.
{
  "sidecar_log_level": "debug"
}
export PI_SIDECAR_LOG_LEVEL=debug

See Pi-Sidecar for details.

Module File Logging

Each key below is a level string, not a boolean. Accepted values are off, debug, info, warn, and error; anything else is ignored and the next resolution layer is used. off disables the module's file log entirely.

A module resolves its level in this order: the log_<module> setting → the PI_LOG_<MODULE> environment variable → info. Lines below that level are dropped before the file is touched, and the resolved level is cached for 30 seconds.

Parameter Type Default Environment variable Description Effect
log_pitasks string info PI_LOG_PITASKS Log level for the pitasks module. Controls the verbosity of ~/.pi/logs/pitasks/<session-id>/main.log — task list operations and reminder fires.
log_cli_provider string info PI_LOG_CLI_PROVIDER Log level for the cli-provider module. Controls the verbosity of ~/.pi/logs/cli_provider/<session-id>/main.log — CLI agent spawn, discovery, and handshake events.
log_acpx_provider string info PI_LOG_ACPX_PROVIDER Log level for the acpx-provider module. Controls the verbosity of ~/.pi/logs/acpx-provider/<session-id>/main.log — ACPX session lifecycle, model discovery, and shutdown.
log_orchestrator string info PI_LOG_ORCHESTRATOR Log level for the orchestrator module. Controls the verbosity of ~/.pi/logs/orchestrator/<session-id>/main.log — delegation, settings resolution, and enforcement decisions.
log_async_agents string info PI_LOG_ASYNC_AGENTS Log level for the async-agents module. Controls the verbosity of ~/.pi/logs/async_agents/<parent-session-id>/<job-id>.log — spawn, poll, and delivery events for background agents.
log_rules string info PI_LOG_RULES Log level for the rules module. Controls the verbosity of ~/.pi/logs/rules/<session-id>/main.log — rule loading, placeholder substitution, and rule-matched events.
log_memory string info PI_LOG_MEMORY Log level for the memory module. Controls the verbosity of ~/.pi/logs/memory/<session-id>/main.log — memory capture, scoring, and promotion decisions.
log_settings_tui string info PI_LOG_SETTINGS_TUI Log level for the settings-tui module. Controls the verbosity of ~/.pi/logs/settings_tui/<session-id>/main.log — /pi-config-settings reads and writes.
log_cron string info PI_LOG_CRON Log level for the cron module. Controls the verbosity of ~/.pi/logs/cron/<session-id>/main.log — scheduled job registration and fires.
log_oneshot string info PI_LOG_ONESHOT Log level for the oneshot argv helpers. Controls the verbosity of ~/.pi/logs/oneshot/<session-id>/main.log — one-shot runs of pi -p and --mode json.

Note: Async agent logs nest under the parent pi session directory, not the subagent's own session id, so a whole job tree stays in one place. Subagent and child-process logs use the same <name>/<parent-session-id>/<file> layout.

{
  "log_orchestrator": "debug",
  "log_async_agents": "debug"
}
export PI_LOG_ORCHESTRATOR=debug

Tip: The Settings TUI renders each of these as a select list from the schema enum, so the valid values never have to be remembered.

Task Lifecycle Keys

task_auto_clear_enabled

Parameter Type Default Environment variable Description Effect
task_auto_clear_enabled boolean true PI_TASK_AUTO_CLEAR_ENABLED Enables time-based removal of completed tasks. When on, a one-minute sweep deletes completed tasks older than task_auto_clear_minutes and refreshes the task widget. Set to false to keep the history.
{
  "task_auto_clear_enabled": false
}
export PI_TASK_AUTO_CLEAR_ENABLED=false

task_auto_clear_minutes

Parameter Type Default Environment variable Description Effect
task_auto_clear_minutes integer 1-1440 10 PI_TASK_AUTO_CLEAR_MINUTES How long a completed task is kept before removal. Measured from the task's completed_at timestamp, not from session start. Only used while task_auto_clear_enabled is on.

Warning: Only integer values in the range 1-1440 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "task_auto_clear_minutes": 60
}

task_reminder_enabled

Parameter Type Default Environment variable Description Effect
task_reminder_enabled boolean true PI_TASK_REMINDER_ENABLED Enables the periodic nudge when tasks are pending but none is in progress. When on, a task-focus-reminder message is injected to restart the turn. Requires at least one active task, no in_progress task, and an idle agent. Set to false to silence it.
{
  "task_reminder_enabled": false
}
export PI_TASK_REMINDER_ENABLED=false

task_reminder_interval_minutes

Parameter Type Default Environment variable Description Effect
task_reminder_interval_minutes integer 1-60 10 PI_TASK_REMINDER_INTERVAL_MINUTES Minimum gap between two pending-task reminders. The sweep itself runs every minute; this key is the throttle that decides when a reminder is actually delivered. Only used while task_reminder_enabled is on.

Warning: Only integer values in the range 1-60 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "task_reminder_interval_minutes": 30
}

task_stale_in_progress_enabled

Parameter Type Default Environment variable Description Effect
task_stale_in_progress_enabled boolean true PI_TASK_STALE_IN_PROGRESS_ENABLED Enables reminders for tasks stuck in_progress for too long. When on, a stale reminder fires for every task whose in_progress_at is older than task_stale_in_progress_minutes. Set to false to disable the stale check.
{
  "task_stale_in_progress_enabled": false
}
export PI_TASK_STALE_IN_PROGRESS_ENABLED=false

task_stale_in_progress_minutes

Parameter Type Default Environment variable Description Effect
task_stale_in_progress_minutes integer 5-1440 30 PI_TASK_STALE_IN_PROGRESS_MINUTES How long a task may stay in_progress before it counts as stale. Acts as both the staleness threshold and the cooldown between stale reminders. Only used while task_stale_in_progress_enabled is on.

Warning: Only integer values in the range 5-1440 are accepted. Invalid values fall back to the next resolution layer or the default.

{
  "task_stale_in_progress_minutes": 60
}

See Managing Custom Agents for details.

Environment-only Process Flag

PI_SUBAGENT_CHILD

Parameter Type Default Description Effect
PI_SUBAGENT_CHILD string unset Process flag set to "1" for subagent child processes. Disables parent-session-only startup behavior such as pidash/pidiff registration and settings cache reset hooks in child processes.
PI_SUBAGENT_CHILD=1

See Running Background Agents and Scheduled Tasks for details.