pub struct Cli {Show 38 fields
pub version: bool,
pub provider: Option<String>,
pub model: Option<String>,
pub api_key: Option<String>,
pub models: Option<String>,
pub thinking: Option<String>,
pub system_prompt: Option<String>,
pub append_system_prompt: Option<String>,
pub continue: bool,
pub resume: bool,
pub session: Option<String>,
pub session_dir: Option<String>,
pub no_session: bool,
pub session_durability: Option<String>,
pub no_migrations: bool,
pub mode: Option<String>,
pub print: bool,
pub verbose: bool,
pub no_tools: bool,
pub tools: String,
pub extension: Vec<String>,
pub no_extensions: bool,
pub extension_policy: Option<String>,
pub explain_extension_policy: bool,
pub repair_policy: Option<String>,
pub explain_repair_policy: bool,
pub skill: Vec<String>,
pub no_skills: bool,
pub prompt_template: Vec<String>,
pub no_prompt_templates: bool,
pub theme: Option<String>,
pub theme_path: Vec<String>,
pub no_themes: bool,
pub export: Option<String>,
pub list_models: Option<Option<String>>,
pub list_providers: bool,
pub command: Option<Commands>,
pub args: Vec<String>,
}Expand description
Pi - AI coding agent CLI
Fields§
§version: boolPrint version information
provider: Option<String>LLM provider (e.g., anthropic, openai, google)
model: Option<String>Model ID (e.g., claude-opus-4, gpt-4o)
api_key: Option<String>API key (overrides environment variable)
models: Option<String>Model patterns for Ctrl+P cycling (comma-separated, supports globs)
thinking: Option<String>Extended thinking level
system_prompt: Option<String>Override system prompt
append_system_prompt: Option<String>Append to system prompt (text or file path)
continue: boolContinue previous session
resume: boolSelect session from picker UI
session: Option<String>Use specific session file path
session_dir: Option<String>Directory for session storage/lookup
no_session: boolDon’t save session (ephemeral)
session_durability: Option<String>Session durability mode: strict, balanced, or throughput
no_migrations: boolSkip startup migrations for legacy config/session/layout paths
mode: Option<String>Output mode for print mode (text, json, rpc)
print: boolNon-interactive mode (process & exit)
verbose: boolForce verbose startup
no_tools: boolDisable all built-in tools
tools: StringSpecific tools to enable (comma-separated: read,bash,edit,write,grep,find,ls)
extension: Vec<String>Load extension file (can use multiple times)
no_extensions: boolDisable extension discovery
extension_policy: Option<String>Extension capability policy: safe, balanced, or permissive (legacy alias: standard)
explain_extension_policy: boolPrint the resolved extension policy with per-capability decisions and exit
repair_policy: Option<String>Repair policy mode: off, suggest, auto-safe, or auto-strict
explain_repair_policy: boolPrint the resolved repair policy and exit
skill: Vec<String>Load skill file/directory (can use multiple times)
no_skills: boolDisable skill discovery
prompt_template: Vec<String>Load prompt template file/directory (can use multiple times)
no_prompt_templates: boolDisable prompt template discovery
theme: Option<String>Select active theme (built-in name, discovered theme name, or theme JSON path)
theme_path: Vec<String>Add theme file/directory to discovery (can use multiple times)
no_themes: boolDisable theme discovery
export: Option<String>Export session file to HTML
list_models: Option<Option<String>>List available models (optional fuzzy search pattern)
list_providers: boolList all supported providers with aliases and auth env keys
command: Option<Commands>§args: Vec<String>Messages and @file references
Implementations§
Trait Implementations§
Source§impl Args for Cli
impl Args for Cli
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl CommandFactory for Cli
impl CommandFactory for Cli
Source§impl FromArgMatches for Cli
impl FromArgMatches for Cli
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(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Parser for Cli
impl Parser for Cli
Source§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
Source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
Source§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
Auto Trait Implementations§
impl Freeze for Cli
impl RefUnwindSafe for Cli
impl Send for Cli
impl Sync for Cli
impl Unpin for Cli
impl UnsafeUnpin for Cli
impl UnwindSafe for Cli
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
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