# === LLM Provider API Keys === # You only need to enter the keys for the providers you plan to use GOOGLE_GENERATIVE_AI_API_KEY=**** OPENAI_API_KEY=**** XAI_API_KEY=**** ANTHROPIC_API_KEY=**** OPENROUTER_API_KEY=**** OLLAMA_BASE_URL=http://localhost:11434/api GROQ_API_KEY=**** GROQ_BASE_URL=https://api.groq.com/openai/v1 # (Optional) Default model to use when none is specified # Format: provider/model (e.g., openRouter/qwen3-8b:free) E2E_DEFAULT_MODEL= # === Database === # If you don't have PostgreSQL running locally, start it with: pnpm docker:pg POSTGRES_URL=postgres://your_username:your_password@localhost:5432/your_database_name # Secret for Better Auth (generate with: npx @better-auth/cli@latest secret) BETTER_AUTH_SECRET= # (Optional) # URL for Better Auth (the URL you access the app from) # IMPORTANT: Set this to https://localhost:3000 if using HTTPS locally # For production, this should match your domain (e.g., https://yourdomain.com) BETTER_AUTH_URL= # (Optional) # === Tools === # Exa AI for web search and content extraction (optional, but recommended for @web and research features) EXA_API_KEY= # ======================================================================== # === OPTIONAL SETTINGS BELOW (not required for basic functionality) === # ======================================================================== # (Optional) Redis for Multi-Instance Support # When running multiple server instances (load balancing, clustering): # - With Redis: Real-time MCP synchronization + reduced polling # - Without Redis: Polling-only synchronization (single instance or dev mode) # redis://localhost:6379 REDIS_URL= # (Optional) # Whether to use file-based MCP config (default: false) FILE_BASED_MCP_CONFIG=false # (Optional) # === OAuth Settings === # Fill in these values only if you want to enable Google/GitHub/Microsoft login #GitHub GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= #Google GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # Set to 1 to force account selection GOOGLE_FORCE_ACCOUNT_SELECTION= # Microsoft MICROSOFT_CLIENT_ID= MICROSOFT_CLIENT_SECRET= # Optional Tenant Id MICROSOFT_TENANT_ID= # Set to 1 to force account selection MICROSOFT_FORCE_ACCOUNT_SELECTION= # (Optional) # Set this to 1 to disable email/password sign in completely DISABLE_EMAIL_SIGN_IN= # (Optional) # Set this to 1 to disable email/password sign-ups (still allows sign-in for existing users) DISABLE_EMAIL_SIGN_UP= # (Optional) # Set this to 1 to disable OAuth sign-ups (Google, GitHub, Microsoft) DISABLE_SIGN_UP= # (Optional) # Set this to 1 to disallow adding MCP servers. NOT_ALLOW_ADD_MCP_SERVERS= # (Optional) # Maximum timeout for MCP tool calls in milliseconds (default: no timeout) # Useful for long-running MCP tools. Example: 600000 (10 minutes) MCP_MAX_TOTAL_TIMEOUT= # === File Storage === # -- Vercel Blob example -- # Pull the token locally with `vercel env pull` when testing against Vercel Blob. # FILE_STORAGE_TYPE=vercel-blob # FILE_STORAGE_PREFIX=uploads # BLOB_READ_WRITE_TOKEN= # -- S3 -- # FILE_STORAGE_TYPE=s3 # FILE_STORAGE_PREFIX=uploads # FILE_STORAGE_S3_BUCKET= # FILE_STORAGE_S3_REGION= # Optional: Use when serving files via CDN/custom domain # FILE_STORAGE_S3_PUBLIC_BASE_URL=https://cdn.example.com # Optional: For S3-compatible endpoints (e.g., MinIO) # FILE_STORAGE_S3_ENDPOINT=http://localhost:9000 # Optional: Force path-style URLs (1/true to enable) # FILE_STORAGE_S3_FORCE_PATH_STYLE=1 # AWS Credentials (server only) # The AWS SDK automatically discovers credentials in this order: # 1) Environment variables below, 2) ~/.aws/credentials or AWS_PROFILE, # 3) IAM role attached to the runtime (EC2/ECS/EKS/Lambda). # You do NOT need to set these when using an IAM role. # AWS_ACCESS_KEY_ID= # AWS_SECRET_ACCESS_KEY= # AWS_SESSION_TOKEN= # AWS_REGION=us-east-1