# `ClaudeAgentSDK.CLI`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.17.2/lib/claude_agent_sdk/cli.ex#L1)

Claude CLI resolution and version helpers backed by the shared core policy.

# `find_executable`

```elixir
@spec find_executable() :: {:ok, String.t()} | {:error, :not_found}
```

Attempts to find the Claude CLI executable.

# `find_executable!`

```elixir
@spec find_executable!() :: String.t()
```

Like `find_executable/0` but raises when the CLI is not available.

# `installed?`

```elixir
@spec installed?() :: boolean()
```

Returns true if the Claude CLI is installed and discoverable.

# `minimum_version`

```elixir
@spec minimum_version() :: String.t()
```

Returns the minimum supported Claude CLI version.

# `recommended_version`

```elixir
@spec recommended_version() :: String.t()
```

Returns the recommended Claude CLI version for this SDK release.

# `resolve_executable`

```elixir
@spec resolve_executable(ClaudeAgentSDK.Options.t() | nil) ::
  {:ok, String.t()} | {:error, :not_found}
```

Resolves the CLI executable, honoring option overrides.

# `resolve_executable!`

```elixir
@spec resolve_executable!(ClaudeAgentSDK.Options.t() | nil) :: String.t()
```

Like `resolve_executable/1` but raises when the CLI is not available.

# `version`

```elixir
@spec version() :: {:ok, String.t()} | {:error, term()}
```

Returns the installed Claude CLI version as a string.

# `version_supported?`

```elixir
@spec version_supported?() :: boolean()
```

True if the installed version meets or exceeds the minimum.

# `warn_if_outdated`

```elixir
@spec warn_if_outdated() :: :ok
```

Emits a warning when the installed CLI is below the supported minimum or unknown.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
