pub struct Settings {Show 34 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 session_dir: Option<PathBuf>,
pub shell_path: Option<String>,
pub shell_command_prefix: Option<String>,
pub http_proxy: Option<String>,
pub retry: Option<RetrySettings>,
pub compaction: Option<CompactionSettingsJson>,
pub branch_summary: Option<BranchSummarySettings>,
pub steering_mode: Option<QueueModeSetting>,
pub follow_up_mode: Option<QueueModeSetting>,
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 last_changelog_version: Option<String>,
pub last_rpi_changelog_version: Option<String>,
pub collapse_changelog: 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 output_pad: Option<usize>,
pub show_cache_miss_notices: Option<bool>,
pub show_images: Option<bool>,
pub terminal: Option<TerminalSettings>,
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+P cycle. Absent /
empty ⇒ every catalog model cycles (the default). upstream spells this
enabledModels, which is accepted as an alias so a copied settings.json
behaves the same.
session_dir: Option<PathBuf>Custom session storage directory. upstream’s sessionDir, same format as
the --session-dir flag (which wins over it).
shell_path: Option<String>Custom shell binary. upstream’s shellPath. Parsed for fidelity, but
not consumed yet: nothing in pi-tools carries a shell binary, so
honouring it means plumbing one through BashToolOptions /
ShellCaptureOptions first.
shell_command_prefix: Option<String>Prefix prepended to every bash command (upstream’s shellCommandPrefix,
e.g. shopt -s expand_aliases).
http_proxy: Option<String>Proxy URL applied as HTTP_PROXY / HTTPS_PROXY for rpi’s own HTTP
clients. upstream’s httpProxy.
retry: Option<RetrySettings>Retry policy for assistant turns. Mirrors upstream retry; the fields
map 1:1 onto the harness’s RetryPolicy.
compaction: Option<CompactionSettingsJson>Compaction settings. Mirrors upstream compaction (minus its
modelOverrides, which the harness has no equivalent for).
branch_summary: Option<BranchSummarySettings>Branch-summary settings. Mirrors upstream branchSummary.
Parsed for shape fidelity, but nothing consumes it yet: rpi’s
navigate_tree ignores its summarize argument outright (_summarize),
and generate_branch_summary has no production caller. Until
navigation-with-summary is wired, these keys cannot change behaviour — see
the doc comment on the accessors.
steering_mode: Option<QueueModeSetting>How queued steering messages are drained. upstream default:
"one-at-a-time" (matches the harness’s QueueMode default).
follow_up_mode: Option<QueueModeSetting>How queued follow-up messages are drained. upstream default:
"one-at-a-time".
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>>upstream 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.
upstream 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 upstream.
last_changelog_version: Option<String>Legacy/imported marker retained for settings compatibility. Only known rpi release versions are migrated into the dedicated rpi marker.
last_rpi_changelog_version: Option<String>rpi’s own release-note baseline, independent of imported Pi settings.
collapse_changelog: Option<bool>Show a compact upgrade notice instead of full notes. Pi defaults false.
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.
output_pad: Option<usize>Horizontal padding in terminal columns added to each side of the chat
transcript (user/assistant messages and thinking). upstream outputPad
(its only legal values are 0 and 1).
show_cache_miss_notices: Option<bool>Show transcript notices for prompt-cache costs and provider recovery
diagnostics. upstream showCacheMissNotices (default false).
show_images: Option<bool>Render images inline in the terminal. rpi stores this at the top level
under showImages; upstream nests it as terminal.showImages, which
TerminalSettings also accepts (see Settings::show_images).
terminal: Option<TerminalSettings>upstream’s nested terminal settings block. rpi keeps its own flat
keys for the settings it has always written, but reads this block so a
native settings.json is honored.
http_idle_timeout: Option<Value>How long idle pooled HTTP connections are kept before being closed.
Accepts a millisecond number or the string "disabled".
httpIdleTimeout. rpi surface: 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.
Sourcepub fn retry_policy(&self) -> RetryPolicy
pub fn retry_policy(&self) -> RetryPolicy
Retry policy, resolved onto the harness type. Absent fields keep the
harness defaults, so a partial retry object changes only what it names.
Sourcepub fn compaction_settings(&self) -> CompactionSettings
pub fn compaction_settings(&self) -> CompactionSettings
Compaction settings, resolved onto the harness type.
Sourcepub fn branch_summary_reserve_tokens(&self) -> Option<i64>
pub fn branch_summary_reserve_tokens(&self) -> Option<i64>
Tokens reserved for a branch summary’s prompt + output.
Not consumed yet: AgentLane::navigate_tree ignores summarize, so no
branch summary is ever generated from this path. Wiring it means
implementing navigation-with-summary in the harness, not reading a key.
Sourcepub fn branch_summary_skipped(&self) -> bool
pub fn branch_summary_skipped(&self) -> bool
Whether branch summaries are suppressed (upstream’s skipPrompt).
Not consumed yet, for the same reason as
Self::branch_summary_reserve_tokens.
Sourcepub fn steering_mode(&self) -> QueueMode
pub fn steering_mode(&self) -> QueueMode
Default steering-queue drain mode (upstream default: one-at-a-time).
Sourcepub fn follow_up_mode(&self) -> QueueMode
pub fn follow_up_mode(&self) -> QueueMode
Default follow-up-queue drain mode (upstream default: one-at-a-time).
Sourcepub fn show_images(&self) -> Option<bool>
pub fn show_images(&self) -> Option<bool>
Render images inline. rpi’s flat showImages wins; upstream’s nested
terminal.showImages is the fallback.
Sourcepub fn show_terminal_progress(&self) -> Option<bool>
pub fn show_terminal_progress(&self) -> Option<bool>
Terminal progress indicator. rpi’s flat showTerminalProgress wins;
upstream’s nested terminal.showTerminalProgress is the fallback.
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().