How configuration is loaded
Pioneer loads configuration in layers:1
Built-in defaults
Defaults are compiled from the source tree’s
config/default.toml.2
Development local config
Debug builds also load
config/local.toml.3
User config file
Release builds load the platform user config file.
4
Explicit config override
PIONEER_CONFIG can point to a config file.User config location
Development builds use
pioneer-dev config paths.
Bind address
The most common config change is the gateway bind address. Default production gateway:Runtime home
The gateway stores runtime data under a home directory. Default release runtime home:- gateway database
- keystore database
- install state
- gateway settings
- editable identity files (
SOUL.md,IDENTITY.md) - memory capsules and thread-context indexes
- skills
- computer-use artifacts
- remote-access runtime files
SOUL.md and IDENTITY.md files in runtime home. Existing files are left unchanged. These files are read into the Soul Core and Identity Core prompt sections.
Provider credentials
Provider keys are stored in the gateway keystore and scoped to a workspace. As a result:- each workspace has its own provider credentials
- remote gateways need their own provider setup
- switching workspace or gateway also switches provider settings
keystore.db are covered in Secret Storage.
Database settings
Gateway database settings live under[gateway.database].
Common defaults:
Tool safety settings
Tool limits live under[gateway.tools].
Examples include:
- web fetch timeout
- maximum download size
- computer-use artifact retention
- maximum tool calls per turn
- retry limits
Skills settings
Skills settings live under[gateway.skills].
They control:
- whether skills are enabled
- skill search paths
- validation behavior
- trust thresholds
- dependency checks
- dynamic tool registration
CLI runtime settings
CLI runtime defaults live under[gateway.cli_agent_runtime], and named runtime instances can be configured under [gateway.cli_agent_runtimes.<id>].
The runtime settings API also exposes settings.cli_runtimes.instances. Client-facing changes should go through settings/update; app config is best for operator defaults and deployment-specific paths.
Remote access settings
Remote-access operator defaults live under[gateway.remote_access]. They define the relay address, local gateway address, service name, runtime directory, and restart policy.
The runtime enable flag and remote-access key are managed through settings/update. The key is stored in the gateway keystore, not in gateway-settings.toml.
Environment variables
Useful environment variables:Apply changes
There are two kinds of settings. App config files provide startup defaults and operator-managed configuration. After changing app config:settings/update. Clients should use the settings API instead of editing gateway-settings.toml directly. Those settings are meant to refresh the relevant runtime systems without making the user restart just to toggle behavior.
Related pages
Configuration Reference
View important config keys and examples.
Further reading
- Gateway Architecture explains which systems read gateway settings at runtime.
- Persistence explains
gateway.db, runtime home, and migration behavior. - Secret Storage explains why secret values are stored outside ordinary config.
- Protocol Layer explains how clients use
settings/getandsettings/update.