# ModelSelectorScreen

> **Class** in `deepagents_cli`

📖 [View in docs](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen)

Full-screen modal for model selection.

Displays available models grouped by provider with keyboard navigation
and search filtering. Current model is highlighted.

Returns (model_spec, provider) tuple on selection, or None on cancel.

## Signature

```python
ModelSelectorScreen(
    self,
    current_model: str | None = None,
    current_provider: str | None = None,
    cli_profile_override: dict[str, Any] | None = None,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `current_model` | `str \| None` | No | The currently active model name (to highlight). (default: `None`) |
| `current_provider` | `str \| None` | No | The provider of the current model. (default: `None`) |
| `cli_profile_override` | `dict[str, Any] \| None` | No | Extra profile fields from `--profile-override`.  Merged on top of upstream + config.toml profiles so that CLI overrides appear with `*` markers in the detail footer. (default: `None`) |

## Extends

- `ModalScreen[tuple[str, str] | None]`

## Constructors

```python
__init__(
    self,
    current_model: str | None = None,
    current_provider: str | None = None,
    cli_profile_override: dict[str, Any] | None = None,
) -> None
```

| Name | Type |
|------|------|
| `current_model` | `str \| None` |
| `current_provider` | `str \| None` |
| `cli_profile_override` | `dict[str, Any] \| None` |


## Properties

- `BINDINGS`
- `CSS`

## Methods

- [`compose()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/compose)
- [`on_mount()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/on_mount)
- [`on_input_changed()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/on_input_changed)
- [`on_input_submitted()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/on_input_submitted)
- [`on_model_option_clicked()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/on_model_option_clicked)
- [`action_move_up()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_move_up)
- [`action_move_down()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_move_down)
- [`action_tab_complete()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_tab_complete)
- [`action_page_up()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_page_up)
- [`action_page_down()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_page_down)
- [`action_select()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_select)
- [`action_set_default()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_set_default)
- [`action_cancel()`](https://reference.langchain.com/python/deepagents-cli/widgets/model_selector/ModelSelectorScreen/action_cancel)

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/88c2b5cb874dc1d093acf54d2a967ba6e085c99b/libs/cli/deepagents_cli/widgets/model_selector.py#L97)