Skip to content

Application Configuration

Every key below lives in your Polytoken configuration file (JSON5, TOML, or YAML). Collection keys list their child settings; <name> marks a value you name yourself.

Most settings are easier to change in the configurator (polytoken config ui). Edit the file by hand for the settings it does not cover.

Full schema: JSON | YAML.

Providers Polytoken can use, keyed by a name that models reference.

NameTypeDescription
kindone of: catalog, custom_anthropic_compatible, custom_open_ai_compatible, custom_open_ai_responsesProvider source: a built-in catalog entry, or a custom backend that speaks the Anthropic or OpenAI protocol.
kind.namestringCatalog entry to resolve, such as anthropic, openai, or codex.
urlstringBase URL Polytoken sends provider requests to. Polytoken appends the endpoint path for the provider’s protocol, so enter the origin only (for example https://api.anthropic.com) for Anthropic Messages providers, or the versioned base (for example https://api.openai.com/v1) for OpenAI Chat Completions providers. OpenAI Responses accepts both the origin and a trailing /v1 (it is deduplicated automatically). For Azure OpenAI Responses, use https://<resource>.openai.azure.com/openai/v1 as the base, azure_api_key for auth, and the deployment name as the model name. The same base URL is also used to list available models. Overrides the catalog default for catalog providers, and is required for custom providers.
authone of: no_auth, static_key, codex_device, kimi_code_deviceHow Polytoken authenticates requests to the provider: no auth, a fixed key, or the OpenAI Codex device flow.
auth.keystringSecret key value sent in the auth header, usually an environment reference such as ${OPENAI_API_KEY}. Leading and trailing whitespace and newlines are stripped when the key is loaded; every other character is preserved, so keys that contain dots (for example a z.ai key shaped like id.payload.sig) are valid.
auth.formatone of: bearer_token, anthropic_x_api_key, azure_api_keyHeader scheme for the key (bearer_token, anthropic_x_api_key, or azure_api_key). Omit to use the provider’s recommended format.
auth.profilestringCodex auth profile name that supplies tokens for the device OAuth flow.
auth.profilestringKimi Code auth profile name that supplies tokens for the device code OAuth login flow. Use the profile name you chose when running polytoken login to authenticate with Kimi Code.
protocolenumAPI dialect the provider speaks (for example anthropic_messages, openai_chat_completions, or openai_responses). custom_open_ai_compatible providers default to openai_chat_completions; set openai_responses explicitly only when the provider serves the OpenAI Responses API. custom_open_ai_responses providers default to openai_responses.
headersmapExtra HTTP headers Polytoken attaches to every request sent to this provider. Use this to satisfy gateways or proxies that require custom headers, such as an internal routing token or a gateway-specific auth header. Header names must be valid HTTP header names. When a header name matches one Polytoken already sends per request, the per-request value takes precedence.
cache_control_strategyone of: provider_managed, anthropic_breakpointsControls how prompt caching is handled for Anthropic Messages API providers. Use provider_managed when the provider caches automatically server-side, or anthropic_breakpoints to emit explicit cache_control breakpoints for endpoints that forward to real Anthropic. Defaults based on the provider URL: first-party Anthropic uses anthropic_breakpoints, all others use provider_managed. Only meaningful for Anthropic Messages protocol providers.

Defines the models Polytoken can select, keyed by name. Each entry is a partial override: when the name matches a catalog model, Polytoken applies only the fields you set and inherits the rest; when it does not match, Polytoken builds a new model and requires you to name its provider. You can set any field, including the context window, reasoning controls, edit format, and tool batching. Set enabled to false to remove a model Polytoken would otherwise offer.

Entries can also target models a provider discovers at runtime. When the name matches a discovered model, Polytoken applies the entry as an overlay over the provider-reported configuration. If the provider has not reported the model yet, the overlay has no effect until the model becomes available. The provider-reported capability list determines eligibility for default slots, so the class override is informational for discovered models.

NameTypeDescription
enabledbooleanSet to false to remove a model Polytoken would otherwise offer; omit to leave the model available.
provider_namestringModel identifier Polytoken sends to the provider. It can differ from the name you use in models.
variantenumModel family: claude, openai, gemini, or other. Polytoken uses it to pick provider-appropriate defaults.
classenumSize class a model belongs to (full, mini, or nano). Required for custom models that do not match a catalog entry.
max_tokensintegerAbsolute output token ceiling the provider catalog reports for this model. Polytoken uses it for validation only; the effective limit sent to the provider is max_output_tokens_per_turn.
max_output_tokens_per_turnintegerPer-turn output token limit Polytoken sends to the provider. When omitted, Polytoken derives a default from the model’s context window. Must not exceed the model’s hard ceiling (max_tokens).
stop_sequencesstring listStop strings Polytoken forwards to the provider so generation halts on a match.
providerstringProvider backend this model runs on, which must match a configured provider; required for custom models.
reasoningone of: no_reasoning, effort, thinkingReasoning or thinking capability: whether reasoning is off, effort-steered, or thinking-steered.
reasoning.effort_setstringEffort family the levels belong to (for example an OpenAI reasoning effort set).
reasoning.can_disablebooleanWhether the model can turn reasoning off.
reasoning.levelsstring listDiscrete effort levels the model accepts, in provider order.
reasoning.default_levelstringDefault reasoning effort when you do not name one. Must be one of levels when present.
reasoning.can_disablebooleanWhether the model can turn thinking off.
edit_formatstringFile-edit format Polytoken exposes for the model (for example a hashline or patch format); omit to use the default.
context_windowintegerContext-window size in tokens, which Polytoken uses to decide when to compact and to derive the per-model compaction threshold. Required for every model; omitting it produces a validation error.
compaction_thresholdnumberShare of the context window at which compaction triggers for this model. When omitted, Polytoken computes it from the model’s context window and the per-tier compaction reserve, rounded down to two decimal places. When max_output_tokens_per_turn is also set, the reserve grows to accommodate it. Set to a value in (0.0, 1.0].
tool_loadingone of: eager, native_deferred, no_toolsHow Polytoken exposes tools to the model: from the first turn, on demand, or not at all.
supports_visionbooleanWhether the model accepts image inputs and can see image content in tool results. Defaults to false for custom models.
forced_tool_choice_supportedbooleanWhether the model can handle forced tool_choice requests end-to-end. Set to false for models whose thinking mode creates gaps that break subsequent turns after a forced tool call. When false, Polytoken uses a reminder message instead of forcing a tool call. Defaults to true.
max_tool_batch_sizeintegerMaximum number of counted, non-exclusive tool calls the model may issue in one assistant message. When omitted, the value derives from the model’s context_window: 4 for an unknown or small window, increasing for larger windows up to 8.
request_option_defaultsmapRequest options Polytoken applies by default when it calls this model. Omit the key or leave it empty to use provider defaults.
inheritsstringNames the model whose provider identity, class metadata, context window, and request defaults this model inherits. The child keeps any explicitly authored request options and replaces matching parent keys. Omit the key to keep the model independent.

Sets the source for a named facet, overriding auto-discovery. A facet is a pre-prompted mode such as plan or execute. Each entry’s source is a shipped polytoken:// reference or a project-relative file path that stays within the project.

Explicit sources take precedence over the built-in facets and over any facet files Polytoken discovers in its facet directories.

NameTypeDescription
sourcestringDefinition source for this facet or subagent: a shipped polytoken:// reference, or a project-relative file path that stays within the project.
NameTypeDescription
log_levelenumVerbosity of Polytoken’s diagnostic logs.
max_tool_turnsintegerMaximum number of tool round-trips a single turn may run before Polytoken ends the turn. Omit to use the built-in default; Polytoken treats zero as unset.
provider_stream_idle_timeout_secsintegerSeconds to wait for the next chunk from a provider stream before Polytoken treats the stream as stalled. When the stall fires, Polytoken collates whatever partial content arrived so far, persists it, and retries the provider request with that content in context rather than hanging indefinitely. Omit to use the built-in default; Polytoken treats zero as unset.
provider_stream_max_lifetime_secsintegerMaximum wall-clock duration for a single provider stream before Polytoken proactively truncates it. When the limit fires, Polytoken preserves all partial content and continues the turn with a continuation prompt, avoiding upstream connection drops on long-running responses. Omit to use the built-in default. Set to zero to disable.
subagent_stall_threshold_secsintegerWall-clock seconds without subagent activity before Polytoken marks the subagent stalled and forces its provider stream to reconnect. Omit to use a value above the provider stream idle timeout so it only catches stalls the idle timer misses (such as a laptop sleeping on macOS). Polytoken treats zero as unset. Applied at daemon start; requires a restart to change.
subagent_liveness_watchdog_interval_secsintegerHow often Polytoken scans running subagents for stalled streams. Omit to use the built-in default. Polytoken treats zero as unset. Applied at daemon start; requires a restart to change.
follow_symlinks_for_configsbooleanWhether Polytoken follows symlinks when loading configuration and context files such as AGENTS.md, skills, facets, subagents, project variables, and .agentblock files. On by default. When disabled, Polytoken skips symlinked files and shows a warning for each one. Applies to both the project .polytoken/ directory and the global configuration directory.
compaction_max_retriesintegerMaximum number of retry attempts when a compaction pass fails due to a provider error or empty summary. Each retry applies progressively more aggressive history stripping, and EmptySummary retries append a stronger instruction to the compaction prompt. Set to zero to disable retries. Omit to use the built-in default.
NameTypeDescription
provider_autopsybooleanWhen on, saves a redacted report for each provider failure, without the request or response contents. Off by default.
NameTypeDescription
http_proxystringProxy URL for the plain-HTTP requests the built-in web tools make.
https_proxystringProxy URL for the HTTPS requests the built-in web tools make.
web_fetch_disallow_httpbooleanWhen on, blocks web_fetch from following plain-HTTP URLs except for localhost and loopback addresses.
NameTypeDescription
trust_storestringPath to a PEM file holding one or more CA certificates Polytoken should trust in addition to the root certificates it trusts by default (its built-in root bundle). The default roots always stay enabled; the CA here is added on top. Use this to inspect Polytoken’s own traffic with an HTTPS interception proxy such as mitmproxy, Charles, or Burp Suite: point this at the proxy’s CA certificate so Polytoken accepts the proxy’s man-in-the-middle certificate instead of failing verification. The file is a PEM bundle: one or more base64-encoded CA certificates, each wrapped in -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- markers. A single CA (for example mitmproxy’s mitmproxy-ca-cert.pem) or a concatenated bundle of several CAs both work. Relative paths resolve against the directory Polytoken was started in (the daemon working directory, normally the project root). Absolute paths are used as given. Omit this key to trust only the default roots, which is the default. Applies to daemon-owned outbound HTTPS only: model provider requests, the built-in web_fetch and web_search tools, and the OpenAI Codex login refresh client. It does not apply to standalone polytoken auth or configurator flows run from the terminal. A path that cannot be read or parsed is a hard error at startup and on reload, so a missing or invalid file is never silently ignored.
NameTypeDescription
disabledstring listBuilt-in system reminders Polytoken should not add to a session. Polytoken flags unknown or malformed names as config errors.
NameTypeDescription
max_retriesintegerMaximum number of retry attempts for transient provider errors with computed backoff or a provider-supplied retry-after hint. Set to 0 to disable all provider retries. Provider rate limits without a retry-after hint use Polytoken’s fixed six-step schedule for any positive value.
base_delay_msintegerBase delay in milliseconds for computed exponential backoff. Provider rate limits without a retry-after hint use a fixed 30s, 60s, 120s, 240s, 480s, 960s schedule instead.
max_computed_delay_msintegerMaximum computed delay in milliseconds (caps exponential backoff only, not provider-hinted Retry-After values or the fixed no-hint rate-limit schedule).
NameTypeDescription
plan_handoff_activate_goalbooleanWhen on, a plan handoff automatically activates goal mode. When off, a plan handoff does not activate goal mode unless you enable it here.
agent_goal_auto_acceptbooleanWhen on, Polytoken accepts goals the model proposes without asking you to confirm each one. When off, goals the model proposes require your approval before they take effect.
max_continuations_per_goalintegerMaximum automatic continuations Polytoken may run for one active goal before it stops scheduling follow-up turns for that goal. Set this to 0 to disable automatic goal continuation while keeping Goal Driver metadata and tools available.
NameTypeDescription
max_filesintegerMaximum number of entries the recursive catalog walk collects before stopping. Applies only outside source-controlled repositories.
max_duration_msintegerMaximum wall-clock milliseconds the recursive catalog walk may spend before stopping. Applies only outside source-controlled repositories.
exclude_generatedbooleanWhen on (default), Polytoken prunes generated build-output trees (node_modules, bazel-out, bazel-bin, bazel-testlogs, and any bazel-* directory) from the recursive catalog in all modes, including show-ignored mode.
cache_ttl_secsintegerHow long (in seconds) the daemon serves a cached file catalog before rebuilding it. The cache is also invalidated when a file-mutating tool completes.
NameTypeDescription
block_liststring listMCP tool names, in the mcp__server__tool form, that Polytoken hides from the model.
default_timeout_secondsintegerMaximum seconds a single tool call to this server may run before Polytoken cancels it. Omit for no server-level limit; Polytoken rejects zero.
auth_key_namestringDirectory name under auth/mcp/ where Polytoken stores this server’s OAuth credentials. Omit to use the server name (the default). Two OAuth servers that should keep separate credentials can set distinct names here, for example atlassian-polytoken and atlassian-summoner. The name may contain only ASCII letters, digits, underscores, and hyphens, and must not start with an underscore or contain two underscores in a row.
default_enabledbooleanWhether Polytoken attempts to connect to this server at startup. Set to false to keep the server available but disconnected until you enable it with /mcp. Defaults to true.
transportone of: stdio, http
commandstringExecutable to launch as the local stdio MCP server.
argsstring listCommand-line arguments passed to the stdio server command.
envmapEnvironment variables set on the stdio child process. The child starts with a cleared environment. These override any variables copied by pass_env.
pass_envstring listNames of environment variables to copy from the Polytoken process into the stdio child process. Omit to use a safe default set (HOME, PATH, LANG, TMPDIR). Set to an empty list to pass nothing. Set to a list of names to pass exactly those variables. Variables in env with the same name override values passed through here.
log_stderrbooleanWhen on, logs the server’s stderr to a per-server log file. On by default.
log_stdoutbooleanWhen on, logs the server’s stdout to a per-server log file. Off by default.
urlstringEndpoint URL of the remote streamable-HTTP MCP server.
authone of: none, authorization-header, oauthHow Polytoken authenticates to the remote server: none, a fixed Authorization header, or OAuth.
auth.valuestringAuthorization header value to send, including any scheme prefix (for example Bearer ...).
auth.scopesstring listOAuth scopes to request during authorization. Omit to let the server choose the defaults.
auth.registrationone of: auto, client-metadata-url, pre-registeredHow Polytoken registers its OAuth client: auto, client-metadata-url, or pre-registered.
auth.registration.urlstringHTTPS URL with a non-root path that serves the client metadata document.
auth.registration.client_idstringOAuth client identifier issued by the server.
auth.registration.client_secretstringOAuth client secret paired with the client ID, when the server requires one.
auth.redirectone of: ephemeral-loopback, fixedHow Polytoken handles the OAuth redirect: ephemeral-loopback or fixed.
auth.redirect.uristringFixed redirect URI the authorization server returns to after consent. Must be HTTPS or a loopback HTTP address.
headersmapExtra HTTP headers Polytoken sends with every request to the remote server.
reinit_on_expired_sessionbooleanWhen on, reinitializes the HTTP session automatically when the server signals it has expired.
NameTypeDescription
strategyenumHow Polytoken picks one enabled search provider per web_search call: round_robin to rotate in order, or random to select one per call.
providers.brave.enabledbooleanWhether this provider is eligible for web_search calls.
providers.brave.keystringAPI key for this provider, usually an environment reference such as ${SEARCH_API_KEY}.
providers.tavily.enabledbooleanWhether this provider is eligible for web_search calls.
providers.tavily.keystringAPI key for this provider, usually an environment reference such as ${SEARCH_API_KEY}.
providers.exa.enabledbooleanWhether this provider is eligible for web_search calls.
providers.exa.keystringAPI key for this provider, usually an environment reference such as ${SEARCH_API_KEY}.
providers.kagi.enabledbooleanWhether this provider is eligible for web_search calls.
providers.kagi.keystringAPI key for this provider, usually an environment reference such as ${SEARCH_API_KEY}.
NameTypeDescription
themeenumColor palette: auto (detect from the terminal background), light, or dark.
theme-filestringTheme file to load for the TUI. When unset, Polytoken uses the built-in default theme. Set this to a full path: use polytoken://themes/default.yaml for a built-in theme, or $USER_DIRECTORY/themes/my-theme.yaml for a user theme. The $USER_DIRECTORY variable resolves to your Polytoken config directory and supports env-substitution syntax.
alt-screenenumAlternate-screen policy: auto (render inline under a terminal multiplexer, alternate screen otherwise), always, or never.
confirm-quitbooleanWhether Polytoken asks before quitting. When unset, Polytoken follows the per-machine preference, and asks if no preference is set.
densityenumCard spacing: standard (the default) or compact.
show-all-thinking-blocksbooleanWhether completed model thinking cards stay visible in the transcript after they finish.
show-system-remindersbooleanWhether the transcript shows system-reminder cards.
promptmapTUI prompt settings.
navigationmapKeyboard navigation settings.
terminal-bellenumBell behavior for attention states: off, audible, or auto (the default, which notifies on attention).
slow-refreshbooleanWhen on, the TUI redraws streaming content at most every 5 seconds instead of the default ~30 times per second. This reduces screen flashing on e-ink displays during active assistant turns. Typing, scrolling, and resizing stay immediate.
expand-file-edit-cardsbooleanWhen on, file write and edit tool-call cards (file_write, file_edit_search_replace, file_edit_hashline, patch_edit) start expanded in the conversation transcript so you can see the full diff or content without clicking. You can still collapse any card and it stays collapsed. On by default.
show-ignored-files-in-pickerbooleanWhether the reference (@) file picker shows files matched by .gitignore, .claudeignore, or .polytokenignore when it opens. Off by default. You can toggle this at any time during a session with Shift+Tab inside the @ typeahead; this setting controls only the starting state.
NameTypeDescription
default-tierenumStarting scope of the help overlay when opened: overview (the default), navigation, or advanced.
NameTypeDescription
sideenumWhich side the sidebar appears on: left or right (the default).
default-stateenumInitial sidebar state: open (the default) or collapsed. Polytoken still collapses it automatically on narrow terminals.
collapse-thresholdintegerViewport column width below which Polytoken switches to mini mode, retracting the sidebar into a floating overlay.
widthintegerColumn width of the sidebar. Polytoken keeps it between 30 and 60.
NameTypeDescription
enabledbooleanWhether mouse capture and mouse-driven interactions are on. On by default.
NameTypeDescription
commandsmapKey chord overrides keyed by command id. A value may be one chord string or a list of chord strings. Omit a command to use its built-in default, or set it to an empty list to disable that command. Duplicate chords are allowed; the active TUI context and command priority decide which action runs first.
NameTypeDescription
commandstringExternal editor command to launch. When unset, Polytoken picks an editor automatically.
NameTypeDescription
collapse-thresholdintegerPaste size above which pasted content collapses into a sidecar preview instead of rendering inline.
NameTypeDescription
persistbooleanWhether Polytoken saves prompt history under the project .polytoken directory. On by default.
max-entriesintegerMaximum number of prompt history entries retained.
NameTypeDescription
size-capintegerMaximum byte size of a single clipboard copy.
NameTypeDescription
enabledbooleanWhether animations run at all. On by default.
terminal-titlebooleanWhether the terminal title animates during an assistant turn. On by default.
NameTypeDescription
kindenumWhich module to render: cwd, source-control, facet, model, permissions, or context-usage. The source-control module shows the current branch label. For Git repositories, the label turns yellow when the working tree has uncommitted changes, and arrows indicate how many commits the local branch is ahead () or behind () its tracked upstream branch.
argsmapReserved per-module arguments for the status-line module.

Config schema version. Polytoken writes 3; older configs without this key are upgraded when loaded.

When on, Polytoken resolves $(command) and ${VAR:-command} substitutions in config values by running each command with /bin/sh -c once when it loads config. Only your user/global config can turn this on; values in a project config never run commands. Off by default.

NameTypeDescription
fullstringName of the primary model a session uses by default. May include an effort suffix, e.g. "gpt-5.6-luna(high)", to set the default reasoning effort for this tier.
ministringName of the smaller model Polytoken uses to compact context and to run the autonomous permission classifier. Falls back to full when unset. May include an effort suffix.
nanostringName of the smallest model class. When unset, default_model:nano falls back to mini, then full. May include an effort suffix. This is an independent tier with its own model and effort.
NameTypeDescription
default_facetstringFacet Polytoken starts in for a new interactive session, such as plan or execute. Falls back to execute when unset.
default_exec_facetstringFacet Polytoken starts in for a non-interactive polytoken exec run. Falls back to execute when unset.
NameTypeDescription
commandenumShell Polytoken uses to run shell tool calls.
init_scriptstringProject-relative script Polytoken sources once before the first shell tool call, so its environment changes apply to later shell calls.

Protects secrets the model might otherwise read or repeat. permissions.secret_words lists values Polytoken blocks from environment exposure and redacts from tool output, and permissions.secret_files marks files Polytoken asks before reading and redacts from search results.

This block is separate from the permissions rule file, which controls the per-tool allow, ask, and deny rules.

NameTypeDescription
secret_wordsstring listValues Polytoken blocks from environment exposure and redacts from tool output.
secret_filesstring listFiles Polytoken asks before reading and redacts from search results.
NameTypeDescription
trigger_turnbooleanWhether Polytoken starts a new turn when a notification arrives, instead of waiting for your next prompt. Reserved; Polytoken does not act on this setting.
trigger_typesstring listNotification types that should start a turn when trigger_turn is on. Reserved; Polytoken does not act on this setting.
auto_drain_notificationsbooleanWhether Polytoken folds each notification into the session history as it arrives, so the model sees it without a manual step. On by default.

Selects the strategy Polytoken uses to decide whether a tool call is allowed when no other matcher applies. The strategies are standard (apply your allow, ask, and deny rules), bypass (allow every call without asking), bypass_plus (allow every call except those your deny rules block), and autonomous (let a classifier decide which calls are safe to run without prompting you). Omit the key to use the standard strategy.

Tunes the autonomous permission classifier, which decides whether a tool call is safe to run without asking you. autonomous_permission_matcher.classifier_model names the model that judges each call, classifier_rules gives it free-form guidance, and max_consecutive_denials caps how many denials the classifier can return in a row before Polytoken escalates to you. This block takes effect only when the autonomous strategy is active.

NameTypeDescription
classifier_modelstringModel that judges whether each tool call is safe to run without asking you.
classifier_rulesstringFree-form guidance the classifier applies when judging tool calls.
max_consecutive_denialsintegerNumber of denials the classifier may return in a row before Polytoken escalates to you.

Configuration values for extensions, keyed by extension name. Polytoken passes each value to the matching extension and does not interpret the contents itself.

Sets the source for a named subagent, overriding auto-discovery. A subagent is a delegate Polytoken spawns to run a bounded task in its own context. Each entry’s source is a shipped polytoken:// reference or a project-relative file path that stays within the project.

Explicit sources override the built-in subagents and any files Polytoken discovers in .polytoken/subagents/.

NameTypeDescription
sourcestringDefinition source for this facet or subagent: a shipped polytoken:// reference, or a project-relative file path that stays within the project.

Crash-reporting and diagnostic data policy. This block is global-only: a project config may not set or erase any key inside it. The data.automatic_crash_reporting key controls whether Polytoken sends automatic crash reports.

NameTypeDescription
automatic_crash_reportingbooleanControls whether Polytoken sends automatic crash reports when the process exits unexpectedly. On by default once your user/global config loads successfully. Set to false to opt out. If your global config is missing, unreadable, or malformed, crash reporting stays off. Project configs may not set this key.

Self-updater check behavior and release channel. This block is global-only: a project config may not set or erase any key inside it. The updates.automatic_check key controls whether Polytoken checks for available updates at launch. The updates.channel key selects which release channel to track.

NameTypeDescription
automatic_checkbooleanWhether Polytoken checks for available updates at launch. On by default. Set to false to disable the automatic launch-time check; polytoken update still works manually regardless of this setting. Project configs may not set this key.
channelone of: latest, stableWhich release channel to track for updates. Defaults to latest, which resolves the newest published release. Set to stable to skip unstable pre-releases. Project configs may not set this key.

OpenTelemetry trace export. This block is global-only: a project config may not set or erase any key inside it. When this block is absent, trace export is disabled and Polytoken sends no OTLP requests. All settings come exclusively from this block; ambient OTEL_* environment variables do not enable or configure export.

NameTypeDescription
protocolone of: http/protobuf, grpcThe transport protocol for trace data. Set to http/protobuf for OTLP/HTTP or grpc for OTLP/gRPC.
endpointstringThe collector endpoint. For http/protobuf, Polytoken expects a base URI such as http://localhost:4318 and appends /v1/traces automatically. For grpc, Polytoken expects a base URI such as http://localhost:4317 and uses it as the gRPC authority. The endpoint must not contain a path (other than a single trailing slash), query parameters, fragments, or userinfo.
headersmapCustom headers to send with each trace export request. Keys and values support environment-variable substitution (for example key = "${AUTH_TOKEN}"). Polytoken treats both keys and values as secrets and never writes them to diagnostics, logs, or spans.
service_namestringThe service name reported in trace resource attributes. Defaults to polytoken when not set. Polytoken distinguishes daemon and exec modes with a separate attribute rather than changing the service name.

Each command ID below is a key you can set under tui.keyboard.commands. The value is a key chord string (such as "ctrl+g") or a list of chord strings (such as ["ctrl+shift+b", "ctrl+f1"]). An empty list disables that command. Unknown command IDs are rejected. Chords that appear in more than one command are resolved by the active context.

Separators are flexible: ctrl-shift-q and ctrl+shift+q are equivalent. The + and - keys themselves use the names Plus and Minus when you need to bind them (for example, ctrl+shift+plus). On a US keyboard, the physical +/= key sends = with Shift, so ctrl+shift+plus may arrive as Ctrl+Shift+Equal depending on your terminal.

Not all key combinations survive SSH or certain terminal emulators. If a chord does not seem to work, type /inputdebug in the prompt to open a diagnostic overlay that shows the exact keycodes the TUI receives.

Command IDDefaultActionScopes
open-helpCtrl+/, F1Open this command reference from any normal input context.Global
end-sessionCtrl+CPress twice before the flash expires to terminate the daemon session.Global
detach-sessionCtrl+DLeave the daemon running and close only this TUI.Global
interrogative-yesYAccept a yes/no interrogative.Interrogative
interrogative-noNReject a yes/no interrogative.Interrogative
interrogative-cancelEscCancel the pending interrogative.Interrogative
interrogative-submitEnterSubmit the pending interrogative answer.Interrogative
interrogative-nextEnterAdvance to the next ask-user-question item.Interrogative
interrogative-toggleSpaceToggle the selected option or custom-answer checkbox.Interrogative
interrogative-edit-customTabMove focus into or out of the custom-answer editor.Interrogative
interrogative-copyCtrl+YCopy the plan or question explanation to clipboard.Interrogative
interrogative-monitor-mode-previousLeft, [Cycle the permission monitor mode selector backward in a permission popup.Interrogative
interrogative-monitor-mode-nextRight, ]Cycle the permission monitor mode selector forward in a permission popup.Interrogative
interrogative-toggle-contextCtrl+Shift+B, Ctrl+F1Collapse or expand the ask_user_question context area.Interrogative
toggle-sidebarCtrl+Shift+B, Ctrl+F1Open or collapse the sidebar.Sidebar
toggle-sidebar-flagsCtrl+F2Open or close the flagged files pane.Sidebar
toggle-sidebar-jobsCtrl+F3Open or close the async jobs pane.Sidebar
toggle-sidebar-todosCtrl+F4Open or close the todos pane.Sidebar
submit-promptEnterSend the current prompt to the attached daemon session.Prompt
insert-newlineShift+Enter, Alt+EnterAdd a newline without submitting the prompt.Prompt
open-editorCtrl+GOpen the prompt in your configured editor, then restore it.Prompt
enter-navigationCtrl+UpMove focus from the prompt into conversation navigation.Prompt
copy-promptCtrl+YCopy the complete prompt draft.Prompt
cut-promptCtrl+Shift+YCopy the prompt text and clear the buffer so it can be restored later.Prompt
local-pasteCtrl+VPaste the most recently copied or cut prompt text back into the prompt.Prompt
history-searchCtrl+ROpen fuzzy search across persisted prompt history.Prompt
prompt-permission-typeaheadCtrl+Shift+POpen or cycle the permission-monitor argument typeahead.Prompt
send-to-backgroundCtrl+BSend the currently running shell tool to the background.Prompt
model-reasoning-previous[Select the previous reasoning level for the highlighted model.Prompt
model-reasoning-next]Select the next reasoning level for the highlighted model.Prompt
copy-cardCtrl+YCopy the focused card’s raw backing content.Conversation
rewind-cardCtrl+ROpen rewind confirmation for the focused card (prompt, compaction, or context clear).Conversation
exit-navigationEscReturn focus from conversation navigation to the prompt.Conversation
help-closeEscClose help and restore the previous floating window.Help
palette-acceptTab, EnterComplete the selected result in the prompt.Slash palette, Reference picker
history-acceptEnterReplace the draft with the selected history item.History search
palette-cancelEscClose the active typeahead or search popup.Slash palette, Reference picker, History search
dialog-acceptEnterActivate the selected dialog option.Rewind confirmation
dialog-number1-9Activate a visible dialog option by number.Rewind confirmation
dialog-closeEscClose the dialog without taking its primary action.Rewind confirmation
todo-viewer-deleteDeleteOpen delete confirmation for the selected todo.Todo viewer
todo-closeEscClose todo details and return to the prompt.Todo viewer
prompt-facet-typeaheadShift+TabOpen or cycle the internal facet argument typeahead.Prompt