pub struct Settings {Show 20 fields
pub default_provider: Option<String>,
pub default_model: Option<String>,
pub default_thinking_level: Option<String>,
pub theme: Option<String>,
pub scoped_models: Option<Vec<String>>,
pub packages: Option<Vec<PackageSetting>>,
pub npm_command: Option<Vec<String>>,
pub skill_dirs: Option<Vec<String>>,
pub prompt_dirs: Option<Vec<String>>,
pub extension_dirs: Option<Vec<String>>,
pub keybindings: Option<HashMap<String, Value>>,
pub double_escape_action: Option<String>,
pub default_tools: Option<Vec<String>>,
pub hide_thinking_block: Option<bool>,
pub quiet_startup: Option<bool>,
pub show_terminal_progress: Option<bool>,
pub editor_padding_x: Option<usize>,
pub autocomplete_max_visible: Option<usize>,
pub fullscreen_copy_on_select: Option<bool>,
pub http_idle_timeout: Option<Value>,
}Expand description
The honored subset of pi’s Settings. Unknown fields are ignored.
Fields§
§default_provider: Option<String>Saved default provider id (v1 honors only "anthropic"; an absent or
anthropic value allows the saved default-model lookup).
default_model: Option<String>Saved default model id. When present and the model is authed,
provider::resolve selects it (pi findInitialModel step 3).
default_thinking_level: Option<String>Saved default thinking level (a level-name string: off/minimal/low/medium/
high/xhigh/max). Parsed by the caller via args::parse_thinking_level.
theme: Option<String>Saved theme name. Surfaced for best-effort TUI theme application.
scoped_models: Option<Vec<String>>/scoped-models: the model ids allowed in the Ctrl+M cycle. Absent /
empty ⇒ every catalog model cycles (the default).
packages: Option<Vec<PackageSetting>>Pi-compatible static package specs. Entries may be local package
directories, package.json files, installed package names, or filtered
package objects.
npm_command: Option<Vec<String>>Command used by native Pi for npm package lookup/install operations.
Stored argv-style so launchers such as mise exec -- npm need no shell.
skill_dirs: Option<Vec<String>>Additional skill directories. Relative paths are resolved against the
settings file’s owner (project root for project settings, agent dir for
global settings). skills is accepted as a compatibility shorthand.
prompt_dirs: Option<Vec<String>>Additional prompt-template directories/files. prompts is accepted as
a compatibility shorthand.
extension_dirs: Option<Vec<String>>Additional Rust cdylib extension directories. extensions is accepted
as a compatibility shorthand.
keybindings: Option<HashMap<String, Value>>Native Pi keybinding overrides. Values may be a key string, an array of key strings, or an empty array to unbind an action.
double_escape_action: Option<String>Action performed by two quick Escape presses while the editor is empty.
Native Pi defaults this to tree; none disables the gesture.
default_tools: Option<Vec<String>>Default tools to enable at startup. When absent, all built-in tools are enabled. When present, only the named tools are enabled.
hide_thinking_block: Option<bool>Hide the body of thinking blocks while retaining a compact label.
quiet_startup: Option<bool>Suppress the interactive startup header and resource summary. Update checks remain enabled, matching native Pi.
show_terminal_progress: Option<bool>Show the global terminal progress indicator while a run is active.
editor_padding_x: Option<usize>Horizontal editor padding in terminal columns.
autocomplete_max_visible: Option<usize>Maximum number of autocomplete rows shown above the editor.
fullscreen_copy_on_select: Option<bool>Automatically copy text to clipboard when selected in fullscreen mode. When false, text selection requires explicit copy action.
http_idle_timeout: Option<Value>How long idle pooled HTTP connections are kept before being closed.
Accepts a millisecond number or the string "disabled". Native pi
httpIdleTimeout.
Implementations§
Source§impl Settings
impl Settings
Sourcepub fn http_idle_timeout_ms(&self) -> Option<i64>
pub fn http_idle_timeout_ms(&self) -> Option<i64>
Resolved HTTP idle timeout in milliseconds (None ⇒ library default,
Some(0) ⇒ disabled). See rpi_ai::http::parse_http_idle_timeout_ms.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Settings
impl<'de> Deserialize<'de> for Settings
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>,
Auto Trait Implementations§
impl Freeze for Settings
impl RefUnwindSafe for Settings
impl Send for Settings
impl Sync for Settings
impl Unpin for Settings
impl UnsafeUnpin for Settings
impl UnwindSafe for Settings
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().