# `GeminiCliSdk.CLI`
[🔗](https://github.com/nshkrdotcom/gemini_cli_sdk/blob/v0.2.0/lib/gemini_cli_sdk/cli.ex#L1)

Resolves the Gemini CLI binary location through the shared
`CliSubprocessCore.ProviderCLI` policy.

Resolution order:

1. `GEMINI_CLI_PATH` environment variable (explicit path)
2. `gemini` on system `PATH` (e.g. globally installed via npm)
3. npm global bin directory (`npm prefix -g`/bin/gemini)
4. `npx` fallback — runs
   `npx --yes --package @google/gemini-cli gemini`

Set `GEMINI_NO_NPX=1` to disable the npx fallback.

# `command_args`

```elixir
@spec command_args(CliSubprocessCore.CommandSpec.t(), [String.t()]) :: [String.t()]
```

# `resolve`

```elixir
@spec resolve(CliSubprocessCore.ExecutionSurface.t() | map() | keyword() | nil) ::
  {:ok, CliSubprocessCore.CommandSpec.t()} | {:error, GeminiCliSdk.Error.t()}
```

# `resolve!`

```elixir
@spec resolve!(CliSubprocessCore.ExecutionSurface.t() | map() | keyword() | nil) ::
  CliSubprocessCore.CommandSpec.t()
```

---

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