# ๐Ÿค– Jarvis โ€” Personal AI Assistant

Your Personal AI Assistant Running on Your Own Devices

CI status GitHub release MIT License

## ๐Ÿ“‹ Tabla de Contenidos - [ยฟQuรฉ es Jarvis?](#quรฉ-es-jarvis) - [Caracterรญsticas Principales](#caracterรญsticas-principales) - [Arquitectura del Sistema](#arquitectura-del-sistema) - [Diagrama de Uso](#diagrama-de-uso) - [Instalaciรณn Rรกpida](#instalaciรณn-rรกpida) - [Configuraciรณn](#configuraciรณn) - [Uso Bรกsico](#uso-bรกsico) - [Canales Soportados](#canales-soportados) - [Documentaciรณn Completa](#documentaciรณn-completa) - [Desarrollo](#desarrollo) - [Contribuir](#contribuir) --- ## ยฟQuรฉ es Jarvis? **Jarvis** es un **asistente personal de IA** que se ejecuta en tus propios dispositivos. Es una plataforma local-first, auto-hospedada y diseรฑada para control de usuario รบnico. ### Beneficios Clave โœ… **Privacidad Total** โ€” Todo se ejecuta localmente, tus datos nunca salen de tu control โœ… **Multi-Canal** โ€” Conecta con WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Teams y mรกs โœ… **Multi-Plataforma** โ€” Funciona en macOS, iOS, Android, Linux y Windows (WSL2) โœ… **Extensible** โ€” Sistema robusto de plugins para aรฑadir funcionalidad โœ… **Siempre Activo** โ€” Daemon persistente vรญa systemd/launchd โœ… **Capacidades de Voz** โ€” Voice Wake y Talk Mode en macOS/iOS/Android โœ… **Canvas Visual** โ€” Espacio de trabajo visual controlado por el agente --- ## Caracterรญsticas Principales ### ๐Ÿ” Seguridad y Privacidad - **Local-First**: Todos tus datos permanecen en tu dispositivo - **Sin Servidor Central**: No hay dependencia de servicios de terceros - **Emparejamiento Seguro**: Sistema de cรณdigos para autorizaciรณn DM - **Lista de Permitidos**: Control granular de quiรฉn puede interactuar ### ๐Ÿ’ฌ Multi-Canal - **Mensajerรญa Unificada**: Una interfaz para todos tus canales de chat - **13+ Canales Integrados**: WhatsApp, Telegram, Discord, Slack, Signal, y mรกs - **Enrutamiento Inteligente**: Mensajes dirigidos al agente correcto - **Respuestas Contextuales**: Mantiene contexto en conversaciones grupales ### ๐Ÿ› ๏ธ Herramientas Poderosas - **Browser Tool**: Automatizaciรณn web con Playwright - **Canvas Tool**: Espacio de trabajo visual con A2UI - **Image Tool**: Anรกlisis y generaciรณn de imรกgenes - **Bash Tool**: Ejecuciรณn de comandos del sistema - **Cron Tool**: Tareas programadas - **Memory Tool**: Almacenamiento y recuperaciรณn de contexto ### ๐Ÿค– IA Avanzada - **Mรบltiples Modelos**: Claude, GPT, Gemini, Bedrock, Ollama (local) - **Failover Automรกtico**: Rotaciรณn automรกtica si un modelo falla - **Streaming de Herramientas**: Ejecuciรณn de herramientas en tiempo real - **Multi-Agente**: Agentes aislados por workspace/canal --- ## Arquitectura del Sistema ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Interfaces de Usuario โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ macOS โ”‚ โ”‚ iOS โ”‚ โ”‚ Android โ”‚ โ”‚ CLI / Web UI โ”‚ โ”‚ โ”‚ โ”‚ App โ”‚ โ”‚ App โ”‚ โ”‚ App โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ WebSocket / HTTP โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Gateway (Servidor) โ”‚ โ”‚ โ€ข Gestiรณn de sesiones y enrutamiento de mensajes โ”‚ โ”‚ โ€ข Catรกlogo de modelos IA y autenticaciรณn โ”‚ โ”‚ โ€ข Trabajos programados (cron) y webhooks โ”‚ โ”‚ โ€ข Herramienta de navegador compartida โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Runtime de Agente (Pi Agent) โ”‚ โ”‚ โ€ข Ejecuciรณn de modelos IA (Claude, GPT, etc.) โ”‚ โ”‚ โ€ข Streaming de herramientas en tiempo real โ”‚ โ”‚ โ€ข Gestiรณn de contexto de sesiรณn โ”‚ โ”‚ โ€ข Failover automรกtico de modelos โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Capa Multi-Canal โ”‚ โ”‚ WhatsApp โ”‚ Telegram โ”‚ Signal โ”‚ Discord โ”‚ Slack โ”‚ iMessage โ”‚ โ”‚ Teams โ”‚ Matrix โ”‚ Zalo โ”‚ BlueBubbles โ”‚ LINE โ”‚ Voice Call โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Servicios Externos (IA) โ”‚ โ”‚ Anthropic Claude โ”‚ OpenAI GPT โ”‚ Google Gemini โ”‚ AWS Bedrock โ”‚ โ”‚ Ollama (Local) โ”‚ Otros proveedores โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ๐Ÿ“– **Profundizar**: Ver [ARCHITECTURE.md](docs/ARCHITECTURE.md) para detalles completos de arquitectura --- ## Diagrama de Uso ### Flujo de Mensaje Completo ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 1. Usuario envรญa mensaje desde canal (WhatsApp, Telegram, etc.)โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 2. Canal recibe mensaje y lo normaliza โ”‚ โ”‚ โ€ข Extrae texto, medios, contexto de respuesta โ”‚ โ”‚ โ€ข Aรฑade metadata del canal โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 3. Verificaciรณn de seguridad โ”‚ โ”‚ โ€ข Verifica lista de permitidos โ”‚ โ”‚ โ€ข Valida emparejamiento para DMs โ”‚ โ”‚ โ€ข Comprueba permisos de grupo โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 4. Gateway enruta mensaje โ”‚ โ”‚ โ€ข Determina sesiรณn apropiada โ”‚ โ”‚ โ€ข Verifica modo de activaciรณn (mention/reply/always) โ”‚ โ”‚ โ€ข Encola o ejecuta inmediatamente โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 5. Agente procesa mensaje โ”‚ โ”‚ โ€ข Carga contexto de sesiรณn โ”‚ โ”‚ โ€ข Ejecuta modelo IA con herramientas โ”‚ โ”‚ โ€ข Stream de llamadas y resultados de herramientas โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 6. Ejecuciรณn de herramientas (si es necesario) โ”‚ โ”‚ โ€ข Browser (automatizaciรณn web) โ”‚ โ”‚ โ€ข Bash (ejecutar comandos) โ”‚ โ”‚ โ€ข Canvas (workspace visual) โ”‚ โ”‚ โ€ข Memory (recuperar contexto) โ”‚ โ”‚ โ€ข Otras herramientas personalizadas โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 7. Agente genera respuesta โ”‚ โ”‚ โ€ข Basada en resultados de herramientas โ”‚ โ”‚ โ€ข Aplica modo de thinking (low/high/always) โ”‚ โ”‚ โ€ข Formatea para canal destino โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 8. Respuesta enviada de vuelta โ”‚ โ”‚ โ€ข Formatea para protocolo especรญfico del canal โ”‚ โ”‚ โ€ข Fragmenta mensajes largos si es necesario โ”‚ โ”‚ โ€ข Aรฑade indicadores de escritura/reacciones โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 9. Usuario recibe respuesta en su canal โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ๐Ÿ“– **Profundizar**: Ver [Flujo de Datos](docs/ARCHITECTURE.md#data-flow) en documentaciรณn de arquitectura --- ## Instalaciรณn Rรกpida ### Requisitos Previos - **Node.js โ‰ฅ 22.12.0** - **npm, pnpm o bun** - **macOS, Linux o Windows (WSL2)** ### Instalaciรณn con npm ```bash # Instalar globalmente npm install -g moltbot@latest # Ejecutar asistente de configuraciรณn moltbot onboard --install-daemon ``` ### Instalaciรณn desde Cรณdigo Fuente ```bash # Clonar repositorio git clone https://github.com/jeturing/Jarvis.git cd Jarvis # Instalar dependencias pnpm install # Construir proyecto pnpm ui:build pnpm build # Ejecutar asistente de configuraciรณn pnpm moltbot onboard --install-daemon ``` ### Instalaciรณn con Docker ```bash # Usando Docker Compose docker-compose up -d ``` ๐Ÿ“– **Profundizar**: Ver [Guรญa de Instalaciรณn Completa](docs/README-ES.md#configuraciรณn-y-despliegue) --- ## Configuraciรณn ### Estructura de Configuraciรณn ``` ~/.clawdbot/ โ”œโ”€โ”€ config/ โ”‚ โ”œโ”€โ”€ .moltbot.yaml # Configuraciรณn principal โ”‚ โ”œโ”€โ”€ models.json # Perfiles de modelos IA โ”‚ โ””โ”€โ”€ skills/ # Configuraciones de skills โ”œโ”€โ”€ credentials/ โ”‚ โ”œโ”€โ”€ anthropic.json # Tokens OAuth โ”‚ โ”œโ”€โ”€ openai.json โ”‚ โ””โ”€โ”€ channels/ # Credenciales de canales โ”œโ”€โ”€ sessions/ โ”‚ โ”œโ”€โ”€ main/ # Datos de sesiรณn principal โ”‚ โ””โ”€โ”€ groups/ # Sesiones de grupos โ””โ”€โ”€ logs/ โ”œโ”€โ”€ gateway.log # Logs del gateway โ””โ”€โ”€ agent.log # Logs del agente ``` ### Archivo de Configuraciรณn Principal Edita `~/.clawdbot/config/.moltbot.yaml`: ```yaml # ======================================== # Configuraciรณn del Gateway # ======================================== gateway: mode: local # 'local' o 'remote' port: 18789 # Puerto del servidor bind: loopback # 'loopback' o 'all' verbose: true # Logging detallado # ======================================== # Configuraciรณn de Agentes # ======================================== agents: default: model: claude-4.5-sonnet # Modelo IA por defecto thinking: high # Nivel de thinking (low/high/always) temperature: 0.7 # Temperatura del modelo max_tokens: 8192 # Tokens mรกximos # ======================================== # Configuraciรณn de Canales # ======================================== channels: # WhatsApp whatsapp: enabled: true pairing: code # Mรฉtodo de emparejamiento allowlist: - "+1234567890" # Nรบmeros permitidos # Telegram telegram: enabled: true bot_token: "${TELEGRAM_BOT_TOKEN}" # Discord discord: enabled: true bot_token: "${DISCORD_BOT_TOKEN}" # Signal signal: enabled: true phone: "+1234567890" # Slack slack: enabled: true bot_token: "${SLACK_BOT_TOKEN}" # ======================================== # Configuraciรณn de Herramientas # ======================================== tools: browser: enabled: true headless: true # Navegador sin interfaz timeout: 30000 # Timeout en ms canvas: enabled: true port: 8080 # Puerto Canvas bash: enabled: true timeout: 60000 # Timeout comandos memory: enabled: true max_size: 1000 # Entradas mรกximas # ======================================== # Configuraciรณn de Sandbox (Opcional) # ======================================== sandbox: enabled: false docker_image: "jarvis/sandbox" # ======================================== # Configuraciรณn de Plugins # ======================================== plugins: - name: matrix enabled: true config: homeserver: "https://matrix.org" - name: voice-call enabled: false config: provider: "twilio" # ======================================== # Configuraciรณn de Skills # ======================================== skills: - workspace1 - workspace2 ``` ### Variables de Entorno Crea un archivo `.env` en la raรญz del proyecto: ```bash # ======================================== # Tokens de API de IA # ======================================== ANTHROPIC_API_KEY=sk-ant-api03-... OPENAI_API_KEY=sk-... # ======================================== # Tokens de Canales # ======================================== TELEGRAM_BOT_TOKEN=123456:ABC-DEF... DISCORD_BOT_TOKEN=MTk4... SLACK_BOT_TOKEN=xoxb-... # ======================================== # Configuraciรณn del Gateway # ======================================== CLAWDBOT_GATEWAY_PORT=18789 CLAWDBOT_GATEWAY_BIND=loopback # ======================================== # Configuraciรณn de Modo # ======================================== CLAWDBOT_PROFILE=production # 'production' o 'dev' CLAWDBOT_SKIP_CHANNELS=0 # ======================================== # Configuraciรณn de Depuraciรณn # ======================================== CLAWDBOT_DEBUG=0 CLAWDBOT_VERBOSE=0 ``` ### Diagrama de Configuraciรณn ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Proceso de Configuraciรณn โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 1. INSTALACIร“N โ”‚ โ”œโ”€โ†’ Instalar paquete npm/pnpm โ”‚ โ””โ”€โ†’ Ejecutar: moltbot onboard --install-daemon 2. CONFIGURACIร“N INTERACTIVA โ”‚ โ”œโ”€โ†’ Seleccionar modelos IA (Claude, GPT, etc.) โ”‚ โ””โ”€โ†’ Aรฑadir tokens API o OAuth โ”‚ โ”œโ”€โ†’ Configurar canales โ”‚ โ”œโ”€โ†’ WhatsApp (emparejamiento QR) โ”‚ โ”œโ”€โ†’ Telegram (bot token) โ”‚ โ”œโ”€โ†’ Discord (bot token) โ”‚ โ”œโ”€โ†’ Signal (phone number) โ”‚ โ””โ”€โ†’ Otros canales โ”‚ โ”œโ”€โ†’ Configurar herramientas โ”‚ โ”œโ”€โ†’ Browser (Playwright) โ”‚ โ”œโ”€โ†’ Canvas (A2UI) โ”‚ โ”œโ”€โ†’ Bash (comandos) โ”‚ โ””โ”€โ†’ Memory (almacenamiento) โ”‚ โ””โ”€โ†’ Configurar seguridad โ”œโ”€โ†’ Listas de permitidos โ”œโ”€โ†’ Polรญticas de emparejamiento DM โ””โ”€โ†’ Permisos de grupo 3. VERIFICACIร“N โ”‚ โ”œโ”€โ†’ Ejecutar: moltbot doctor โ”‚ โ””โ”€โ†’ Verifica configuraciรณn y detecta problemas โ”‚ โ””โ”€โ†’ Ejecutar: moltbot channels status โ””โ”€โ†’ Verifica estado de canales 4. INICIO DEL GATEWAY โ”‚ โ”œโ”€โ†’ Modo Daemon: moltbot daemon start โ”‚ โ””โ”€โ†’ Gateway se ejecuta en segundo plano โ”‚ โ””โ”€โ†’ Modo Manual: moltbot gateway --port 18789 โ””โ”€โ†’ Gateway se ejecuta en primer plano 5. EMPAREJAMIENTO DE CANALES โ”‚ โ”œโ”€โ†’ WhatsApp: Escanear cรณdigo QR โ”‚ โ”œโ”€โ†’ Otros canales: Aprobar cรณdigos de emparejamiento โ”‚ โ””โ”€โ†’ Ejecutar: moltbot pairing approve โ”‚ โ””โ”€โ†’ Verificar conexiones โ””โ”€โ†’ Ejecutar: moltbot channels status --probe 6. ยกLISTO! โ””โ”€โ†’ Enviar mensaje de prueba โ””โ”€โ†’ Ejecutar: moltbot agent --message "Hola Jarvis" ``` ๐Ÿ“– **Profundizar**: Ver [Guรญa de Configuraciรณn Completa](docs/README-ES.md#configuraciรณn-y-despliegue) --- ## Uso Bรกsico ### Iniciar el Gateway ```bash # Modo daemon (recomendado) moltbot daemon install moltbot daemon start moltbot daemon status # Modo manual (desarrollo) moltbot gateway --port 18789 --verbose ``` ### Enviar Mensajes ```bash # Enviar mensaje a un contacto moltbot message send --to +1234567890 --message "Hola desde Jarvis" # Enviar mensaje a un grupo moltbot message send --to group_id --message "Hola grupo" ``` ### Interactuar con el Agente ```bash # Modo interactivo moltbot agent --message "ยฟCuรกl es el clima hoy?" # Con modo de thinking alto moltbot agent --message "Analiza este documento" --thinking high # Ejecutar comando y devolver resultado al canal moltbot agent --message "Lista archivos en /home" --reply-back telegram ``` ### Gestionar Canales ```bash # Ver estado de todos los canales moltbot channels status # Ver estado con verificaciรณn de conexiรณn moltbot channels status --probe # Ver estado de un canal especรญfico moltbot channels status whatsapp # Reiniciar un canal moltbot channels restart telegram ``` ### Gestionar Emparejamiento ```bash # Listar solicitudes de emparejamiento pendientes moltbot pairing list # Aprobar un emparejamiento moltbot pairing approve telegram ABC123 # Rechazar un emparejamiento moltbot pairing reject whatsapp XYZ789 # Ver lista de permitidos moltbot pairing allowlist ``` ### Gestionar Modelos ```bash # Listar modelos disponibles moltbot models list # Ver configuraciรณn de modelos moltbot models config # Probar un modelo moltbot models test claude-4.5-sonnet # Cambiar modelo por defecto moltbot config set agents.default.model claude-4.5-sonnet ``` ### Gestionar Skills ```bash # Listar skills disponibles moltbot skills list # Instalar un skill moltbot skills install workspace1 # Actualizar skills moltbot skills update # Ver configuraciรณn de skills moltbot skills config ``` ### Diagnรณstico ```bash # Ejecutar diagnรณstico completo moltbot doctor # Ver logs del gateway moltbot logs gateway # Ver logs del agente moltbot logs agent # Ver logs de un canal moltbot logs channel telegram ``` ๐Ÿ“– **Profundizar**: Ver [Comandos CLI](docs/README-ES.md#cli) --- ## Canales Soportados ### Canales Integrados | Canal | Biblioteca | Estado | Documentaciรณn | |-------|-----------|--------|---------------| | **WhatsApp** | @whiskeysockets/baileys | โœ… Estable | [Ver docs](docs/channels/) | | **Telegram** | grammy | โœ… Estable | [Ver docs](docs/channels/) | | **Signal** | signal-cli | โœ… Estable | [Ver docs](docs/channels/) | | **iMessage** | imsg | โœ… Estable | [Ver docs](docs/channels/) | | **Discord** | discord.js | โœ… Estable | [Ver docs](docs/channels/) | | **Slack** | @slack/bolt | โœ… Estable | [Ver docs](docs/channels/) | | **Google Chat** | Chat API | โœ… Estable | [Ver docs](docs/channels/) | ### Canales de Extensiรณn | Canal | Ubicaciรณn | Estado | Documentaciรณn | |-------|-----------|--------|---------------| | **BlueBubbles** | extensions/bluebubbles | โœ… Estable | [Ver docs](docs/channels/) | | **Microsoft Teams** | extensions/msteams | โœ… Estable | [Ver docs](docs/channels/) | | **Matrix** | extensions/matrix | โœ… Estable | [Ver docs](docs/channels/) | | **Zalo** | extensions/zalo | โœ… Estable | [Ver docs](docs/channels/) | | **Zalo Personal** | extensions/zalouser | โœ… Estable | [Ver docs](docs/channels/) | | **Twitch** | extensions/twitch | โœ… Estable | [Ver docs](docs/channels/) | | **Mattermost** | extensions/mattermost | โœ… Estable | [Ver docs](docs/channels/) | | **LINE** | extensions/line | โœ… Estable | [Ver docs](docs/channels/) | | **Voice Call** | extensions/voice-call | ๐Ÿ”ถ Beta | [Ver docs](docs/channels/) | ### Caracterรญsticas de Canal - โœ… **Emparejamiento DM**: Lista de permitidos basada en cรณdigo - โœ… **Enrutamiento de grupo**: Control de menciones - โœ… **Etiquetas de respuesta**: Respuestas basadas en hilos - โœ… **Fragmentaciรณn de mensajes**: Lรญmites especรญficos por canal - โœ… **Reacciones**: Reconocimientos - โœ… **Indicadores de escritura**: Estado en tiempo real - โœ… **Redacciรณn de medios**: Capacidades de privacidad ๐Ÿ“– **Profundizar**: Ver [Documentaciรณn de Canales](docs/README-ES.md#canales-de-mensajerรญa) --- ## Documentaciรณn Completa ### ๐Ÿ“š Documentaciรณn Principal - **[README Espaรฑol (Completo)](docs/README-ES.md)** - Documentaciรณn completa en espaรฑol - **[Arquitectura](docs/ARCHITECTURE.md)** - Arquitectura tรฉcnica detallada del sistema - **[Componentes](docs/COMPONENTS.md)** - Descripciรณn de componentes individuales (prรณximamente) - **[Desarrollo](docs/DEVELOPMENT.md)** - Guรญa para desarrolladores (prรณximamente) - **[Plugin Development](docs/PLUGIN-DEVELOPMENT.md)** - Crear plugins personalizados (prรณximamente) - **[API Reference](docs/API-REFERENCE.md)** - Referencia completa de API (prรณximamente) - **[Deployment](docs/DEPLOYMENT.md)** - Guรญas de despliegue (prรณximamente) ### ๐Ÿ”ง Configuraciรณn y Administraciรณn - **Gateway**: Ver [docs/gateway/](docs/gateway/) - **Canales**: Ver [docs/channels/](docs/channels/) - **Seguridad**: Ver [docs/security/](docs/security/) - **CLI**: Ver [docs/cli/](docs/cli/) ### ๐Ÿ’ก Conceptos y Guรญas - **Modelos IA**: Ver [docs/concepts/](docs/concepts/) - **Sesiones**: Ver [docs/concepts/](docs/concepts/) - **Herramientas**: Ver [docs/tools/](docs/tools/) - **Plugins**: Ver [docs/plugins/](docs/plugins/) ### ๐Ÿš€ Inicio Rรกpido - **Getting Started**: Ver [docs/start/](docs/start/) - **Instalaciรณn**: Ver [docs/install/](docs/install/) - **Plataformas**: Ver [docs/platforms/](docs/platforms/) ### ๐Ÿ“– Referencia - **Testing**: Ver [docs/testing.md](docs/testing.md) - **Environment**: Ver [docs/environment.md](docs/environment.md) - **Debugging**: Ver [docs/debugging.md](docs/debugging.md) --- ## Desarrollo ### Configuraciรณn del Entorno de Desarrollo ```bash # 1. Clonar repositorio git clone https://github.com/jeturing/Jarvis.git cd Jarvis # 2. Instalar dependencias pnpm install # 3. Construir UI pnpm ui:build # 4. Construir proyecto pnpm build # 5. Ejecutar en modo desarrollo pnpm gateway:watch # Auto-recarga en cambios ``` ### Scripts de Desarrollo ```bash # Desarrollo pnpm dev # Ejecutar CLI en modo dev pnpm gateway:watch # Gateway con auto-recarga pnpm gateway:dev # Gateway dev sin canales pnpm tui:dev # UI de terminal dev # Build pnpm build # Compilar TypeScript pnpm ui:build # Construir UI web pnpm canvas:a2ui:bundle # Empaquetar Canvas A2UI # Testing pnpm test # Ejecutar todos los tests pnpm test:watch # Tests en modo watch pnpm test:coverage # Tests con cobertura pnpm test:e2e # Tests end-to-end # Linting & Formatting pnpm lint # Lint TypeScript pnpm lint:fix # Fix problemas de lint pnpm format # Verificar formato pnpm format:fix # Fix formato # Plataformas pnpm ios:build # Construir app iOS pnpm android:run # Ejecutar app Android pnpm mac:package # Empaquetar app macOS ``` ### Estructura del Proyecto ``` / โ”œโ”€โ”€ src/ # Cรณdigo fuente TypeScript โ”œโ”€โ”€ extensions/ # Plugins de canal y extensiones โ”œโ”€โ”€ apps/ # Aplicaciones nativas (macOS, iOS, Android) โ”œโ”€โ”€ docs/ # Documentaciรณn โ”œโ”€โ”€ skills/ # Paquetes de skills de workspace โ”œโ”€โ”€ scripts/ # Scripts de utilidad โ”œโ”€โ”€ test/ # Fixtures de test y helpers โ””โ”€โ”€ ui/ # UI web (Control UI) ``` ๐Ÿ“– **Profundizar**: Ver [Estructura Completa](docs/README-ES.md#estructura-de-directorios) --- ## Contribuir ยกLas contribuciones son bienvenidas! Por favor lee [CONTRIBUTING.md](CONTRIBUTING.md) para detalles sobre nuestro cรณdigo de conducta y el proceso para enviar pull requests. ### Cรณmo Contribuir 1. **Fork el repositorio** 2. **Crea una rama** para tu feature (`git checkout -b feature/AmazingFeature`) 3. **Commit tus cambios** (`git commit -m 'Add some AmazingFeature'`) 4. **Push a la rama** (`git push origin feature/AmazingFeature`) 5. **Abre un Pull Request** ### รreas de Contribuciรณn - ๐Ÿ› **Bug fixes**: Reporta o arregla bugs - โœจ **Nuevas caracterรญsticas**: Propรณn o implementa nuevas features - ๐Ÿ“ **Documentaciรณn**: Mejora la documentaciรณn - ๐Ÿ”Œ **Plugins**: Crea nuevos plugins de canal o herramientas - ๐Ÿงช **Tests**: Aรฑade o mejora tests - ๐ŸŒ **Traducciones**: Traduce documentaciรณn a otros idiomas --- ## Licencia Este proyecto estรก licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para detalles. --- ## Soporte ยฟNecesitas ayuda? Aquรญ tienes algunas opciones: - ๐Ÿ“– **Documentaciรณn**: Revisa la [documentaciรณn completa](docs/README-ES.md) - ๐Ÿ› **Issues**: Reporta bugs en [GitHub Issues](https://github.com/jeturing/Jarvis/issues) - ๐Ÿ’ฌ **Discusiones**: รšnete a [GitHub Discussions](https://github.com/jeturing/Jarvis/discussions) - ๐Ÿ“ง **Email**: Contacta al equipo de desarrollo --- ## Agradecimientos Gracias a todos los contribuidores que han ayudado a hacer este proyecto posible. --- ## Seguridad Para reportar vulnerabilidades de seguridad, por favor lee [SECURITY.md](SECURITY.md). ---

Hecho con โค๏ธ por la comunidad

Si encuentras รบtil este proyecto, considera darle una โญ en GitHub