Skip to main content

PoolConfig

Struct PoolConfig 

Source
pub struct PoolConfig {
Show 20 fields pub model: Option<String>, pub permission_mode: Option<PermissionMode>, pub max_turns: Option<u32>, pub system_prompt: Option<String>, pub allowed_tools: Vec<String>, pub mcp_servers: HashMap<String, Value>, pub effort: Option<Effort>, pub fallback_model: Option<String>, pub budget_microdollars: Option<u64>, pub slot_mode: SlotMode, pub max_restarts: u32, pub worktree_isolation: bool, pub slot_assignment_timeout_secs: u64, pub scaling: ScalingConfig, pub unattended_mode: bool, pub detect_permission_prompts: bool, pub supervisor_enabled: bool, pub supervisor_interval_secs: u64, pub strict_mcp_config: bool, pub worktree_base_dir: Option<PathBuf>,
}
Expand description

Configuration that applies to all slots by default.

Individual slots can override any of these fields via SlotConfig.

Fields§

§model: Option<String>

Claude model to use (e.g. “claude-haiku-4-5-20251001”).

§permission_mode: Option<PermissionMode>

Permission mode for slots.

§max_turns: Option<u32>

Maximum turns per task.

§system_prompt: Option<String>

System prompt prepended to all slot tasks.

§allowed_tools: Vec<String>

Allowed tools for slots.

§mcp_servers: HashMap<String, Value>

MCP servers available to slots.

§effort: Option<Effort>

Default effort level for slots (maps to --effort).

§fallback_model: Option<String>

Fallback model to use if the primary model fails.

§budget_microdollars: Option<u64>

Total budget cap for the pool in microdollars. When cumulative spend across all slots reaches this limit, new tasks are rejected with crate::Error::BudgetExhausted.

§slot_mode: SlotMode

Default slot mode.

§max_restarts: u32

Maximum number of restarts per slot before marking as errored.

§worktree_isolation: bool

Enable git worktree isolation for slots.

§slot_assignment_timeout_secs: u64

Maximum time to wait for an idle slot before failing a task (in seconds).

§scaling: ScalingConfig

Dynamic scaling configuration (min/max bounds).

§unattended_mode: bool

Enable unattended mode: use stricter permission defaults to prevent prompts. When true, defaults to DontAsk permission mode if not explicitly set.

§detect_permission_prompts: bool

If true, detect permission prompt patterns in stderr and provide actionable errors.

§supervisor_enabled: bool

Enable the background supervisor loop for slot health monitoring.

When enabled, the supervisor periodically checks for errored slots and restarts them automatically (up to max_restarts).

§supervisor_interval_secs: u64

Interval in seconds between supervisor health checks (default: 30).

Only used when supervisor_enabled is true.

§strict_mcp_config: bool

Use --strict-mcp-config when passing MCP config to slots.

Prevents slots from inheriting the coordinator’s .mcp.json, which avoids accidental recursive pool calls (a slot invoking pool_run on itself). Default: true.

§worktree_base_dir: Option<PathBuf>

Base directory for git worktrees (chains and slot isolation).

Defaults to .claude/pool-worktrees/ under the repo root, which keeps worktrees within the project directory so Claude’s auto permission mode can write to them. Override if you need worktrees elsewhere.

Trait Implementations§

Source§

impl Clone for PoolConfig

Source§

fn clone(&self) -> PoolConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PoolConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PoolConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for PoolConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for PoolConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,