# Required ------------------------------------------------------------------ # From @BotFather (/newbot). TELEGRAM_BOT_TOKEN= # From https://app.letta.com LETTA_API_KEY= LETTA_AGENT_ID= # Your numeric Telegram user ID (comma-separated for several admins). Admins # approve tool calls and can always use the bot. Leave empty, start the bot, # and DM it to learn your ID. TELEGRAM_ADMIN_USER_IDS= # Who can use the bot ------------------------------------------------------- # Extra people who may use the bot. In groups, empty means everyone. TELEGRAM_ALLOWED_USER_IDS= # allowlist: admins and allowed users. open: anyone. off: no DMs. DM_POLICY=allowlist # allowlist: only TELEGRAM_GROUP_IDS. open: any group. off: no groups. GROUP_POLICY=allowlist # Group IDs are negative, often starting with -100. TELEGRAM_GROUP_IDS= # Groups where every message goes to the agent. Needs privacy mode off. TELEGRAM_OPEN_CHAT_IDS= # relay: post the agent's replies. tool: post only via telegram_send_message. OPEN_CHAT_REPLY_MODE=relay # Tools and approvals ------------------------------------------------------- # strict, standard, acceptEdits, or unrestricted. PERMISSION_MODE=standard # admins, requester, deny, or allow. APPROVAL_MODE=admins APPROVAL_TIMEOUT_SECONDS=300 ENABLE_TELEGRAM_TOOLS=true # Comma-separated tool allowlist. Empty uses the default set. # ALLOWED_TOOLS= # auto, default, codex, gemini, or none. # TOOLSET_BASE= # Letta --------------------------------------------------------------------- # LETTA_BASE_URL= # Run tools on a connected computer instead of a Letta Cloud sandbox. # LETTA_COMPUTER= # Model for new conversations. Empty uses the agent's model. # CONVERSATION_MODEL= # JSON file pinning chats or topics to existing conversations. # ROUTES_FILE=./routes.json SANDBOX_TTL_MINUTES=30 TURN_TIMEOUT_SECONDS=900 SESSION_IDLE_MINUTES=15 # How replies look ---------------------------------------------------------- STREAM_EDITS=false STREAM_EDIT_INTERVAL_MS=1500 SHOW_TOOL_CALLS=false SHOW_REASONING=false LIFECYCLE_REACTIONS=false REGISTER_COMMANDS=true DEBOUNCE_MS=1500 # Files and voice ----------------------------------------------------------- MAX_IMAGE_BYTES=5242880 MAX_FILE_BYTES=20971520 DOWNLOAD_TIMEOUT_SECONDS=30 # Self-hosted Letta only: a directory shared with the server for attachments. # LOCAL_ATTACHMENT_DIR= # none, or one of the providers in src/transcribe (for example openai, groq, deepgram). TRANSCRIBE_PROVIDER=none # TRANSCRIBE_API_KEY= # TRANSCRIBE_MODEL= # TRANSCRIBE_BASE_URL= # TRANSCRIBE_LANGUAGE= TRANSCRIBE_TIMEOUT_SECONDS=60 # Runtime ------------------------------------------------------------------- DATA_DIR=./data HEALTH_PORT=8080 LOG_LEVEL=info