# AuthPromptScreen

> **Class** in `deepagents_code`

📖 [View in docs](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen)

Modal that captures and persists an API key for one provider.

Dismissal values are members of `AuthResult` so callers in the recovery
path can distinguish "user just saved a key — retry the failed
operation" from "user just cleared their key — don't retry, that would
loop into the same error" from "user cancelled — leave state alone".

## Signature

```python
AuthPromptScreen(
    self,
    provider: str,
    env_var: str | None,
    *,
    reason: str | None = None,
    allow_empty_submit: bool = False,
    input_placeholder: str | None = None,
    submit_label: str | None = None,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `provider` | `str` | Yes | Provider name (e.g., `"anthropic"`). |
| `env_var` | `str \| None` | Yes | Canonical env var the SDK reads, shown as helper text. May be `None` for providers that don't use one of the hardcoded env-var bindings (rare; the prompt still works). |
| `reason` | `str \| None` | No | Optional context, e.g., `"Required to use anthropic:claude-opus-4-8"`. (default: `None`) |
| `allow_empty_submit` | `bool` | No | Whether pressing Enter on an empty key dismisses with `AuthResult.CANCELLED` instead of showing a validation error. (default: `False`) |
| `input_placeholder` | `str \| None` | No | Optional placeholder override for the key input. (default: `None`) |
| `submit_label` | `str \| None` | No | Optional help-label override for the Enter action. (default: `None`) |

## Extends

- `ModalScreen[AuthResult]`

## Constructors

```python
__init__(
    self,
    provider: str,
    env_var: str | None,
    *,
    reason: str | None = None,
    allow_empty_submit: bool = False,
    input_placeholder: str | None = None,
    submit_label: str | None = None,
) -> None
```

| Name | Type |
|------|------|
| `provider` | `str` |
| `env_var` | `str \| None` |
| `reason` | `str \| None` |
| `allow_empty_submit` | `bool` |
| `input_placeholder` | `str \| None` |
| `submit_label` | `str \| None` |


## Properties

- `AUTO_FOCUS`
- `BINDINGS`
- `CSS`

## Methods

- [`compose()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/compose)
- [`action_toggle_advanced()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/action_toggle_advanced)
- [`on_radio_set_changed()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/on_radio_set_changed)
- [`on_click()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/on_click)
- [`on_mouse_move()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/on_mouse_move)
- [`on_leave()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/on_leave)
- [`on_mount()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/on_mount)
- [`on_input_submitted()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/on_input_submitted)
- [`action_cancel()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/action_cancel)
- [`action_reload_env()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/action_reload_env)
- [`action_delete_stored()`](https://reference.langchain.com/python/deepagents-code/tui/widgets/auth/AuthPromptScreen/action_delete_stored)

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/e14e0adcbe78565ed3650e7f24b2a775d5437d25/libs/code/deepagents_code/tui/widgets/auth.py#L512)