# ===================================================== # EverOS — md-first Memory Extraction Framework # Configuration Template # ===================================================== # # Setup: # 1. cp env.template .env # 2. Edit .env with your values # 3. .env is gitignored (never commit) # # Override priority (low → high): # src/everos/config/default.toml (shipped baseline) # ↓ # /everos.toml (user config; optional; root resolved # by EVEROS_ROOT env > ~/.everos) # ↓ # EVEROS_
__ process envs (this file sources these) # ↓ # programmatic init args / CLI flags # ===================================================== # ─── LLM (OpenAI-protocol compatible) ──────────────── # Any OpenAI-API-compatible endpoint plugs in via base_url. Defaults # below target OpenRouter (one key, broad model catalogue); switch to # OpenAI, vLLM, Ollama (OpenAI bridge), or any other compatible endpoint # by changing model + base_url + api_key. EVEROS_LLM__MODEL=openai/gpt-4.1-mini EVEROS_LLM__API_KEY= EVEROS_LLM__BASE_URL=https://openrouter.ai/api/v1 # Aliyun Bailian (DashScope) alternative — one key also covers embedding + # rerank below, so the same value goes in all three API_KEY slots. # Uncomment these three lines and comment out the OpenRouter lines above: # EVEROS_LLM__MODEL=qwen-plus # EVEROS_LLM__API_KEY= # EVEROS_LLM__BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # ─── Multimodal LLM (independent from [llm]; vision/audio capable) ──── # Separate model for parsing multimodal content items (image / pdf / # audio / ...); must support OpenAI image_url parts. Defaults target # Gemini via OpenRouter so the same key covers chat + multimodal. EVEROS_MULTIMODAL__MODEL=google/gemini-3-flash-preview EVEROS_MULTIMODAL__API_KEY= EVEROS_MULTIMODAL__BASE_URL=https://openrouter.ai/api/v1 # Concurrency cap for parallel multimodal calls (default 4): # EVEROS_MULTIMODAL__MAX_CONCURRENCY=4 # # file:// content-item support (read locally by EverOS, not everalgo). # Size cap per file:// asset (bytes; default 50 MiB): # EVEROS_MULTIMODAL__FILE_URI_MAX_BYTES=52428800 # Allowlisted base dirs for file:// uris (JSON list). Empty/unset = allow any # readable file (local-first default); set to confine reads when the API is # exposed beyond loopback: # EVEROS_MULTIMODAL__FILE_URI_ALLOW_DIRS=["/srv/uploads"] # ─── Embedding (OpenAI-protocol /embeddings) ───────── # Any OpenAI-compatible embedding endpoint plugs in via base_url. # model / api_key / base_url have no shipped default — set them here # or in /everos.toml before the embedding capability is used. EVEROS_EMBEDDING__MODEL=Qwen/Qwen3-Embedding-4B EVEROS_EMBEDDING__API_KEY= EVEROS_EMBEDDING__BASE_URL=https://api.deepinfra.com/v1/openai # Aliyun Bailian (DashScope) alternative. Uncomment these three lines and # comment out the DeepInfra embedding lines above: # EVEROS_EMBEDDING__MODEL=text-embedding-v4 # EVEROS_EMBEDDING__API_KEY= # EVEROS_EMBEDDING__BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # Runtime knobs — uncomment to override defaults (30s / 3 / 10 / 5): # EVEROS_EMBEDDING__TIMEOUT_SECONDS=30 # EVEROS_EMBEDDING__MAX_RETRIES=3 # EVEROS_EMBEDDING__BATCH_SIZE=10 # EVEROS_EMBEDDING__MAX_CONCURRENT=5 # ─── Rerank (OpenAI-protocol /rerank) ──────────────── # base_url should point at the rerank endpoint (e.g. .../v1/rerank). # EVEROS_RERANK__PROVIDER selects the request-shape: "deepinfra" (default), # "vllm", or "dashscope". Left unset, it is inferred from the base_url host # (dashscope.aliyuncs.com -> dashscope, *.deepinfra.com -> deepinfra). EVEROS_RERANK__MODEL=Qwen/Qwen3-Reranker-4B EVEROS_RERANK__API_KEY= EVEROS_RERANK__BASE_URL=https://api.deepinfra.com/v1/inference # Aliyun Bailian (DashScope) alternative. EverOS currently supports # DashScope rerank via gte-rerank-v2; provider is auto-inferred from host, # so EVEROS_RERANK__PROVIDER is optional. Uncomment these three lines and # comment out the DeepInfra rerank lines above: # EVEROS_RERANK__MODEL=gte-rerank-v2 # EVEROS_RERANK__API_KEY= # EVEROS_RERANK__BASE_URL=https://dashscope.aliyuncs.com # Runtime knobs — uncomment to override defaults (30s / 3 / 10 / 5): # EVEROS_RERANK__TIMEOUT_SECONDS=30 # EVEROS_RERANK__MAX_RETRIES=3 # EVEROS_RERANK__BATCH_SIZE=10 # EVEROS_RERANK__MAX_CONCURRENT=5 # ─── Storage paths ─────────────────────────────────── # memory-root holds md files + .index/ (LanceDB) + .system.db (SQLite) + ... # Override the default (~/.everos) with EVEROS_ROOT; also controls which # everos.toml is loaded. See config/default.toml for all other tunables. # EVEROS_ROOT=~/.everos # ─── HTTP API ──────────────────────────────────────── # Bind for ``everos server start``. Default ``127.0.0.1`` keeps the # server on loopback only; EverOS ships no built-in authentication (see # SECURITY.md). Set HOST=0.0.0.0 only after you have your own gateway / # auth layer in front — the CLI logs a warning if you bind to 0.0.0.0. # EVEROS_API__HOST=127.0.0.1 # EVEROS_API__PORT=8000 # ─── Observability ─────────────────────────────────── EVEROS_LOG_LEVEL=INFO # DEBUG | INFO | WARNING | ERROR EVEROS_LOG_FORMAT=json # json | text # EVEROS_OTEL_ENDPOINT=http://localhost:4317 # OTel exporter (optional) # ─── Runtime ───────────────────────────────────────── # TZ used by component.utils.datetime when input has no timezone TZ=UTC