BASE_URLOptionalConfigures base url.
DystopianVariable LibrarySage configuration, without the archaeology
Browse the variables available to your Sage tier. Add a complete feature group or pick only what you need, then copy a clean environment block.
Category
BASE_URLOptionalConfigures base url.
BOT_LOOP_COOLDOWN_MSStandardConfigures bot loop cooldown ms.
5000BOT_PINGPONG_MAXStandardBreaks ping-pong loops between two bots talking to each other.
3CJK_AUTO_TRANSLATEOptionalUseful when the user switches languages mid-conversation.
falseEXPRESSION_STYLEStandardConfigures expression style.
HF_TOKENOptionalSensitiveConfigures hf token.
MAX_BOT_RESPONSES_PER_HUMANStandardPrevents bot loops — after this many bot replies the bot goes quiet until a human sends a message.
3MAX_CONSECUTIVE_SELF_MESSAGESStandardGuards against runaway autonomous messaging.
2MAX_FAVORITESStandardFavorited memories are always loaded regardless of relevance score.
200MAX_RESPONSE_TOKENSOptionalSensitiveConfigures max response tokens.
MAX_RP_CROSSREFStandardConfigures max rp crossref.
20PGDATABASEOptionalConfigures pgdatabase.
railwayPGHOSTOptionalIndividual PG connection params (Railway auto-provides these via linked variables — usually not needed)
PGHOST_PRIVATEOptionalConfigures pghost private.
PGPASSWORDOptionalSensitiveConfigures pgpassword.
PGPORTOptionalConfigures pgport.
5432PGUSEROptionalConfigures pguser.
postgresPGUSERNAMEOptionalConfigures pgusername.
postgresPRIMARY_DB_URLOptionalConfigures primary db url.
PRIMARY_USER_NAMEOptionalConfigures primary user name.
RESPOND_TO_BOTSStandardConfigures respond to bots.
falseRESPOND_TO_DMSStandardConfigures respond to dms.
trueRESPOND_TO_GENERICStandardWarning: very chatty. Combine with channel whitelisting.
trueRESPOND_TO_MENTIONSStandardControls when and how often the bot responds — rate limiting and anti-spam.
trueSECONDARY_DATABASE_URLOptionalSensitiveConfigures secondary database url.
SECONDARY_DATABASE_URL_PRIVATEOptionalSensitiveConfigures secondary database url private.
SECONDARY_DB_URLOptionalConfigures secondary db url.
TIMEZONEStandardConfigures timezone.
America/DenverVERBOSE_MEMORY_LOGSStandardConfigures verbose memory logs.
trueVIDEO_ENABLEDStandardConfigures video enabled.
trueVIDEO_MAX_DURATIONOptionalConfigures video max duration.
300Category
ACTIVE_CONVERSATION_MINUTESStandardConfigures active conversation minutes.
30AUTOMATIC_RESPONSESStandardWhen false (default): the bot only responds when addressed or mentioned.
falseAUTONOMOUS_CYCLE_INTERVAL_MSStandardMinimum recommended: 60000 (1 min). Lower = more active but more API calls.
300000AUTONOMOUS_CYCLE_TIMEOUT_MSStandardConfigures autonomous cycle timeout ms.
60000AUTONOMOUS_DM_COOLDOWN_MINUTESStandardConfigures autonomous dm cooldown minutes.
60AUTONOMOUS_ENABLEDStandardAll three flags are independent — mix and match as needed. When true: the AI can choose to stay silent rather than always respond. Enables "skip response" logic — the AI reads every message but decides whether a reply is warranted. Without this, the bot always responds.
trueAUTONOMOUS_LIFE_ENABLEDStandardThe AI periodically wakes up on its own (every AUTONOMOUS_CYCLE_INTERVAL_MS) and can: write memory notes, reflect on the day, update its internal state, or take background actions — even when no one is talking to it.
trueAUTONOMOUS_PROACTIVE_ENABLEDStandardThe AI can send messages on its own into configured channels (e.g. check in, share a thought, react to something in memory). Requires AUTONOMOUS_LIFE_ENABLED=true to have effect.
trueDAILY_MESSAGE_LIMITStandardConfigures daily message limit.
10000DAILY_NOTE_LIMITStandardConfigures daily note limit.
100DAILY_STATS_CHANNEL_IDStandardConfigures daily stats channel id.
DAILY_STATS_ENABLEDStandardIncludes message counts, memory operations, tool calls, and API usage.
trueDECISION_TICK_EVERYStandardConfigures decision tick every.
30000DREAM_STATE_ENABLEDStandardConfigures dream state enabled.
trueHEARTBEAT_CHANNEL_IDStandardConfigures heartbeat channel id.
HEARTBEAT_ENABLEDStandardPosts a periodic ping to HEARTBEAT_LOG_CHANNEL_ID to confirm the bot is alive. Useful for uptime monitoring — if the channel goes quiet, the bot is down.
trueHEARTBEAT_LOG_CHANNEL_IDStandardConfigures heartbeat log channel id.
HEARTBEAT_SCHEDULER_ENABLEDStandardRuns time-based tasks: daily summaries, memory consolidation, reminders, etc. Requires TIMEZONE to be set correctly for scheduled times to be accurate.
trueMIN_DM_INTERVAL_HOURSStandardConfigures min dm interval hours.
2OUTBOUND_CAP_PER_HOURStandardConfigures outbound cap per hour.
10POST_MEMORY_REFLECTIONSStandardReflections are brief AI thoughts on what was just remembered.
trueREFLECTION_CHANNEL_IDStandardConfigures reflection channel id.
REFLECTION_ENABLEDStandardThe AI writes a short introspective entry — thoughts on recent conversations, things it noticed or felt, or memory updates — and posts to REFLECTION_CHANNEL_ID. Frequency is controlled by the scheduler (HEARTBEAT_SCHEDULER_ENABLED=true required).
trueWAKE_UP_MESSAGEStandardConfigures wake up message.
Good morning.Category
DM_LOG_CHANNEL_IDStandardConfigures dm log channel id.
DND_CATCHUP_CHANNEL_IDSStandardComma-separated channel IDs where the bot auto-summarizes missed turns.
GUEST_CHANNEL_IDStandardActs as a public lobby — whitelisted features are still restricted.
RP_CATEGORY_IDStandardThe bot applies RP-specific context and memory rules inside this category.
RP_CLASSIFIER_LLM_FALLBACKStandardConfigures rp classifier llm fallback.
RP_CLASSIFIER_LLM_THRESHOLDStandardConfigures rp classifier llm threshold.
0.7RP_INACTIVITY_FADE_DAYSStandardRP (Roleplay) Settings
30RP_REFERENCE_WHITELISTStandardThese channels are read and injected as lore/context into RP sessions.
RP_SUMMARIES_IN_PROMPTStandardConfigures rp summaries in prompt.
trueRP_SUMMARY_INTERVALStandardConfigures rp summary interval.
50SHARED_AI_ADULT_NOTES_CHANNEL_IDOptionalConfigures shared ai adult notes channel id.
SHARED_AI_NOTES_CHANNEL_IDOptionalConfigures shared ai notes channel id.
SHARED_SPACE_CATEGORY_IDStandardConfigures shared space category id.
SHARED_SPACE_RESPONSE_DELAY_MSStandardGives human users a chance to finish typing before the bot jumps in.
2000SHARED_SPACE_SETTLE_MSStandardConfigures shared space settle ms.
1000TOOLS_CHANNEL_IDStandardConfigures tools channel id.
Category
ADMIN_USER_IDSOptionalDISCORD — Channels & Access Control
ALLOWED_DM_USER_IDStandardLeave blank to allow anyone to DM. Set to a single user ID to lock it down.
BOT_IDStandardUsed so the bot can detect when it's been @mentioned by its own ID. Find it in Discord: Settings → Advanced → Developer Mode, then right-click the bot.
DISCORD_BOT_IDOptionalConfigures discord bot id.
DISCORD_BOT_TOKENRequiredSensitive.env.example — Complete Environment Variable Reference Copy this to .env and fill in your values. Lines marked [REQUIRED] will crash the bot if missing. Lines marked [OPTIONAL] have sensible defaults shown. CORE — Discord & Bot Identity
DISCORD_CLIENT_IDOptionalConfigures discord client id.
DISCORD_CLIENT_SECRETOptionalSensitiveConfigures discord client secret.
GHOST_TOUCH_USER_IDStandardAny message from this user activates GHOST_IDENTITY mode.
REQUIRE_HUMAN_WHITELISTStandardWhen true: users not in the whitelist get no response or a rejection message.
trueCategory
APPEARANCE_AVATAR_FOLDER_IDStandardThe bot can auto-update its Discord avatar from images in this folder.
APPEARANCE_BANNER_FOLDER_IDStandardConfigures appearance banner folder id.
GDRIVE_FOLDER_IDStandardSyncs conversation logs or memory exports to a Google Drive folder. Uses a service account — different from GOOGLE_API_KEY above. Setup: create a service account in Google Cloud Console, share your Drive folder with the service account email. Find it in the folder's URL: drive.google.com/drive/folders/<ID>
GDRIVE_RP_FOLDER_IDStandardConfigures gdrive rp folder id.
GDRIVE_SERVICE_KEYStandardSensitiveConfigures gdrive service key.
GOOGLE_APPLICATION_CREDENTIALSStandardSensitiveConfigures google application credentials.
GOOGLE_CREDENTIALSOptionalSensitiveConfigures google credentials.
Category
AI_ARCHIVAL_ENABLEDStandardWhen false: AI can read memories but cannot create new ones.
trueAI_BACKSTORYStandardConfigures ai backstory.
AI_DISTILLATION_ENABLEDStandardDistillation compresses verbose memories into tighter summaries.
trueAI_IDENTITYStandardActivated when a message comes from GHOST_TOUCH_USER_ID. Define the persona here as a short description.
AI_NAMEStandardConfigures ai name.
AI_PERSONALITYStandardConfigures ai personality.
AI_PRONOUN_OBJECTStandardConfigures ai pronoun object.
himAI_PRONOUN_POSSESSIVEStandardConfigures ai pronoun possessive.
hisAI_PRONOUN_REFLEXIVEStandardConfigures ai pronoun reflexive.
himselfAI_PRONOUN_SUBJECTStandardConfigures ai pronoun subject.
heAI_TRAITSStandardConfigures ai traits.
AI_VOWSStandardConfigures ai vows.
EMOTIONAL_KEYWORDSStandardSensitiveWhen matched, the bot treats the message as emotionally significant and gives it higher weight in context scoring.
INTIMACY_KEYWORDSStandardSensitiveShifts the AI's response style toward a more personal register.
SIGNIFICANCE_KEYWORDSOptionalSensitiveUsed by the memory system to decide what's worth saving.
USER_NAMEStandardConfigures user name.
USER_PRONOUN_OBJECTStandardConfigures user pronoun object.
herUSER_PRONOUN_POSSESSIVEStandardConfigures user pronoun possessive.
herUSER_PRONOUN_REFLEXIVEStandardConfigures user pronoun reflexive.
herselfUSER_PRONOUN_SUBJECTStandardConfigures user pronoun subject.
sheCategory
IMAGE_GEN_AI_DESCStandardConfigures image gen ai desc.
IMAGE_GEN_API_KEYRequiredSensitiveOpenAI → platform.openai.com/api-keys NanoGPT → nano-gpt.com/account (different from MODEL_API_KEY)
IMAGE_GEN_ART_STYLEStandardConfigures image gen art style.
IMAGE_GEN_CHOICEStandardOpenAI → dall-e-3, dall-e-2, gpt-image-1 NanoGPT → hidream, flux-dev, flux-schnell OpenRouter → recraft-v3, stable-diffusion-xl, etc. (see openrouter.ai/docs#image-generation)
dall-e-3IMAGE_GEN_PROVIDERStandardGenerates images from text prompts via the generate_image tool. IMAGE_GEN_API_KEY is separate from MODEL_API_KEY — chat and image gen use different keys.
openaiIMAGE_GEN_USE_TEMPLATEStandardAdds consistent framing (lighting, composition cues) around the raw prompt.
falseIMAGE_GEN_USER_DESCStandardConfigures image gen user desc.
Category
GIF_AUTO_SENDStandardWhen true: bot can use the send_gif tool and auto-send GIFs based on message content. When false (default): GIF feature is fully disabled even if the API key is set.
falseKLIPY_API_KEYStandardSensitiveConfigures klipy api key.
LIBRARY_URLStandardConfigures library url.
NOTION_API_KEYStandardSensitiveConfigures notion api key.
NOTION_NOTES_PAGE_IDStandardConfigures notion notes page id.
Category
CONSOLIDATION_INTERVAL_HOURSStandardConfigures consolidation interval hours.
6CONSOLIDATION_MEMORY_ENABLEDStandardRuns as a background job — helps prevent memory bloat over time.
trueCONSOLIDATION_SCAN_WINDOW_HOURSStandardConfigures consolidation scan window hours.
48DATABASE_SSLOptional# [OPTIONAL] Force SSL on the DB connection
trueDATABASE_URLRequiredSensitiveDATABASE — PostgreSQL (Railway) Format: postgresql://user:pass@host:port/db
DATABASE_URL_PRIVATEOptionalSensitiveConfigures database url private.
EMBEDDING_SERVICE_URLStandardUsed to convert text into vectors for semantic memory search. Must be running separately — see embedding service docs.
MAX_ARCHIVAL_MEMORIESStandardArchival is the long-term store — retrieved by embedding similarity.
50MAX_HUMAN_BLOCKSStandardHuman blocks store facts about the user — preferences, history, traits.
20MAX_PERSONA_BLOCKSStandardPersona blocks define who the AI is, its backstory, and core traits.
20MAX_REFERENCE_TEXTSStandardUsed for RP worldbuilding, character sheets, or custom knowledge.
5MEMORY_API_ENABLEDOptionalMemory REST API (HTTP interface for inspecting and managing memories externally) # [OPTIONAL] Expose a REST API for memory management
falseMEMORY_API_PORTOptional# [OPTIONAL] Port the memory API listens on
3001MEMORY_API_TOKENOptionalSensitiveConfigures memory api token.
MEMORY_CURATION_ENABLEDStandardRemoves duplicates, fixes formatting, and scores memory importance.
trueMEMORY_HOMECOMING_ENABLEDStandardSummarizes missed messages and injects a catch-up block into context.
trueMEMORY_MAINTENANCE_BATCHStandardConfigures memory maintenance batch.
50MIN_MEMORY_WEIGHTStandardHigher = only highly relevant memories; lower = broader but noisier context.
0.8PG_POOL_MAXOptional# [OPTIONAL] Max simultaneous DB connections in the pool
10PG_SCHEMAOptionalWhen set: all tables are created inside this schema, isolating this AI's data from other AIs sharing the same database server. Each AI gets its own namespace. Leave blank to use the default 'public' schema (single-AI deployment).
ai_2SLEEP_STM_RETAINStandardConfigures sleep stm retain.
10TEMPORAL_DECAY_ENABLEDStandardMemories that haven't been accessed in a long time slowly fade.
trueCategory
ALLOW_TEMPERATURE_OVERRIDEStandardConfigures allow temperature override.
trueCONTEXT_BUDGET_FACTOROptionalmismatch between the GPT-4 tiktoken estimator and your model's actual tokenizer. tiktoken tends to undercount tokens for non-OpenAI models. - Claude, GPT-4, most OpenRouter models: 0.85 (default — 15% safety margin) - Kimi K2.5, DeepSeek, or other models with large tokenizer ratios: 0.57 If you see "prompt too long" errors from Ollama, lower this value.
0.85CONTEXT_LENGTHStandardControls how many memories are loaded per request and how the memory lifecycle works. Higher limits = richer context but more tokens consumed per call. Should match (or be slightly under) the model's actual context limit.
240000CREWAI_LOG_FULL_ANALYSISStandardConfigures crewai log full analysis.
falseCREWAI_MODEL_SELECTStandardWhen true: the AI evaluates task complexity and picks accordingly. When false: always uses MODEL_CHOICE.
falseCREWAI_MODELS_LISTStandardConfigures crewai models list.
kimi-k2:1t-cloud,kimi-k2.5:cloudCREWAI_PROVIDERStandard--- CrewAI (multi-agent mode, uses MODEL_PROVIDER as its backend) ---
ollamaCREWAI_THINKING_MODELStandardFalls back to MODEL_CHOICE if not set.
CREWAI_VERBOSEStandardConfigures crewai verbose.
falseMODEL_ALLOW_TEMP_OVERRIDEStandardWhen true: creative tasks use higher temp, factual tasks use lower. When false: temperature is always the provider default.
trueMODEL_API_KEYRequiredSensitiveOpenRouter → openrouter.ai/keys OpenAI → platform.openai.com/api-keys Claude → console.anthropic.com NanoGPT → nano-gpt.com/account Venice → venice.ai/dashboard Ollama Cloud → only needed for remote/cloud Ollama
MODEL_BASE_URLOptional--- Ollama-specific ---
http://localhost:11434MODEL_CHOICEStandardOpenRouter → anthropic/claude-sonnet-4-5, google/gemini-2.5-pro OpenAI → gpt-4o, gpt-4o-mini, o1 Ollama → llama3.3:70b, kimi-k2.5:cloud, qwen3:235b Claude → claude-opus-4-5, claude-sonnet-4-5 NanoGPT → gpt-4o, claude-3-5-sonnet, deepseek-r1
gemma4:31b-cloudMODEL_CONTEXT_LENGTHStandardMost local models: 8192–32768. Cloud models: up to 1M+
240000MODEL_PROVIDERStandardMODEL — Chat / Reasoning LLM This key is ONLY used for conversation and reasoning. Image generation, voice, and other features use their own keys below.
ollamaMODEL_TIMEOUT_MSStandardIf a call takes longer than this, it's cancelled and an error is returned.
120000RUNPOD_API_KEYOptionalSensitiveConfigures runpod api key.
RUNPOD_BASE_URLOptional--- RunPod (Ollama hosted on RunPod) ---
Category
MUSIC_ENABLEDStandardInjects 'now listening' context into the prompt
trueMUSIC_GENIUS_API_KEYOptionalSensitiveSurfaces trivia like "written after the death of a friend" or artist backstory. Get a free key: genius.com/api-clients (Client Access Token)
MUSIC_LYRICS_ENABLEDOptionalPulls lyrics from lrclib.net (free, no key needed), then sends them to the LLM to extract themes and emotional arc. Runs in the background.
trueCategory
ANALYTICS_ENABLEDStandardLogs detailed per-request metrics (tokens, latency, tool calls, etc.) to the database for review. Does not send data externally.
trueCHUNK_SIZE_MBStandardLarger chunks = faster but more memory usage.
50COMPACT_TOOL_DEFINITIONSStandardStrips whitespace and descriptions to reduce token usage. Useful when hitting context limits, but reduces LLM tool understanding.
falseDEBUGStandardConfigures debug.
falseDEPLOYMENT_DATEStandardInjected into the system prompt so the AI has temporal self-awareness (e.g. knows how long it's been deployed, can reference time passed).
2026-07-20LOG_LEVELStandarderror → only errors | warn → errors + warnings info → normal operation logs | debug → everything including internal calls
infoMAX_FILE_SIZE_MBStandardFiles larger than this are rejected with an error message.
1000MESSAGE_BATCH_DELAY_MSStandardIf more messages arrive in this window, they're batched together. Prevents responding to each word of a multi-message thought separately.
500NODE_ENVStandarddevelopment → verbose errors, stack traces shown production → clean error messages, no stack traces exposed
productionPORTOptional# [OPTIONAL] HTTP server port (Railway sets this automatically via $PORT)
3000Category
PDF_PARSING_ENABLEDStandardExtracts text from PDFs attached directly in Discord messages.
trueSEARCH_ENABLEDStandardSEARCH — Web Search & URL Tools Enables the web_search, fetch_url, youtube_transcript, and pdf_parse tools. When false: web_search, fetch_url, youtube, and PDF tools are all disabled.
trueSEARCH_EXA_KEYStandardSensitiveExa finds conceptually similar pages, not just keyword matches. Better than keyword search for nuanced queries.
SEARCH_SERPAPI_KEYOptionalSensitiveConfigures search serpapi key.
TIKTOK_ENABLEDStandardConfigures tiktok enabled.
falseTIKTOK_MAX_DURATIONOptionalConfigures tiktok max duration.
60URL_FETCH_ENABLEDStandardFallback when Exa is unavailable or for standard keyword searches. Used by the fetch_url tool to pull articles, docs, or any public URL.
trueYOUTUBE_TRANSCRIPT_ENABLEDStandardPulls auto-generated or manual captions from any public YouTube video.
trueCategory
GOOGLE_API_KEYStandardSensitiveGOOGLE — Cloud API Key A single Google Cloud REST API key used by multiple features: • OCR / screenshot text extraction → Cloud Vision API (when VISION_PROVIDER=google or OCR tool) Enable APIs needed: Cloud Vision API
VISION_CHOICEStandardMust support image inputs. Non-vision models will error.
VISION_ENABLEDStandardVISION — Image / Screenshot Understanding Analyzes images attached to Discord messages or screenshots of the screen. openai → uses MODEL_API_KEY (models: gpt-4o, gpt-4o-mini) ollama → uses MODEL_BASE_URL (models: qwen3-vl, llava, etc. — no extra key needed locally) google → uses GOOGLE_API_KEY (models: gemini-1.5-flash, gemini-2.0-flash)
trueVISION_PROVIDERStandardConfigures vision provider.
ollamaCategory
TTS_IMPORTANT_THRESHOLDOptionalConfigures tts important threshold.
80TTS_PROVIDER_ORDEROptional--- TTS Routing & Smart Selection ---
elevenlabs,cartesia,groq,google,openrouter,polly,edgeTTS_SMART_ROUTINGOptionalConfigures tts smart routing.
trueVOICE_API_KEYOptionalSensitiveConfigures voice api key.
VOICE_AUDIO_MODELOptionalConfigures voice audio model.
mp3VOICE_AUTO_JOINOptionalConfigures voice auto join.
falseVOICE_CALL_ORDEROptionalConfigures voice call order.
defaultVOICE_CARTESIA_IDOptionalConfigures voice cartesia id.
VOICE_CARTESIA_KEYOptionalSensitive--- Cartesia ---
VOICE_CARTESIA_LANGUAGEOptionalConfigures voice cartesia language.
VOICE_CARTESIA_MODELOptionalConfigures voice cartesia model.
VOICE_DEFAULT_CHANNEL_IDOptionalConfigures voice default channel id.
VOICE_EDGE_NAMEOptional--- Edge TTS (free, no key needed) --- List: https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclient&header
VOICE_ELEVENLABS_IDStandardConfigures voice elevenlabs id.
VOICE_ELEVENLABS_KEYRequiredSensitive--- ElevenLabs ---
VOICE_ELEVENLABS_MODELStandardeleven_v3 → highest quality, multilingual, expressive eleven_turbo_v2_5 → faster with lower latency, good quality eleven_monolingual_v1 → English only, legacy, lowest cost
eleven_v3VOICE_ENABLEDOptionalVOICE — Text-to-Speech (Multi-Provider) Converts AI text responses to audio, sent as voice messages or audio files in Discord. Supports ElevenLabs, Cartesia, Google, Groq, OpenRouter, Hume, Polly, and Edge TTS.
trueVOICE_GOOGLE_KEYOptionalSensitive--- Google Cloud TTS ---
VOICE_GOOGLE_LANGUAGEOptionalConfigures voice google language.
en-USVOICE_GOOGLE_NAMEOptionalConfigures voice google name.
VOICE_GOOGLE_PITCHOptionalConfigures voice google pitch.
0.0VOICE_GOOGLE_RATEOptionalConfigures voice google rate.
1.0VOICE_GROQ_KEYOptionalSensitive--- Groq (ultra-fast TTS) ---
VOICE_GROQ_MODELOptionalConfigures voice groq model.
VOICE_GROQ_NAMEOptionalConfigures voice groq name.
VOICE_HUME_DESCRIPTIONOptionalConfigures voice hume description.
VOICE_HUME_IDOptionalConfigures voice hume id.
VOICE_HUME_KEYOptionalSensitive--- Hume (emotional TTS) ---
VOICE_HUME_NAMEOptionalConfigures voice hume name.
VOICE_HUME_VERSIONOptionalConfigures voice hume version.
VOICE_IDOptionalConfigures voice id.
VOICE_IDLE_TIMEOUTOptionalConfigures voice idle timeout.
300000VOICE_MODELOptionalConfigures voice model.
eleven_v3VOICE_MODEL_CHOICEOptionalConfigures voice model choice.
fastestVOICE_MODEL_RACEOptionalConfigures voice model race.
falseVOICE_MP3_ORDEROptionalConfigures voice mp3 order.
smartVOICE_OPENROUTER_KEYOptionalSensitive--- OpenRouter TTS ---
VOICE_OPENROUTER_MODELOptionalConfigures voice openrouter model.
VOICE_OPENROUTER_VOICEOptionalConfigures voice openrouter voice.
VOICE_POLLY_ENGINEOptionalConfigures voice polly engine.
neuralVOICE_POLLY_KEY_IDOptionalSensitive--- Amazon Polly ---
VOICE_POLLY_NAMEOptionalConfigures voice polly name.
VOICE_POLLY_REGIONOptionalConfigures voice polly region.
us-east-1VOICE_POLLY_SECRETOptionalSensitiveConfigures voice polly secret.
VOICE_PREMIUM_PROVIDERSOptionalConfigures voice premium providers.
elevenlabs,cartesia,humeVOICE_STT_MODEOptional--- Speech-to-Text Mode ---
whisperVOICE_TEXT_CHANNEL_IDOptionalConfigures voice text channel id.
VOICE_THINKING_FILEOptionalConfigures voice thinking file.
VOICE_THINKING_SOUNDOptional--- Voice Thinking / Processing Sounds ---
falseVOICE_THINKING_VOLUMEOptionalConfigures voice thinking volume.
0.3WHISPER_API_KEYStandardSensitiveGroq → console.groq.com (key starts with gsk_) Deepgram → console.deepgram.com (key starts with dg_) OpenAI → platform.openai.com (key starts with sk-) If not set, falls back to MODEL_API_KEY for OpenAI Whisper.
WHISPER_ENABLEDStandardVOICE — Speech-to-Text (Whisper) Transcribes Discord voice messages into text before passing to the LLM. Uses Groq for fast transcription if WHISPER_API_KEY is set; falls back to MODEL_API_KEY (OpenAI Whisper).
trueWHISPER_LANGUAGEStandardConfigures whisper language.
enWHISPER_MODELStandardwhisper-large-v3-turbo → fastest, good accuracy (Groq preferred) whisper-large-v3 → most accurate, slower (Groq / OpenAI) whisper-1 → OpenAI legacy model nova-3 → Deepgram default (auto-detected if provider is deepgram)
whisper-large-v3-turboWHISPER_PROVIDERStandardopenai → whisper-1 (uses MODEL_API_KEY or WHISPER_API_KEY) groq → whisper-large-v3-turbo (fastest, uses WHISPER_API_KEY) deepgram → nova-3 (largest file support, up to 2GB, uses WHISPER_API_KEY)
groqWHISPER_SEND_TRANSCRIPTIONStandardUseful for confirming what was heard before the AI responds.
falseCategory
WEATHER_API_KEYStandardSensitivePowers the get_weather tool. Calls OpenWeatherMap Current Weather API. Free tier supports 1,000 calls/day — more than enough for a bot.
WEATHER_DEFAULT_LOCATIONStandardAccepts: city name (London), zip code (80203), or lat/lon (40.71,-74.00)
New YorkWEATHER_UNITSStandardimperial → °F, mph | metric → °C, km/h
imperial