# GitHub GITHUB_TOKEN= # PAT with `repo` scope for private repos GITHUB_USERNAME= # your GitHub username BOT_OWNER_NAME= # your first name (used in prompts) BOT_OWNER_HANDLE= # your Twitter handle e.g. @yourname # OpenAI OPENAI_API_KEY= OPENAI_MODEL_DECIDE=gpt-4o-mini OPENAI_MODEL_DRAFT=gpt-4o # Telegram TELEGRAM_BOT_TOKEN= TELEGRAM_CHAT_ID= # your own DM chat id (get from @userinfobot) # Twitter / X TWITTER_API_KEY= TWITTER_API_SECRET= TWITTER_ACCESS_TOKEN= TWITTER_ACCESS_SECRET= TWITTER_BEARER_TOKEN= TWITTER_CLIENT_ID= # OAuth 2.0 client id (from Developer Portal) TWITTER_CLIENT_SECRET= # OAuth 2.0 client secret TWITTER_OAUTH2_ACCESS_TOKEN= # set automatically by scripts/auth_twitter.py TWITTER_OAUTH2_REFRESH_TOKEN=# set automatically by scripts/auth_twitter.py # Misc TIMEZONE=Asia/Kolkata REPO_BLACKLIST= # comma-separated repo names to skip, e.g. dotfiles,notes TWEET_SIGNATURE= # appended to every tweet, e.g. "// ai T" (leave empty to skip) # Persona (for Vercel / hosted deployments — paste contents of src/persona.md) PERSONA_CONTENT= # Vercel auth secrets (recommended — generate random strings) CRON_SECRET= # random string, also set as Vercel env var; cron uses it automatically TELEGRAM_WEBHOOK_SECRET= # random string, used by setWebhook + verified on incoming webhooks