---
title: Environment Variables
description: Complete reference of all supported OpenSRE environment variables.
---

All configuration options for OpenSRE can be set via environment variables. This page provides a complete reference.

## LLM Providers

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `LLM_PROVIDER` | `anthropic` | Primary LLM provider (`anthropic`, `openai`, `openrouter`, `deepseek`, `gemini`, `nvidia`, `minimax`, `groq`, `azure-openai`, `bedrock`, `ollama`, `codex`, `claude-code`, `cursor`, `gemini-cli`, `antigravity-cli`, `opencode`, `kimi`, `copilot`, `grok-cli`, `pi`) | `config` |
| `LLM_MAX_TOKENS` | `4096` | Maximum tokens for LLM responses | `config` |
| `OPENSRE_LLM_TRANSPORT` | `sdk` | LLM transport for API providers: `sdk` (native SDKs) or `litellm` | `core/llm/transport_mode` |

### Anthropic
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `ANTHROPIC_API_KEY` | | API key for Anthropic | `llm_credentials` |
| `ANTHROPIC_REASONING_MODEL` | | Model for reasoning tasks | `config` |
| `ANTHROPIC_TOOLCALL_MODEL` | | Model for tool calling | `config` |

### OpenAI
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OPENAI_API_KEY` | | API key for OpenAI | `llm_credentials` |
| `OPENAI_REASONING_MODEL` | | Model for reasoning tasks | `config` |
| `OPENAI_TOOLCALL_MODEL` | | Model for tool calling | `config` |

### OpenRouter
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OPENROUTER_API_KEY` | | API key for OpenRouter | `llm_credentials` |
| `OPENROUTER_MODEL` | | Shared model for all tasks | `config` |
| `OPENROUTER_REASONING_MODEL` | | Override model for reasoning | `config` |
| `OPENROUTER_TOOLCALL_MODEL` | | Override model for tool calling | `config` |

### DeepSeek
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `DEEPSEEK_API_KEY` | | API key for DeepSeek | `llm_credentials` |
| `DEEPSEEK_MODEL` | | Shared model for all tasks | `config` |
| `DEEPSEEK_REASONING_MODEL` | | Override model for reasoning | `config` |
| `DEEPSEEK_TOOLCALL_MODEL` | | Override model for tool calling | `config` |

### Google Gemini
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `GEMINI_API_KEY` | | API key for Google Gemini | `llm_credentials` |
| `GEMINI_MODEL` | | Shared model for all tasks | `config` |
| `GEMINI_REASONING_MODEL` | | Override model for reasoning | `config` |
| `GEMINI_TOOLCALL_MODEL` | | Override model for tool calling | `config` |

### NVIDIA
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `NVIDIA_API_KEY` | | API key for NVIDIA NIM | `llm_credentials` |
| `NVIDIA_MODEL` | | Shared model for all tasks | `config` |
| `NVIDIA_REASONING_MODEL` | | Override model for reasoning | `config` |
| `NVIDIA_TOOLCALL_MODEL` | | Override model for tool calling | `config` |

### MiniMax
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `MINIMAX_API_KEY` | | API key for MiniMax | `llm_credentials` |
| `MINIMAX_MODEL` | | Shared model for all tasks | `config` |
| `MINIMAX_REASONING_MODEL` | | Override model for reasoning | `config` |
| `MINIMAX_TOOLCALL_MODEL` | | Override model for tool calling | `config` |

### Groq
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `GROQ_API_KEY` | | API key for Groq | `llm_credentials` |
| `GROQ_MODEL` | | Shared model for all tasks | `config` |
| `GROQ_REASONING_MODEL` | | Override model for reasoning | `config` |
| `GROQ_TOOLCALL_MODEL` | | Override model for tool calling | `config` |

### Azure OpenAI
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `AZURE_OPENAI_BASE_URL` | | Azure OpenAI resource URL (`https://<resource>.openai.azure.com`) | `config` |
| `AZURE_OPENAI_API_KEY` | | API key for Azure OpenAI | `llm_credentials` |
| `AZURE_OPENAI_API_VERSION` | `2024-10-21` | Azure OpenAI API version | `config` |
| `AZURE_OPENAI_MODEL` | | Shared deployment name for all slots | `config` |
| `AZURE_OPENAI_REASONING_MODEL` | `gpt-5.4-mini` | Deployment for reasoning tasks | `config` |
| `AZURE_OPENAI_CLASSIFICATION_MODEL` | `gpt-5.4-mini` | Deployment for classification | `config` |
| `AZURE_OPENAI_TOOLCALL_MODEL` | `gpt-5.4-mini` | Deployment for tool calling | `config` |

### Amazon Bedrock
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `BEDROCK_REASONING_MODEL` | | Model for reasoning tasks | `config` |
| `BEDROCK_TOOLCALL_MODEL` | | Model for tool calling | `config` |

### Ollama (Local)
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OLLAMA_MODEL` | | Model name in Ollama | `config` |
| `OLLAMA_HOST` | `http://localhost:11434` | Ollama server URL | `config` |

## LLM Reasoning Effort

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OPENSRE_REASONING_EFFORT` | `medium` | Reasoning effort level for extended thinking models (`low`, `medium`, `high`) | `llm_reasoning_effort` |

## CLI Investigation Tools

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `CODEX_BIN` | | Path to Codex CLI binary | `config` |
| `CODEX_MODEL` | | Model override for Codex | `config` |
| `CLAUDE_CODE_BIN` | | Path to Claude Code CLI binary | `config` |
| `CLAUDE_CODE_MODEL` | | Model override for Claude Code | `config` |
| `GEMINI_CLI_BIN` | | Path to Gemini CLI binary | `config` |
| `GEMINI_CLI_MODEL` | | Model override for Gemini CLI | `config` |
| `ANTIGRAVITY_CLI_BIN` | | Path to Antigravity CLI binary | `config` |
| `ANTIGRAVITY_CLI_MODEL` | | Model override for Antigravity | `config` |
| `ANTIGRAVITY_CLI_TIMEOUT_SECONDS` | | Timeout for Antigravity CLI invocations | `config` |
| `OPENCODE_BIN` | | Path to OpenCode CLI binary | `config` |
| `OPENCODE_MODEL` | | Model override for OpenCode | `config` |
| `CURSOR_BIN` | | Path to Cursor CLI binary | `config` |
| `CURSOR_MODEL` | | Model override for Cursor | `config` |
| `KIMI_BIN` | | Path to Kimi CLI binary | `config` |
| `KIMI_MODEL` | | Model override for Kimi | `config` |
| `KIMI_API_KEY` | | API key for Kimi | `config` |
| `COPILOT_BIN` | | Path to GitHub Copilot CLI binary | `config` |
| `COPILOT_MODEL` | | Model override for Copilot | `config` |
| `COPILOT_HOME` | | Copilot config directory override | `config` |
| `COPILOT_GITHUB_TOKEN` | | GitHub token for Copilot auth | `config` |
| `GROK_CLI_BIN` | | Path to Grok Build CLI binary | `config` |
| `GROK_CLI_MODEL` | | Model override for Grok Build CLI | `config` |
| `XAI_API_KEY` | | API-key auth for Grok Build CLI | `integrations/llm_cli` |
| `PI_BIN` | | Path to Pi CLI binary | `config` |
| `PI_MODEL` | | Model override for Pi CLI (`provider/model`) | `config` |
| `PI_AGENT_DIR` | | Pi agent config directory override | `integrations/llm_cli` |
| `PI_CONFIG_DIR` | | Pi config directory override | `integrations/llm_cli` |

## Output & Debugging

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `TRACER_VERBOSE` | `0` | Verbose output for tracer (`1`, `true`, `yes`) | `surfaces/interactive_shell/ui/output` |
| `TRACER_OUTPUT_FORMAT` | | Output format for tracer results | `platform/observability/output_format` |
| `TRACER_API_URL` | | API URL for tracer reports | `integrations/slack/delivery.py` |
| `NO_COLOR` | | Disable colored output (standard convention) | `platform/observability/output_format` |
| `COLUMNS` | `80` | Terminal column width for output formatting | `surfaces/interactive_shell/ui/output` |
| `ENV` | `development` | Environment (`development`, `production`) | `config` |

## Credentials & Authentication

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OPENSRE_DISABLE_KEYRING` | `0` | Disable OS keyring for credential storage | `llm_credentials` |
| `OPENSRE_LLM_AUTH_METADATA_PATH` | `~/.opensre/llm-auth.json` | Non-secret LLM auth metadata path used by prompt-safe status checks | `llm_auth/records` |
| `OPENSRE_API_KEY` | | API key for remote OpenSRE instances | `remote/server` |
| `DBUS_SESSION_BUS_ADDRESS` | | D-Bus socket address (Linux keyring) | `llm_credentials` |

## Telemetry & Monitoring

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OPENSRE_NO_TELEMETRY` | `0` | Disable all telemetry, including Sentry and PostHog (covers `$ai_generation` prompt/response events) | `platform/observability/sentry_sdk.py` |
| `OPENSRE_SENTRY_DISABLED` | `0` | Disable Sentry error reporting | `platform/observability/sentry_sdk.py` |
| `OPENSRE_SENTRY_DSN` | | Override Sentry DSN | `platform/observability/sentry_sdk.py` |
| `OPENSRE_SENTRY_LOGGING_DISABLED` | `0` | Disable Sentry log integration | `.env.example` |
| `OPENSRE_DEPLOYMENT_METHOD` | `local` | Deployment method tag for Sentry (`railway`, `ec2`, `vercel`, `local`) | `.env.example` |
| `OPENSRE_PROMPT_LOG_DISABLED` | `0` | Disable prompt logging entirely | `.env.example` |
| `OPENSRE_PROMPT_LOG_LOCAL_DISABLED` | `0` | Disable local prompt log file | `.env.example` |
| `OPENSRE_PROMPT_LOG_REDACT` | `1` | Redact known token shapes from prompts/responses before local or PostHog logging | `.env.example` |
| `OPENSRE_PROMPT_LOG_PATH` | `~/.config/opensre/prompt_log.jsonl` | Path to local prompt log file | `.env.example` |
| `DO_NOT_TRACK` | `0` | Honor global do-not-track preference | `platform/observability/sentry_sdk.py` |
| `SENTRY_TRACES_SAMPLE_RATE` | `1.0` | Trace sampling rate for Sentry | `.env.example` |
| `SENTRY_ERROR_SAMPLE_RATE` | `1.0` | Error sampling rate for Sentry | `.env.example` |

## Paths & Directories

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `INVESTIGATIONS_DIR` | `~/.opensre/investigations` | Directory for saved investigations | `remote/server` |
| `OPENSRE_PROJECT_ENV_PATH` | `PROJECT_ROOT/.env` | Path to project-level `.env` file | `surfaces/cli/wizard/config` |
| `OPENSRE_WIZARD_STORE_PATH` | `~/.opensre/opensre.json` | Path to the local wizard/provider selection store | `config/constants` |

## Feature Flags

| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OSRE_HELM_INTEGRATION` | | Enable Helm integration (1/true/yes) | `integrations/_catalog_impl` |
| `GITLAB_MR_WRITEBACK` | | Enable GitLab merge request writeback (`true`, `1`, `yes`) | `tools/investigation/reporting/gitlab_writeback` |
| `OPENSRE_RELEASES_API_URL` | GitHub releases API | Override releases API endpoint | `surfaces/cli/lifecycle/update` |

## Integration Credentials

### Observability & Monitoring
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `GRAFANA_INSTANCE_URL` | | Grafana instance URL | `integrations/_catalog_impl` |
| `GRAFANA_READ_TOKEN` | | Grafana API token | `integrations/_catalog_impl` |
| `GRAFANA_LOKI_DATASOURCE_UID` | | UID of Loki datasource in Grafana | `.env.example` |
| `GRAFANA_TEMPO_DATASOURCE_UID` | | UID of Tempo datasource in Grafana | `.env.example` |
| `DD_API_KEY` | | Datadog API key | `integrations/_catalog_impl` |
| `DD_APP_KEY` | | Datadog application key | `integrations/_catalog_impl` |
| `DD_SITE` | `datadoghq.com` | Datadog site (us/eu) | `integrations/_catalog_impl` |
| `GROUNDCOVER_API_KEY` | | groundcover read-only service-account token (alias: `GROUNDCOVER_MCP_TOKEN`) | `integrations/_catalog_impl` |
| `GROUNDCOVER_MCP_URL` | `https://mcp.groundcover.com/api/mcp` | groundcover MCP endpoint | `integrations/_catalog_impl` |
| `GROUNDCOVER_TENANT_UUID` | | Tenant UUID (multi-workspace accounts) | `integrations/_catalog_impl` |
| `GROUNDCOVER_BACKEND_ID` | | Backend ID (multi-backend tenants) | `integrations/_catalog_impl` |
| `GROUNDCOVER_TIMEZONE` | `UTC` | Timezone for returned timestamps (`X-Timezone`) | `integrations/_catalog_impl` |
| `HONEYCOMB_API_KEY` | | Honeycomb API key | `integrations/_catalog_impl` |
| `HONEYCOMB_DATASET` | `__all__` | Honeycomb dataset slug | `integrations/_catalog_impl` |
| `HONEYCOMB_API_URL` | `https://api.honeycomb.io` | Honeycomb API endpoint | `integrations/_catalog_impl` |
| `CORALOGIX_API_KEY` | | Coralogix API key | `integrations/_catalog_impl` |
| `CORALOGIX_API_URL` | `https://api.coralogix.com` | Coralogix API endpoint | `integrations/_catalog_impl` |
| `CORALOGIX_APPLICATION_NAME` | | Application name in Coralogix | `integrations/_catalog_impl` |
| `CORALOGIX_SUBSYSTEM_NAME` | | Subsystem name in Coralogix | `integrations/_catalog_impl` |
| `SIGNOZ_URL` | | SigNoz instance URL | `.env.example` |
| `SIGNOZ_API_KEY` | | SigNoz API key | `.env.example` |
| `ALERTMANAGER_URL` | | Alertmanager URL | `integrations/_catalog_impl` |
| `ALERTMANAGER_BEARER_TOKEN` | | Bearer token for Alertmanager | `integrations/_catalog_impl` |
| `ALERTMANAGER_USERNAME` | | Username for Alertmanager basic auth | `integrations/_catalog_impl` |
| `ALERTMANAGER_PASSWORD` | | Password for Alertmanager basic auth | `integrations/_catalog_impl` |
| `SPLUNK_URL` | | Splunk instance URL | `integrations/_catalog_impl` |
| `SPLUNK_TOKEN` | | Splunk API token | `integrations/_catalog_impl` |
| `SPLUNK_INDEX` | `main` | Splunk index | `integrations/_catalog_impl` |
| `SPLUNK_VERIFY_SSL` | `true` | Verify Splunk SSL certificate | `integrations/_catalog_impl` |
| `SENTRY_URL` | `https://sentry.io` | Sentry instance URL | `integrations/_catalog_impl` |
| `SENTRY_ORG_SLUG` | | Sentry organization slug | `integrations/_catalog_impl` |
| `SENTRY_PROJECT_SLUG` | | Sentry project slug | `integrations/_catalog_impl` |
| `SENTRY_AUTH_TOKEN` | | Sentry auth token | `integrations/_catalog_impl` |

### Cloud Platforms
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `AWS_REGION` | `us-east-1` | AWS region | `integrations/_catalog_impl` |
| `AWS_ROLE_ARN` | | AWS role ARN for cross-account access | `integrations/_catalog_impl` |
| `AWS_EXTERNAL_ID` | | External ID for AWS cross-account role | `integrations/_catalog_impl` |
| `AWS_ACCESS_KEY_ID` | | AWS access key | `integrations/_catalog_impl` |
| `AWS_SECRET_ACCESS_KEY` | | AWS secret access key | `integrations/_catalog_impl` |
| `AWS_SESSION_TOKEN` | | AWS session token | `integrations/_catalog_impl` |

### Messaging
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `SLACK_WEBHOOK_URL` | | Slack incoming webhook URL | `interactive_shell/ui/output`, `integrations/slack/delivery.py` |
| `SLACK_BOT_TOKEN` | | Slack bot token | `scheduler/credentials`, `.env.example` |
| `SLACK_ACCESS_TOKEN` | | Slack user token | `scheduler/credentials` |
| `SLACK_GITHUB_ISSUES_WEBHOOK_URL` | | Slack webhook for GitHub issues | `integrations/github/issue_comments` |
| `DISCORD_BOT_TOKEN` | | Discord bot token | `scheduler/credentials`, `remote/server` |
| `DISCORD_APPLICATION_ID` | | Discord application ID | `integrations/_catalog_impl` |
| `DISCORD_PUBLIC_KEY` | | Discord public key | `integrations/_catalog_impl` |
| `DISCORD_DEFAULT_CHANNEL_ID` | | Default Discord channel | `integrations/_catalog_impl` |
| `TELEGRAM_BOT_TOKEN` | | Telegram bot token | `integrations/telegram/credentials`, `scheduler/credentials` |
| `TELEGRAM_DEFAULT_CHAT_ID` | | Default Telegram chat ID | `integrations/telegram/credentials`, `integrations/_catalog_impl` |
| `TWILIO_ACCOUNT_SID` | | Twilio account SID | `integrations/_catalog_impl` |
| `TWILIO_AUTH_TOKEN` | | Twilio auth token | `integrations/_catalog_impl` |
| `TWILIO_WHATSAPP_FROM` | | WhatsApp sender number (Twilio) | `integrations/_catalog_impl` |
| `WHATSAPP_DEFAULT_TO` | | Default WhatsApp recipient | `integrations/_catalog_impl` |
| `TWILIO_SMS_FROM` | | SMS sender number (Twilio) | `integrations/_catalog_impl` |
| `TWILIO_SMS_MESSAGING_SERVICE_SID` | | SMS messaging service SID | `integrations/_catalog_impl` |
| `TWILIO_SMS_DEFAULT_TO` | | Default SMS recipient | `integrations/_catalog_impl` |

### Code & Collaboration
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `GITHUB_MCP_MODE` | `streamable-http` | GitHub MCP transport mode | `integrations/_catalog_impl` |
| `GITHUB_MCP_URL` | | GitHub MCP server URL | `integrations/_catalog_impl` |
| `GITHUB_MCP_COMMAND` | | GitHub MCP command to execute | `integrations/_catalog_impl` |
| `GITHUB_MCP_ARGS` | | GitHub MCP command arguments | `integrations/_catalog_impl` |
| `GITHUB_MCP_AUTH_TOKEN` | | GitHub MCP auth token | `integrations/_catalog_impl` |
| `GITHUB_MCP_TOOLSETS` | `repos,issues,pull_requests,actions,search` | Enabled GitHub MCP toolsets | `integrations/_catalog_impl` |
| `OPENSRE_GITHUB_MCP_REPO_PROBE_LIMIT` | `50` | Max repos to probe (5-500) | `.env.example` |
| `GITLAB_BASE_URL` | | GitLab instance URL | `integrations/_catalog_impl` |
| `GITLAB_TOKEN` | | GitLab API token | `.env.example` |
| `JIRA_BASE_URL` | | Jira instance URL | `integrations/_catalog_impl` |
| `JIRA_EMAIL` | | Jira user email | `integrations/_catalog_impl` |
| `JIRA_API_TOKEN` | | Jira API token | `integrations/_catalog_impl` |
| `JIRA_PROJECT_KEY` | | Default Jira project key | `integrations/_catalog_impl` |
| `BITBUCKET_WORKSPACE` | | Bitbucket workspace name | `integrations/_catalog_impl` |
| `BITBUCKET_USERNAME` | | Bitbucket username | `integrations/_catalog_impl` |
| `BITBUCKET_APP_PASSWORD` | | Bitbucket app password | `integrations/_catalog_impl` |
| `BITBUCKET_MAX_RESULTS` | `25` | Max results per API call | `integrations/_catalog_impl` |
| `INCIDENT_IO_BASE_URL` | | incident.io API URL | `integrations/_catalog_impl` |
| `INCIDENT_IO_API_TOKEN` | | incident.io API token | `.env.example` |
| `OPSGENIE_API_KEY` | | Opsgenie API key | `integrations/_catalog_impl` |
| `OPSGENIE_REGION` | `us` | Opsgenie region (us/eu) | `integrations/_catalog_impl` |
| `VERCEL_API_TOKEN` | | Vercel API token | `integrations/_catalog_impl` |
| `VERCEL_TEAM_ID` | | Vercel team ID | `integrations/_catalog_impl` |
| `VERCEL_POLL_PROJECT_IDS` | | Project IDs for Vercel polling (CSV) | `remote/vercel_poller` |

### Databases
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `MONGODB_CONNECTION_STRING` | | MongoDB connection string | `integrations/mongodb`, `integrations/_catalog_impl` |
| `MONGODB_DATABASE` | | MongoDB database name | `integrations/mongodb`, `integrations/_catalog_impl` |
| `MONGODB_AUTH_SOURCE` | `admin` | MongoDB auth source | `integrations/mongodb`, `integrations/_catalog_impl` |
| `MONGODB_TLS` | `true` | Enable MongoDB TLS | `integrations/mongodb`, `integrations/_catalog_impl` |
| `MONGODB_ATLAS_PUBLIC_KEY` | | MongoDB Atlas public API key | `integrations/_catalog_impl` |
| `MONGODB_ATLAS_PRIVATE_KEY` | | MongoDB Atlas private API key | `integrations/_catalog_impl` |
| `MONGODB_ATLAS_PROJECT_ID` | | MongoDB Atlas project ID | `integrations/_catalog_impl` |
| `MONGODB_ATLAS_BASE_URL` | `https://cloud.mongodb.com/api/atlas/v2` | MongoDB Atlas API base URL | `.env.example` |
| `REDIS_HOST` | | Redis host | `integrations/redis`, `integrations/_catalog_impl` |
| `REDIS_PORT` | `6379` | Redis port | `integrations/redis`, `integrations/_catalog_impl` |
| `REDIS_USERNAME` | | Redis ACL username (Redis 6+) | `integrations/redis`, `integrations/_catalog_impl` |
| `REDIS_PASSWORD` | | Redis password | `integrations/redis`, `integrations/_catalog_impl` |
| `REDIS_DATABASE` | `0` | Redis database number | `integrations/redis`, `integrations/_catalog_impl` |
| `REDIS_SSL` | `false` | Connect using TLS | `integrations/redis`, `integrations/_catalog_impl` |
| `POSTGRESQL_HOST` | | PostgreSQL host | `integrations/_catalog_impl` |
| `POSTGRESQL_PORT` | `5432` | PostgreSQL port | `integrations/_catalog_impl` |
| `POSTGRESQL_DATABASE` | | PostgreSQL database name | `integrations/_catalog_impl` |
| `POSTGRESQL_USERNAME` | `postgres` | PostgreSQL username | `integrations/_catalog_impl` |
| `POSTGRESQL_PASSWORD` | | PostgreSQL password | `integrations/_catalog_impl` |
| `POSTGRESQL_SSL_MODE` | `prefer` | PostgreSQL SSL mode | `integrations/_catalog_impl` |
| `MYSQL_HOST` | | MySQL host | `integrations/_catalog_impl` |
| `MYSQL_PORT` | `3306` | MySQL port | `integrations/_catalog_impl` |
| `MYSQL_DATABASE` | | MySQL database name | `integrations/_catalog_impl` |
| `MYSQL_USERNAME` | `root` | MySQL username | `integrations/_catalog_impl` |
| `MYSQL_PASSWORD` | | MySQL password | `integrations/_catalog_impl` |
| `MYSQL_SSL_MODE` | `preferred` | MySQL SSL mode | `integrations/_catalog_impl` |
| `MARIADB_HOST` | | MariaDB host | `integrations/_catalog_impl` |
| `MARIADB_PORT` | `3306` | MariaDB port | `integrations/_catalog_impl` |
| `MARIADB_DATABASE` | | MariaDB database name | `integrations/_catalog_impl` |
| `MARIADB_USERNAME` | | MariaDB username | `integrations/_catalog_impl` |
| `MARIADB_PASSWORD` | | MariaDB password | `integrations/_catalog_impl` |
| `MARIADB_SSL` | `true` | Enable MariaDB SSL | `integrations/_catalog_impl` |

### Message Queues & Other Services
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `RABBITMQ_HOST` | | RabbitMQ host | `integrations/_catalog_impl` |
| `RABBITMQ_MANAGEMENT_PORT` | `15672` | RabbitMQ management port | `integrations/_catalog_impl` |
| `RABBITMQ_USERNAME` | | RabbitMQ username | `integrations/_catalog_impl` |
| `RABBITMQ_PASSWORD` | | RabbitMQ password | `integrations/_catalog_impl` |
| `RABBITMQ_VHOST` | `/` | RabbitMQ vhost | `integrations/_catalog_impl` |
| `RABBITMQ_SSL` | `false` | Enable RabbitMQ SSL | `integrations/_catalog_impl` |
| `RABBITMQ_VERIFY_SSL` | `true` | Verify RabbitMQ SSL certificate | `integrations/_catalog_impl` |
| `BETTERSTACK_QUERY_ENDPOINT` | | Better Stack query endpoint | `integrations/_catalog_impl` |
| `BETTERSTACK_USERNAME` | | Better Stack username | `integrations/_catalog_impl` |
| `BETTERSTACK_PASSWORD` | | Better Stack password | `integrations/_catalog_impl` |
| `BETTERSTACK_SOURCES` | | Better Stack sources | `integrations/_catalog_impl` |
| `KAFKA_BOOTSTRAP_SERVERS` | | Kafka broker addresses | `.env.example` |
| `KAFKA_SECURITY_PROTOCOL` | `PLAINTEXT` | Kafka security protocol | `.env.example` |
| `KAFKA_SASL_MECHANISM` | | Kafka SASL mechanism | `.env.example` |
| `KAFKA_SASL_USERNAME` | | Kafka SASL username | `.env.example` |
| `KAFKA_SASL_PASSWORD` | | Kafka SASL password | `.env.example` |
| `DAGSTER_ENDPOINT` | | Dagster GraphQL endpoint | `integrations/_catalog_impl` |
| `DAGSTER_API_TOKEN` | | Dagster Cloud User Token (leave empty for unauthenticated local OSS) | `integrations/_catalog_impl` |

### Data & Search
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OPENSEARCH_URL` | | OpenSearch instance URL | `integrations/_catalog_impl` |
| `OPENSEARCH_USERNAME` | | OpenSearch username | `integrations/_catalog_impl` |
| `OPENSEARCH_PASSWORD` | | OpenSearch password | `integrations/_catalog_impl` |
| `OPENSEARCH_INDEX_PATTERN` | `*` | OpenSearch index pattern | `integrations/_catalog_impl` |
| `OPENSEARCH_MAX_RESULTS` | `100` | Max OpenSearch results | `integrations/_catalog_impl` |
| `OPENOBSERVE_URL` | | OpenObserve instance URL | `integrations/_catalog_impl` |
| `OPENOBSERVE_TOKEN` | | OpenObserve API token | `integrations/_catalog_impl` |
| `OPENOBSERVE_USERNAME` | | OpenObserve username | `integrations/_catalog_impl` |
| `OPENOBSERVE_PASSWORD` | | OpenObserve password | `integrations/_catalog_impl` |
| `OPENOBSERVE_ORG` | `default` | OpenObserve organization | `integrations/_catalog_impl` |
| `OPENOBSERVE_STREAM` | | OpenObserve stream | `integrations/_catalog_impl` |
| `OPENOBSERVE_MAX_RESULTS` | `100` | Max OpenObserve results | `integrations/_catalog_impl` |
| `VICTORIA_LOGS_URL` | | VictoriaLogs instance URL | `integrations/_catalog_impl` |
| `VICTORIA_LOGS_TENANT_ID` | | VictoriaLogs tenant ID | `integrations/_catalog_impl` |
| `CLICKHOUSE_HOST` | | ClickHouse host | `.env.example` |
| `CLICKHOUSE_PORT` | `8123` | ClickHouse port | `.env.example` |
| `CLICKHOUSE_DATABASE` | `default` | ClickHouse database | `.env.example` |
| `CLICKHOUSE_USER` | `default` | ClickHouse username | `.env.example` |
| `CLICKHOUSE_PASSWORD` | | ClickHouse password | `.env.example` |
| `CLICKHOUSE_SECURE` | `false` | Enable ClickHouse TLS | `.env.example` |
| `SNOWFLAKE_ACCOUNT_IDENTIFIER` | | Snowflake account identifier | `integrations/_catalog_impl` |
| `SNOWFLAKE_ACCOUNT` | | Snowflake account (alternative) | `integrations/_catalog_impl` |
| `SNOWFLAKE_TOKEN` | | Snowflake token | `integrations/_catalog_impl` |
| `SNOWFLAKE_USER` | | Snowflake username | `integrations/_catalog_impl` |
| `SNOWFLAKE_PASSWORD` | | Snowflake password | `integrations/_catalog_impl` |
| `SNOWFLAKE_WAREHOUSE` | | Snowflake warehouse | `integrations/_catalog_impl` |
| `SNOWFLAKE_ROLE` | | Snowflake role | `integrations/_catalog_impl` |
| `SNOWFLAKE_DATABASE` | | Snowflake database | `integrations/_catalog_impl` |
| `SNOWFLAKE_SCHEMA` | | Snowflake schema | `integrations/_catalog_impl` |
| `SNOWFLAKE_MAX_RESULTS` | `50` | Max Snowflake results | `integrations/_catalog_impl` |
| `AZURE_SQL_SERVER` | | Azure SQL server name | `integrations/_catalog_impl` |
| `AZURE_SQL_DATABASE` | | Azure SQL database name | `integrations/_catalog_impl` |
| `AZURE_SQL_PORT` | | Azure SQL port | `integrations/_catalog_impl` |
| `AZURE_SQL_USERNAME` | | Azure SQL username | `integrations/_catalog_impl` |
| `AZURE_SQL_PASSWORD` | | Azure SQL password | `integrations/_catalog_impl` |
| `AZURE_SQL_DRIVER` | `ODBC Driver 18 for SQL Server` | Azure SQL ODBC driver | `integrations/_catalog_impl` |
| `AZURE_SQL_ENCRYPT` | `true` | Enable Azure SQL encryption | `integrations/_catalog_impl` |
| `AZURE_LOG_ANALYTICS_WORKSPACE_ID` | | Azure Log Analytics workspace ID | `integrations/_catalog_impl` |
| `AZURE_LOG_ANALYTICS_TOKEN` | | Azure Log Analytics token | `integrations/_catalog_impl` |
| `AZURE_TENANT_ID` | | Azure tenant ID | `integrations/_catalog_impl` |
| `AZURE_SUBSCRIPTION_ID` | | Azure subscription ID | `integrations/_catalog_impl` |
| `AZURE_MAX_RESULTS` | `100` | Max Azure results | `integrations/_catalog_impl` |

### MCP Servers
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `OPENCLAW_MCP_URL` | | OpenClaw MCP server URL | `integrations/_catalog_impl` |
| `OPENCLAW_MCP_COMMAND` | | OpenClaw MCP command to execute | `integrations/_catalog_impl` |
| `OPENCLAW_MCP_MODE` | `streamable-http` | OpenClaw MCP transport mode | `integrations/_catalog_impl` |
| `OPENCLAW_MCP_ARGS` | | OpenClaw MCP command arguments | `integrations/_catalog_impl` |

### Git Integrations
| Variable | Default | Description | Module |
|----------|---------|-------------|--------|
| `GITHUB_EVENT_PATH` | | GitHub Actions event payload path | `integrations/github/issue_comments` |
| `GITHUB_REPOSITORY` | | GitHub repository (owner/repo) | `integrations/github/issue_comments` |
| `GITHUB_TOKEN` | | GitHub personal access token | `.env.example` |

## Multi-Instance Integrations

Many integrations support multi-instance configuration via JSON:

| Variable Pattern | Description |
|------------------|-------------|
| `GRAFANA_INSTANCES` | JSON array of Grafana instances |
| `DD_INSTANCES` | JSON array of Datadog instances |
| `GROUNDCOVER_INSTANCES` | JSON array of groundcover instances |
| `HONEYCOMB_INSTANCES` | JSON array of Honeycomb instances |
| `CORALOGIX_INSTANCES` | JSON array of Coralogix instances |
| `AWS_INSTANCES` | JSON array of AWS accounts |
| `ARGOCD_INSTANCES` | JSON array of Argo CD instances |

See [multi-instance-integrations](/multi-instance-integrations) for detailed format.

## LLM Classification Models

When not specified, classification models fall back to reasoning models or provider defaults:

| Variable | Default | Description |
|----------|---------|-------------|
| `ANTHROPIC_CLASSIFICATION_MODEL` | | Anthropic classification model |
| `OPENAI_CLASSIFICATION_MODEL` | | OpenAI classification model |
| `OPENROUTER_CLASSIFICATION_MODEL` | | OpenRouter classification model |
| `DEEPSEEK_CLASSIFICATION_MODEL` | | DeepSeek classification model |
| `GEMINI_CLASSIFICATION_MODEL` | | Gemini classification model |
| `NVIDIA_CLASSIFICATION_MODEL` | | NVIDIA classification model |
| `MINIMAX_CLASSIFICATION_MODEL` | | MiniMax classification model |
| `GROQ_CLASSIFICATION_MODEL` | | Groq classification model |

## Notes

- All variables support `.env` file configuration
- Environment variables take precedence over `.env` file
- Variables with empty values are typically treated as "not set"
- Boolean values accept: `1`, `true`, `yes`, `on` (case-insensitive)
- See [LLM Providers](/llm-providers) for detailed provider setup instructions
