Skip to main content

Overview

Environment variables are the highest-priority configuration source — they override everything in settings.json. Set them in your shell profile, .env file, or container environment.

LLM Provider Keys

LLM failover & spend controls

These control the resilience layer in agents/llm_provider.py. They are optional — leaving every value at its default keeps the historical primary-then-fallback ordering. When budget routing is enabled, GET /api/llm/health (the v2 “Fallbacks” card source) includes a budget block with daily_budget_usd, daily_spend_usd, remaining_usd, headroom_ratio, tight_ratio, and per-candidate cost estimates from the most recent dispatch.

Core Settings

Update Checks

With the check on, the brain asks once per TTL on a background task and never on a request path; GET /api/dashboard and feral doctor read the cached answer only. An unreachable index reports unknown, never an error. feral update asks on demand whatever this is set to, because running the command is the request.

Autonomy & Security

Docker sandbox hardening

These tune the runtime flags applied to every container started by security/docker_sandbox.py. Defaults are the safe values — only override when you have a concrete reason.

Voice

Vision & Perception

Audio

Channels

Hardware

Memory

Pairing & Access

Integrations

Coding Harness

Each of these also has a settings.json mirror under the coding section (FERAL_READ_BEFORE_EDIT mirrors coding.read_before_edit, and so on), so a choice can be persisted instead of re-exported on every launch. The environment variable stays the higher-priority source: set it and it wins over settings.json.

Feature Flags

Earlier versions of these docs listed a FERAL_COMPUTER_USE flag — that variable was never wired into the code. To gate computer-use, change autonomy mode in the WebUI Settings → Autonomy picker (writes security.autonomy_mode in ~/.feral/settings.json); strict requires approval for every action, hybrid (default) requires approval for destructive / dangerous-tier actions only, loose auto-runs everything.
Set feature flags to false to disable subsystems you don’t need — this reduces memory usage and startup time.