Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

jeturing/Jarvis

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8,334 Commits
8,334 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 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?

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 (expiran en 1 hora)
  • Lista de Permitidos: Control granular de quién puede interactuar
  • Auditoría Integrada: moltbot security audit detecta configuraciones inseguras
  • Guía Completa: Documentación de seguridad con mejores prácticas

💬 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 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 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

# Instalar globalmente
npm install -g moltbot@latest

# Ejecutar asistente de configuración
moltbot onboard --install-daemon

Instalación desde Código Fuente

# 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

# Usando Docker Compose
docker-compose up -d

📖 Profundizar: Ver Guía de Instalación Completa


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:

# ========================================
# 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:

# ========================================
# 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 <canal> <código>
   │
   └─→ 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


Uso Básico

Iniciar el Gateway

# Modo daemon (recomendado)
moltbot daemon install
moltbot daemon start
moltbot daemon status

# Modo manual (desarrollo)
moltbot gateway --port 18789 --verbose

Enviar Mensajes

# 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

# 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

# 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

# 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

# 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

# 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

# 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


Canales Soportados

Canales Integrados

Canal Biblioteca Estado Documentación
WhatsApp @whiskeysockets/baileys ✅ Estable Ver docs
Telegram grammy ✅ Estable Ver docs
Signal signal-cli ✅ Estable Ver docs
iMessage imsg ✅ Estable Ver docs
Discord discord.js ✅ Estable Ver docs
Slack @slack/bolt ✅ Estable Ver docs
Google Chat Chat API ✅ Estable Ver docs

Canales de Extensión

Canal Ubicación Estado Documentación
BlueBubbles extensions/bluebubbles ✅ Estable Ver docs
Microsoft Teams extensions/msteams ✅ Estable Ver docs
Matrix extensions/matrix ✅ Estable Ver docs
Zalo extensions/zalo ✅ Estable Ver docs
Zalo Personal extensions/zalouser ✅ Estable Ver docs
Twitch extensions/twitch ✅ Estable Ver docs
Mattermost extensions/mattermost ✅ Estable Ver docs
LINE extensions/line ✅ Estable Ver docs
Voice Call extensions/voice-call 🔶 Beta Ver docs

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


Documentación Completa

📚 Documentación Principal

🔧 Configuración y Administración

💡 Conceptos y Guías

🚀 Inicio Rápido

📖 Referencia


Desarrollo

Configuración del Entorno de Desarrollo

# 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

# 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


Contribuir

¡Las contribuciones son bienvenidas! Por favor lee 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 para detalles.


Soporte

¿Necesitas ayuda? Aquí tienes algunas opciones:


Agradecimientos

Gracias a todos los contribuidores que han ayudado a hacer este proyecto posible.


Seguridad

⚠️ Importante: Moltbot es una herramienta poderosa que requiere configuración cuidadosa. Muchas instancias expuestas en internet carecen de autenticación adecuada.

Guías de seguridad:

Verificación rápida:

moltbot security audit --deep --fix

Configuración recomendada: Ver ejemplos de configuración segura


Hecho con ❤️ por la comunidad

Si encuentras útil este proyecto, considera darle una ⭐ en GitHub

About

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 82.6%
  • Swift 13.4%
  • Kotlin 1.9%
  • Shell 0.8%
  • CSS 0.5%
  • JavaScript 0.4%
  • Other 0.4%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.