Controlá tus agentes de IA desde Telegram

Agentower conecta tu teléfono con los agentes que corren en tu máquina: opencode, Claude Code, Kiro, GitHub Copilot, Codex y Antigravity. Seguí el progreso, respondé preguntas y retomá sesiones sin exponer ni un puerto a internet.

  • MIT
  • Go 1.22+
  • macOS · Windows
  • v0.4.1

La app se firma ad-hoc (sin Developer ID), así que macOS pide confirmación la primera vez. Todo corre en tu máquina con tu propio bot de Telegram. Ver todos los releases

AgenTower

bot

22 de septiembre

✅ Tarea completada en opencode

Proyecto: astro-portfolio

Sesión: ses_f357ddb2cffe1pq0TCt4wP0lwf

Listo.

  • •public/assets/skills/kubernetes.svg (K8s, #326CE5) y terraform.svg (#844FBA) agregados desde Simple Icons.
  • •src/data/skills.ts:87-88 — Kubernetes y Terraform añadidos a DevOps / Tooling.
  • •Build exitoso, 6 páginas generadas.

3:15 PM

Perfecto, seguí desde acá. ¿Qué falta para cerrar el deploy?

3:16 PM

❓ El agente pregunta

¿Qué estrategia de caché prefieres para las sesiones?

3:16 PM

Mensaje

Un bot, todos tus agentes

Agentower detecta los CLIs instalados en tu PATH (y en los bundles de app) y sigue sus sesiones sin que tengas que elegir nada. Podés cambiar de agente por chat cuando quieras.

  • Logo de opencode

    opencode

    HTTP + SQLite

    Sigue la TUI local por SQLite; HTTP solo para enviar prompts

    $ opencode serve

  • Logo de Claude Code

    Claude Code

    stdio JSON

    Historial JSONL de todos los proyectos en ~/.claude

    $ claude

  • Logo de Kiro

    Kiro

    ACP

    Sesiones JSONL en ~/.kiro

    $ kiro-cli acp

  • Logo de GitHub Copilot

    GitHub Copilot

    ACP / LSP

    session-store de VS Code

    $ copilot

  • Logo de Codex

    Codex

    headless JSON

    Rollouts en ~/.codex

    $ codex exec --json

  • Logo de Antigravity

    Antigravity

    stream-json

    Transcripts en ~/.gemini

    $ agy -p

Pensado para dejar la máquina trabajando

Ejecutá, monitoreá y guiá sesiones de tus agentes desde el teléfono mientras tu máquina hace el trabajo real.

  • Multi-agente

    Un solo bot maneja opencode, Claude Code, Kiro, Copilot, Codex y Antigravity. Cambiás de agente por chat sin reiniciar nada.

  • Long polling a Telegram

    Sin puertos expuestos, sin túneles, sin webhooks. El bot solo hace llamadas salientes a la API de Telegram.

  • Whitelist estricta

    Solo el ALLOWED_CHAT_ID configurado puede usar el bot. Cualquier otro intento se descarta en silencio.

  • Workspace acotado

    La navegación por carpetas nunca puede salir del WORKSPACE_ROOT, ni siquiera con symlinks o rutas relativas.

  • Estado persistente

    Workspace, proyecto, sesión y agente activo viven en SQLite y sobreviven a reinicios. Nunca guarda prompts.

  • Avisos por inactividad

    Si te alejás de la máquina, a los 2 minutos recibís la tarea completada; al minuto, las preguntas del agente.

  • Preguntas respondibles

    Cuando el agente pausa para pedir una decisión, te llega con botones. Tu respuesta vuelve al agente que corre local.

  • Apps nativas opcionales

    Barra de menús en macOS y bandeja del sistema en Windows: toggle, settings, auto-arranque y logs.

De tu teléfono a tu máquina, sin túneles

Todo el tráfico hacia Telegram es saliente (long polling). El bot no abre puertos a internet: las apps nativas hablan con él por un socket local en 127.0.0.1.

Tu teléfono

Telegram

long polling
rb

remote-bot

Go · sin daemon

  • Whitelist por chat ID
  • Estado en SQLite
  • Socket local 127.0.0.1
http · acp

Tus agentes

locales · sin cambios

opencode · claude · kiro · copilot · codex · agy

Las apps nativas de macOS y Windows cierran el círculo: toggle, settings y auto-arranque.

  1. 01

    Creá el bot de Telegram

    Hablá con @BotFather para obtener el token y con @userinfobot para tu chat ID. Es gratis y toma un par de minutos.

  2. 02

    Instalá Agentower

    Bajá la app para macOS o Windows (o compilá el binario Go) y pegá WORKSPACE_ROOT, TELEGRAM_BOT_TOKEN y ALLOWED_CHAT_ID en Settings.

  3. 03

    Dejá que detecte tus agentes

    El bot escanea el PATH y los bundles de app, y empieza a seguir las sesiones de los CLIs que tengas instalados.

  4. 04

    Continuá desde el teléfono

    Cuando el agente termina o pregunta algo, recibís el aviso. Respondés y la tarea sigue en tu máquina.

Requisitos previos

Agentower no necesita servidores ni cuentas: solo una máquina, un bot de Telegram y al menos un agente de IA instalado.

Un agente de IA instalado

Al menos uno de los CLIs soportados, disponible en el PATH: opencode, claude, kiro, copilot, codex o agy.

Token de Telegram

Un bot propio creado con @BotFather. Es gratuito y el token se pega en Agentower, nunca en un servidor de terceros.

Tu chat ID

El ID numérico de tu usuario de Telegram, que te da @userinfobot. Es lo único que puede hablar con tu bot.

Requisitos opcionalesSolo hacen falta si compilás vos mismo o querés la app nativa con interfaz.
  • macOS 13.0+ o Windows 10/11 x64

    opcional

    Para las apps nativas con interfaz. Si preferís el binario, también corre en versiones recientes de macOS y Windows.

  • Go 1.22+

    opcional

    Solo si compilás remote-bot desde el código. Bajando un release, el binario ya viene embebido.

  • .NET 8 SDK

    opcional

    Solo para compilar Agentower.exe por tu cuenta. El .exe publicado es self-contained y no pide .NET.

Variables obligatorias

WORKSPACE_ROOT
Ruta absoluta que delimita toda la navegación del bot.
TELEGRAM_BOT_TOKEN
Token del bot que te da @BotFather.
ALLOWED_CHAT_ID
Tu ID numérico de usuario, obtenido con @userinfobot.

Las apps nativas escriben estas variables por vos en un .env con permisos 0600 dentro de tu carpeta de usuario. Si preferís el binario, podés exportarlas en el shell o apuntar ENV_FILE a tu propio archivo.

Creá tu bot de Telegram

Todo arranca con dos conversaciones en Telegram: una para conseguir el token del bot y otra para saber tu chat ID. Son gratuitas y no necesitás nada más.

  1. 01

    Hablá con @BotFather

    Es el bot oficial de Telegram para crear bots. Buscalo en la app y verificá el check azul junto al nombre: hay cuentas falsas con nombres parecidos.

    Enviá /newbot, elegí un nombre y un username (tiene que terminar en bot). Al final te devuelve un token: esa es la credencial que Agentower usa para hablar con Telegram.

    Perfil de Telegram de @BotFather con la insignia de verificado y más de 8 millones de usuarios.
    En la búsqueda debe aparecer BotFather con la insignia de verificado.

    Vos › /newbot

    BotFather › Alright, a new bot. How are we going to call it?

    Vos › Agentower Bot

    BotFather › Good. Now let's choose a username for your bot.

    Vos › agentower_bot

    BotFather › Done! Use this token to access the HTTP API:

      1234567890:AA… ← tu token, guardalo

  2. 02

    Sacá tu chat ID con @userinfobot

    Agentower es de un solo usuario: solo el chat ID que configures puede hablarle al bot. Para obtenerlo, abrí @userinfobot (aparece como “User Info · Get ID · idbot”), enviá /start y te responde con tu ID numérico.

    Ese número es tu ALLOWED_CHAT_ID. Cualquier otro chat queda descartado en silencio.

    Perfil de Telegram de User Info · Get ID · idbot con más de 601 mil usuarios.
    Se llama User Info · Get ID · idbot; enviale /start.

    Vos › /start

    idbot › Your user ID: 123456789

      ← ese número es tu ALLOWED_CHAT_ID

  3. 03

    Guardá el token y el chat ID

    Con las dos credenciales listas, seguí la guía de instalación: la app las escribe en un .env local con permisos 0600 y nunca las manda a un servidor de terceros.

    Ir a la instalación

Tratá el token como una contraseña. Quien lo tenga controla el bot. No lo subas a un repo público ni lo compartas; si se filtra, revocalo con /revoke en @BotFather y generá uno nuevo.

Cómo instalarlo

Elegí tu plataforma. Cada paso es copiable y no requiere permisos de administrador más allá de mover la app a Aplicaciones.

  1. 01

    Descargá la app

    Bajá Agentower-MacOS.zip del último release. Es la build firmada ad-hoc para Apple Silicon (arm64) y requiere macOS 13.0 o superior.

  2. 02

    Movela a Aplicaciones

    Descomprimí el .zip y copiá el bundle a /Applications con el Finder o desde la terminal.

    macOS
    cp -R Agentower.app /Applications/
  3. 03

    Quitá la marca de Gatekeeper

    La app no tiene Developer ID de Apple, así que macOS la bloquea la primera vez. Este comando elimina el atributo de cuarentena.

    macOS
    xattr -dr com.apple.quarantine /Applications/Agentower.app
  4. 04

    Cargá tu configuración

    Abrí Agentower desde Aplicaciones. Aparece un ícono en la barra de menús: click izquierdo abre el popover, click derecho el menú. Entrá a Settings… y completá WORKSPACE_ROOT, TELEGRAM_BOT_TOKEN y ALLOWED_CHAT_ID.

  5. 05

    Habilitá tus agentes y arrancá

    En “Agentes de IA” vas a ver qué CLIs detectó; habilitá los que quieras y guardá. Después usá el toggle del popover. Si la configuración es válida, la app también arranca el bot sola al abrirla.

Todo se maneja desde el chat

Escribí comandos en Telegram o usá los botones inline de cada notificación. El texto libre va directo a la sesión activa.

  • /start · /help

    Bienvenida y lista de comandos disponibles.

  • /status

    Qué agente y sesión está siguiendo el bot ahora mismo.

  • /continue

    Retoma la última tarea completada y la deja activa para responder.

  • /resume

    Detecta la sesión viva en tu máquina y ofrece seguirla desde Telegram.

  • /agent · /agents

    Cambia el agente activo del chat sobre la marcha.

  • texto libre

    Responde a la sesión activa, o a la pregunta pendiente del agente.

Seguridad por diseño

Single-user y self-hosted: no hay backend compartido ni cuentas. Tu token, tus sesiones y tu código quedan en tu máquina; lo único que sale es el mensaje que viaja a Telegram.

Leer el modelo de seguridad
  • Solo tu chat puede hablarle

    El bot únicamente responde al ALLOWED_CHAT_ID configurado. Cualquier otro intento se descarta en silencio, sin llegar al handler.

  • Callbacks con vida corta

    Los botones inline se validan contra un registro de navegación efímero por chat. Otros chats reciben “menú expirado”.

  • Navegación contenida

    Toda ruta que llega desde Telegram es relativa: se resuelve, se evalúan los symlinks y el resultado debe quedar dentro del WORKSPACE_ROOT.

  • Sin secretos en la base

    SQLite solo guarda proyecto, sesión y estado efímero. Nunca el contenido de tus prompts ni el token.

  • Sin superficie pública

    No hay puertos abiertos, webhooks ni túneles. El long polling es saliente y los wrappers solo consultan un socket en 127.0.0.1.

  • Credenciales locales

    El .env se escribe con permisos 0600 en macOS y vive bajo %APPDATA%\Agentower\ en Windows, accesible solo a tu cuenta.

Preguntas frecuentes

Lo esencial para decidir si Agentower encaja con tu flujo de trabajo: qué soporta, cómo protege tus datos y qué necesitás para empezar.

¿Agentower es gratis?

Sí. Es open source bajo licencia MIT y no tiene backend ni cuentas: descargás o compilás el binario y lo corrés en tu propia máquina.

¿Qué agentes de IA soporta?

opencode, Claude Code, Kiro, GitHub Copilot, Codex y Antigravity. Detecta los que tengas instalados y te permite cambiar de agente por chat sin reiniciar nada.

¿Necesito abrir puertos o configurar un servidor?

No. El bot usa long polling saliente contra la API de Telegram: no expone puertos ni necesita túneles ni webhooks. Las apps nativas hablan con el bot por un socket local en 127.0.0.1.

¿Dónde se guardan mi token y mis datos?

Todo queda en tu máquina: el token en un archivo .env con permisos 0600 y el estado en SQLite. Nunca se guarda el contenido de tus prompts ni se manda a un servidor de terceros.

¿Puedo usarlo sin la app nativa?

Sí. El binario Go (remote-bot) funciona solo en macOS, Linux y Windows. La app es opcional y aporta toggle, settings y auto-arranque.

¿Cómo sabe qué sesión seguir?

Cada agente con locator tiene un observador que auto-sigue la sesión más reciente. Para opencode lee la TUI local por SQLite y para Claude escanea todos los proyectos: no tenés que elegir nada.

¿Funciona en Windows y macOS?

Sí. Hay apps nativas para macOS (barra de menús) y Windows (área de notificación), y el binario Go también corre en Linux.

¿Cuánto tarda en avisarme?

Si te alejás de la máquina, a los 2 minutos te avisa de una tarea completada y al minuto una pregunta pendiente del agente, con botones para continuar desde Telegram.

Bajá Agentower

Binarios del último release (v0.4.1). Es gratis y open source bajo licencia MIT.

~5.9 MB

macOS

Agentower-MacOS.zip

  • arm64 · Apple Silicon
  • macOS 13.0 o superior

App de barra de menús firmada ad-hoc. Descomprimí, mové a /Applications y quitá la cuarentena de Gatekeeper.

Descargar para macOS
~66 MB

Windows

Agentower-Windows.zip

  • win-x64
  • Windows 10/11 x64

App de bandeja self-contained: no requiere .NET instalado. Descomprimí el .zip y ejecutá Agentower.exe; se auto-instala y registra el arranque con Windows.

Descargar para Windows

¿Preferís compilarlo vos? Podés construir el binario Go desde el código.

Los binarios los publica GitHub en cada release de gregoryoviedo/agentower. Verificá siempre la URL del release antes de ejecutar un archivo descargado.

Agentower es gratis y open source

No hay planes, licencias ni telemetría. Si la herramienta te sirve, una donación por Binance Pay ayuda a dedicarle tiempo al proyecto.

  • Mantenimiento y nuevos agentes
  • Mejoras en las apps nativas
  • Más tests y documentación
B

Binance Pay

Envialo desde tu app de Binance

ID de Binance Pay

371811579

Si preferís no donar, una estrella en GitHub, un issue con feedback o un aporte de código también suman muchísimo.