# `ClaudeAgentSDK.Config.Timeouts`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.17.2/lib/claude_agent_sdk/config/timeouts.ex#L1)

Canonical timeout values for the SDK.

Every timeout in the codebase reads from this module. Runtime
overrides via Application config:

    config :claude_agent_sdk, ClaudeAgentSDK.Config.Timeouts,
      client_init_ms: 90_000

Or at runtime:

    Application.put_env(
      :claude_agent_sdk,
      ClaudeAgentSDK.Config.Timeouts,
      client_init_ms: 90_000
    )

# `auth_cli_test_ms`

```elixir
@spec auth_cli_test_ms() :: pos_integer()
```

CLI auth test command timeout (default: 30 s).

# `auth_cli_version_ms`

```elixir
@spec auth_cli_version_ms() :: pos_integer()
```

CLI version check command timeout (default: 10 s).

# `auth_ensure_ms`

```elixir
@spec auth_ensure_ms() :: pos_integer()
```

ensure_authenticated GenServer.call timeout (default: 30 s).

# `auth_min_refresh_delay_ms`

```elixir
@spec auth_min_refresh_delay_ms() :: pos_integer()
```

Minimum delay before scheduling a refresh (default: 1 min).

# `auth_refresh_before_expiry_ms`

```elixir
@spec auth_refresh_before_expiry_ms() :: pos_integer()
```

Schedule refresh this far before expiry (default: 1 day).

# `auth_refresh_retry_ms`

```elixir
@spec auth_refresh_retry_ms() :: pos_integer()
```

Retry interval on token refresh failure (default: 1 h).

# `auth_refresh_token_ms`

```elixir
@spec auth_refresh_token_ms() :: pos_integer()
```

Token refresh GenServer.call timeout (default: 2 min).

# `auth_setup_token_ms`

```elixir
@spec auth_setup_token_ms() :: pos_integer()
```

OAuth setup_token GenServer.call timeout (default: 2 min).

# `client_close_grace_ms`

```elixir
@spec client_close_grace_ms() :: pos_integer()
```

Client close grace period (default: 2 s).

# `client_control_request_ms`

```elixir
@spec client_control_request_ms() :: pos_integer()
```

Control protocol request timeout (default: 60 s).

# `client_exit_wait_ms`

```elixir
@spec client_exit_wait_ms() :: pos_integer()
```

Wait for CLI exit status before force-close (default: 200 ms).

# `client_hook_ms`

```elixir
@spec client_hook_ms() :: pos_integer()
```

Hook callback execution timeout (default: 60 s).

# `client_init_ms`

```elixir
@spec client_init_ms() :: pos_integer()
```

Client initialization timeout (default: 60 s).

# `client_permission_yield_ms`

```elixir
@spec client_permission_yield_ms() :: pos_integer()
```

Permission callback Task.yield timeout (default: 60 s).

# `client_stop_ms`

```elixir
@spec client_stop_ms() :: pos_integer()
```

Client graceful stop timeout (default: 5 s).

# `hook_min_ms`

```elixir
@spec hook_min_ms() :: pos_integer()
```

Minimum hook timeout floor (default: 1 s).

# `ms_per_hour`

```elixir
@spec ms_per_hour() :: pos_integer()
```

Milliseconds in one hour (conversion constant).

# `orchestrator_backoff_ms`

```elixir
@spec orchestrator_backoff_ms() :: pos_integer()
```

Initial exponential backoff for retries (default: 1 s).

# `query_parallel_ms`

```elixir
@spec query_parallel_ms() :: pos_integer()
```

Parallel query per-task timeout (default: 5 min).

# `query_total_ms`

```elixir
@spec query_total_ms() :: pos_integer()
```

Total query timeout (default: 75 min).

# `seconds_per_day`

```elixir
@spec seconds_per_day() :: pos_integer()
```

Seconds per day (conversion constant).

# `session_cleanup_interval_ms`

```elixir
@spec session_cleanup_interval_ms() :: pos_integer()
```

Session cleanup check interval (default: 24 h).

# `session_git_worktree_ms`

```elixir
@spec session_git_worktree_ms() :: pos_integer()
```

Git worktree probe timeout for session history scans (default: 5 s).

# `stream_receive_ms`

```elixir
@spec stream_receive_ms() :: pos_integer()
```

Stream receive liveness probe interval (default: 30 s).

# `streaming_session_ms`

```elixir
@spec streaming_session_ms() :: pos_integer()
```

Streaming session default timeout (default: 5 min).

# `tool_execution_ms`

```elixir
@spec tool_execution_ms() :: pos_integer()
```

Tool execution timeout (default: 30 s).

# `transport_call_ms`

```elixir
@spec transport_call_ms() :: pos_integer()
```

Safe GenServer.call timeout for transport (default: 5 s).

# `transport_close_grace_ms`

```elixir
@spec transport_close_grace_ms() :: pos_integer()
```

Transport close grace period (default: 2 s).

# `transport_finalize_ms`

```elixir
@spec transport_finalize_ms() :: non_neg_integer()
```

Process finalization delay (default: 25 ms).

# `transport_force_close_ms`

```elixir
@spec transport_force_close_ms() :: pos_integer()
```

Force-close transport timeout (default: 500 ms).

# `transport_headless_ms`

```elixir
@spec transport_headless_ms() :: pos_integer()
```

Headless mode timeout (default: 5 s).

---

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