Cómo construí mi asistente personal con Claude Code en WhatsApp
Hace meses que quería un coach que me empuje a entrenar para el 21K de Buenos Aires en agosto. Probé tres apps de running: ninguna duró más de dos semanas. Los planes son genéricos, generados por algoritmos que no saben nada de mí más allá de mi edad y mi peso. Un coach humano cuesta plata, tiene horarios, y no le voy a escribir a las 23:47 para preguntarle si los 6:48/km de hoy estuvieron bien.
Así que me armé uno yo. Se llama Otis, vive en mi WhatsApp, y es el primer asistente personal con IA que uso todos los días sin darme cuenta de que lo estoy usando. Lo construí encima de Claude Code — el CLI de Anthropic que cualquiera puede usar para construir agentes — más una capa muy fina de código y un documento de unas 350 líneas que define quién es Otis.
Este post cuenta cómo lo armé, qué piezas usé, y por qué creo que construir tu propio agente IA personal hoy es más fácil de lo que parece.
Por qué quería un asistente personal con IA
Los asistentes IA genéricos (ChatGPT, Gemini, Claude vía web) son buenos pero les falta lo más importante: no saben nada de vos. Cada conversación arranca en cero. No conocen tu plan, tus lesiones, tus horarios, tus datos.
Yo quería tres cosas que ningún producto SaaS me iba a dar tal cual las necesito:
- Que sepa mi plan de entrenamiento de 17 semanas hacia un 21K, con sus fases, deloads, y reglas de ajuste.
- Que tenga acceso en tiempo real a mis datos biométricos (HRV, sueño, training readiness) para ajustar las sesiones.
- Que esté disponible donde ya estoy — en WhatsApp — sin pedirme abrir otra app.
Eso no se compra. Se construye. Y la barrera para construirlo bajó mucho con la nueva generación de herramientas.
Qué es Claude Code y por qué es la base
Claude Code es la CLI oficial de Anthropic para correr a Claude como agente de programación. Lo que mucha gente no sabe es que sirve para mucho más que codear: es un harness — un ambiente que le da al modelo herramientas (Bash, lectura/escritura de archivos, búsqueda web, MCP servers) y un loop de razonamiento.
Eso significa que podés correr Claude Code con una "personalidad" y un set de archivos montados, y obtener un agente IA personalizado para una tarea concreta. No es un wrapper sobre la API — es un ambiente completo donde el modelo puede leer archivos, ejecutar comandos, mantener contexto y devolver respuestas.
Para mi asistente personal, Claude Code resuelve la parte más difícil de armar un agente IA: el ciclo de razonamiento, el manejo de herramientas, el contexto. Yo solo tengo que escribir el documento que define quién es el agente y qué archivos puede leer.
Cómo funciona la skill que define a Otis (Claude Code skills)
Claude Code skills son la forma de extender el comportamiento del agente con instrucciones reutilizables. Son archivos Markdown con frontmatter — la skill se carga automáticamente cuando el contexto la necesita.
La skill de Otis es un único SKILL.md de unas 350 líneas. Adentro están:
- El tono. "No sos complaciente. Sos firme, exigente. Tu virtud por sobre todas es la perseverancia." Frases que sí usa, frases que no usa. Vocabulario rioplatense.
- El plan completo. 17 semanas en cinco fases (base aeróbica, volumen + calidad, endurancia específica, pico, afilado), con tablas de qué corre cada martes/jueves/sábado.
- Las rutinas de pesas. Tres rutinas (A, B, C) con foco en piernas y core para proteger mi sacro sensible.
- Las reglas de ajuste. "Si HRV sale UNBALANCED dos noches seguidas, deload no negociable."
- Cómo dar feedback. Plantilla: reconocer en una línea, citar un dato concreto, ajustar la próxima sesión, hacer una pregunta de seguimiento.
No es código en el sentido tradicional. Es un documento que el modelo lee al arrancar cada conversación. Pero es tan preciso como si lo fuera: si pongo "no negociable", Otis no se va a saltear la semana de deload aunque yo le insista.
Conectar Claude Agent SDK con WhatsApp
La pieza que conecta WhatsApp con Claude Code es NanoClaw, un asistente personal open source que uso como harness para correr el Claude Agent SDK dentro de un container Linux aislado.
El flujo de un mensaje de WhatsApp:
- El mensaje entra por la conexión de WhatsApp (vía la librería
baileys). - NanoClaw lo guarda en SQLite y lo rutea a un container.
- Adentro del container, Claude Agent SDK arranca con la skill de Otis cargada y los archivos del Garmin montados.
- Claude responde. La respuesta vuelve por WhatsApp.
Todo el sistema cabe en un proceso de Node.js de pocos archivos corriendo en una Raspberry Pi de 4 GB de RAM. Sin backend nuevo, sin base de datos custom, sin "plataforma" — y sin GPU: el modelo no corre localmente, Claude vive en la API de Anthropic, la Pi solo orquesta. Eso es lo que hace viable un asistente IA personal con datos propios en hardware de USD 50, accesible para cualquier presupuesto. La parte de asistente IA en WhatsApp suena complicada pero el trabajo pesado lo hacen las piezas existentes: WhatsApp para la interfaz, Claude Agent SDK para el agente, NanoClaw para orquestar.
La fricción es lo que importa. La primera versión del experimento fue una app web. La abrí tres veces en una semana. Cuando lo migré a WhatsApp, empezó a funcionar — porque WhatsApp ya está abierto todo el día.
Datos del Garmin: el agente lee archivos JSON
La diferenciación más fuerte de Otis frente a cualquier chatbot genérico es que lee mis datos biométricos reales.
En esa misma Pi corre un timer de systemd que cada mañana a las 7:30 sincroniza los datos del Garmin con la API oficial usando python-garminconnect. Deja archivos JSON en una carpeta:
summary/2026-05-03.json # diario
weekly/2026-W18.json # snapshot semanal
last-activity.json # última actividad, refrescada cada 30 min Esa carpeta está montada dentro del container donde corre Otis. Cuando le digo "terminé los 7K", el agente abre last-activity.json, ve los splits kilómetro a kilómetro, el HR promedio, el training effect aerobic, y me responde con feedback específico:
Otis
Lindo run 👟 7K a 6:48, HR 141 — Z2 alta limpia. Splits parejos, el último km bajaste a 6:45 sin disparar HR, eso es buen control. Training effect 3.1, productivo.
Para el sábado la larga 8K, mismo ritmo o un toque más suave. ¿Sacro cómo?
No "qué bien". Tres datos específicos, una conclusión, un ajuste a la próxima sesión, una pregunta. Es más útil que la mayoría del feedback humano que recibí.
Un día con Otis: ejemplo real
Para que se entienda concretamente, así es un lunes típico:
Lunes 08:15. Le escribo: "¿qué toca esta semana?". Otis abre weekly/2026-W18.json, ve que la predicción del 21K mejoró 12 segundos vs la semana pasada, y arma el resumen de la semana con las tres corridas, las pesas, y un punto a cuidar.
Jueves. Me salteo los intervalos. No le aviso. El viernes pregunto algo sin relación. Otis primero responde lo que pregunté, después: "¿Y los intervalos del jueves?". No me deja zafar.
Sábado. Hago los 9K. Reporto. Lee la actividad, ve que el HR del último km saltó a 152, me dice que probablemente no comí suficiente antes, ajusta la próxima larga.
Es lo más cerca que estuve de tener un coach de verdad sin tener uno.
Lo que aprendí construyendo un agente IA personal
El modelo no es lo importante. Otis usa Claude. Pero podría usar cualquier modelo decente y funcionaría parecido. La diferencia no la hace el modelo — la hacen el contexto y los datos. Cuánto sabe de vos, qué archivos puede leer en tiempo real, qué herramientas tiene a disposición.
La personalización es el producto. Probé los chatbots genéricos de coaching que existen. Todos fallan en lo mismo: no saben nada de vos. Otis sabe que tengo el sacro sensible, que mi meta no es PR sino "llegar bien", que el calor en Montevideo en enero hace que mi HR suba 10 latidos sin culpa mía. Eso no se configura — se escribe.
Componer le gana a construir. No construí casi nada de cero. Claude Code y el Claude Agent SDK ya existían. NanoClaw ya existía. La API de Garmin ya existía. WhatsApp ya existía. Mi trabajo fue armar las piezas y escribir el documento que define a Otis. Eso es lo distinto de este momento de la IA: las piezas son cada vez más componibles.
La fricción mata. El asistente que vive donde ya estás (WhatsApp) siempre va a ganarle al asistente que requiere abrir una app nueva.
Cómo construir el tuyo
Si querés armar tu propio agente IA personal, los pasos básicos son:
- Instalá Claude Code. Es la base.
- Definí la personalidad y el dominio en un archivo Markdown. Tono, reglas, datos relevantes. Cuanto más específico, mejor funciona.
- Conectalo donde lo vas a usar. WhatsApp con NanoClaw, Telegram, Slack, o un endpoint web. La interfaz importa más que el modelo.
- Dale acceso a tus datos reales. Aunque sea una carpeta de archivos JSON. Sin datos propios, es solo un chatbot más.
- Iterá con uso real. Las primeras semanas vas a notar lo que no responde bien. Editás la skill. Mejora.
Otis empezó como experimento de fin de semana y hoy es la herramienta que más uso después del navegador. No escala, no tiene plan freemium, no tiene marketing — porque está construido para una sola persona: yo. Y ese es el punto.
¿Te interesa armar algo así para vos o para tu equipo? Construyo agentes IA y MCPs a medida con esta misma filosofía: chico, mantenible, útil de verdad. Ver servicios · Conversemos un proyecto.
Lectura relacionada: Agentes de IA: qué son, qué no son, y cuándo usarlos en tu empresa · Qué es Model Context Protocol: guía técnica.
Última actualización:
