# Test key — local only. Never commit. OPENCODE_API_KEY= OPENCODE_MODEL=deepseek-v4.1-flash OPENCODE_URL=https://opencode.ai/zen/go/v1/chat/completions # Discord — test bot (private channel first) DISCORD_TOKEN= DISCORD_CLIENT_ID= VECTOR_TEST_CHANNEL_ID= # Optional later TELEGRAM_TOKEN= TELEGRAM_CHAT_ID= DATABASE_URL= # Turns on answering in the public help forum. Leave empty until you want that. # /done already works on forum posts for named staff without this. # Order/email/privacy never belong there even if this is set later. HELP_FORUM_CHANNEL_ID= STAFF_ALERT_CHANNEL_ID= # Optional. Named Discord user ids that can /done. Mods with Manage Threads can anyway. STAFF_USER_IDS= STAFF_ROLE_ID= # Area owners. Example: shop:123,app:456,desktop:789,firmware:111,privacy:222 # Use role:ROLEID for a Discord role. Empty = no extra ping. AREA_OWNERS= # GitHub App (preferred). Issues post as the app, not a person. GITHUB_APP_ID= GITHUB_APP_INSTALLATION_ID= GITHUB_APP_PRIVATE_KEY= # Optional fallback only. Do not use a personal PAT. GITHUB_TOKEN= GITHUB_REPO=BasedHardware/omi GITHUB_WEBHOOK_SECRET= # Set to 0 to skip creating a Handoff thread on the user message HANDOFF_THREADS=1 PORT=3000 # Optional. Read-only Shopify Admin API. Never commit the token. # Store can be "your-shop" or "your-shop.myshopify.com" SHOPIFY_STORE= SHOPIFY_ACCESS_TOKEN= # Required for /order OTP bind. 32 bytes, base64: openssl rand -base64 32 DATA_ENCRYPTION_KEY= # Resend. Without both, /order stays dark and tells people to email help@omi.me. RESEND_API_KEY= EMAIL_FROM=