Settings fields
59
Settings fields
59
Env-var bindings
52
Categories
8
GraceKelly reads its configuration from environment variables (with
.env autoloaded outside pytest). Every GRACEKELLY_* variable maps
to a frozen Settings dataclass field. Validation runs in
Settings.validate() at startup; invalid combinations raise
ValueError before the app accepts traffic.
| Env var | Settings field | Type | Default |
|---|---|---|---|
GRACEKELLY_ENV | env | str | ”development” |
GRACEKELLY_HOST | host | str | ”127.0.0.1” |
GRACEKELLY_PORT | port | int | 8011 |
GRACEKELLY_LOG_LEVEL | log_level | str | ”INFO” |
GRACEKELLY_API_KEY | api_key | `str | None` |
| Env var | Settings field | Type | Default |
|---|---|---|---|
GRACEKELLY_EXECUTION_PROFILE | execution_profile | str | ”dry-run” |
GRACEKELLY_ORCHESTRATE_TIMEOUT_SECONDS | orchestrate_timeout_seconds | `float | None` |
GRACEKELLY_ENABLE_MODEL_FALLBACK | enable_model_fallback | bool | False |
GRACEKELLY_CONTEXT_WINDOW_TURNS | context_window_turns | int | 20 |
GRACEKELLY_MAX_CONTEXT_CHARS | max_context_chars | int | 50_000 |
| Env var | Settings field | Type | Default |
|---|---|---|---|
GRACEKELLY_MISTRAL_API_KEY | mistral_api_key | `str | None` |
GRACEKELLY_MISTRAL_BASE_URL | mistral_base_url | str | ”https://api.mistral.ai/v1” |
GRACEKELLY_MISTRAL_TIMEOUT_SECONDS | mistral_timeout_seconds | float | 30.0 |
GRACEKELLY_MISTRAL_MAX_RETRIES | mistral_max_retries | int | 0 |
GRACEKELLY_MISTRAL_RETRY_BACKOFF_SECONDS | mistral_retry_backoff_seconds | float | 1.0 |
GRACEKELLY_OPENAI_API_KEY | openai_api_key | `str | None` |
GRACEKELLY_OPENAI_BASE_URL | openai_base_url | str | ”https://api.openai.com/v1” |
GRACEKELLY_OPENAI_TIMEOUT_SECONDS | openai_timeout_seconds | float | 60.0 |
GRACEKELLY_OPENAI_MAX_RETRIES | openai_max_retries | int | 0 |
GRACEKELLY_OPENAI_RETRY_BACKOFF_SECONDS | openai_retry_backoff_seconds | float | 1.0 |
GRACEKELLY_ANTHROPIC_API_KEY | anthropic_api_key | `str | None` |
GRACEKELLY_ANTHROPIC_BASE_URL | anthropic_base_url | str | ”https://api.anthropic.com” |
GRACEKELLY_ANTHROPIC_TIMEOUT_SECONDS | anthropic_timeout_seconds | float | 120.0 |
GRACEKELLY_ANTHROPIC_MAX_RETRIES | anthropic_max_retries | int | 0 |
GRACEKELLY_ANTHROPIC_RETRY_BACKOFF_SECONDS | anthropic_retry_backoff_seconds | float | 1.0 |
| Env var | Settings field | Type | Default |
|---|---|---|---|
GRACEKELLY_BROWSER_ENABLED | browser_enabled | bool | False |
GRACEKELLY_BROWSER_AUTOMATION_BACKEND | browser_automation_backend | str | ”null” |
GRACEKELLY_BROWSER_PROFILE_DIR | browser_profile_dir | `str | None` |
GRACEKELLY_BROWSER_BASE_URL | browser_base_url | str | ”https://www.perplexity.ai” |
GRACEKELLY_BROWSER_PLAYWRIGHT_CHANNEL | browser_playwright_channel | str | ”chrome” |
GRACEKELLY_BROWSER_PLAYWRIGHT_HEADLESS | browser_playwright_headless | bool | False |
GRACEKELLY_BROWSER_CALL_TIMEOUT_SECONDS | browser_call_timeout_seconds | int | 120 |
| — | browser_human_action_delay_seconds | float | 1.0 |
GRACEKELLY_MAX_BROWSER_SUBMITS_PER_TASK | max_browser_submits_per_task | `int | None` |
GRACEKELLY_MAX_BROWSER_SUBMITS_PER_HOUR | max_browser_submits_per_hour | `int | None` |
| — | browser_circuit_breaker_enabled | bool | True |
| — | browser_circuit_breaker_failure_threshold | int | 3 |
| — | browser_circuit_breaker_cooldown_seconds | int | 60 |
| — | browser_scripted_logged_in | bool | True |
GRACEKELLY_BROWSER_SCRIPTED_MODEL_LABEL | browser_scripted_model_label | `str | None` |
| — | browser_scripted_output_text | str | ”scripted browser result” |
GRACEKELLY_BROWSER_SCREENSHOTS_DIR | browser_screenshots_dir | `str | None` |
| Env var | Settings field | Type | Default |
|---|---|---|---|
GRACEKELLY_STORAGE_BACKEND | storage_backend | str | ”memory” |
GRACEKELLY_POSTGRES_DSN | postgres_dsn | `str | None` |
GRACEKELLY_POSTGRES_CONNECT_TIMEOUT_SECONDS | postgres_connect_timeout_seconds | int | 5 |
GRACEKELLY_POSTGRES_POOL_ENABLED | postgres_pool_enabled | bool | False |
GRACEKELLY_POSTGRES_POOL_MIN_SIZE | postgres_pool_min_size | int | 1 |
GRACEKELLY_POSTGRES_POOL_MAX_SIZE | postgres_pool_max_size | int | 5 |
| Env var | Settings field | Type | Default |
|---|---|---|---|
GRACEKELLY_REDIS_URL | redis_url | `str | None` |
GRACEKELLY_RATE_LIMIT_RPM | rate_limit_rpm | int | 60 |
GRACEKELLY_RATE_LIMIT_BURST | rate_limit_burst | int | 10 |
| Env var | Settings field | Type | Default |
|---|---|---|---|
GRACEKELLY_SENTRY_DSN | sentry_dsn | `str | None` |
GRACEKELLY_SENTRY_ENVIRONMENT | sentry_environment | str | ”production” |
GRACEKELLY_OTEL_ENDPOINT | otel_endpoint | `str | None` |
GRACEKELLY_OTEL_SERVICE_NAME | otel_service_name | str | ”gracekelly” |
GRACEKELLY_HEALTH_EXPOSE_DETAILS | health_expose_details | bool | False |
GRACEKELLY_USAGE_TELEMETRY_ENABLED | usage_telemetry_enabled | bool | False |
GRACEKELLY_USAGE_TELEMETRY_PATH | usage_telemetry_path | `str | None` |
| Env var | Settings field | Type | Default |
|---|---|---|---|
| — | model_catalog_refresh_interval_hours | float | 24.0 |