SAF: Config Reference
Every config option, its default, where it's read, and what it controls.
Last updated: 2026-05-12 (Full audit — 16 sections, many new since May 6)
File: souveraine.toml (or souveraine.yaml)
Loaded by ConsciousnessConfig::load() in src/core/config.rs.
[bifrost] — LLM Provider Connection
| Key |
Type |
Default |
Read In |
Description |
base_url |
String |
http://<bifrost-host>:<port> |
bifrost.rs |
Bifrost API endpoint |
api_key |
String |
(OS keyring or env) |
bifrost.rs |
Bearer token for auth. Falls back to credentials::get_bifrost_key() which checks env BIFROST_KEY then OS keyring |
primary_model |
String |
fireworks/.../kimi-k2p5-turbo |
local.rs, server.rs |
Default model for conversations |
virtual_key |
String |
(env BIFROST_VIRTUAL_KEY) |
bifrost.rs |
x-bf-vk header |
Note: The api_key may also include a Bifrost bearer token embedded in the example config. In-memory fallbacks read from env vars before the keyring.
[models.<name>] — Per-Model Overrides
| Key |
Type |
Default |
Description |
provider |
String |
"bifrost" |
Provider name |
model |
String |
— |
Model path for provider |
context_limit |
Uint |
128000 |
Context window in tokens |
output_limit |
Uint |
8192 |
Max output tokens |
archivist_threshold |
Float |
0.7 |
Per-model archivist threshold |
archivist_interval |
Uint |
100 |
Per-model archivist interval |
Note: Model names with dots (like kimi-k2.5-turbo) must use quoted table headers: [models."kimi-k2.5-turbo"]. Built-in defaults for kimi-k2p5-turbo and deepseek-v4-pro.
[subconscious] — N+1 / Aster Configuration
| Key |
Type |
Default |
Description |
n1_enabled |
Bool |
true |
Enable N+1 subconscious pass |
n1_trigger |
Enum |
every_response |
When to trigger: every_response, every_n_responses(N), time_based(S), manual |
inbox_enabled |
Bool |
true |
Enable 3-box inbox system |
model |
String (opt) |
None |
Model handle for Aster (e.g. "openai/glm-5.1"). None = use primary's model |
max_tokens |
Uint (opt) |
None |
Max tokens for Aster's response. None = model default |
[reflection] — N+25 Configuration
| Key |
Type |
Default |
Description |
enabled |
Bool |
true |
Enable N+25 reflection |
message_interval |
Uint |
25 |
Messages between reflections |
trigger |
Enum |
step_count |
off, step_count, compaction_event |
[archivist] — N+100 Configuration (NOT WIRED)
| Key |
Type |
Default |
Description |
enabled |
Bool |
true |
Enable N+100 compression |
interval |
Uint |
100 |
Messages between syntheses |
threshold |
Float |
0.7 |
Context pressure threshold (0.0-1.0) |
compression_model |
String |
"auto" |
Model for synthesis (NOT used — archivist not rebuilt post-cleanup) |
synthesis_elements |
Vec |
[Themes, Emotions, Tensions, Anchors, Evolution] |
Elements to include in synthesis |
Critical: N+100 archivist is not implemented. Config fields exist but nothing reads them. See gaps.md.
[compaction] — In-Session Message Compaction
| Key |
Type |
Default |
Description |
enabled |
Bool |
true |
Enable compaction engine |
strategy |
Enum |
cull |
Default strategy: microcompact, sliding_window, summary, cull |
warn_pressure |
Float |
0.80 |
Tier-1 (warn) advisory threshold |
urgent_pressure |
Float |
0.90 |
Tier-2 (urgent) advisory threshold |
critical_pressure |
Float |
0.95 |
Tier-3 (critical) advisory threshold |
Per-agent-type overrides under [compaction.per_type.<type>] where type is primary, subconscious, or subagent. Each override has the same fields as above plus max_summary_length, kv_target, min_messages.
[subagent] — Forked Agent Configuration
| Key |
Type |
Default |
Description |
enabled |
Bool |
true |
Enable subagent spawning |
max_concurrent |
Uint |
3 |
Max concurrent forks |
timeout |
Uint |
300 |
Per-fork timeout in seconds |
max_depth |
Uint |
3 |
Max nesting depth |
max_tool_rounds |
Uint |
50 |
Max tool rounds per turn |
warning_1_threshold |
Float |
0.80 |
First "attention narrowing" warning |
warning_2_threshold |
Float |
0.95 |
Second "last chance" warning |
inter_round_delay_ms |
Uint |
300 |
Delay between subagent tool rounds |
[memory] — Git-Backed Memory
| Key |
Type |
Default |
Description |
git_enabled |
Bool |
true |
Enable git repo management |
auto_commit |
Bool |
true |
Auto-commit on writes |
auto_push |
Bool |
false |
Auto-push to remote (NOT used — push not implemented) |
base_path |
Path (opt) |
None → ~/.souveraine/ |
Base path for memory & agents |
[server] — HTTP Server Configuration
| Key |
Type |
Default |
Description |
bind |
String |
127.0.0.1 |
Server bind address |
port |
Uint |
8484 |
TCP port |
url |
String |
http://127.0.0.1:8484 |
Client-facing URL (env SOUVERAINE_SERVER_URL overrides) |
[server.auth]
| Key |
Type |
Default |
Description |
required |
Bool |
true |
Require bearer token for memory routes |
allow_loopback |
Bool |
true |
Allow 127.0.0.1/::1 to bypass auth |
[schedules] — Cron Schedules
| Key |
Type |
Default |
Description |
enabled |
Bool |
true |
Enable schedule system |
schedules_dir |
Path (opt) |
None |
Custom schedules directory |
[events] — Event Persistence (Firehose)
| Key |
Type |
Default |
Description |
enabled |
Bool |
true |
Enable JSONL event log |
events_dir |
Path (opt) |
None |
Custom events directory |
retain_days |
Uint |
30 |
Days to retain event logs |
[federation] — Cross-Instance Sync
| Key |
Type |
Default |
Description |
enabled |
Bool |
false |
Enable federation |
instance_label |
String (opt) |
None |
Human-readable instance label |
[websocket] — WebSocket Server
| Key |
Type |
Default |
Description |
enabled |
Bool |
false |
Enable WebSocket listener |
port |
Uint |
7373 |
WebSocket port |
[sensorium] — Interface Configuration (NOT WIRED)
| Key |
Type |
Default |
Description |
primary_bandwidth |
Enum |
high |
Bandwidth class: high, medium, low, minimal |
Environment Variables
| Variable |
Overrides |
Default |
SOUVERAINE_CONFIG_DIR |
Config search path |
~/.config/souveraine/ |
SOUVERAINE_SERVER_URL |
Server client URL |
http://127.0.0.1:8484 |
SOUVERAINE_SERVER_BIND |
Server bind address |
Config value or 127.0.0.1:8484 |
SOUVERAINE_API_KEY |
API bearer token |
"" |
BIFROST_KEY |
Bifrost bearer token |
(OS keyring) |
BIFROST_VIRTUAL_KEY |
x-bf-vk header |
"" |
SOUVERAINE_GITEA_URL |
Gitea API URL |
(none) |
SOUVERAINE_AGENT |
Default agent ID for memory tool |
"default" |
AGENT_ID |
Alternative agent ID env var |
"default" |