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

Secret storage

Environment variables are checked first. Credentials you enter through opensre onboard for LLM setup, or through opensre integrations setup for tools, are written to .env and to an owner-only file at ~/.opensre/credentials.json (mode 0600). OpenSRE does not write secrets to the OS keychain. A value in the process environment or a local .env file wins over the credentials file. Keep .env out of source control. Want credentials only from the environment, never on disk? Set OPENSRE_DISABLE_KEYRING=1 and export everything yourself.

LLM providers

LLM Reasoning Effort

CLI providers

Output & Debugging

Credentials and authentication

For secrets (*_TOKEN, *_KEY, *_PASSWORD, *_SECRET, and similar), OpenSRE looks in this order:
  1. Your process environment
  2. The owner-only file ~/.opensre/credentials.json
opensre onboard saves LLM credentials there so they still work after you clear .env. Not stored as secrets: webhook-style URLs such as SLACK_WEBHOOK_URL and ROCKETCHAT_WEBHOOK_URL. Those stay in env / store only — treat them as secrets and don’t log them. Want credentials only from the environment, never on disk? Set OPENSRE_DISABLE_KEYRING=1 and export everything yourself.

Telemetry & Monitoring

LLM tracing with Langfuse (optional)

Every chat turn can be exported as a Langfuse trace: one trace per turn, with the user message and the reply on the root, a generation per model call (model, prompt, response, token usage) and a tool per tool execution nested under the agent loop. Traces are grouped and attributed the way you work:
  • Session: the Langfuse session_id is the OpenSRE session id (the ~/.opensre/sessions/<id>.jsonl file). Everything run from a shell session joins it — including the scheduled loops that shell is hosting, which are tagged scheduled with the task id and name in metadata. Loops run by the background scheduler service or the gateway group per task instead.
  • User: the chat-platform user for gateway turns; the signed-in OpenSRE account for the shell and CLI; a stable per-install id when signed out. Shell and CLI traces also carry that installation_id in metadata so traces from before a login can be matched to the user afterwards.
Tracing is off unless both keys are set and the extra is installed:
Without the keys — or without the package — the agent runs exactly as before; nothing is buffered or exported. Credential-shaped values (API keys, bearer tokens, password/token fields) are masked before a span leaves the process.

Paths & Directories

Memory

Remote sync

Mirror conversation history and memory to a user-owned object store. Details: Remote sync.

Masking

Feature Flags

Integration credentials

Multi-instance integrations

Need more than one Datadog, Grafana, or AWS account (for example prod and staging)? Use a JSON *_INSTANCES variable: Format and examples: Multi-instance integrations.

LLM classification models

If you don’t set these, OpenSRE falls back to the reasoning model (or the provider default):