Enum Section
pub enum Section {
Show 22 variants
ModelProviders,
ModelRoutes,
EmbeddingRoutes,
RiskProfiles,
RuntimeProfiles,
Storage,
Memory,
Skills,
SkillBundles,
Mcp,
McpServers,
McpBundles,
KnowledgeBundles,
TtsProviders,
TranscriptionProviders,
Channels,
Hardware,
Agents,
PeerGroups,
Cron,
Tunnel,
QuickstartState,
}Expand description
One configuration section exposed by the curated section registry.
Variants§
ModelProviders
Pick a model provider to configure (Anthropic, OpenAI, OpenRouter, Ollama, custom OpenAI-compatible gateways, etc.). Multiple aliases per provider are supported — e.g. anthropic.production and anthropic.dev can coexist.
ModelRoutes
Named model routing hints (e.g. reasoning, fast, code). Each route maps a hint to a specific provider + model combo. Use hint:<name> as the model parameter to dispatch through a route.
EmbeddingRoutes
Named embedding routing hints (e.g. semantic, archive, faq). Each route maps a hint to an embedding-capable provider + model combo. Use hint:<name> as the embedding_model parameter.
RiskProfiles
Named risk profiles binding allowlists, denylists, and approval thresholds. Agents reference one via agents.<alias>.risk_profile.
RuntimeProfiles
Named runtime tuning profiles (token limits, retry policy, timeouts). Agents reference one via agents.<alias>.runtime_profile.
Storage
SQLite is the safe default for single-node installs (file-based, zero-config, no extra services). Pick Postgres for shared or multi-instance deployments, Qdrant for vector search, Markdown or Lucid for human-readable files. Each backend supports multiple aliased instances; agents reference them via memory.storage_ref.
Memory
Persistent memory backend. SQLite is the default; pick none to disable long-term recall entirely.
Skills
Skills tool settings — where skill markdown lives on disk (defaults to the data dir), and how the skills loader handles community repositories. Add skill BUNDLES under skill-bundles below.
SkillBundles
Named bundles of skill files. Agents reference a bundle to load a set of capabilities at startup.
Mcp
Model Context Protocol settings. Toggle enabled and pick deferred or eager loading. Individual MCP servers live under mcp.servers[].
McpServers
Individual Model Context Protocol servers. Each entry binds a transport (stdio, http, sse), the command or URL to reach it, optional headers, and a tool_timeout_secs cap (≤ 600). Each server’s name is its addressable key — rename via the section page rather than editing the field directly. Group servers into bundles under mcp_bundles below.
McpBundles
Named bundles of MCP servers, granted to agents that list the bundle in their mcp_bundles. Secure by default: an agent gets only the servers its bundles grant; with no bundle it gets no MCP servers.
KnowledgeBundles
Named bundles of knowledge sources (RAG indexes, doc folders). Agents reference a bundle to surface relevant snippets at inference time.
TtsProviders
Text-to-speech providers (OpenAI, ElevenLabs, Google, Edge, Piper). Configure one per voice / language; agents reference them by alias.
TranscriptionProviders
Speech-to-text providers (OpenAI Whisper, Groq, Deepgram, AssemblyAI, Google, local Whisper). Configure one per pipeline; agents reference them by alias.
Channels
Pick which chat platforms ZeroClaw should listen on. Global channel settings live on [channels]; each configured platform still gets its own alias.
Hardware
Optional: hardware peripherals (Arduino, STM32, GPIO, etc.). Skip if you don’t need them.
Agents
An agent binds a model provider, profiles, bundles, and channels into one dispatchable unit. Add one per persona; reuse the same alias across channels to share state.
PeerGroups
Named groups binding a channel, member agents, and external peers. Mutual opt-in: two agents become peers only when both appear in the same group’s agents list.
Cron
Scheduled tasks. Each cron entry binds a schedule expression to a prompt, channel, and target.
Tunnel
Optional: expose your gateway over the public internet via Cloudflare or ngrok. Pick none to keep it localhost-only.
QuickstartState
Quickstart lifecycle state. quickstart_completed flips to true once the Quickstart finishes a successful run; while false, the web gateway and TUI auto-launch the Quickstart on startup. completed_sections is a legacy per-section ledger retained for backwards compatibility with prior data.
Implementations§
Source§impl Section
impl Section
Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
Stable on-the-wire key. Also serves as the TOML
top-level prefix (e.g. providers.models.<type>.<alias>),
the curated section URL segment, and the
SectionInfo.key field returned by the gateway.
Sourcepub const fn shape(self) -> SectionShape
pub const fn shape(self) -> SectionShape
Editor shape — the dashboard and the CLI both dispatch off this so the same component lights up for the same section in both surfaces.
pub const fn group(self) -> SectionGroup
Sourcepub const fn help(self) -> &'static str
pub const fn help(self) -> &'static str
Per-section help blurb — single source of truth for
the copy shown above the section’s picker / form on
every surface (CLI ui.note(...), TUI heading,
dashboard SectionInfo.help).
Sourcepub fn label(self) -> String
pub fn label(self) -> String
Human-readable section label shown in every Config surface (gateway dashboard sidebar, zerocode Config pane, docs). Single source of truth — derived from the canonical wire key so the gateway, runtime, and docs cannot disagree.
pub fn from_key(s: &str) -> Option<Self>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Section
impl<'de> Deserialize<'de> for Section
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl FromArgMatches for Section
impl FromArgMatches for Section
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl JsonSchema for Section
impl JsonSchema for Section
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Subcommand for Section
impl Subcommand for Section
Source§fn augment_subcommands<'b>(__clap_app: Command) -> Command
fn augment_subcommands<'b>(__clap_app: Command) -> Command
Source§fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommandimpl Copy for Section
impl Eq for Section
impl StructuralPartialEq for Section
Auto Trait Implementations§
impl Freeze for Section
impl RefUnwindSafe for Section
impl Send for Section
impl Sync for Section
impl Unpin for Section
impl UnsafeUnpin for Section
impl UnwindSafe for Section
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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