.env is the single source of truth for an Eyra runtime. Settings.load_from_env() reads every setting with defaults, validates booleans and numeric ranges, and feeds the runtime, Web UI, routing, tools, and voice stack.
Most people should start with eyra setup, eyra status, and eyra settings. Edit .env directly only when you want a specific provider, model, sandbox root, or optional capability gate.
Simple settings
Use the settings command for the normal path:eyra settings shows safe front-door controls and redacts secrets. It refuses direct edits to provider keys; use eyra setup for those.
The menu bar uses the same settings surface, so terminal and menu controls stay in sync.
Memory and instruction files
Memory is enabled by default and stored locally:AGENTS.md is for short user rules. personality.md is only for style. Eyra compacts both before model calls and refuses to save raw or sensitive payloads to memory.
File precedence
Installed Eyra reads:.env, but only when the current directory looks like the Eyra source tree (pyproject.toml names eyra and src/main.py exists). Eyra does not read unrelated project .env files from arbitrary current directories.
Process environment variables override both files.
Provider
API_BASE_URL can point at Ollama, LM Studio, vLLM, OpenRouter, Groq, OpenAI, or any compatible /v1/chat/completions endpoint.
Local providers ignore API_KEY. Cloud providers require a real key and receive prompts, tool results, and model-bound content because you configured that provider.
Models
Default behavior: all requests useMODEL after local policy routing.
MODEL, WORKER_MODEL when set, and VISION_MODEL when set. If routing is on, Eyra validates all tier models.
Voice
VOICE_INPUT_DEVICE accepts a sounddevice input index or name. Leave it empty for the system default.
Filesystem sandbox
FILESYSTEM_DEFAULT_PATH, then Eyra checks that the resolved path sits under one of FILESYSTEM_ALLOWED_PATHS.
Optional capability gates
Default behavior: optional tools are disabled.Connectors
CONNECTORS_ALLOWED_ROOTS empty to reuse FILESYSTEM_ALLOWED_PATHS. Remote and Python-module connectors stay refused until their explicit opt-ins are enabled.
Web UI
WEB_UI_REQUIRE_TOKEN=auto requires a token for every non-health endpoint. WEB_UI_REQUIRE_TOKEN=false is allowed only on localhost; non-localhost binds always require a token.
Realtime voice
Logs and stores
~/Library/Logs/Eyra/eyra.log.