
moltis v20260818.08
Un servidor de agente personal persistente y seguro en Rust. Un solo binario, ejecución en entorno aislado, LLMs de múltiples proveedores, voz, memoria, Telegram, WhatsApp, Discord, Teams y herramientas MCP. Seguro por diseño, se ejecuta en tu hardware.
Moltis — Un servidor de agente personal persistente y seguro en Rust
Un solo binario: aislado, seguro, tuyo.
Instalación • Comparación • Arquitectura • Seguridad • Características • Cómo funciona • Contribuir
Moltis llegó recientemente a la portada de Hacker News. Por favor, abre un issue ante cualquier fricción. Estoy enfocado en hacer que Moltis sea excelente.
Seguro por diseño — Tus claves nunca salen de tu máquina. Cada comando se ejecuta en un contenedor aislado, nunca en tu host.
Tu hardware — Se ejecuta en un Mac Mini, una Raspberry Pi o cualquier servidor que poseas. Un solo binario de Rust, sin Node.js, sin npm, sin runtime.
Completo — Voz, memoria, recuperación entre sesiones, puntos de control automáticos de edición, programación, Telegram, Signal, Discord, automatización de navegador, servidores MCP, ejecución remota respaldada por SSH o nodos, claves de despliegue gestionadas con fijación de host en la interfaz web, un inventario en vivo de Configuración → Herramientas, contexto de proyecto compatible con Cursor y escaneo de amenazas en archivos de contexto, todo integrado. Sin mercado de plugins por el que sufrir ataques a la cadena de suministro.
Auditable — El ejecutor de agentes y la interfaz de modelos caben en ~7.5K líneas, con proveedores en ~19K más. El workspace de Rust es de ~270K líneas en 59 crates modulares que puedes auditar de forma independiente, con más de 470 archivos Rust que contienen pruebas. El código inseguro está aislado en los límites de FFI y runtime precompilado, no en el bucle central del agente.
Instalación
# Script de instalación de una línea (macOS / Linux)
curl -fsSL https://www.moltis.org/install.sh | sh
# macOS / Linux vía Homebrew
brew install moltis-org/tap/moltis
# Docker (multi-arquitectura: amd64/arm64)
docker pull ghcr.io/moltis-org/moltis:latest
# O compilar desde el código fuente
cargo install moltis --git https://github.com/moltis-org/moltis
Comparación
| OpenClaw | Hermes Agent | Moltis | |
|---|---|---|---|
| Stack principal | TypeScript + apps complementarias Swift/Kotlin | Python + superficies TUI/web TypeScript | Rust |
| Runtime | Node.js + npm/pnpm/bun | Python + uv/pip, piezas opcionales de UI Node | Un solo binario Rust |
| Tamaño del checkout local* | ~1.1M LoC de app | ~152K LoC de app | ~270K LoC Rust |
| Arquitectura | Amplio ecosistema de gateway, canal, nodo y apps | Agente CLI/gateway con bucle de aprendizaje y herramientas de investigación | Servidor de agente personal persistente con crates modulares |
| Crates/módulos | Paquetes npm, extensiones, apps | Paquetes Python, plugins, herramientas, TUI | 59 crates de workspace Rust |
| Sandbox/backends | Permisos a nivel de app, herramientas de navegador/nodo | Local, Docker, SSH, Daytona, Singularity, Modal | Docker/Podman + Apple Container + WASM |
| Auth/acceso | Controles de emparejamiento y gateway local | Configuración de CLI y gateway de mensajería | Contraseña + Passkey + Claves API + Vault |
| Voz I/O | Modos de activación y conversación por voz | Transcripción de notas de voz | Proveedores STT + TTS integrados |
| MCP | Soporte de plugin/integración | Integración MCP | stdio + HTTP/SSE |
| Habilidades | Habilidades empaquetadas, gestionadas y de workspace | Habilidades auto-mejorables y soporte de Skills Hub | Habilidades empaquetadas/de workspace + mejora autónoma + importación de OpenClaw |
| Memoria/RAG | Memoria y motor de contexto respaldados por plugins | Memoria curada por el agente, búsqueda de sesiones, modelado de usuario | SQLite + FTS + memoria vectorial |
* LoC medido con tokei, excluyendo node_modules, salida de build generada, dist y target.
Arquitectura — Mapa de Crates
Workspace Rust actual: ~270K LoC en 59 crates. La tabla siguiente agrupa los crates principales por rol para que la arquitectura siga siendo escaneable.
Runtime principal:
| Crate | LoC | Rol |
|---|---|---|
moltis-gateway | 37.4K | Servidor HTTP/WS, RPC, auth, cableado de arranque |
moltis-tools | 37.0K | Ejecución de herramientas, sandboxing, herramientas WASM |
moltis-providers | 18.9K | Implementaciones de proveedores LLM |
moltis-agents | 14.5K | Bucle de agente, streaming, ensamblaje de prompts |
moltis-chat | 14.2K | Motor de chat, orquestación de agentes |
moltis-config | 10.3K | Configuración, validación |
moltis-httpd | 9.9K | Primitivas de servidor HTTP y middleware |
moltis (CLI) | 4.7K | Punto de entrada, comandos CLI |
moltis-sessions | 3.5K | Persistencia de sesiones |
moltis-common | 1.5K | Utilidades compartidas |
moltis-service-traits | 1.2K | Interfaces de servicio compartidas |
moltis-protocol | 0.7K | Tipos de protocolo de red |
Crates de características e integración:
| Categoría | Crates | LoC combinado |
|---|---|---|
| Canales | moltis-telegram, moltis-whatsapp, moltis-signal, moltis-discord, moltis-msteams, moltis-matrix, moltis-slack, moltis-nostr, moltis-channels | 34.0K |
| Web y APIs | moltis-web, moltis-graphql, moltis-webhooks | 10.8K |
| Extensibilidad | moltis-mcp, moltis-mcp-agent-bridge, moltis-skills, moltis-plugins | 11.5K |
| Memoria y contexto | moltis-memory, moltis-qmd, moltis-code-index, moltis-projects | 11.7K |
| Voz y navegador | moltis-voice, moltis-browser | 9.2K |
| Auth y seguridad | moltis-auth, moltis-oauth, moltis-vault, moltis-secret-store, moltis-network-filter, moltis-tls | 8.5K |
| Programación y automatización | moltis-cron, moltis-caldav, moltis-auto-reply | 4.7K |
| Configuración e importación | moltis-provider-setup, moltis-openclaw-import, moltis-onboarding | 11.7K |
| Hosts nativos y de nodo | moltis-swift-bridge, moltis-node-host, moltis-courier | 5.7K |
| Herramientas WASM | moltis-wasm-precompile, moltis-wasm-calc, moltis-wasm-web-fetch, moltis-wasm-web-search | 1.4K |
| Crates de soporte | moltis-media, moltis-metrics, moltis-tailscale, moltis-routing, moltis-canvas, moltis-schema-export, benchmarks | 2.1K |
Usa --no-default-features --features lightweight para dispositivos con recursos limitados (Raspberry Pi, etc.).
Seguridad
- Superficie insegura pequeña — el código central del agente/gateway permanece en Rust seguro; lo inseguro está aislado en Swift FFI, wrappers de modelos locales y límites WASM precompilados
- Ejecución aislada — Docker + Apple Container, aislamiento por sesión
- Manejo de secretos —
secrecy::Secret, puesto a cero al soltar, redactado de la salida de herramientas - Autenticación — contraseña + passkey (WebAuthn), con límite de velocidad, limitación por IP
- Protección SSRF — resuelto por DNS, bloquea loopback/privado/link-local
- Validación de origen — rechaza actualizaciones WebSocket de origen cruzado
- Control de hooks — los hooks
BeforeToolCallpueden inspeccionar/bloquear cualquier invocación de herramienta - Integridad de la cadena de suministro — atestaciones de artefactos, firma sin clave Sigstore, firma GPG (YubiKey), sumas de verificación SHA-256/SHA-512
Consulta Arquitectura de seguridad para más detalles.
Verifica las versiones con gh attestation verify <artifact> -R moltis-org/moltis o consulta Verificación de versiones.
Características
- AI Gateway — Soporte LLM multi-proveedor (OpenAI Codex, GitHub Copilot, Local), respuestas en streaming, bucle de agente con delegación a sub-agentes, modos de sesión, ejecución paralela de herramientas
- Comunicación — Interfaz web con prompts de agente tipo paleta de comandos y copiado/exportación Markdown, Telegram, Signal, Microsoft Teams, Discord, Slack con tarjetas de herramientas en vivo nativas, DMs Nostr + chat grupal NIP-29 (incl. canales Buzz de Block), acceso API, voz I/O (8 proveedores TTS + 7 STT), PWA móvil con notificaciones push
- Memoria y recuperación — Workspaces de memoria por agente, memoria a largo plazo impulsada por embeddings, búsqueda híbrida vectorial + texto completo, persistencia de sesiones con auto-compactación, recuperación entre sesiones, contexto de proyecto compatible con Cursor, escaneo de seguridad de archivos de contexto
- Archivos gestionados — Gestión de archivos anidados autenticada en Configuración, con una ruta de host anunciada por el agente y montajes independientes de solo lectura por defecto para sandboxes Docker, Podman y Apple Container
- Edición de agente más segura — Puntos de control automáticos antes de mutaciones de habilidades integradas y memoria, herramientas de restauración, ramificación de sesiones
- Extensibilidad — Servidores MCP (stdio + HTTP/SSE), sistema de habilidades, 15 eventos de hook de ciclo de vida con interruptor de circuito, guardia de comandos destructivos
- Protocolo de cliente de agente — impulsa agentes ACP externos (
codex-acp,claude-agent-acp, Cursor) y sirve Moltis a clientes ACP sobre stdio víamoltis acp - Seguridad — Vault cifrado en reposo (XChaCha20-Poly1305 + Argon2id), auth por contraseña + passkey + clave API, aislamiento de sandbox, protección SSRF/CSWSH
- Operaciones — Programación Cron, CalDAV local duradero, Gmail, correo Himalaya y conjuntos de datos de mensajes reutilizables de Slack/Discord/Matrix/Teams, herramientas de agente de solo lectura específicas por proveedor, búsqueda rápida de texto completo, proyecciones JSONL/Markdown, instrumentación de agentes (Langfuse para trazas LLM, OTLP para Grafana/Datadog), métricas Prometheus, despliegue en la nube (Fly.io, DigitalOcean), integración Tailscale, claves de despliegue SSH gestionadas, objetivos remotos con fijación de host, inventario de herramientas en vivo en Configuración y flujos de diagnóstico de ejecución remota CLI/web
Cómo funciona
Moltis es un servidor de agente persistente local-first — un solo binario Rust que se sitúa entre tú y múltiples proveedores LLM, mantiene estado de sesión duradero y puede reunirse contigo a través de canales sin entregar tus datos a un relé en la nube.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Web UI │ │ Telegram │ │ Discord │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────┬───────┴────────┬───────┘
│ WebSocket │
▼ ▼
┌─────────────────────────────────┐
│ Gateway Server │
│ (Axum · HTTP · WS · Auth) │
├─────────────────────────────────┤
│ Chat Service │
│ ┌───────────┐ ┌─────────────┐ │
│ │ Agent │ │ Tool │ │
│ │ Runner │◄┤ Registry │ │
│ └─────┬─────┘ └─────────────┘ │
│ │ │
│ ┌─────▼─────────────────────┐ │
│ │ Provider Registry │ │
│ │ Multiple providers │ │
│ │ (Codex · Copilot · Local)│ │
│ └───────────────────────────┘ │
├─────────────────────────────────┤
│ Sessions │ Memory │ Hooks │
│ (JSONL) │ (SQLite)│ (events) │
└─────────────────────────────────┘
│
┌───────▼───────┐
│ Sandbox │
│ Docker/Apple │
│ Container │
└───────────────┘
Consulta Inicio rápido para detalles sobre arranque del gateway, flujo de mensajes, sesiones y memoria.
Primeros pasos
Compilar y ejecutar
Requiere just (ejecutor de comandos) y Node.js (para Tailwind CSS).
git clone https://github.com/moltis-org/moltis.git
cd moltis
just build-css # Compilar Tailwind CSS para la interfaz web
just build-release # Compilar en modo release
cargo run --release --bin moltis
Para una compilación release completa que incluya herramientas de sandbox WASM:
just build-release-with-wasm # Compila artefactos WASM + binario release
cargo run --release --bin moltis
Abre https://moltis.localhost:3000. En el primer arranque, se imprime un código de configuración en
la terminal — introdúcelo en la interfaz web para establecer tu contraseña o registrar un passkey.
Flags opcionales: --config-dir /path/to/config --data-dir /path/to/data
Docker
# Docker / OrbStack
docker run -d \
--name moltis \
-p 13131:13131 \
-p 13132:13132 \
-p 1455:1455 \
-v moltis-config:/home/moltis/.config/moltis \
-v moltis-data:/home/moltis/.moltis \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/moltis-org/moltis:latest
Abre https://localhost:13131 y completa la configuración. Para despliegues Docker
sin supervisión, establece MOLTIS_PASSWORD, MOLTIS_PROVIDER y MOLTIS_API_KEY
antes del primer arranque para omitir el asistente de configuración. Consulta Documentación de Docker
para detalles sobre Podman, OrbStack, confianza TLS y persistencia.
Despliegue en la nube
Fly.io (CLI):
fly launch --image ghcr.io/moltis-org/moltis:latest
fly secrets set MOLTIS_PASSWORD="your-password"
Todas las configuraciones en la nube usan --no-tls porque el proveedor gestiona la terminación TLS.
Consulta Documentación de despliegue en la nube para más detalles.
Licencia
MIT