31 KiB
🦞 Moltbot - Documentación Completa del Proyecto
Índice
- Visión General
- ¿Qué es Moltbot?
- Arquitectura del Sistema
- Componentes Principales
- Canales de Mensajería
- Tecnologías Utilizadas
- Sistema de Plugins
- Configuración y Despliegue
- Desarrollo
- Estructura de Directorios
Visión General
Moltbot (también conocido como Jarvis o Clawdbot) 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.
Características Principales
✅ Multi-canal: Conecta con WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Microsoft Teams, Matrix, Zalo y más
✅ Capacidades de voz: Wake Voice, Talk Mode (entrada/salida de voz en macOS/iOS/Android)
✅ Canvas en vivo: Espacio de trabajo visual controlado por agente con framework A2UI
✅ Herramientas de primera clase: Browser, Canvas, Cron, Sessions, acciones de Discord/Slack
✅ Enrutamiento multi-agente: Aisla agentes por espacio de trabajo/canal
✅ Asistente de configuración: moltbot onboard para configuración fácil
✅ Daemon siempre activo: vía systemd/launchd
✅ Soporte Gateway remoto: para servidores Linux sin interfaz gráfica
✅ Privacidad: Se ejecuta localmente, sin dependencia de servidor
¿Qué es Moltbot?
Moltbot es un asistente de IA personal que:
Propósito Principal
- Asistente de IA personal siempre activo usando modelos Claude/OpenAI
- Gateway de mensajería multi-canal (bandeja de entrada unificada entre plataformas)
- Funciona en macOS, iOS, Android, Linux, Windows (WSL2)
- Enfocado en privacidad: se ejecuta localmente, sin dependencia de servidor
Casos de Uso
- Asistente Personal: Responde preguntas, ejecuta tareas, gestiona calendarios
- Centro de Mensajería Unificado: Una interfaz para todos tus canales de chat
- Automatización: Ejecuta scripts, gestiona tareas programadas (cron)
- Navegación Web: Automatización de navegador con Playwright
- Procesamiento de Medios: Transcripción de audio, análisis de imágenes, procesamiento de video
- Desarrollo: Asistente de código, revisión de código, depuración
Ventajas Únicas
- Control Total: Tú posees tus datos y configuración
- Sin Servidor Central: No hay dependencia de servicios de terceros
- Extensible: Sistema de plugins robusto para añadir funcionalidad
- Multi-Plataforma: Funciona en todos los sistemas operativos principales
- Seguro: Autenticación local, políticas de lista de permitidos
Arquitectura del Sistema
┌────────────────────────────────────────────────────┐
│ Gateway (Servidor WebSocket) │
│ - Plano de control para sesiones/canales │
│ - Registro de chat y enrutamiento de mensajes │
│ - Catálogo de modelos y perfiles de autenticación │
│ - Trabajos cron, webhooks, herramienta de navegador│
└────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ Runtime de Agente (Pi Agent) │
│ - Modo RPC embedding │
│ - Streaming de herramientas y bloques │
│ - Failover de modelos/rotación de auth │
│ - Ventana de contexto de sesión │
│ - Entorno sandbox (Docker opcional) │
└────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ Capa Multi-Canal │
│ - Manejadores de canal base │
│ - Análisis de mensajes entrantes │
│ - Enrutamiento y formato salientes │
│ - Políticas de lista de permitidos/emparejamiento DM│
│ - Enrutamiento de menciones en grupo │
└────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ Sistema de Herramientas │
│ - Browser (automatización web) │
│ - Canvas (espacio de trabajo visual) │
│ - Image (analizar/generar) │
│ - Message (enviar entre canales) │
│ - Session (generar sub-agentes) │
│ - Bash (ejecutar comandos) │
│ - Web (fetch, search, readability) │
│ - Memory (recordar contexto) │
│ - Cron (programar tareas) │
│ - Acciones Discord/Slack/WhatsApp │
└────────────────────────────────────────────────────┘
Flujo de Mensajes
- Entrada: Mensaje recibido desde canal (WhatsApp, Telegram, etc.)
- Enrutamiento: Gateway determina sesión y agente apropiado
- Procesamiento: Agente procesa mensaje con herramientas disponibles
- Ejecución: Herramientas se ejecutan (browser, bash, memory, etc.)
- Respuesta: Agente genera respuesta basada en resultados
- Salida: Mensaje enviado de vuelta al canal original o cruzado
Componentes Principales
1. Gateway (src/gateway/)
El Gateway es el corazón del sistema. Es un servidor WebSocket que:
- Gestiona todas las sesiones de chat activas
- Enruta mensajes entre canales y agentes
- Mantiene catálogo de modelos (Claude, GPT, Bedrock)
- Ejecuta trabajos cron y webhooks
- Proporciona herramienta de navegador compartida
- Maneja descubrimiento de servicios (mDNS)
Archivos clave:
server.ts- Servidor principal WebSocketchat-registry.ts- Registro de chats activosmodel-catalog.ts- Catálogo de modelos AIbrowser-tool.ts- Integración de Playwright
2. Runtime de Agente (src/agents/)
El Runtime de Agente ejecuta modelos de IA y gestiona interacciones:
- Integración Pi Agent (
pi-embedded-runner.ts) - Ejecuta Claude/GPT en modo RPC - Gestión de sesiones (
session-*.ts) - Aisla contextos de chat - Streaming de herramientas - Streaming en tiempo real de uso de herramientas
- Failover de modelos - Rotación automática si un modelo falla
- Manejo de perfiles de auth - OAuth y claves API
Archivos clave:
pi-embedded-runner.ts- Ejecutor principal de agentesession-manager.ts- Gestor de sesiones de chattool-registry.ts- Registro de herramientas disponiblesmodel-auth.ts- Autenticación de modelos
3. Canales (src/channels/, extensions/)
Canales integrados (en src/):
whatsapp/- WhatsApp (biblioteca Baileys)telegram/- Telegram (grammY)signal/- Signal (signal-cli)imessage/- iMessage (imsg)discord/- Discord (discord.js)slack/- Slack (Bolt)
Canales de extensión (en extensions/):
msteams/- Microsoft Teamsmatrix/- Matrix con soporte E2Ezalo/,zalouser/- Mensajería vietnamitabluebubbles/- Relay iMessage- Y más de 20 extensiones de canal
Características:
- Emparejamiento DM (lista de permitidos basada en código)
- Enrutamiento de grupo/canal con control de menciones
- Etiquetas de respuesta para respuestas basadas en hilos
- Fragmentación de mensajes por canal
- Reconocimientos de reacción
- Indicadores de escritura
4. Sistema de Plugins (src/plugins/)
El sistema de plugins permite extensibilidad:
Tipos de plugins:
- Plugins de canal - Nuevas integraciones de mensajería
- Plugins de auth - Manejadores OAuth
- Plugins de herramientas - Herramientas personalizadas de agente
- Plugins de memoria - Backends de almacenamiento personalizados
- Plugins de hooks - Manejadores de eventos globales
Archivos clave:
discovery.ts- Auto-detecta pluginsloader.ts- Carga plugins validadosmanifest.ts- Validación de esquema de manifiestoservices.ts- Proveedores de inyección de servicios
5. Herramienta de Navegador (src/browser/)
La herramienta de navegador proporciona automatización web:
- Automatización Chromium vía Playwright
- Snapshots conscientes de IA de páginas
- Rellenado de formularios e interacción
- Generación de screenshots y PDF
- Perfiles personalizados con cookies/almacenamiento
- Puente CDP para depuración DevTools
Archivos clave:
browser-tool.ts- API principal de herramientaplaywright-bridge.ts- Puente Playwrightsnapshot.ts- Generación de snapshots de página
6. Pipeline de Medios (src/media/)
El pipeline de medios maneja procesamiento de medios:
- Procesamiento de imagen/audio/video
- Hooks de transcripción
- Almacén de archivos con límites de tamaño
- Detección de tipo MIME
- Gestión de ciclo de vida temporal
Archivos clave:
index.ts- API principal de mediostranscription.ts- Hooks de transcripción de audiofile-store.ts- Almacenamiento persistente de archivos
7. Canvas Host (src/canvas-host/)
El Canvas Host proporciona un espacio de trabajo visual:
- Framework A2UI para renderizado
- Actualización de estado en tiempo real
- Serialización de DOM
- Integración WebSocket
Archivos clave:
index.ts- API principal de Canvasa2ui/- Paquetes de framework A2UI
8. CLI (src/cli/)
La CLI proporciona interfaz de línea de comandos:
Comandos principales:
gateway- Iniciar servidor gatewayagent- Ejecutar agente AIonboard- Asistente de configuraciónmodels- Gestionar modelos AIchannels- Gestionar canalescron- Gestionar trabajos programadosdaemon- Gestionar servicio daemonplugins- Gestionar pluginsskills- Gestionar skills
Archivos clave:
index.ts- Entry point de CLIcommands/- Implementaciones de comandos
9. Configuración (src/config/)
El sistema de configuración gestiona ajustes:
- Carga de configuración YAML
- Validación de esquema Zod
- Almacenamiento de sesión
- Gestión de rutas
- Migraciones de configuración
Archivos clave:
index.ts- Cargador principal de configuraciónschema.ts- Esquema de validación Zodpaths.ts- Resolución de rutas de sistema
Canales de Mensajería
Canales Integrados
| Canal | Biblioteca | Estado |
|---|---|---|
| @whiskeysockets/baileys | ✅ Estable | |
| Telegram | grammy | ✅ Estable |
| Signal | signal-cli | ✅ Estable |
| iMessage | imsg | ✅ Estable |
| Discord | discord.js | ✅ Estable |
| Slack | @slack/bolt | ✅ Estable |
| Google Chat | Chat API | ✅ Estable |
Canales de Extensión
| Canal | Ubicación | Estado |
|---|---|---|
| BlueBubbles | extensions/bluebubbles | ✅ Estable |
| Microsoft Teams | extensions/msteams | ✅ Estable |
| Matrix | extensions/matrix | ✅ Estable |
| Zalo | extensions/zalo | ✅ Estable |
| Zalo Personal | extensions/zalouser | ✅ Estable |
| Twitch | extensions/twitch | ✅ Estable |
| Mattermost | extensions/mattermost | ✅ Estable |
| Nextcloud Talk | extensions/nextcloud-talk | ✅ Estable |
| Tlon | extensions/tlon | ✅ Estable |
| Nostr | extensions/nostr | ✅ Estable |
| LINE | extensions/line | ✅ Estable |
| Voice Call | extensions/voice-call | ✅ Beta |
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
Tecnologías Utilizadas
Stack Backend
| Tecnología | Versión | Propósito |
|---|---|---|
| TypeScript | 5.9+ | Lenguaje principal |
| Node.js | ≥22.12.0 | Runtime |
| Hono | 4.11.4 | Framework HTTP |
| Express | 5.2 | Servidor WebSocket (legacy) |
| ws | 8.19 | Biblioteca WebSocket |
| Zod | 4.3 | Validación de esquema |
Integración AI/Modelo
| Tecnología | Propósito |
|---|---|
| @mariozechner/pi-agent-core | Agente Pi de Anthropic |
| @mariozechner/pi-tui | UI de terminal para agente |
| Anthropic SDK | API Claude |
| OpenAI SDK | API ChatGPT |
| AWS Bedrock SDK | Modelos AWS |
| Ollama SDK | Soporte LLM local |
Mensajería & Comunicación
| Biblioteca | Canal |
|---|---|
| @whiskeysockets/baileys | |
| grammy | Telegram |
| @slack/bolt | Slack |
| discord.js | Discord |
| @line/bot-sdk | LINE |
| signal-cli | Signal |
| imsg | iMessage |
Automatización de Navegador
| Tecnología | Propósito |
|---|---|
| Playwright Core | 1.58 - Automatización web |
| chromium-bidi | 13.0 - Protocolo DevTools Chrome |
| Sharp | 0.34 - Procesamiento de imágenes |
| pdfjs-dist | Manipulación de PDF |
Base de Datos & Almacenamiento
| Tecnología | Propósito |
|---|---|
| SQLite-vec | Almacenamiento vectorial para memoria |
| LanceDB | Búsqueda vectorial (extensión) |
| Sistema de archivos | Persistencia de sesión/configuración |
| proper-lockfile | Control de acceso concurrente |
CLI & DevOps
| Tecnología | Propósito |
|---|---|
| Commander.js | Análisis de argumentos CLI |
| @clack/prompts | Prompts CLI interactivos |
| Chalk | Colores de terminal |
| dotenv | Configuración de entorno |
| YAML | Soporte de formato de configuración |
Herramientas de Desarrollo
| Tecnología | Propósito |
|---|---|
| TypeScript | Verificación de tipos estricta |
| Vitest | Ejecutor de tests |
| oxlint | Linting (OxC) |
| oxfmt | Formateo |
| tsx | Ejecución TS |
| Playwright Core | Testing E2E |
| Wireit | Orquestación de tareas de build |
Sistema de Plugins
Arquitectura de Plugins
┌─────────────────────────────────────────────┐
│ Descubrimiento de Plugins │
│ - Auto-detecta desde extensions/ │
│ - Auto-detecta desde node_modules/@moltbot/│
│ - Validación de manifiesto │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ Cargador de Plugins │
│ - Validación de esquema de configuración │
│ - Inicialización de runtime │
│ - Registro de hooks │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ Proveedores de Servicios │
│ - Acceso a cliente Gateway │
│ - Proveedor de configuración │
│ - Inyección de logger │
│ - Utilidades de cliente HTTP │
└─────────────────────────────────────────────┘
Tipos de Plugins
1. Plugins de Canal
Añaden nuevos canales de mensajería:
export function createChannelPlugin(): ChannelPlugin {
return {
name: 'my-channel',
type: 'channel',
init: async (config) => {
// Inicializar canal
},
send: async (message) => {
// Enviar mensaje
},
receive: async (handler) => {
// Recibir mensajes
}
}
}
2. Plugins de Herramientas
Añaden herramientas personalizadas para agentes:
export function createToolPlugin(): ToolPlugin {
return {
name: 'my-tool',
type: 'tool',
schema: z.object({
input: z.string()
}),
execute: async (params) => {
// Ejecutar herramienta
return { result: 'done' }
}
}
}
3. Plugins de Auth
Añaden manejadores OAuth personalizados:
export function createAuthPlugin(): AuthPlugin {
return {
name: 'my-auth',
type: 'auth',
authorize: async (credentials) => {
// Manejar OAuth
return { token: 'access_token' }
}
}
}
4. Plugins de Memoria
Añaden backends de almacenamiento personalizados:
export function createMemoryPlugin(): MemoryPlugin {
return {
name: 'my-memory',
type: 'memory',
store: async (key, value) => {
// Almacenar valor
},
retrieve: async (key) => {
// Recuperar valor
}
}
}
5. Plugins de Hooks
Añaden manejadores de eventos globales:
export function createHookPlugin(): HookPlugin {
return {
name: 'my-hook',
type: 'hook',
hooks: {
'message:received': async (message) => {
// Manejar mensaje recibido
},
'message:sent': async (message) => {
// Manejar mensaje enviado
}
}
}
}
Esquema de Manifiesto de Plugin
{
"name": "plugin-name",
"version": "1.0.0",
"description": "Plugin description",
"exports": {
".": "./dist/index.js",
"./config-schema": "./dist/config-schema.js"
},
"hooks": ["channel", "tool"],
"permissions": ["network", "fs"],
"dependencies": {
"some-lib": "^1.0.0"
}
}
Ciclo de Vida de Plugin
- Descubrimiento - Auto-detecta plugins desde directorios conocidos
- Validación - Valida manifiesto y esquema de configuración
- Carga - Carga módulo de plugin
- Inicialización - Ejecuta función init de plugin
- Registro - Registra hooks y herramientas
- Ejecución - Plugin maneja eventos y llamadas
- Apagado - Limpieza durante apagado de gateway
Configuración y Despliegue
Archivo de Configuración Principal
El archivo .moltbot.yaml (o .clawdbot.yaml) controla toda la configuración:
# Configuración de Gateway
gateway:
mode: local # o 'remote'
port: 18789
bind: loopback # o 'all'
verbose: true
# Configuración de Agentes
agents:
default:
model: claude-4.5-sonnet
thinking: high
temperature: 0.7
max_tokens: 8192
# Configuración de Canales
channels:
whatsapp:
enabled: true
pairing: code
allowlist:
- "+1234567890"
telegram:
enabled: true
bot_token: "${TELEGRAM_BOT_TOKEN}"
discord:
enabled: true
bot_token: "${DISCORD_BOT_TOKEN}"
# Configuración de Herramientas
tools:
browser:
enabled: true
headless: true
timeout: 30000
canvas:
enabled: true
port: 8080
# Configuración de Sandbox
sandbox:
enabled: false
docker_image: "moltbot/sandbox"
# Configuración de Plugins
plugins:
- name: matrix
enabled: true
config:
homeserver: "https://matrix.org"
# Configuración de Skills
skills:
- workspace1
- workspace2
Variables de Entorno
Archivo .env:
# Tokens de API
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...
DISCORD_BOT_TOKEN=MTk4...
# Configuración de Gateway
CLAWDBOT_GATEWAY_PORT=18789
CLAWDBOT_GATEWAY_BIND=loopback
# Configuración de Modo
CLAWDBOT_PROFILE=production # o 'dev'
CLAWDBOT_SKIP_CHANNELS=0
# Configuración de Depuración
CLAWDBOT_DEBUG=0
CLAWDBOT_VERBOSE=0
Instalación
Instalación rápida (npm)
npm install -g moltbot@latest
moltbot onboard --install-daemon
Desde fuente (desarrollo)
git clone https://github.com/moltbot/moltbot.git
cd moltbot
pnpm install
pnpm ui:build
pnpm build
pnpm moltbot onboard --install-daemon
Docker
docker-compose up -d
Despliegue como Daemon
macOS (launchd)
moltbot daemon install
moltbot daemon start
moltbot daemon status
Linux (systemd)
moltbot daemon install
systemctl --user start moltbot-gateway
systemctl --user status moltbot-gateway
Windows (WSL2)
# En WSL2
moltbot daemon install
moltbot daemon start
Gateway Remoto
Para servidores sin interfaz gráfica:
# En servidor remoto
gateway:
mode: remote
bind: all
port: 18789
# En cliente local
agents:
gateway_url: "ws://your-server:18789"
Desarrollo
Configuración de Entorno de Desarrollo
# 1. Clonar repositorio
git clone https://github.com/moltbot/moltbot.git
cd moltbot
# 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
pnpm test:live # Tests con APIs reales
# 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 ios:run # Ejecutar app iOS
pnpm android:assemble # Ensamblar app Android
pnpm android:run # Ejecutar app Android
pnpm mac:package # Empaquetar app macOS
Estructura de Testing
test/
├── unit/ # Tests unitarios
├── e2e/ # Tests end-to-end
├── integration/ # Tests de integración
└── fixtures/ # Datos de prueba
Configuraciones de Vitest:
vitest.config.ts- Configuración principalvitest.unit.config.ts- Tests unitariosvitest.e2e.config.ts- Tests E2Evitest.live.config.ts- Tests con APIs realesvitest.extensions.config.ts- Tests de extensionesvitest.gateway.config.ts- Tests de gateway
Requisitos de Cobertura de Tests
- Líneas: 70%
- Funciones: 70%
- Ramas: 70%
- Declaraciones: 70%
Estándares de Código
- TypeScript estricto: Verificación de tipos completa
- ESLint: Linting con oxlint
- Prettier: Formateo con oxfmt
- Pre-commit hooks: Ejecuta lint + format antes de commit
- Límite de LOC: ~700 líneas por archivo (guía)
Estructura de Directorios
/
├── src/ # Código fuente TypeScript
│ ├── agents/ # Runtime de agente y gestión de sesiones
│ ├── gateway/ # Servidor gateway y registro de chat
│ ├── channels/ # Infraestructura base de canales
│ ├── cli/ # Comandos de interfaz de línea de comandos
│ ├── browser/ # Herramienta de automatización de navegador
│ ├── canvas-host/ # Host de Canvas y framework A2UI
│ ├── media/ # Pipeline de procesamiento de medios
│ ├── plugins/ # Sistema de plugins y cargador
│ ├── config/ # Sistema de configuración
│ ├── whatsapp/ # Integración WhatsApp
│ ├── telegram/ # Integración Telegram
│ ├── signal/ # Integración Signal
│ ├── discord/ # Integración Discord
│ ├── slack/ # Integración Slack
│ ├── imessage/ # Integración iMessage
│ ├── routing/ # Enrutamiento de mensajes
│ ├── security/ # Auth y políticas de seguridad
│ ├── memory/ # Gestión de memoria/contexto
│ ├── tts/ # Integración text-to-speech
│ ├── wizard/ # Flujo de asistente de onboarding CLI
│ ├── web/ # Frontend WebChat y Control UI
│ ├── utils/ # Utilidades compartidas
│ └── ...
│
├── extensions/ # Plugins de canal y extensiones
│ ├── bluebubbles/ # Plugin BlueBubbles
│ ├── matrix/ # Plugin Matrix
│ ├── msteams/ # Plugin Microsoft Teams
│ ├── zalo/ # Plugin Zalo
│ ├── zalouser/ # Plugin Zalo Personal
│ ├── voice-call/ # Plugin Voice Call
│ └── ...
│
├── apps/ # Aplicaciones nativas
│ ├── macos/ # App macOS (SwiftUI)
│ ├── ios/ # App iOS (SwiftUI)
│ └── android/ # App Android (Kotlin)
│
├── docs/ # Documentación
│ ├── start/ # Guías de inicio
│ ├── install/ # Guías de instalación
│ ├── channels/ # Documentación de canales
│ ├── concepts/ # Documentación de conceptos
│ ├── cli/ # Documentación de CLI
│ ├── gateway/ # Documentación de gateway
│ ├── platforms/ # Guías específicas de plataforma
│ ├── providers/ # Documentación de proveedores
│ ├── reference/ # Documentación de referencia
│ └── ...
│
├── skills/ # Paquetes de skills de workspace
│ └── workspace1/ # Ejemplo de workspace
│
├── packages/ # Paquetes monorepo
│ └── ...
│
├── scripts/ # Scripts de utilidad
│ ├── build-*.ts # Scripts de build
│ ├── test-*.sh # Scripts de test
│ ├── package-*.sh # Scripts de empaquetado
│ └── ...
│
├── test/ # Fixtures de test y helpers
│ ├── fixtures/ # Datos de prueba
│ └── helpers/ # Utilidades de test
│
├── ui/ # UI web (Control UI)
│ └── ...
│
├── vendor/ # Dependencias vendorizadas
│ └── ...
│
├── .github/ # Workflows de GitHub Actions
│ ├── workflows/ # Definiciones de workflow CI/CD
│ └── labeler.yml # Configuración de auto-etiquetado
│
├── dist/ # Salida compilada (generada)
│ └── ...
│
├── package.json # Configuración de paquete npm
├── pnpm-workspace.yaml # Configuración de workspace pnpm
├── tsconfig.json # Configuración de TypeScript
├── vitest.config.ts # Configuración de Vitest
├── docker-compose.yml # Configuración de Docker Compose
├── Dockerfile # Dockerfile principal
├── README.md # README principal (inglés)
├── CHANGELOG.md # Registro de cambios
├── LICENSE # Licencia MIT
└── ...
Directorios Clave
/src/
Código fuente principal de TypeScript. Organizado por dominio:
- Agentes & Runtime:
agents/,memory/,sessions/ - Comunicación:
gateway/,channels/,routing/ - Canales Integrados:
whatsapp/,telegram/,discord/, etc. - Herramientas:
browser/,canvas-host/,media/,tts/ - Sistema:
cli/,config/,plugins/,daemon/ - Seguridad:
security/,pairing/ - UI:
web/,wizard/,tui/
/extensions/
Plugins de extensión (20+ canales). Cada extensión es un paquete npm auto-contenido:
- Tiene su propio
package.json - Define
plugin.manifest.json - Implementa hooks de plugin
- Puede tener dependencias propias
/apps/
Aplicaciones nativas para múltiples plataformas:
- macOS: App SwiftUI con integración de menubar
- iOS: App SwiftUI con soporte de voz
- Android: App Kotlin con soporte de voz
/docs/
Documentación completa (Mintlify):
- Guías de inicio rápido
- Tutoriales de instalación
- Documentación de conceptos
- Referencia de API
- Guías específicas de plataforma
- Documentación de desarrollo de plugins
/skills/
Skills de workspace. Cada workspace puede tener:
- Prompts personalizados
- Herramientas bash personalizadas
- Integraciones personalizadas
- Configuración específica de workspace
/scripts/
Scripts de utilidad para:
- Construcción y empaquetado
- Testing (unit, E2E, Docker)
- Generación de código (protocol, Swift)
- Gestión de releases
- Automatización de desarrollo
/test/
Fixtures de test y helpers:
- Datos de prueba
- Mocks y stubs
- Utilidades de test
- Configuraciones de test
Recursos Adicionales
Documentación Oficial
- Sitio Web: https://molt.bot
- Documentación: https://docs.molt.bot
- Comenzar: https://docs.molt.bot/start/getting-started
- FAQ: https://docs.molt.bot/start/faq
- Showcase: https://docs.molt.bot/start/showcase
Comunidad
- Discord: https://discord.gg/clawd
- GitHub: https://github.com/moltbot/moltbot
- Releases: https://github.com/moltbot/moltbot/releases
Guías de Desarrollo
- Desarrollo de Plugins: Ver
PLUGIN-DEVELOPMENT.md - Referencia de API: Ver
API-REFERENCE.md - Guía de Arquitectura: Ver
ARCHITECTURE.md - Guía de Despliegue: Ver
DEPLOYMENT.md
Licencia
MIT License - Ver LICENSE para detalles.
Contribuir
¡Las contribuciones son bienvenidas! Ver CONTRIBUTING.md para guías.
¡Feliz hacking con Moltbot! 🦞