Configuration Reference¶
All configuration options can be set with summon config set or as environment
variables. Values in the config file (~/.config/summon/config.env by default)
are overridden by actual environment variables.
# Set a value
summon config set SUMMON_DEFAULT_MODEL claude-opus-4-6
# View all resolved values (tokens masked)
summon config show
# Open the config file in your editor
summon config edit
Slack Credentials¶
These three options must be set before summon can start. See Slack Setup for instructions on obtaining these values.
| Config Key | Type | Description |
|---|---|---|
SUMMON_SLACK_BOT_TOKEN |
secret | Slack Bot User OAuth token. Must start with xoxb-. |
SUMMON_SLACK_APP_TOKEN |
secret | Slack App-Level token for Socket Mode. Must start with xapp-. |
SUMMON_SLACK_SIGNING_SECRET |
secret | Slack signing secret for request verification (hex string). |
Session Defaults¶
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_DEFAULT_MODEL |
text | (Claude's default) | Claude model to use for new sessions (e.g. claude-opus-4-6). |
SUMMON_DEFAULT_EFFORT |
choice: low, medium, high, max |
high |
Thinking effort level for new sessions. |
SUMMON_CHANNEL_PREFIX |
text | summon |
Prefix for auto-created Slack channel names. Channels are named {prefix}-{session-name}. Must be lowercase alphanumeric, hyphens, and underscores only. |
See Sessions for how model and effort affect behavior.
Scribe¶
Core settings for the background scribe agent. See Scribe for full setup and configuration details.
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_SCRIBE_ENABLED |
boolean | auto-detect | Enable the background scribe agent. Auto-enables when Google or Slack collectors are detected. |
SUMMON_SCRIBE_SCAN_INTERVAL_MINUTES |
integer | 5 |
How often the scribe scans for new information. Minimum 1. |
SUMMON_SCRIBE_CWD |
text | (data dir)/scribe | Working directory for the scribe session. |
SUMMON_SCRIBE_MODEL |
text | (inherits default model) | Model override for the scribe session. |
SUMMON_SCRIBE_IMPORTANCE_KEYWORDS |
text | (empty) | Comma-separated keywords that flag a message as high-priority (e.g. urgent,deadline). |
SUMMON_SCRIBE_QUIET_HOURS |
text | (empty) | Time window for reduced alerts, format HH:MM-HH:MM (e.g. 22:00-07:00). Only level-5 alerts are surfaced during this window. |
Scribe Google¶
Google Workspace data collector settings. Requires the google optional extra (uv tool install summon-claude[google]).
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_SCRIBE_GOOGLE_ENABLED |
boolean | auto-detect | Enable the Google Workspace data collector for scribe. Auto-detected when workspace-mcp is installed and Google credentials exist. |
Scribe Slack¶
Slack monitoring via browser automation. Requires the slack-browser optional extra (uv tool install summon-claude[slack-browser]).
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_SCRIBE_SLACK_ENABLED |
boolean | auto-detect | Enable the Slack data collector. Auto-detected when Playwright is installed and browser auth exists. |
SUMMON_SCRIBE_SLACK_BROWSER |
choice: chrome, firefox, webkit |
chrome |
Browser for Slack monitoring. |
SUMMON_SCRIBE_SLACK_MONITORED_CHANNELS |
text | (empty) | Comma-separated Slack channel IDs to monitor. |
GitHub¶
GitHub integration uses OAuth device flow authentication. Run summon auth github login to authenticate interactively.
For CI/CD and enterprise environments where interactive auth is unavailable, you can set a personal access token via environment variable:
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_GITHUB_PAT |
text | (none) | GitHub personal access token (fallback when OAuth token file is absent). Should use a recognized prefix (ghp_, github_pat_, gho_, ghu_, ghs_, ghr_); unrecognized formats trigger a warning but are accepted. OAuth token file takes priority when both are present. |
See GitHub Integration for setup details.
Global PM¶
Advanced
These options are hidden behind "Configure advanced settings?" in the summon init wizard. They can always be set directly with summon config set.
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_GLOBAL_PM_SCAN_INTERVAL_MINUTES |
integer | 15 |
How often the Global PM scans all projects (minutes, minimum 1). |
SUMMON_GLOBAL_PM_CWD |
text | (data dir) | Working directory for the Global PM. Must be an absolute path. Defaults to <data-dir>/global-pm. |
SUMMON_GLOBAL_PM_MODEL |
text | (inherit) | Claude model for the Global PM. Defaults to SUMMON_DEFAULT_MODEL. |
Display¶
Advanced
These options are hidden behind "Configure advanced settings?" in the summon init wizard. They can always be set directly with summon config set.
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_MAX_INLINE_CHARS |
integer | 2500 |
Maximum characters for inline Slack messages. Responses longer than this are uploaded as files. |
Behavior¶
Advanced
These options are hidden behind "Configure advanced settings?" in the summon init wizard. They can always be set directly with summon config set.
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_PERMISSION_DEBOUNCE_MS |
integer | 2000 |
Milliseconds to wait before posting a permission request to Slack. Batches rapid tool approvals into a single message. |
SUMMON_PERMISSION_TIMEOUT_S |
integer | 900 |
Seconds to wait for user approval before auto-denying a permission request. Default is 15 minutes. Set to 0 to disable the timeout (wait indefinitely). |
SUMMON_NO_UPDATE_CHECK |
boolean | false |
Disable the background PyPI update check on summon start. |
SUMMON_SAFE_WRITE_DIRS |
text | `` | Comma-separated directories where writes are allowed without entering containment (e.g. hack/,.dev/). Relative paths resolve against the project root (the cwd passed to the session); absolute paths also work. Tilde (~) is expanded to the home directory. |
Thinking¶
Advanced
These options are hidden behind "Configure advanced settings?" in the summon init wizard. They can always be set directly with summon config set.
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_ENABLE_THINKING |
boolean | true |
Enable extended thinking (passes ThinkingConfigAdaptive to the Claude SDK). Set to false to disable. |
SUMMON_SHOW_THINKING |
boolean | false |
Route thinking block content to the Slack turn thread so thinking is visible. By default thinking is processed but not posted. |
Auto Mode¶
Advanced
These options are hidden behind "Configure advanced settings?" in the summon init wizard. They can always be set directly with summon config set.
The auto-mode classifier uses a secondary Sonnet model to automatically approve or block tool calls based on configurable prose rules. It only activates after the agent enters a worktree — read-only sessions never use the classifier.
| Config Key | Type | Default | Description |
|---|---|---|---|
SUMMON_AUTO_CLASSIFIER_ENABLED |
boolean | true |
Enable the Sonnet classifier for automatic tool approval. When enabled, the classifier activates on worktree entry. |
SUMMON_AUTO_MODE_ENVIRONMENT |
text | `` | Environment description for the classifier (e.g. production server, staging environment). Provides context for safety decisions. |
SUMMON_AUTO_MODE_DENY |
text | `` | Custom deny rules (newline-separated). Overrides the built-in deny rules when set. Any tool matching a deny rule is blocked. |
SUMMON_AUTO_MODE_ALLOW |
text | `` | Custom allow rules (newline-separated). Overrides the built-in allow rules when set. Tools matching an allow rule (with no deny match) are approved. |
See Permissions for the full classification flow and default rules.
Standard Variables That Affect summon¶
These are not summon-specific, but summon respects them:
| Variable | Description |
|---|---|
NO_COLOR |
Disable colored terminal output. summon checks this alongside --no-color. |
EDITOR |
Editor opened by summon config edit and summon hooks set (when no JSON argument is given). Defaults to system editor. |
XDG_CONFIG_HOME |
Base for summon's config directory. Config is stored at $XDG_CONFIG_HOME/summon/config.env. Defaults to ~/.config/summon/. Non-absolute values are ignored. |
XDG_DATA_HOME |
Base for summon's data directory (SQLite database, logs, update cache). Stored at $XDG_DATA_HOME/summon/. Defaults to ~/.local/share/summon/. Non-absolute values are ignored. |