Ejemplos prácticos: tu agente y Telegram
Documentación: v0.24.0
Cómo encargar a Claude Code o Codex tareas habituales de Telegram: resumen de la mañana, informe de un chat, compromisos pendientes o preguntas sin respuesta. Cada ejemplo incluye qué pedir al agente, qué puede ejecutar y cómo programarlo.
Preparación inicial
-
tgdebe estar instalado y con sesión iniciada: instalación, sesiones. -
El agente debe saber utilizar
tg. Proporciónale la skill:# Claude Code mkdir -p ~/.claude/skills/tg-cli && tg skill show > ~/.claude/skills/tg-cli/SKILL.md # Codex and Gemini CLI mkdir -p ~/.agents/skills/tg-cli && tg skill show > ~/.agents/skills/tg-cli/SKILL.md -
Guarda las peticiones siguientes en archivos, por ejemplo en
~/tg-recipes/. Los comandos programados leen la petición desde un archivo.
Claude Desktop, Cursor y otros clientes sin terminal no necesitan una skill. Conecta el servidor MCP (tg mcp config imprime la entrada de configuración) y utiliza sus prompts preparados: catch-up, review, reply, find (MCP).
Qué puede hacer el agente
Un agente programado trabaja sin ti, así que sus límites deben estar en la configuración, no en la petición. Puede interpretar mal «no envíes nada», pero no puede saltarse un ajuste que no tenga permiso para cambiar.
Limita los comandos que puede ejecutar. Claude Code en modo -p solo ejecuta lo indicado en --allowedTools. Si la lista no incluye tg messages send, no puede invocarlo:
claude -p "$(cat ~/tg-recipes/morning.md)" --allowedTools "Bash(tg inbox:*)"Limita los permisos del perfil. Esto se aplica a cualquier agente:
tg config set permissions.messages readonly # no sends, edits or deletions
tg config set permissions.messages.send ask # or: a yes or no before each send
tg config set sendsPerHour 5 # or: at most five sends an hour
tg recipients add "Book club" # and only to the chats on this listpermissions también limita tus comandos hasta que lo reviertas con tg config unset permissions.messages. Para limitar solo al agente, dale su propio perfil. Todos los intentos de envío, incluidos los rechazados, aparecen en tg sends list. Consulta los límites en seguridad.
Leer no revela tu actividad. Ningún comando de estos ejemplos marca mensajes como leídos: nadie ve que el agente abrió el chat.
Programar las tareas
-
Las tareas programadas de Claude Desktop se ejecutan en tu equipo, donde tienen acceso a
tgy tu sesión. Consulta la documentación de Claude. -
cron y
claude -p, en cualquier equipo encendido a esa hora:30 8 * * * claude -p "$(cat ~/tg-recipes/morning.md)" --allowedTools "Bash(tg inbox:*)" >> ~/tg-recipes/morning.log 2>&1cron inicia las tareas con un entorno casi vacío, lo que puede romper
tgen Linux de dos formas:node: not found, código de salida 127. Node instalado con nvm, fnm o Volta no está en elPATHdel sistema, que es el único que conoce cron.- "no Telegram app credentials found … although it has logged in on this machine", código de salida 4.
tgno puede acceder al almacén de claves. No vuelvas a iniciar sesión: la sesión está bien; el problema es el entorno.
Añade ambas líneas al principio de
crontab -econ tus valores. Obtén el directorio condirname "$(which node)"y el número conid -u:PATH=/home/you/.nvm/versions/node/v24.0.0/bin:/usr/local/bin:/usr/bin:/bin XDG_RUNTIME_DIR=/run/user/1000El almacén de claves está abierto mientras tu sesión del equipo está activa. Ejecuta la primera tarea manualmente y revisa el registro. Sobre el modo
-p: documentación de Claude. -
En una sesión abierta de Claude Code:
/loopo «recuérdamelo a las 15:00». Funciona mientras la sesión está abierta (documentación de Claude).
Las rutinas en la nube de Claude no sirven para esto: se ejecutan en otro equipo, sin tg ni tu sesión.
Resumen de la mañana
Escribe en Telegram: no. Permite: Bash(tg inbox:*).
Ejecuta
tg inbox --new --json. Agrupa los mensajes por chat. Para cada chat, escribe una línea: quién escribe y qué necesita. Pon primero lo que requiere respuesta hoy. Agrupa anuncios y notificaciones de servicio en una línea al final.
--new muestra cada mensaje una sola vez: tg recuerda dónde terminó y la siguiente ejecución continúa allí. La primera revisa las últimas 24 horas.
Informe semanal de un chat
Escribe en Telegram: no. Permite: Bash(tg messages list:*).
Lee los últimos 7 días de "Book club":
tg messages list "Book club" --after-time 7d --limit 200 --json. Si la respuesta indica"hasMore": true, continúa leyendo. Prepara un informe: decisiones, responsables, plazos y preguntas pendientes. Indica fecha y autor de cada punto.
Quién debe qué
Escribe en Telegram: no. Permite: Bash(tg review:*), Bash(tg messages context:*), Bash(tg messages search:*).
Ejecuta
tg review --since-time <where the last review ended> --json(sin--since-time, revisa los últimos 3 días). Separa el resultado en tres listas: lo que debo hacer, lo que espero de otros y lo que necesita aclaración. Indica chat, fecha e identificadores de los mensajes que respaldan cada punto; añade un plazo solo si se mencionó. Antes de considerar algo vencido, comprueba si se completó después. Al final, indica desde qué--since-timedebe empezar la siguiente revisión y enumera los pendientes.
La siguiente revisión usa la misma petición con los pendientes de la anterior. En un cliente MCP, corresponde al prompt review.
Qué no has respondido
La forma más corta es tg review --since-time 7d --unanswered --json: preguntas sin respuesta dirigidas a ti en chats personales o a ti y los administradores en grupos. El ejemplo siguiente es más amplio: también detecta peticiones sin interrogación.
Escribe en Telegram: no. Permite: Bash(tg chats list:*), Bash(tg messages list:*).
Ejecuta
tg chats list --kind dialog --limit 30 --json. En cada chat cuyo último mensaje sea de los últimos 7 días, leetg messages list <chat id> --limit 5 --json. Muestra los chats donde el último mensaje no es mío y contiene una pregunta o petición: quién, sobre qué y hace cuántos días.
Encontrar algo que se dijo
Escribe en Telegram: no. Permite: Bash(tg messages search:*), Bash(tg messages context:*).
Busca "invoice" con
tg messages search invoice --json. Para cada resultado, consultatg messages context <locator> --jsone indica quién dijo qué y cuándo.
La búsqueda solo lee lo guardado en este equipo. Para consultar todo el historial de un chat, descárgalo primero; son peticiones desde tu cuenta, así que hazlo tú: tg store fetch <chat> (archivo local).
Preparar una respuesta
Escribe en Telegram: solo después de tu aprobación. Este ejemplo es para una conversación con el agente, no una tarea programada.
Lee los últimos 20 mensajes del chat con @example_user y propón una respuesta a su última pregunta. No la envíes: muéstrame el texto.
Después de aprobarla, el agente la envía: tg messages send @example_user "…". Un agente sin terminal se conecta con tg mcp --confirm-send: antes de cada envío ves el chat y el texto, y lo apruebas o rechazas (MCP).
Un grupo que administras
Escribe en Telegram: no. Permite: Bash(tg review:*), Bash(tg chats events:*), Bash(tg chats members list:*).
Ejecuta
tg review --chat "Hiking" --unanswered 4h --jsonytg chats events "Hiking" --since-time 7d --json. Resume qué preguntas esperan respuesta, de quién y desde cuándo; quién se unió o fue añadido esta semana y quién lo añadió. No respondas a nadie: enumera a quién debo contestar.
Consulta todos los escenarios en administrar grupos.
Otras colecciones de ejemplos
Ejemplos de otras personas para Telegram y agentes. Sus peticiones funcionan con tg si sustituyes las herramientas por los comandos correspondientes:
- Telegram MCP: guía completa: revisión de la bandeja de entrada, borradores, resumen de canales y búsquedas en varios chats.
- pioh/tg: Claude Code y Codex con una cuenta personal de Telegram; resumen cada N minutos, «avísame si no contesto a mamá en 15 minutos», seguimiento de personas y chats.
- Recetario de Gorgias MCP: ejemplos de soporte al cliente, bien estructurados; cada uno explica si escribe algo y qué adaptar.