> ## Documentation Index
> Fetch the complete documentation index at: https://codexceed.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# avatar.config

Harness configuration.

Loaded from defaults, then overridden by environment variables (prefix
`AVATAR_`) or a local `.env`. This is the single, explicit config object
threaded through `RunDeps` (§8) — never read from globals.

## Classes

### `HarnessConfig`

The single, explicit run configuration: budgets, session, workspace, endpoint (§8).

```python theme={null}
HarnessConfig(_case_sensitive: 'bool | None' = None, _nested_model_default_partial_update: 'bool | None' = None, _env_prefix: 'str | None' = None, _env_prefix_target: 'EnvPrefixTarget | None' = None, _env_file: 'DotenvType | None' = PosixPath('.'), _env_file_encoding: 'str | None' = None, _env_ignore_empty: 'bool | None' = None, _env_nested_delimiter: 'str | None' = None, _env_nested_max_split: 'int | None' = None, _env_parse_none_str: 'str | None' = None, _env_parse_enums: 'bool | None' = None, _cli_prog_name: 'str | None' = None, _cli_parse_args: 'bool | list[str] | tuple[str, ...] | None' = None, _cli_settings_source: 'CliSettingsSource[Any] | None' = None, _cli_parse_none_str: 'str | None' = None, _cli_hide_none_type: 'bool | None' = None, _cli_avoid_json: 'bool | None' = None, _cli_enforce_required: 'bool | None' = None, _cli_use_class_docs_for_groups: 'bool | None' = None, _cli_exit_on_error: 'bool | None' = None, _cli_prefix: 'str | None' = None, _cli_flag_prefix_char: 'str | None' = None, _cli_implicit_flags: "bool | Literal['dual', 'toggle'] | None" = None, _cli_ignore_unknown_args: 'bool | None' = None, _cli_kebab_case: "bool | Literal['all', 'no_enums'] | None" = None, _cli_shortcuts: 'Mapping[str, str | list[str]] | None' = None, _secrets_dir: 'PathType | None' = None, _build_sources: 'tuple[tuple[PydanticBaseSettingsSource, ...], dict[str, Any]] | None' = None, *, max_iterations: int = 50, max_wall_clock_seconds: int | None = 1800, max_consecutive_failures: int = 5, max_repair_attempts: int = 3, max_context_tokens: int = 100000, max_declaration_nudges: int = 3, approval_timeout_seconds: float | None = None, autonomous_amendment_policy: Literal['deny', 'approve'] = 'deny', autonomous_escalation_policy: Literal['deny', 'approve'] = 'deny', escalation_thrash_repeats: Annotated[int, Ge(ge=1)] = 3, test_command: str = '', lint_command: str = '', command_timeout_seconds: int = 120, request_timeout_seconds: Annotated[float, Gt(gt=0)] = 0, request_idle_timeout_seconds: Annotated[float, Gt(gt=0)] = 0, stream_model_calls: bool = True, transport_max_retries: Annotated[int, Ge(ge=0)] = 2, command_output_budget: Annotated[int, Ge(ge=256)] = 16000, planner_model: str | None = None, interactive: bool = True, log_path: str | None = None, workspace_root: str = '.', sandbox_mode: Literal['none', 'hermetic-env', 'sandbox-exec', 'bwrap', 'container'] = 'hermetic-env', sandbox_allow_network: bool = False, sandbox_rlimits: bool = False, sandbox_image: str = '', sandbox_container_runtime: Literal['podman', 'docker'] = 'podman', sensitive_path_globs: list[str] = <factory>, model: str = 'openai/gpt-4o-mini', base_url: str = 'https://ai/api/v1', api_key: str | None = None, native_tool_calls: bool = True, temperature: float = 0, context_max_detail_chars: int = 16000, context_detail_char_budget: int = 48000, context_verifier_pin_count: int = 2, classifier_model: str | None = 'openai/gpt-5-nano') -> None
```

**Fields**

| Field                          | Type                                                                    | Required |    |
| ------------------------------ | ----------------------------------------------------------------------- | -------- | -- |
| `max_iterations`               | `int`                                                                   | no       |    |
| `max_wall_clock_seconds`       | \`int                                                                   | None\`   | no |
| `max_consecutive_failures`     | `int`                                                                   | no       |    |
| `max_repair_attempts`          | `int`                                                                   | no       |    |
| `max_context_tokens`           | `int`                                                                   | no       |    |
| `max_declaration_nudges`       | `int`                                                                   | no       |    |
| `approval_timeout_seconds`     | \`float                                                                 | None\`   | no |
| `autonomous_amendment_policy`  | `Literal['deny', 'approve']`                                            | no       |    |
| `autonomous_escalation_policy` | `Literal['deny', 'approve']`                                            | no       |    |
| `escalation_thrash_repeats`    | `int`                                                                   | no       |    |
| `test_command`                 | `str`                                                                   | no       |    |
| `lint_command`                 | `str`                                                                   | no       |    |
| `command_timeout_seconds`      | `int`                                                                   | no       |    |
| `request_timeout_seconds`      | `float`                                                                 | no       |    |
| `request_idle_timeout_seconds` | `float`                                                                 | no       |    |
| `stream_model_calls`           | `bool`                                                                  | no       |    |
| `transport_max_retries`        | `int`                                                                   | no       |    |
| `command_output_budget`        | `int`                                                                   | no       |    |
| `planner_model`                | \`str                                                                   | None\`   | no |
| `interactive`                  | `bool`                                                                  | no       |    |
| `log_path`                     | \`str                                                                   | None\`   | no |
| `workspace_root`               | `str`                                                                   | no       |    |
| `sandbox_mode`                 | `Literal['none', 'hermetic-env', 'sandbox-exec', 'bwrap', 'container']` | no       |    |
| `sandbox_allow_network`        | `bool`                                                                  | no       |    |
| `sandbox_rlimits`              | `bool`                                                                  | no       |    |
| `sandbox_image`                | `str`                                                                   | no       |    |
| `sandbox_container_runtime`    | `Literal['podman', 'docker']`                                           | no       |    |
| `sensitive_path_globs`         | `list[str]`                                                             | no       |    |
| `model`                        | `str`                                                                   | no       |    |
| `base_url`                     | `str`                                                                   | no       |    |
| `api_key`                      | \`str                                                                   | None\`   | no |
| `native_tool_calls`            | `bool`                                                                  | no       |    |
| `temperature`                  | `float`                                                                 | no       |    |
| `context_max_detail_chars`     | `int`                                                                   | no       |    |
| `context_detail_char_budget`   | `int`                                                                   | no       |    |
| `context_verifier_pin_count`   | `int`                                                                   | no       |    |
| `classifier_model`             | \`str                                                                   | None\`   | no |
