pub struct SynapsConfig {Show 50 fields
pub model: Option<String>,
pub thinking_budget: Option<u32>,
pub thinking_level: Option<ReasoningLevel>,
pub context_window: Option<u64>,
pub context_management: ContextManagementConfig,
pub startup: StartupConfig,
pub daemon: DaemonConfig,
pub subagent: SubagentLimits,
pub compaction_model: Option<String>,
pub compaction_mode: CompactionMode,
pub compaction_exclude: Vec<ContentClass>,
pub max_tool_output: usize,
pub bash_timeout: u64,
pub bash_max_timeout: u64,
pub subagent_timeout: u64,
pub api_retries: u32,
pub refusal_retries: u32,
pub telemetry: String,
pub cache_diagnostics: bool,
pub cache_ttl: CacheTtl,
pub cache_keepwarm: CacheKeepWarm,
pub cache_keepwarm_auto_max_hours: u32,
pub max_fps: u32,
pub scroll_lines: Option<u16>,
pub theme: Option<String>,
pub theme_transition: ThemeTransitionMode,
pub tui_background_opaque: bool,
pub tui_streaming_glow: bool,
pub process_scopes: bool,
pub agent_name: Option<String>,
pub identity: Option<String>,
pub disabled_plugins: Vec<String>,
pub favorite_models: Vec<String>,
pub disabled_skills: Vec<String>,
pub progressive_tool_disclosure: bool,
pub tools_activation_confirm: ActivationConfirm,
pub tools_deferred_loading: bool,
pub session_persistence: SessionPersistence,
pub disabled_tools: Vec<String>,
pub shell: ShellConfig,
pub server: ServerConfig,
pub bridge: BridgeConfig,
pub auth: AuthConfig,
pub events: EventsConfig,
pub provider_keys: BTreeMap<String, String>,
pub keybinds: HashMap<String, String>,
pub turn_budgets: TurnBudgetsConfig,
pub memory: MemoryConfig,
pub memory_backend: MemoryBackendConfig,
pub warnings: Vec<String>,
}Expand description
Parsed configuration from the config file.
Fields§
§model: Option<String>§thinking_budget: Option<u32>§thinking_level: Option<ReasoningLevel>Named reasoning level, parsed from the same thinking = … key.
When Some, this is the authoritative level. When None, fall back
to thinking_budget for legacy numeric-only values.
context_window: Option<u64>§context_management: ContextManagementConfig§startup: StartupConfigFirst-turn / cold-start behaviour (startup.*).
daemon: DaemonConfigDaemon lifetime knobs (daemon.*); env vars still win.
subagent: SubagentLimitsSubagent fan-out limits (subagent.*).
compaction_model: Option<String>§compaction_mode: CompactionModeWhere compaction summarization runs (spec §9.4): remote provider or local-only (zero network construction).
compaction_exclude: Vec<ContentClass>Content classes excluded from remote compaction disclosure.
max_tool_output: usize§bash_timeout: u64§bash_max_timeout: u64§subagent_timeout: u64§api_retries: u32§refusal_retries: u32§telemetry: String§cache_diagnostics: bool§cache_ttl: CacheTtlPrompt-cache TTL strategy: “5m” (default) | “1h” | “hybrid”.
cache_keepwarm: CacheKeepWarmPrompt-cache keep-warm while idle (cache_keepwarm): off (default)
| auto | <N>h. See CacheKeepWarm and
docs/specs/cache-ttl-spec.md §7.
cache_keepwarm_auto_max_hours: u32Longest an auto keep-warm idle period may run, in hours
(cache_keepwarm_auto_max_hours, 1–48, default
DEFAULT_CACHE_KEEPWARM_AUTO_MAX_HOURS). An explicit <N>h mode
is its own window and ignores this.
max_fps: u32Max TUI redraw rate in frames/sec — caps streaming redraws (e.g. 60,
144, 240). User input always redraws immediately regardless. Default
60. Range 1–1000. The frame budget is 1000 / max_fps ms.
scroll_lines: Option<u16>Lines to scroll per mouse-wheel event. Different terminal emulators emit 1–9+ scroll events per physical notch; set this to compensate. Default: 3. Range 1–20.
theme: Option<String>§theme_transition: ThemeTransitionModeAnimated theme transitions: "on" (350 ms cross-fade, default),
"off" (instant snap), or integer milliseconds (0–2000).
tui_background_opaque: boolWhether the TUI paints its own opaque background. false preserves the terminal background.
tui_streaming_glow: boolWhether the prompt shows a glow sweeping across it while a turn streams. Default off.
process_scopes: boolRun the daemon, bash tool commands and PTY shells each in their own
systemd scope (Linux, when a systemd user manager is reachable), so the
out-of-memory killer can stop one runaway command instead of the whole
terminal scope with the daemon in it. process_scopes = off disables;
env SYNAPS_PROCESS_SCOPES overrides. Default on.
agent_name: Option<String>§identity: Option<String>§disabled_plugins: Vec<String>§favorite_models: Vec<String>§disabled_skills: Vec<String>§progressive_tool_disclosure: boolOpt-in progressive tool disclosure (Task 18). When false, providers receive the existing full tool schema byte-for-byte. When true, each stream starts with the small essential local core plus discovery and authorization gateways; exact activations are added per session.
tools_activation_confirm: ActivationConfirmHost confirmation policy for MODEL-INITIATED activate_tools
(tools.activation_confirm). Auto (default) authorizes without
prompting; Prompt asks the host (y/n confirm dialog); Deny never
authorizes (locked-down hosts). server.auto_approve_confirms = true
still authorizes regardless of this key.
tools_deferred_loading: booltools.deferred_loading (default on). With progressive disclosure on
the native Anthropic transport, every activatable tool is sent from the
first request with defer_loading: true and activate_tools answers
with tool_reference blocks, so an activation never changes the cached
prompt prefix. off restores the per-activation tools-array change.
session_persistence: SessionPersistenceOpt-in session persistence strategy (Task 35, spec §9.8). Json
(default) is the unchanged legacy full-rewrite path; Journal adds
an append-only delta journal with periodic atomic snapshots. See
docs/decisions/T35-session-journal-opt-in.md.
disabled_tools: Vec<String>Built-in tools to disable by runtime name (e.g. “bash”, “ls”). Removed from the registry at boot so they’re never offered to the model.
shell: ShellConfig§server: ServerConfig§bridge: BridgeConfig§auth: AuthConfig§events: EventsConfig§provider_keys: BTreeMap<String, String>§keybinds: HashMap<String, String>§turn_budgets: TurnBudgetsConfigTyped per-role turn budgets (Task 23, spec §8.1).
memory: MemoryConfigContinuous-memory settings surface (Task A2, spec §12).
memory_backend: MemoryBackendConfigHost-owned backend; selecting it does not enable recall or capture.
warnings: Vec<String>Non-fatal problems found while parsing the config file (unknown keys, unparseable values). Surfaced once at startup — never block boot.
Trait Implementations§
Source§impl Clone for SynapsConfig
impl Clone for SynapsConfig
Source§fn clone(&self) -> SynapsConfig
fn clone(&self) -> SynapsConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SynapsConfig
impl Debug for SynapsConfig
Source§impl Default for SynapsConfig
impl Default for SynapsConfig
Source§fn default() -> SynapsConfig
fn default() -> SynapsConfig
Auto Trait Implementations§
impl Freeze for SynapsConfig
impl RefUnwindSafe for SynapsConfig
impl Send for SynapsConfig
impl Sync for SynapsConfig
impl Unpin for SynapsConfig
impl UnsafeUnpin for SynapsConfig
impl UnwindSafe for SynapsConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more