Claude es un chat más.
aipager pone tus sesiones de Claude Code en Telegram, entre tu familia, tus amigos y tu equipo. Funciona en tu computadora.
Una sesión de Claude Code descansando en tu computadora, en Modo Automático, donde arranca cada sesión nueva.
curl -fsSL aipager.run/install | shLinux y macOS · MIT · cosa de un minuto
Tres modos. Empiezas en Modo Automático.
Cada sesión está en uno de los tres, se elige por sesión y se cambia cuando quieras con /mode. El Modo Preguntar se detiene antes de cada acción. El Modo Automático, donde arranca cada sesión nueva, deja que la propia comprobación de seguridad de Claude Code ejecute las acciones seguras y detenga las arriesgadas para que decidas tú. El Modo Acceso total ejecuta todo sin ninguna comprobación. Un modo manda sobre las solicitudes de permiso de Claude Code y nada más: en un grupo, una herramienta que el rol de un miembro no puede usar se rechaza igual, diga lo que diga el modo.
- ✅ Permitir · solo esta vez
- ❌ Rechazar · Claude bloquea la acción
- 🟢 Permitir siempre · añade la regla que ofrece Claude, cuando ofrece una
- ⏹ Detener · interrumpe la tarea en lugar de responder
Muestra un botón para cada uno de los otros modos; /mode ask, /mode auto y /mode full cambian al instante. Las sesiones nuevas arrancan en Modo Automático, salvo que el chat haya elegido otra cosa en /settings → Sesiones nuevas.
Sin reiniciar, incluso mientras Claude trabaja: aipager presiona Shift+Tab en la sesión, y la tarjeta dice que está cambiando hasta que Claude Code confirma el nuevo modo.
Entrar o salir del Modo Acceso total reinicia la sesión y conserva la conversación. Solo un admin puede crear una sesión en ese modo o pasar una a él (o tú, en tu propio chat privado con el bot).
Un modo manda sobre las solicitudes de permiso, no sobre las decisiones: cuando Claude te pregunta algo, los botones llegan a tu chat en cualquier modo.
Tres chats. Lo demás es tu vida.
- aipagerbot⏳ api · Trabajando · 3:14 · Read ×2 · Bash ×2Tu chat con Claude
Un chat para todas tus sesiones. Una tarjeta en vivo por tarea que se edita sola, solicitudes que respondes con un toque y una barra fijada que dice qué te necesita. Un mensaje normal va a la sesión que nombra la barra; /web manda el siguiente a otra sesión, y la conversación sigue ahí.
/status/new/mode/stop/app/<sesión> <mensaje> - BTbackend-teamgrupo · modo equipoSara: @aipagerbot /web ejecuta el e2e de login contra stagingEl grupo de tu equipo
Mete el bot en un grupo y cualquiera de la lista de personas permitidas puede mencionarlo. Cada mensaje se ejecuta con el rol de quien lo envía; una herramienta que ese rol no puede usar se rechaza antes de ejecutarse, y cada decisión queda en el log de auditoría con el nombre de quien tocó el botón.
owneradminuserread_only - JJimsu propio chat con el bot🔐 web · Necesita tu permisoOtra persona, en su propio chat
Añade el chat privado de alguien de tu equipo con el bot y esa persona manejará sus propias sesiones, con su rol y su propia carpeta raíz: sus tareas de Claude arrancan dentro de ella y no leen nada de tu carpeta personal fuera de ahí. A quien solo deba mirar le das read_only en tu grupo.
carpeta raíz de los miembros~/aipager-users/<label>read_only/new
Cuatro roles, y una regla de herramientas por rol.
El rol que cuenta es el que tienes en el chat donde actúas, y una herramienta que un rol no puede usar se rechaza antes de ejecutarse, no se pregunta. Nada en Telegram ni en la Mini App cambia quién está en la lista: solo aipager config, en la computadora.
| Puede | owner | admin | user | read_only |
|---|---|---|---|---|
| Enviar mensajes a una sesión | ✓ | ✓ | ✓ | ✕ |
| Permitir, Rechazar, responder las preguntas de Claude | ✓ | ✓ | ✓ | ✕ |
| Bash, y todo lo que ejecute código | ✓ | ✓ | ✕ | ✕ |
| Modo Acceso total, los /settings de un grupo, /update | ✓ | ✓ | su chat | ✕ |
| Dónde pueden trabajar sus sesiones | en cualquier parte | en cualquier parte | carpeta raíz | carpeta raíz |
| Leer archivos de credenciales (~/.ssh, …) | ✓ | ✓ | ✕ | ✕ |
Úsalo como un chat.
No es una consola disfrazada de chat: todo lo que ya haces en Telegram funciona aquí. Háblale de camino a casa, mándale la captura, envía la siguiente idea antes de que termine la anterior.
- 🎙️Mejor díselo
Manda un audio: aipager lo transcribe en tu propia computadora (nunca en la nube de nadie), te lo devuelve escrito para que veas qué entendió, y lo escribe en la sesión como si lo hubieras tecleado tú.
0:07🎙️ Escuché: arregla el test e2e de login que falla a veces - 📎Una captura del bug
Las fotos y los archivos se guardan en una carpeta de tu computadora y a Claude se le pasa la ruta, con tu pie de foto como mensaje, o «check this: …» cuando no hay ninguno. Manda varios a la vez y van como un solo mensaje.
- 📤Te devuelve archivos
Pídeselo con tus propias palabras, «envíame la captura de pantalla», y el archivo llega al chat de esa sesión justo después de la respuesta: las imágenes como fotos, los videos y los audios tal cual, cualquier otra cosa como archivo, y varios a la vez como un solo álbum. Nunca la configuración de aipager, las credenciales de Claude ni tus claves: eso se rechaza antes de enviar nada.
envíame la captura de pantalla - 👀Manda el siguiente ya
Tu mensaje llega a Claude en cuanto lo envías, incluso a mitad de una tarea: 👀 mientras la cola de Claude lo guarda, 👍 cuando Claude lo toma. ⚡ Enviar ahora se lo pasa sin esperar a que termine el paso.
- ⏸Nunca se lee como la respuesta
Un mensaje que envías mientras hay una solicitud de permiso abierta se queda esperando: no se toma como tu respuesta, y llega a la sesión en cuanto respondes.
- 🤖Agentes y comandos en segundo plano, contados
Cada agente en segundo plano que arranca Claude tiene su propia fila en la tarjeta con lo que está haciendo, y un comando que queda corriendo en segundo plano lleva su propio reloj hasta que termina.
- 🔔Te avisa antes
Un aviso de contexto, una compactación, una sesión que terminó o se quedó callada, una tarea que se alargó de más: el chat te lo dice sin que vayas a mirar.
- ⌨️Los botones ya están ahí
Debajo del cuadro de mensaje hay un teclado: un botón por cada sesión en marcha, luego status, stop y new, y después Plantillas para los mensajes que repites siempre y Comandos para los que maneja el propio Claude Code.
- 📋/status, todo el chat de un vistazo
Todas las sesiones en una lista desde la que puedes actuar: qué hace cada una, su modelo, el contexto que le queda, lo que ha costado, lo que tiene en cola, con Detener, Responder y el resto del menú en cada una.
Un panel, sin salir de Telegram.
/app abre todas las sesiones a la vez: una ficha para cada una, con su anillo de contexto, su carpeta, su modelo y lo que lleva gastado. El chat sigue siendo donde respondes; la app es para verlas todas juntas y para lo que en un chat es incómodo, como leer un diff o cambiar un ajuste.
Una ficha para cada una, con su anillo de contexto, de quién es, el modelo y lo que lleva gastado, y encima una línea que dice cómo va el chat: cuáles trabajan, cuáles están listas, cuánto costó el día, cuántas terminaron. El + crea otra: un nombre, una carpeta de las que ya usas, un modelo.
Una sesión que espera una solicitud de permiso o una pregunta se pone arriba con lo que está pidiendo. «Responder en el chat» manda esa solicitud al final del chat, con sus botones, y la respondes ahí.
El estado, «Trabajando (3:12)» o «Lista, última actividad hace 5 min», y un toque para Detener o Continuar. Debajo, las últimas herramientas usadas, la última respuesta, el control del modelo, los archivos que cambió la tarea en forma de diff, y los ajustes de esa sesión.
Viene activada, cada petición se comprueba con la firma de Telegram, y la página no carga nada de fuera: ni fuentes, ni scripts. aipager miniapp disable la desactiva.
En tu idioma, hasta en los dígitos.
Solo cambian las palabras de aipager: las tarjetas, las solicitudes, los botones, la barra fijada, /status, la Mini App, la documentación. Tus sesiones no: Claude responde en el idioma en que le escribes, y lo que aipager le manda a Claude va tal cual. Elige uno con /language o deja que siga el idioma de tu app de Telegram.
El persa y el árabe se leen de derecha a izquierda, con dígitos persas (۰-۹) o árabes (٠-٩) y sus propios separadores, en Telegram y en la Mini App. Los nombres de sesión, las rutas, los comandos y el código mantienen su dirección.
Cada idioma se escribió como habla de verdad la gente que usa apps en él, con sus préstamos del inglés incluidos y con sus propias formas de plural (el árabe tiene seis).
Un chat privado puede seguir el idioma de tu app de Telegram. Un grupo tiene un solo idioma, que elige un admin, y el aviso que aparece al tocar un botón sale en el idioma de quien lo tocó.
El README y todas las páginas de docs/ están traducidos. Cuando una traducción y la página en inglés no coinciden, la correcta es la página en inglés.
pnpm test e2e/login --trace onLa verdad sigue estando en la terminal.
Claude Code corre en una terminal de verdad, dentro de dtach, así que nadie tiene que dejar una ventana abierta. Cada paso dispara un hook que manda un datagrama a aipager por un socket local, y aipager edita un mensaje en tu chat. Tus respuestas vuelven por el mismo camino: un veredicto al hook que tiene la acción en espera, o teclas escritas en la sesión.
- Claude Codedentro de dtach, sin ventana
- hookse dispara en cada paso
- aipagerun proceso, con tu usuario
- Telegramel token de tu propio bot
- tus chatstu chat privado, el grupo de tu equipo
aipager session api se engancha a la sesión en marcha desde cualquier terminal. Escribe ahí, escribe en el chat: la misma sesión. Cierra la ventana y la sesión sigue, y el enganche acompaña a la sesión incluso si se reinicia.
aipager escribe en la sesión y escucha los eventos del propio Claude Code. Lo que ves en tu chat sale de los hooks y de la conversación guardada, no de leer lo que aparece en la terminal.
Un hook manda un datagrama y vuelve: unos 20 ms del tiempo de Claude Code. Si aipager no está escuchando, el evento se descarta sin más y Claude sigue; aipager se pone al día con los propios archivos de la sesión.
Nada en medio.
aipager nunca habla con Anthropic. El único que lo hace es el propio Claude Code, con tu cuenta, en tu computadora. aipager lo arranca en una terminal y escucha los hooks que publica Claude Code. Ningún endpoint sacado por ingeniería inversa, ningún proxy, ninguna cuenta que no sea la tuya: la sesión que manejas desde el teléfono es la misma que manejarías desde el teclado.
aipager habla con la Bot API de Telegram usando el token de tu propio bot. No hay cuenta de aipager ni servicio de aipager, ni la computadora de nadie más entre tu teléfono y la tuya.
aipager solo responde en los chats que aparecen en tu configuración. Quien encuentre el bot sin estar en ella recibe una sola línea que dice que el bot no está configurado para hablarle; nada de lo que mande llega a una sesión.
Solo escucha en loopback. La Mini App sale por un túnel de Cloudflare donde cada petición tiene que llevar la firma de Telegram, y aipager miniapp disable la desactiva.
El token del bot y los ids de los chats viven en ~/.config/aipager/aipager.yaml con permisos 600. No entran en el log de aipager, y se ocultan allí donde podrían colarse en uno.
Ni sudo, ni setuid. Todo lo que escribe está en tu carpeta personal, en /tmp o en su propia carpeta de sockets, y todo lo que arranca (claude, dtach, los instaladores) corre con tu usuario.
Tu settings.json dice qué hay que preguntar. aipager pasa la pregunta; nunca decide qué puede ejecutarse, y un botón que quedó de una tarea terminada se niega en vez de tocar el trabajo que corre ahora.
Los miembros y los roles solo cambian con aipager config, en la computadora. Nada en Telegram ni en la Mini App puede añadir a una persona ni ampliar un rol.
Cada Permitir, cada Rechazar y cada respuesta va a ~/.claude/aipager-audit.jsonl, que solo crece, con quién lo tocó si fue en un grupo.
Cuatro líneas. Guárdalas en Mensajes guardados.
Toca una línea para copiarla. Antes, dos cosas: un bot tuyo de @BotFather (toca Iniciar en él) y Claude Code ya conectado con tu cuenta en esta computadora. El asistente de la segunda línea te pide lo demás.
Pon el token del bot en un archivo que el agente nunca tenga que leer y dale esto a Claude Code:
Install aipager for me by following https://aipager.run/agent.md. My Telegram bot token is in ~/.config/aipager/bot-token and my Telegram user id is <your id>.
¿Prefieres tu gestor de paquetes? uv, pipx, Homebrew, Docker, Nix, el AUR y Snap. todas las formas de instalar →
Pregunta lo que quieras.
Añade Claude a tus chats.
Luego cierra la terminal y vete a disfrutar la noche.