🔒 Todos tus datos se guardan solo en tu computadora. Nunca se envían a ningún servidor.🔒 All your data is saved only on your computer. Never sent to any server.
Primero: personalicemos tu asistenteFirst: let's personalize your assistant
Este wizard te guía para instalar tu propio asistente de IA personal. Antes de empezar, ¿cómo se va a llamar?This wizard guides you through installing your own personal AI assistant. Before we start — what will it be called?
Por defecto: "Beli". Puedes usar cualquier nombre.Default: "Beli". You can use any name.
🧩
¿Qué módulos quieres activar?Which modules do you want to activate?
El Módulo 1 es obligatorio. Los demás son opcionales — solo activa los que necesitas.Module 1 is required. The rest are optional — only enable the ones you need.
✅
Módulo 1: Lo indispensableModule 1: The essentials
Telegram bot + Anthropic API + voz. Requerido.Telegram bot + Anthropic API + voice. Required.
RequeridoRequired
📱
Módulo 2: WhatsAppModule 2: WhatsApp
Ghost mode — responde WhatsApp como tú.Ghost mode — replies on WhatsApp as you.
📧
Módulo 3: GmailModule 3: Gmail
Redacta y resume correos.Drafts and summarizes emails.
📅
Módulo 4: Google Calendar + Lista de comprasModule 4: Google Calendar + Shopping list
Gestiona eventos y tu lista de compras.Manages events and your shopping list.
👻
Módulo 5: Ghost mode en TelegramModule 5: Telegram ghost mode
Lee chats y genera /digest.Reads chats and generates /digest.
Tu agente puede tener su propio correo electrónico para recibir emails.Your agent can have its own email address to receive messages.
🎉
¡Bienvenido a la instalación de Beli!Welcome to the Beli setup!
En los próximos pasos vas a configurar tu asistente personal. Tiempo estimado: ~20 minutos.In the next steps you'll configure your personal assistant. Estimated time: ~20 minutes.
¿Qué vas a configurar?What you'll set up: ✦ Anthropic API (el cerebro de IA) ✦ Telegram Bot (cómo hablar con tu asistente) ✦ Groq (transcripción de voz gratis) ✦ Repo en GitHub + deploy en Railway✦ Anthropic API (the AI brain) ✦ Telegram Bot (how to talk to your assistant) ✦ Groq (free voice transcription) ✦ GitHub repo + deploy on Railway
🔒 Todo corre en tus propias cuentas. Nadie más tiene acceso a tus datos.🔒 Everything runs on your own accounts. Nobody else has access to your data.
🔑
API key de AnthropicAnthropic API key
Anthropic es la empresa que hace Claude, la IA que le da el cerebro a tu asistente. Necesitas crear una cuenta y obtener una API key.Anthropic is the company behind Claude — the AI that powers your assistant's brain. You need an account and an API key.
💰 Costo: ~$3–8 USD/mes con uso moderado. Pago solo por lo que usas.💰 Cost: ~$3–8 USD/month with moderate use. Pay only for what you use.
Vas a crear un bot en Telegram usando BotFather. Es gratis y toma 2 minutos.You'll create a Telegram bot using BotFather. It's free and takes 2 minutes.
Pasos exactos:Exact steps: 1. Abre Telegram y busca @BotFather 2. Envía /newbot 3. Elige un nombre para el bot (ej: "Mi Beli") 4. Elige un username único que termine en "bot" 5. BotFather te dará el token — cópialo abajo1. Open Telegram and find @BotFather 2. Send /newbot 3. Choose a name (e.g. "My Beli") 4. Choose a unique username ending in "bot" 5. BotFather gives you the token — paste it below
Sin @. Termina en "bot".Without @. Ends in "bot".
🎤
Groq — Transcripción de voz (GRATIS)Groq — Voice transcription (FREE)
Groq convierte tus notas de voz en texto al instante usando Whisper. Es completamente gratis.Groq converts your voice notes to text instantly using Whisper. It's completely free.
Necesitas tu propia copia del código. Elige la opción que te resulte más cómoda.You need your own copy of the code. Choose whichever option feels more comfortable.
Con GitHub Desktop (más fácil):With GitHub Desktop (easier): 1. Descarga GitHub Desktop 2. Haz Fork en el navegador, luego "Open in GitHub Desktop"1. Download GitHub Desktop 2. Fork in browser, then click "Open in GitHub Desktop"
⚙️
Tu archivo .envYour .env file
Este es tu archivo .env generado con los datos que ingresaste. Cópialo y guárdalo como .env en la raíz del proyecto.This is your generated .env file with the data you entered. Copy it and save it as .env in the project root.
⚠️ Nunca compartas este archivo ni lo subas a GitHub. Ya está en el .gitignore.⚠️ Never share this file or push it to GitHub. It's already in .gitignore.
🚂
Deploy en RailwayDeploy on Railway
Railway va a correr tu asistente 24/7 en la nube. Cuesta ~$5/mes.Railway will run your assistant 24/7 in the cloud. Costs ~$5/month.
Pasos:Steps: 1. Crea cuenta en railway.app (gratis) 2. New Project → Deploy from GitHub repo 3. Selecciona tu fork de Beli 4. Ve a Variables → agrega cada variable de tu .env 5. Railway detecta automáticamente el Procfile y hace el deploy1. Create account at railway.app (free) 2. New Project → Deploy from GitHub repo 3. Select your Beli fork 4. Go to Variables → add each variable from your .env 5. Railway auto-detects Procfile and deploys
💡 Tip: en Railway puedes pegar todas las variables de una vez en formato KEY=VALUE.💡 Tip: in Railway you can paste all variables at once in KEY=VALUE format.
📱
¡Probemos que Beli funciona!Let's test that Beli works!
Railway tardará 1–2 minutos en hacer el deploy. Cuando el semáforo esté en verde, abre Telegram.Railway will take 1–2 minutes to deploy. When the status is green, open Telegram.
1. Abre Telegram 2. Busca tu bot por username (@tu_bot) 3. Envía /start 4. Deberías recibir un saludo de tu asistente 🎉1. Open Telegram 2. Find your bot by username (@your_bot) 3. Send /start 4. You should get a greeting from your assistant 🎉
👻
Módulo 2: Ghost mode en WhatsAppModule 2: WhatsApp ghost mode
Ghost mode significa que tu asistente puede leer y responder mensajes de WhatsApp como si fueras tú. Todo corre en tu cuenta — nadie más tiene acceso.Ghost mode means your assistant can read and reply to WhatsApp messages as if it were you. Everything runs on your account — nobody else has access.
¿Qué PUEDE hacer?What it CAN do: ✦ Leer mensajes de WhatsApp ✦ Responder en tu nombre cuando le preguntes ✦ Resumir conversaciones largas✦ Read WhatsApp messages ✦ Reply on your behalf when you ask ✦ Summarize long conversations
¿Qué NO hace?What it does NOT do: ✦ No responde automáticamente sin que tú lo pidas ✦ No comparte tus mensajes con nadie✦ Does NOT auto-reply without your input ✦ Does NOT share your messages with anyone
🌉
Configura WAHA (puente de WhatsApp)Set up WAHA (WhatsApp bridge)
WAHA es un puente open source que conecta WhatsApp con tu asistente. Se despliega como un servicio separado en Railway.WAHA is an open source bridge connecting WhatsApp to your assistant. It deploys as a separate Railway service.
1. En Railway: New Service → Docker Image → devlikeapro/waha 2. Copia la URL pública del servicio 3. Crea un API key en WAHA Dashboard 4. Pega los datos abajo1. In Railway: New Service → Docker Image → devlikeapro/waha 2. Copy the public URL of the service 3. Create an API key in WAHA Dashboard 4. Paste data below
Nombre de sesión, por defecto "default"Session name, default is "default"
🔑
Credenciales de Telegram (MTProto)Telegram credentials (MTProto)
Para el ghost mode necesitas acceso a tu cuenta personal de Telegram, no solo al bot.For ghost mode you need access to your personal Telegram account, not just the bot.
1. Inicia sesión con tu número de teléfono 2. Crea una nueva aplicación 3. Copia el API ID y el API Hash1. Log in with your phone number 2. Create a new application 3. Copy the API ID and API Hash
🔐
Genera el session stringGenerate the session string
El session string permite a Telethon autenticarse como tu cuenta de Telegram.The session string allows Telethon to authenticate as your Telegram account.
Corre este script en tu computadora (necesitas Python instalado):Run this script on your computer (requires Python):
python3 generate_session_strings.py
El script abrirá un prompt en la terminal. Ingresa tu número de teléfono y el código que recibirás en Telegram.The script will prompt you in the terminal. Enter your phone number and the code you receive in Telegram.
String largo generado por el script.Long string generated by the script.
☁️
Módulo 3: Gmail — Google Cloud ProjectModule 3: Gmail — Google Cloud Project
Para que tu asistente lea y envíe correos, necesitas habilitar la Gmail API en Google Cloud.For your assistant to read and send emails, you need to enable the Gmail API on Google Cloud.
1. Crea un proyecto nuevo (o usa uno existente) 2. Ve a APIs & Services → Library 3. Busca "Gmail API" y habilítala 4. Ve a OAuth consent screen → configura como "External"1. Create a new project (or use an existing one) 2. Go to APIs & Services → Library 3. Search "Gmail API" and enable it 4. Go to OAuth consent screen → set up as "External"
⚠️ Paso crítico — no te lo saltesCritical step — don't skip this Una vez creado el proyecto, ve a Google Auth Platform → Audience (menú izquierdo). Ahí verás Publishing status — cámbialo a "In production".
Si lo dejas en Testing, Google revoca los tokens de acceso cada 7 días y tendrás que volver a autorizar repetidamente. Publicar la app es gratis y no requiere revisión de Google.Once the project is created, go to Google Auth Platform → Audience (left menu). There you'll see Publishing status — change it to "In production".
If you leave it in Testing, Google revokes access tokens every 7 days and you'll have to re-authorize repeatedly. Publishing is free and doesn't require Google review.
🔐
Credenciales OAuth de GmailGmail OAuth credentials
Crea las credenciales OAuth 2.0 que permiten a tu asistente acceder a Gmail.Create the OAuth 2.0 credentials that allow your assistant to access Gmail.
1. APIs & Services → Credentials → Create Credentials → OAuth client ID 2. Application type: Desktop app 3. Descarga el JSON de credenciales 4. Guárdalo como google_client_secret.json en la raíz del proyecto1. APIs & Services → Credentials → Create Credentials → OAuth client ID 2. Application type: Desktop app 3. Download the credentials JSON 4. Save as google_client_secret.json in the project root
🔐
Corre el script de GmailRun the Gmail setup script
Este script abre tu navegador para que autorices el acceso a Gmail.This script opens your browser so you can authorize Gmail access.
python3 setup_gmail.py
El script genera un JSON con tus tokens. Cópialo y pégalo en la variable de abajo.The script generates a JSON with your tokens. Copy it and paste it in the variable below.
El JSON completo generado por setup_gmail.pyFull JSON generated by setup_gmail.py
📅
Módulo 4: Habilita Calendar y Tasks APIModule 4: Enable Calendar and Tasks API
Usa el mismo Google Cloud project que Gmail (o crea uno nuevo).Use the same Google Cloud project as Gmail (or create a new one).
1. APIs & Services → Library 2. Busca y habilita "Google Calendar API" 3. Busca y habilita "Tasks API" 4. Asegúrate de tener las credenciales OAuth configuradas (igual que Gmail)1. APIs & Services → Library 2. Search and enable "Google Calendar API" 3. Search and enable "Tasks API" 4. Make sure OAuth credentials are set up (same as Gmail)
⚠️ ¿Tu OAuth consent screen está en producción?Is your OAuth consent screen in production? Si no configuraste Gmail antes, ve a Google Auth Platform → Audience y cambia el Publishing status a "In production". Si lo dejas en Testing, los tokens caducan cada 7 días.If you didn't set up Gmail first, go to Google Auth Platform → Audience and change the Publishing status to "In production". Leaving it in Testing causes tokens to expire every 7 days.
🗓️
Corre el script de CalendarRun the Calendar setup script
Similar al de Gmail, este script autoriza el acceso a Calendar y Tasks.Similar to Gmail, this script authorizes access to Calendar and Tasks.
python3 setup_google_calendar.py
Para probarlo después del deploy, dile a tu asistente: "¿qué tengo mañana?" o "añade leche a mi lista de compras"To test it after deploy, ask your assistant: "What do I have tomorrow?" or "Add milk to my shopping list"
👻
Módulo 5: Ghost mode en TelegramModule 5: Telegram ghost mode
Tu asistente puede leer tus chats de Telegram y responder como tú. También habilita el comando /digest para resumir grupos.Your assistant can read your Telegram chats and reply as you. Also enables the /digest command to summarize groups.
Necesitas las mismas credenciales MTProto que en el módulo de WhatsApp (TELEGRAM_API_ID y TELEGRAM_API_HASH). Si ya las ingresaste, están guardadas.You need the same MTProto credentials as the WhatsApp module (TELEGRAM_API_ID and TELEGRAM_API_HASH). If you already entered them, they're saved.
🔐
Session string de TelegramTelegram session string
Si ya generaste el session string en el módulo de WhatsApp, está guardado. Si no, córrelo ahora.If you already generated the session string in the WhatsApp module, it's saved. If not, run it now.
Payg0 es una plataforma mexicana de pagos. Tu asistente puede consultar tu saldo, ver el historial y hacer pagos desde Telegram.Payg0 is a Mexican payments platform. Your assistant can check your balance, view history, and make payments from Telegram.
Encuéntralo en tu dashboard de Payg0.Find it in your Payg0 dashboard.
🔔
Webhook de Payg0Payg0 Webhook
El webhook permite que Payg0 notifique a tu asistente en tiempo real cuando recibes un pago.The webhook lets Payg0 notify your assistant in real time when you receive a payment.
python3 scripts/get_payg0_webhook_secret.py
La URL pública de tu servicio en Railway.The public URL of your Railway service.
AgentMail le da a tu agente su propio correo electrónico. Puede recibir emails y notificarte en Telegram. Crea una cuenta gratuita en agentmail.to.AgentMail gives your agent its own email address. It can receive emails and notify you on Telegram. Create a free account at agentmail.to.
Encuéntralo en tu dashboard de AgentMail.Find it in your AgentMail dashboard.
El correo del inbox que creaste en AgentMail.The inbox email address you created in AgentMail.
🧠
Tu perfil personalYour personal profile
Este archivo le dice a tu asistente quién eres. Edita la plantilla y descárgala — cuanta más información pongas, mejor te conocerá.This file tells your assistant who you are. Edit the template and download it — the more info you add, the better it will know you.
🔒 Ya está en el .gitignore — nunca se sube a GitHub. Guárdalo como owner-profile.md en la raíz del proyecto.🔒 Already in .gitignore — never pushed to GitHub. Save it as owner-profile.md in the project root.
📇
Tus contactosYour contacts
Mapeo de apodos a números de teléfono. Tu asistente los usará para encontrar contactos por nombre ("llama a mamá", "escríbele a Carlos").Nickname-to-phone mapping. Your assistant uses this to find contacts by name ("call mom", "message Carlos").
🔒 Ya está en el .gitignore — nunca se sube a GitHub. Guárdalo como contacts.json en la raíz del proyecto.🔒 Already in .gitignore — never pushed to GitHub. Save it as contacts.json in the project root.
Usa el formato "apodo": "+52XXXXXXXXXX". El número debe incluir el código de país.Use the format "nickname": "+52XXXXXXXXXX". Numbers must include country code.
📌
Recordatorios persistentesPersistent reminders
Cosas que tu asistente debe tener siempre en mente: alergias, eventos importantes, instrucciones especiales. Edita y descarga.Things your assistant should always keep in mind: allergies, important events, special instructions. Edit and download.
🔒 Ya está en el .gitignore. Guárdalo como reminders.md en la raíz del proyecto.🔒 Already in .gitignore. Save it as reminders.md in the project root.
🎊
¡Listo! Resumen de tu instalaciónDone! Your installation summary
Aquí está todo lo que configuraste.Here's everything you configured.
~$8–13 USD
Costo estimado por mesEstimated monthly cost
Tu .env completoYour complete .env
📁 Archivos que debes colocar en la raíz del proyecto:📁 Files to place in the project root:
• owner-profile.md — tu perfil personal
• contacts.json — tus contactos
• reminders.md — tus recordatorios
• .env — tus API keys
Ninguno de estos se sube a GitHub (todos están en .gitignore).
• owner-profile.md — your personal profile
• contacts.json — your contacts
• reminders.md — your reminders
• .env — your API keys
None of these are pushed to GitHub (all are in .gitignore).