| github_token | GitHub token for API access (issues, PRs, reactions, comments) | yes | — |
| api_key | LLM provider API key (runtime-only; alternatively set provider-specific env vars like ANTHROPIC_API_KEY) | no | — |
| trigger_phrase | Phrase to trigger pi (e.g., @pi) | — | @pi |
| allowed_bots | Comma-separated list of allowed bot usernames | — | "" |
| allowed_users | Comma-separated GitHub usernames allowed to trigger pi. If set, users must be in this list. | — | "" |
| allowed_associations | Comma-separated GitHub author associations allowed to trigger pi when allowed_users is empty | — | OWNER,MEMBER |
| timeout | Execution timeout in seconds | — | 1800 |
| provider | LLM provider (anthropic, openai, google, etc.) | — | anthropic |
| model | Model ID | — | claude-sonnet-4-20250514 |
| provider_base_url | Base URL for a single custom provider/model (e.g., https://inference-api.nvidia.com) | no | — |
| provider_api | API type for the custom provider/model | no | openai-completions |
| provider_api_key | Provider apiKey config value for custom providers; can be a literal key or env var name | no | — |
| provider_auth_header | Add Authorization: Bearer <key> for custom provider requests | no | false |
| model_name | Display name for the custom model | no | — |
| model_reasoning | Whether the custom model supports reasoning/thinking | no | false |
| model_input | Comma-separated custom model input modalities (text or text,image) | no | text |
| model_context_window | Context window tokens for the custom model | no | 128000 |
| model_max_tokens | Max output tokens for the custom model | no | 16384 |
| compat_supports_developer_role | Whether the OpenAI-compatible custom provider supports developer role messages | no | — |
| compat_supports_reasoning_effort | Whether the OpenAI-compatible custom provider supports reasoning_effort | no | — |
| prompt_template | Custom prompt template with placeholder variables | no | — |
| share_session | Upload session.html and session.jsonl as a GitHub Actions artifact and link it in the response comment | no | true |
| session_artifact_name | GitHub Actions artifact name for shared session files; defaults to pi-session-<run_id>-<run_attempt> | no | "" |
| output_mode | How to deliver results: comment (post to issue/PR) or output (set action outputs only) | no | comment |
| prompt | Direct prompt for the agent (requires output_mode: output when no issue/PR context is available) | no | "" |
| pr_number | Pull request number to load explicitly (useful for workflow_dispatch) | no | "" |