Skip to content

Configuration

lynox uses two config files, merged at startup:

FileScopePurpose
~/.lynox/config.jsonUserAPI key, model, personal preferences
.lynox/config.jsonProjectProject-specific overrides (safe subset only)

Project configs cannot override security-sensitive fields like API keys or vault settings.

{
"provider": "anthropic",
"api_base_url": "https://api.mistral.ai/v1",
"openai_model_id": "mistral-large-latest"
}
SettingValuesDefault
provideranthropic, openai (Mistral / Ollama / LM Studio / OpenAI / Groq / vLLM / Gemini long-context), custom (Anthropic-compat proxy via LiteLLM), vertex (legacy)anthropic
api_base_urlEndpoint for provider: openai or custom
openai_model_idModel ID for provider: openai (e.g. mistral-large-latest, llama3.2)

Only configure the fields relevant to your provider. See LLM Providers for full setup guides per provider, including a “Legacy: Vertex AI” footnote for existing provider: vertex users.

{
"default_tier": "sonnet",
"thinking_mode": "adaptive",
"effort_level": "high"
}
SettingValuesDefault
default_tieropus, sonnet, haikusonnet
thinking_modeadaptive, disabledadaptive
effort_levellow, medium, high, maxhigh
  • opus — Most capable, higher cost
  • sonnet — Balanced (recommended)
  • haiku — Fastest, lowest cost
{
"max_session_cost_usd": 50.00,
"max_daily_cost_usd": 100.00,
"max_monthly_cost_usd": 500.00
}

lynox tracks token usage per session, day, and month. Defaults shown above are the engine’s built-in ceilings; lower them in config.json if you want a tighter budget. When a limit is reached, it pauses and asks before continuing.

Web search is included out of the box via SearXNG (bundled in docker-compose). No configuration needed — it works automatically.

{
"search_provider": "searxng",
"searxng_url": "http://searxng:8080"
}
SettingValuesDefault
search_providersearxng, tavilysearxng
searxng_urlSearXNG instance URL

See SearXNG setup for details.

{
"memory_extraction": true,
"memory_half_life_days": 90
}
  • memory_extraction — Automatically extract and store insights from conversations
  • memory_half_life_days — How quickly memories fade (higher = longer retention)
{
"knowledge_graph_enabled": true,
"embedding_provider": "onnx",
"embedding_model": "all-minilm-l6-v2"
}
SettingValuesDefault
knowledge_graph_enabledtrue, falsetrue
embedding_provideronnx, localonnx
embedding_modelall-minilm-l6-v2, multilingual-e5-small, bge-m3all-minilm-l6-v2

Use multilingual-e5-small or bge-m3 if you primarily work in non-English languages.

{
"changeset_review": true
}

When enabled, file writes are staged and shown as a diff for review before being applied. Useful for high-autonomy setups where you still want a final check.

{
"backup_schedule": "0 3 * * *",
"backup_retention_days": 30,
"backup_encrypt": true,
"backup_gdrive": false
}

See Backups for details.

{
"enforce_https": false
}

When enforce_https is true, all outbound HTTP requests from tools are blocked — only HTTPS is allowed.

{
"agents_dir": "./agents",
"manifests_dir": "./workflows",
"mcp_servers": [
{ "name": "my-server", "url": "https://my-mcp-server.example.com/sse" }
],
"mcp_exposed_tools": ["lynox_run", "lynox_memory"]
}

See Extension Points and MCP for details.

{
"experience": "business"
}
  • business — Optimized for business users (default)
  • developer — Shows more technical details and options (experimental)

Environment variables always take the highest precedence. The full priority chain for secrets is:

  1. Environment variable (e.g. ANTHROPIC_API_KEY) — always wins, useful for overriding stale vault entries
  2. Encrypted vault (~/.lynox/vault.db) — persisted via Web UI or ask_secret
  3. Config file (~/.lynox/config.json) — lowest priority

When an env var overrides a vault value, a log message is printed: [lynox] ANTHROPIC_API_KEY env var overrides vault value.

Credentials can also be stored interactively via lynox’s secure ask_secret dialog — the agent will prompt you when it needs a key, and the value goes directly to the encrypted vault without ever entering the chat. See Security for details.

VariablePurpose
ANTHROPIC_API_KEYClaude API key (Anthropic provider) — also reused as the generic key for provider: openai
ANTHROPIC_BASE_URLEndpoint for provider: openai or custom (e.g. https://api.mistral.ai/v1)
LYNOX_LLM_PROVIDERLLM provider: anthropic (default), openai, custom (Anthropic-compat proxy), vertex (legacy)
VariablePurpose
OPENAI_MODEL_IDModel ID, e.g. mistral-large-latest, llama3.2, gpt-4o, llama-3.3-70b-versatile
ANTHROPIC_API_KEYAPI key for the provider (reused env var; leave blank for local Ollama / LM Studio without auth)
ANTHROPIC_BASE_URLProvider base URL — see LLM Providers for the value per backend

provider: vertex is no longer offered by the installer; the env vars below remain wired for existing config.json setups that still point at Vertex. New installs should use Anthropic direct or the OpenAI-compatible path above.

VariablePurpose
GCP_PROJECT_IDGCP project ID
CLOUD_ML_REGIONVertex region, e.g. europe-west4, us-east5
GOOGLE_APPLICATION_CREDENTIALSPath to GCP service-account JSON
VariablePurpose
SEARXNG_URLSearXNG instance URL (included in docker-compose, recommended)
TAVILY_API_KEYTavily API key (alternative to SearXNG, 1K free/month)
VariablePurpose
LYNOX_HTTP_PORTHTTP API port (default: 3000 in Docker, 3100 locally)
LYNOX_HTTP_SECRETBearer token for HTTP API authentication
LYNOX_WEBUI_URLWeb UI URL (default: http://localhost:5173)
LYNOX_MCP_PORTMCP server port (default: 3042)
LYNOX_MCP_SECRETBearer token for MCP server authentication
VariablePurpose
LYNOX_VAULT_KEYEncryption key for the secret vault
LYNOX_DATA_DIROverride data directory (default: ~/.lynox)
LYNOX_WORKSPACEWorking directory for file operations
LYNOX_BUGSINK_DSNError reporting DSN (self-hosted, opt-in)
VariablePurpose
GOOGLE_CLIENT_IDGoogle OAuth client ID
GOOGLE_CLIENT_SECRETGoogle OAuth client secret
GOOGLE_SERVICE_ACCOUNT_KEYPath to Google service account JSON key file (headless/Docker)

You can edit config in three ways:

  1. Web UI — Settings → Config
  2. Direct — Edit ~/.lynox/config.json manually (restart required)