pub struct Claude { /* private fields */ }Expand description
The Claude CLI client. Holds shared configuration applied to all commands.
Create one via Claude::builder() and reuse it across commands.
Implementations§
Source§impl Claude
impl Claude
Sourcepub fn builder() -> ClaudeBuilder
pub fn builder() -> ClaudeBuilder
Create a new builder for configuring the Claude client.
Sourcepub fn working_dir(&self) -> Option<&Path>
pub fn working_dir(&self) -> Option<&Path>
Get the working directory, if set.
Sourcepub fn with_working_dir(&self, dir: impl Into<PathBuf>) -> Self
pub fn with_working_dir(&self, dir: impl Into<PathBuf>) -> Self
Create a clone of this client with a different working directory.
Sourcepub async fn cli_version(&self) -> Result<CliVersion>
pub async fn cli_version(&self) -> Result<CliVersion>
Query the installed CLI version.
Runs claude --version and parses the output into a CliVersion.
§Example
let claude = claude_wrapper::Claude::builder().build()?;
let version = claude.cli_version().await?;
println!("Claude CLI {version}");Sourcepub async fn check_version(&self, minimum: &CliVersion) -> Result<CliVersion>
pub async fn check_version(&self, minimum: &CliVersion) -> Result<CliVersion>
Check that the installed CLI version meets a minimum requirement.
Returns the detected version on success, or an error if the version is below the minimum.
§Example
use claude_wrapper::CliVersion;
let claude = claude_wrapper::Claude::builder().build()?;
let version = claude.check_version(&CliVersion::new(2, 1, 0)).await?;
println!("CLI version {version} meets minimum requirement");Sourcepub fn cli_version_sync(&self) -> Result<CliVersion>
pub fn cli_version_sync(&self) -> Result<CliVersion>
Blocking mirror of Claude::cli_version. Requires the
sync feature.
Sourcepub fn check_version_sync(&self, minimum: &CliVersion) -> Result<CliVersion>
pub fn check_version_sync(&self, minimum: &CliVersion) -> Result<CliVersion>
Blocking mirror of Claude::check_version. Requires the
sync feature.
Sourcepub fn tested_cli_version_range(&self) -> Option<(CliVersion, CliVersion)>
pub fn tested_cli_version_range(&self) -> Option<(CliVersion, CliVersion)>
The tested-against [min, max] range declared at build time
via ClaudeBuilder::tested_cli_version_range, if any.
Sourcepub async fn cli_version_status(&self) -> Result<CliVersionStatus>
pub async fn cli_version_status(&self) -> Result<CliVersionStatus>
Classify the installed CLI against the declared
tested-against range. Logs a tracing::warn! when outside
the range; returns the typed status either way. If no range
was declared via ClaudeBuilder::tested_cli_version_range,
returns CliVersionStatus::Tested – callers that didn’t
opt in get the silent-success path.
Intended for one-shot use at startup, not on every command.
Sourcepub fn cli_version_status_sync(&self) -> Result<CliVersionStatus>
pub fn cli_version_status_sync(&self) -> Result<CliVersionStatus>
Blocking mirror of Claude::cli_version_status. Requires
the sync feature.