Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

programs.pi.enable

Whether to enable Pi coding agent.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.package

The base Pi coding agent package to use.

Type: package

Default:

pkgs.pi-coding-agent

Declared by:

programs.pi.packages

List of Pi packages (derivations or directory paths) to load.

Type: list of (package or absolute path or string)

Default:

[ ]

Declared by:

programs.pi.assertions

List of assertions to check during evaluation.

Type: list of unspecified value

Default:

[ ]

Declared by:

programs.pi.builtinProviders

List of built-in LLM providers.

Type: list of string (read only)

Default:

[
  "antigravity"
  "openai"
  "anthropic"
  "google"
  "ollama"
  "openrouter"
  "groq"
  "deepseek"
  "mistral"
  "bedrock"
  "xai"
  "github-models"
  "copilot"
  "azure-openai"
  "cerebras"
  "together"
  "fireworks"
  "cohere"
]

Declared by:

programs.pi.environment.optional

List of optional environment variable names supported by the configuration.

Type: list of string

Default:

[ ]

Declared by:

programs.pi.environment.required

List of environment variable names required by enabled extensions or providers. These are checked or documented as runtime requirements.

Type: list of string

Default:

[ ]

Declared by:

programs.pi.environment.variables

Non-secret environment variables to export for Pi. DO NOT put secret API keys here as they will be written into the Nix store.

Type: attribute set of (null or string or signed integer or boolean or absolute path)

Default:

{ }

Declared by:

programs.pi.extensions.echo.enable

Whether to enable Pi echo extension.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.extensions.echo.package

Package providing the echo extension.

Type: package

Default:

pkgs.piExtensions.echo

Declared by:

programs.pi.extensions.pi-gpt-search.enable

Whether to enable Pi GPT search extension (OpenAI Codex search engine).

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.extensions.pi-gpt-search.package

Package providing the pi-gpt-search extension.

Type: package

Default:

pkgs.piExtensions.pi-gpt-search

Declared by:

programs.pi.extensions.pi-gpt-search.debug

Enable debug logging for web search operations.

Type: boolean

Default:

false

Declared by:

programs.pi.extensions.plan-mode.enable

Whether to enable Pi plan-mode extension.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.extensions.plan-mode.package

Package providing the plan-mode extension.

Type: package

Default:

pkgs.piExtensions.plan-mode

Declared by:

programs.pi.extensions.plan-mode.autoApprove

Whether to automatically approve plan steps.

Type: boolean

Default:

false

Declared by:

programs.pi.extensions.plan-mode.maxSteps

Maximum number of steps in plan execution.

Type: signed integer

Default:

10

Declared by:

programs.pi.extensions.plan-mode.mode

Planning execution mode.

Type: one of “fast”, “balanced”, “thorough”

Default:

"balanced"

Declared by:

programs.pi.extensions.research-tools.enable

Whether to enable Pi legal tech research tools & MCP bridge extension.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.extensions.research-tools.enableGptResearcher

Enable GPT Researcher synthesis fallback tool (conditional, disabled by default).

Type: boolean

Default:

false

Declared by:

programs.pi.extensions.research-tools.enableWorldMonitor

Enable World Monitor macro context tool (conditional, disabled by default).

Type: boolean

Default:

false

Declared by:

programs.pi.extensions.research-tools.enableXhs

Enable XHS / RedNote Chinese market research tool (conditional, disabled by default).

Type: boolean

Default:

false

Declared by:

programs.pi.extensions.research-tools.package

Package providing the research-tools extension.

Type: package

Default:

pkgs.piExtensions.research-tools

Declared by:

programs.pi.extensions.ripgrep-search.enable

Whether to enable Pi ripgrep-search extension.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.extensions.ripgrep-search.package

Package providing the ripgrep-search extension.

Type: package

Default:

pkgs.piExtensions.ripgrep-search

Declared by:

programs.pi.extraExtensions

Extra standalone extension file paths or derivations to load.

Type: list of (package or absolute path or string)

Default:

[ ]

Declared by:

programs.pi.extraPackages

Extra CLI packages to make available in PATH for Pi (alias/escape hatch for runtimePackages).

Type: list of package

Default:

[ ]

Declared by:

programs.pi.extraSkills

Extra standalone skill directory paths or derivations to load.

Type: list of (package or absolute path or string)

Default:

[ ]

Declared by:

programs.pi.finalPackage

The fully configured and wrapped Pi coding agent package.

Type: package (read only)

Declared by:

programs.pi.finalRuntimePackages

Combined list of all runtime packages from core, extensions, and derivations.

Type: list of package (read only)

Default:

[ ]

Declared by:

programs.pi.generatedModelsFile

Generated immutable models.json derivation (null if no providers defined).

Type: null or package (read only)

Default:

null

Declared by:

programs.pi.generatedSettingsFile

Generated immutable settings.json derivation.

Type: package (read only)

Declared by:

programs.pi.prompts

List of prompt template files or derivations to load.

Type: list of (package or absolute path or string)

Default:

[ ]

Declared by:

programs.pi.providers

Declared LLM providers with options and model definitions.

Type: attribute set of (open submodule of attribute set of anything)

Default:

{ }

Declared by:

programs.pi.providers.<name>.enable

Whether this provider is enabled.

Type: boolean

Default:

true

Declared by:

programs.pi.providers.<name>.package

Optional package/extension derivation implementing this provider.

Type: null or package

Default:

null

Declared by:

programs.pi.providers.<name>.packages

Additional packages implementing this provider.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.providers.<name>.api

API protocol type (e.g. openai-completions, anthropic-messages).

Type: null or string

Default:

null

Declared by:

programs.pi.providers.<name>.apiKey

API key or placeholder.

Type: null or string

Default:

null

Declared by:

programs.pi.providers.<name>.baseUrl

Base URL for the provider API endpoint.

Type: null or string

Default:

null

Declared by:

programs.pi.providers.<name>.environment

Environment variables and secret requirements for this provider.

Type: submodule

Default:

{ }

Declared by:

programs.pi.providers.<name>.environment.optional

Optional environment variable names.

Type: list of string

Default:

[ ]

Declared by:

programs.pi.providers.<name>.environment.required

Required environment variable names.

Type: list of string

Default:

[ ]

Declared by:

programs.pi.providers.<name>.environment.variables

Environment variables exported for this provider.

Type: attribute set of anything

Default:

{ }

Declared by:

programs.pi.providers.<name>.models

Models offered by this provider.

Type: (attribute set of (open submodule of attribute set of anything)) or (list of anything) convertible to it

Default:

{ }

Declared by:

programs.pi.providers.<name>.models.<name>.contextWindow

Maximum context window size in tokens.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.providers.<name>.models.<name>.id

Unique model identifier.

Type: string

Default:

"‹name›"

Declared by:

programs.pi.providers.<name>.models.<name>.maxTokens

Maximum output tokens.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.providers.<name>.models.<name>.name

Human-readable display name for the model.

Type: null or string

Default:

null

Declared by:

programs.pi.providers.<name>.models.<name>.reasoning

Whether the model supports extended reasoning/thinking.

Type: null or boolean

Default:

null

Declared by:

programs.pi.providers.<name>.name

Provider identifier.

Type: string

Default:

"‹name›"

Declared by:

programs.pi.providers.<name>.runtimePackages

Runtime dependencies added to PATH for this provider.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.rawExtensions

List of standalone extension file paths or derivations to load.

Type: list of (package or absolute path or string)

Default:

[ ]

Declared by:

programs.pi.rawSkills

List of standalone skill directory paths or derivations to load.

Type: list of (package or absolute path or string)

Default:

[ ]

Declared by:

programs.pi.runtimePackages

List of CLI packages to make available in PATH for Pi and its extensions.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.settings

Pi settings configuration (generated as settings.json).

Type: open submodule of attribute set of anything

Default:

{ }

Declared by:

programs.pi.settings.enableSkillCommands

Register skills as /skill:name commands.

Type: boolean

Default:

true

Declared by:

programs.pi.settings.enabledModels

Model patterns for Ctrl+P cycling.

Type: list of string

Default:

[ ]

Declared by:

programs.pi.settings.compaction

Conversation compaction settings.

Type: null or (submodule)

Default:

null

Declared by:

programs.pi.settings.compaction.enabled

Enable auto-compaction.

Type: null or boolean

Default:

null

Declared by:

programs.pi.settings.compaction.keepRecentTokens

Recent tokens to keep without summarization.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.settings.compaction.reserveTokens

Tokens reserved for LLM response.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.settings.defaultModel

Default model ID to use (string ID or model object).

Type: (null or string) or (string or (attribute set)) convertible to it

Default:

null

Declared by:

programs.pi.settings.defaultProvider

Default LLM provider to use (string name or provider object).

Type: (null or string) or (string or (attribute set)) convertible to it

Default:

null

Declared by:

programs.pi.settings.defaultThinkingLevel

Default reasoning/thinking level.

Type: null or one of “off”, “minimal”, “low”, “medium”, “high”, “xhigh”, “max”

Default:

null

Declared by:

programs.pi.settings.npmCommand

Command argv used for npm package operations.

Type: null or (list of string)

Default:

null

Declared by:

programs.pi.settings.retry

Agent and provider retry settings.

Type: null or (submodule)

Default:

null

Declared by:

programs.pi.settings.retry.enabled

Enable automatic agent-level retry.

Type: null or boolean

Default:

null

Declared by:

programs.pi.settings.retry.baseDelayMs

Base delay for exponential backoff.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.settings.retry.maxRetries

Maximum agent-level retry attempts.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.settings.retry.provider

Provider-level retry configuration.

Type: null or (submodule)

Default:

null

Declared by:

programs.pi.settings.retry.provider.maxRetries

Provider/SDK retry attempts.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.settings.retry.provider.maxRetryDelayMs

Max server-requested delay before failing.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.settings.retry.provider.timeoutMs

Provider timeout in milliseconds.

Type: null or signed integer

Default:

null

Declared by:

programs.pi.settings.sessionDir

Directory for session storage and lookup.

Type: null or string

Default:

null

Declared by:

programs.pi.settings.theme

Name of the active theme.

Type: null or string

Default:

null

Declared by:

programs.pi.skills.brazil-localization-test.enable

Whether to enable Pi Brazil localization test skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.brazil-localization-test.package

Package providing the brazil-localization-test skill.

Type: null or package

Default:

<derivation pi-skill-brazil-localization-test-0.1.0>

Declared by:

programs.pi.skills.brazil-localization-test.runtimePackages

Additional runtime packages required by the brazil-localization-test skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.skills.commit-style.enable

Whether to enable Pi commit-style skill (Conventional Commits v1.0.0).

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.commit-style.package

Package providing the commit-style skill.

Type: package

Default:

pkgs.piSkills.commit-style

Declared by:

programs.pi.skills.commit-style.customGuidelines

Additional guidelines or rules for writing commit messages.

Type: list of string

Default:

[ ]

Declared by:

programs.pi.skills.commit-style.examples

Additional repository-specific commit examples.

Type: list of (string or (submodule))

Default:

[ ]

Declared by:

programs.pi.skills.commit-style.scopes

List of recommended or repository-specific scopes.

Type: list of string

Default:

[ ]

Declared by:

programs.pi.skills.commit-style.types

List of allowed commit types with descriptions.

Type: list of (string or (submodule))

Default:

[
  {
    description = "A new feature for the user or library (correlates with SemVer MINOR)";
    name = "feat";
  }
  {
    description = "A bug fix for the user or library (correlates with SemVer PATCH)";
    name = "fix";
  }
  {
    description = "Documentation changes only";
    name = "docs";
  }
  {
    description = "Code style/formatting changes that do not affect code logic or semantics";
    name = "style";
  }
  {
    description = "Refactoring production code (neither fixes a bug nor adds a feature)";
    name = "refactor";
  }
  {
    description = "A code change that improves performance";
    name = "perf";
  }
  {
    description = "Adding missing tests, refactoring tests, or correcting test fixtures";
    name = "test";
  }
  {
    description = "Changes that affect the build system or external dependencies (e.g. Nix, npm, Cargo)";
    name = "build";
  }
  {
    description = "Changes to CI/CD configuration files, scripts, and workflows (e.g. GitHub Actions)";
    name = "ci";
  }
  {
    description = "Routine maintenance tasks, tool configs, or auxiliary changes";
    name = "chore";
  }
  {
    description = "Reverts a previous commit";
    name = "revert";
  }
]

Declared by:

programs.pi.skills.competitor-gap-analysis.enable

Whether to enable Pi competitor gap analysis skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.competitor-gap-analysis.package

Package providing the competitor-gap-analysis skill.

Type: null or package

Default:

<derivation pi-skill-competitor-gap-analysis-0.1.0>

Declared by:

programs.pi.skills.competitor-gap-analysis.runtimePackages

Additional runtime packages required by the competitor-gap-analysis skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.skills.evidence-deduplication.enable

Whether to enable Pi evidence deduplication skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.evidence-deduplication.package

Package providing the evidence-deduplication skill.

Type: null or package

Default:

<derivation pi-skill-evidence-deduplication-0.1.0>

Declared by:

programs.pi.skills.evidence-deduplication.runtimePackages

Additional runtime packages required by the evidence-deduplication skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.skills.legal-market-segmentation.enable

Whether to enable Pi legal market segmentation skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.legal-market-segmentation.package

Package providing the legal-market-segmentation skill.

Type: null or package

Default:

<derivation pi-skill-legal-market-segmentation-0.1.0>

Declared by:

programs.pi.skills.legal-market-segmentation.runtimePackages

Additional runtime packages required by the legal-market-segmentation skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.skills.legal-pain-discovery.enable

Whether to enable Pi legal pain discovery research skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.legal-pain-discovery.package

Package providing the legal-pain-discovery skill.

Type: null or package

Default:

<derivation pi-skill-legal-pain-discovery-0.1.0>

Declared by:

programs.pi.skills.legal-pain-discovery.runtimePackages

Additional runtime packages required by the legal-pain-discovery skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.skills.opportunity-scoring.enable

Whether to enable Pi opportunity scoring skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.opportunity-scoring.package

Package providing the opportunity-scoring skill.

Type: null or package

Default:

<derivation pi-skill-opportunity-scoring-0.1.0>

Declared by:

programs.pi.skills.opportunity-scoring.runtimePackages

Additional runtime packages required by the opportunity-scoring skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.skills.product-opportunity-report.enable

Whether to enable Pi product opportunity report skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.product-opportunity-report.package

Package providing the product-opportunity-report skill.

Type: null or package

Default:

<derivation pi-skill-product-opportunity-report-0.1.0>

Declared by:

programs.pi.skills.product-opportunity-report.runtimePackages

Additional runtime packages required by the product-opportunity-report skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.skills.voice-of-customer-mining.enable

Whether to enable Pi voice of customer mining skill.

Type: boolean

Default:

false

Example:

true

Declared by:

programs.pi.skills.voice-of-customer-mining.package

Package providing the voice-of-customer-mining skill.

Type: null or package

Default:

<derivation pi-skill-voice-of-customer-mining-0.1.0>

Declared by:

programs.pi.skills.voice-of-customer-mining.runtimePackages

Additional runtime packages required by the voice-of-customer-mining skill.

Type: list of package

Default:

[ ]

Declared by:

programs.pi.themes

List of theme JSON files or derivations to load.

Type: list of (package or absolute path or string)

Default:

[ ]

Declared by: