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

# Settings

> As you like it

<Note>
  **Quickstart**

  ```yaml theme={null}
  # config.yaml
  settings:
    persist_cache: true
    logs_dir: "blast-logs/"      # Log to files (null for terminal-only)
    blastai_log_level: "info"    # BLAST engine log level
    browser_use_log_level: "info" # Browser operations log level

  # Start BLAST with your config
  blastai serve --config config.yaml
  ```
</Note>

### LLM Provider

Configure which models to use and their API keys:

```yaml theme={null}
constraints:
  # For OpenAI models:
  llm_model: "openai:gpt-4.1"           # Main model for complex tasks
  llm_model_mini: "openai:gpt-4.1-mini" # Model for simpler tasks

  # For Google Gemini models:
  llm_model: "google_genai:gemini-2.0-flash-exp"
  llm_model_mini: "google_genai:gemini-2.0-flash-exp"
```

API keys can be provided in three ways:

1. Environment variables:

```bash theme={null}
export OPENAI_API_KEY=sk-...
export OPENAI_BASE_URL=https://your-endpoint.com  # Optional
export GOOGLE_API_KEY=AIza...  # Get from aistudio.google.com
```

2. `.env` file:

```env theme={null}
# For OpenAI models
OPENAI_API_KEY=sk-...
OPENAI_BASE_URL=https://your-endpoint.com  # Optional

# For Google Gemini models
GOOGLE_API_KEY=AIza...  # Get from aistudio.google.com
```

3. Command line:

```bash theme={null}
blastai serve --env="OPENAI_API_KEY=sk-..."
blastai serve --env="GOOGLE_API_KEY=AIza..."
```

The system automatically detects the model provider from the prefix (`openai:` or `google_genai:`) and uses the appropriate API key.

### Secrets

```yaml theme={null}
settings:
  secrets_file_path: "secrets.env"  # Path to secrets file
```

The secrets file can contain usernames and passwords for web apps BLAST may need to access:

```env theme={null}
jira_username=calebwin
jira_password=akjgvowi
```

### Browser

```yaml theme={null}
settings:
  local_browser_path: "none"  # Path to Chrome/Chromium binary
```

The `local_browser_path` setting accepts these values:

* `"none"` (default) - Use system-installed browser
* `"auto"` - Auto-detect browser location
* `"/path/to/browser"` - Specific browser binary path

### Caching

```yaml theme={null}
settings:
  persist_cache: false  # Persist cache between serving sessions
```

### Logging

Control logging behavior and verbosity:

```yaml theme={null}
settings:
  # Log file directory (set to null to log to terminal only)
  logs_dir: "blast-logs/"

  # Component log levels
  blastai_log_level: "debug"    # Logging level for BLAST
  browser_use_log_level: "info" # Logging level for browser_use
```

When `logs_dir` is set (default: "blast-logs/"):

* All logs go to files based on their levels
* Only engine metrics shown in terminal
* Log file paths shown in endpoint messages

When `logs_dir` is null:

* All logs go to terminal based on their levels
* Engine metrics are not shown

Available log levels (from most to least verbose):

* `"debug"` - Detailed debugging information
* `"info"` - General information
* `"warning"` - Warning messages
* `"error"` - Error messages only
* `"critical"` - Critical errors only

## Next Steps

* Configure [Constraints](/guides/constraints) for resource management
* Learn about automatic [Parallelism](/guides/parallelism)
* Explore [Caching](/guides/caching)
