
moltis v20260818.08
Un serveur d'agent personnel persistant et sécurisé en Rust. Un seul binaire, exécution en bac à sable, LLMs multi-fournisseurs, voix, mémoire, Telegram, WhatsApp, Discord, Teams et outils MCP. Sécurisé par conception, fonctionne sur votre matériel.
Moltis — Un serveur d'agent personnel persistant et sécurisé en Rust
Un seul binaire — sandboxé, sécurisé, à vous.
Installation • Comparaison • Architecture • Sécurité • Fonctionnalités • Comment ça marche • Contribuer
Moltis a récemment atteint la première page de Hacker News. Merci d'ouvrir une issue pour toute friction, quelle qu'elle soit. Je me concentre sur l'excellence de Moltis.
Sécurisé par conception — Vos clés ne quittent jamais votre machine. Chaque commande s'exécute dans un conteneur sandboxé, jamais sur votre hôte.
Votre matériel — Fonctionne sur un Mac Mini, un Raspberry Pi, ou tout serveur que vous possédez. Un seul binaire Rust, pas de Node.js, pas de npm, pas de runtime.
Complet — Voix, mémoire, rappel inter-sessions, points de contrôle automatiques des modifications, planification, Telegram, Signal, Discord, automatisation du navigateur, serveurs MCP, exécution distante via SSH ou nœud, clés de déploiement gérées avec épinglage d'hôte dans l'interface web, inventaire en direct des outils dans Paramètres → Outils, contexte de projet compatible Cursor, et analyse des menaces des fichiers de contexte — tout est intégré. Pas de marketplace de plugins pour se faire attaquer via la chaîne d'approvisionnement.
Auditable — L'exécuteur d'agent et l'interface de modèles tiennent en ~7,5K lignes, avec les fournisseurs dans ~19K lignes supplémentaires. L'espace de travail Rust fait ~270K lignes réparties sur 59 crates modulaires que vous pouvez auditer indépendamment, avec plus de 470 fichiers Rust contenant des tests. Le code unsafe est isolé aux frontières FFI et aux runtimes précompilés, pas dans la boucle centrale de l'agent.
Installation
# Script d'installation en une ligne (macOS / Linux)
curl -fsSL https://www.moltis.org/install.sh | sh
# macOS / Linux via Homebrew
brew install moltis-org/tap/moltis
# Docker (multi-arch : amd64/arm64)
docker pull ghcr.io/moltis-org/moltis:latest
# Ou compilation depuis les sources
cargo install moltis --git https://github.com/moltis-org/moltis
Comparaison
| OpenClaw | Hermes Agent | Moltis | |
|---|---|---|---|
| Stack principale | TypeScript + applications compagnes Swift/Kotlin | Python + surfaces TUI/web TypeScript | Rust |
| Runtime | Node.js + npm/pnpm/bun | Python + uv/pip, éléments UI Node optionnels | Un seul binaire Rust |
| Taille du dépôt local* | ~1,1M LoC applicatifs | ~152K LoC applicatifs | ~270K LoC Rust |
| Architecture | Écosystème large de passerelles, canaux, nœuds et applications | Agent CLI/passerelle avec boucle d'apprentissage et outils de recherche | Serveur d'agent personnel persistant avec crates modulaires |
| Crates/modules | Paquets npm, extensions, applications | Paquets Python, plugins, outils, TUI | 59 crates d'espace de travail Rust |
| Sandbox/backends | Permissions au niveau application, outils navigateur/nœud | Local, Docker, SSH, Daytona, Singularity, Modal | Docker/Podman + Apple Container + WASM |
| Auth/accès | Appairage et contrôles de passerelle locale | Configuration CLI et passerelle de messagerie | Mot de passe + Passkey + clés API + Vault |
| Voix I/O | Modes d'activation vocale et de conversation | Transcription de mémos vocaux | Fournisseurs STT + TTS intégrés |
| MCP | Support d'intégration/plugins | Intégration MCP | stdio + HTTP/SSE |
| Compétences | Compétences groupées, gérées et d'espace de travail | Compétences auto-améliorées et support Skills Hub | Compétences groupées/espace de travail + amélioration autonome + import OpenClaw |
| Mémoire/RAG | Mémoire et moteur de contexte basés sur plugins | Mémoire organisée par l'agent, recherche de sessions, modélisation utilisateur | SQLite + FTS + mémoire vectorielle |
* LoC mesurés avec tokei, hors node_modules, sorties de build générées, dist et target.
Architecture — Carte des crates
Espace de travail Rust actuel : ~270K LoC répartis sur 59 crates. Le tableau ci-dessous regroupe les principaux crates par rôle pour que l'architecture reste lisible.
Runtime central :
| Crate | LoC | Rôle |
|---|---|---|
moltis-gateway | 37,4K | Serveur HTTP/WS, RPC, auth, câblage de démarrage |
moltis-tools | 37,0K | Exécution d'outils, sandboxing, outils WASM |
moltis-providers | 18,9K | Implémentations de fournisseurs LLM |
moltis-agents | 14,5K | Boucle d'agent, streaming, assemblage de prompts |
moltis-chat | 14,2K | Moteur de chat, orchestration d'agents |
moltis-config | 10,3K | Configuration, validation |
moltis-httpd | 9,9K | Primitives de serveur HTTP et middleware |
moltis (CLI) | 4,7K | Point d'entrée, commandes CLI |
moltis-sessions | 3,5K | Persistance des sessions |
moltis-common | 1,5K | Utilitaires partagés |
moltis-service-traits | 1,2K | Interfaces de service partagées |
moltis-protocol | 0,7K | Types de protocole filaire |
Crates de fonctionnalités et d'intégration :
| Catégorie | Crates | LoC combinés |
|---|---|---|
| Canaux | moltis-telegram, moltis-whatsapp, moltis-signal, moltis-discord, moltis-msteams, moltis-matrix, moltis-slack, moltis-nostr, moltis-channels | 34,0K |
| Web et API | moltis-web, moltis-graphql, moltis-webhooks | 10,8K |
| Extensibilité | moltis-mcp, moltis-mcp-agent-bridge, moltis-skills, moltis-plugins | 11,5K |
| Mémoire et contexte | moltis-memory, moltis-qmd, moltis-code-index, moltis-projects | 11,7K |
| Voix et navigateur | moltis-voice, moltis-browser | 9,2K |
| Auth et sécurité | moltis-auth, moltis-oauth, moltis-vault, moltis-secret-store, moltis-network-filter, moltis-tls | 8,5K |
| Planification et automatisation | moltis-cron, moltis-caldav, moltis-auto-reply | 4,7K |
| Configuration et import | moltis-provider-setup, moltis-openclaw-import, moltis-onboarding | 11,7K |
| Hôtes natifs et nœuds | moltis-swift-bridge, moltis-node-host, moltis-courier | 5,7K |
| Outils WASM | moltis-wasm-precompile, moltis-wasm-calc, moltis-wasm-web-fetch, moltis-wasm-web-search | 1,4K |
| Crates de support | moltis-media, moltis-metrics, moltis-tailscale, moltis-routing, moltis-canvas, moltis-schema-export, benchmarks | 2,1K |
Utilisez --no-default-features --features lightweight pour les appareils contraints (Raspberry Pi, etc.).
Sécurité
- Surface unsafe réduite — le code central agent/passerelle reste en Rust sûr ; unsafe est isolé aux frontières Swift FFI, aux wrappers de modèles locaux et aux limites WASM précompilées
- Exécution sandboxée — Docker + Apple Container, isolation par session
- Gestion des secrets —
secrecy::Secret, remis à zéro à la libération, masqués dans les sorties d'outils - Authentification — mot de passe + passkey (WebAuthn), limitée en débit, limitation par IP
- Protection SSRF — résolution DNS, blocage loopback/privé/lien-local
- Validation d'origine — rejette les mises à niveau WebSocket cross-origin
- Contrôle des hooks — les hooks
BeforeToolCallpeuvent inspecter/bloquer toute invocation d'outil - Intégrité de la chaîne d'approvisionnement — attestations d'artefacts, signature sans clé Sigstore, signature GPG (YubiKey), sommes de contrôle SHA-256/SHA-512
Voir Architecture de sécurité pour les détails.
Vérifiez les versions avec gh attestation verify <artifact> -R moltis-org/moltis ou consultez Vérification des versions.
Fonctionnalités
- Passerelle IA — Support LLM multi-fournisseurs (OpenAI Codex, GitHub Copilot, Local), réponses en streaming, boucle d'agent avec délégation de sous-agents, modes de session, exécution parallèle d'outils
- Communication — Interface web avec prompts d'agent en palette de commandes et copie/export Markdown, Telegram, Signal, Microsoft Teams, Discord, Slack avec cartes d'outils en direct natives, DMs Nostr + chat de groupe NIP-29 (incl. canaux Buzz de Block), accès API, voix I/O (8 fournisseurs TTS + 7 STT), PWA mobile avec notifications push
- Mémoire & Rappel — Espaces de mémoire par agent, mémoire à long terme basée sur embeddings, recherche hybride vectorielle + texte intégral, persistance de sessions avec auto-compaction, rappel inter-sessions, contexte de projet compatible Cursor, analyse de sécurité des fichiers de contexte
- Fichiers gérés — Gestion de fichiers imbriqués authentifiée dans Paramètres, avec chemin d'hôte annoncé par l'agent et montages indépendants en lecture seule par défaut pour les sandboxes Docker, Podman et Apple Container
- Édition d'agent plus sûre — Points de contrôle automatiques avant les mutations de compétences intégrées et de mémoire, outils de restauration, branchement de sessions
- Extensibilité — Serveurs MCP (stdio + HTTP/SSE), système de compétences, 15 événements de hook de cycle de vie avec disjoncteur, garde de commandes destructives
- Protocole client d'agent — pilote les agents ACP externes (
codex-acp,claude-agent-acp, Cursor), et sert Moltis aux clients ACP via stdio avecmoltis acp - Sécurité — Vault chiffré au repos (XChaCha20-Poly1305 + Argon2id), auth par mot de passe + passkey + clé API, isolation sandbox, protection SSRF/CSWSH
- Opérations — Planification Cron, CalDAV local durable, Gmail, e-mail Himalaya, et jeux de données de messages réutilisables Slack/Discord/Matrix/Teams, outils d'agent en lecture seule spécifiques aux fournisseurs, recherche plein texte rapide, projections JSONL/Markdown, instrumentation d'agent (Langfuse pour les traces LLM, OTLP pour Grafana/Datadog), métriques Prometheus, déploiement cloud (Fly.io, DigitalOcean), intégration Tailscale, clés de déploiement SSH gérées, cibles distantes épinglées à l'hôte, inventaire d'outils en direct dans Paramètres, et flux de diagnostic d'exécution distante CLI/web
Comment ça marche
Moltis est un serveur d'agent persistant local-first — un seul binaire Rust qui se place entre vous et plusieurs fournisseurs LLM, conserve un état de session durable, et peut vous rejoindre sur plusieurs canaux sans confier vos données à un relais cloud.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 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 │
└───────────────┘
Voir Démarrage rapide pour le démarrage de la passerelle, le flux de messages, les sessions et les détails de mémoire.
Pour commencer
Compilation & Exécution
Nécessite just (exécuteur de commandes) et Node.js (pour Tailwind CSS).
git clone https://github.com/moltis-org/moltis.git
cd moltis
just build-css # Compile Tailwind CSS pour l'interface web
just build-release # Compile en mode release
cargo run --release --bin moltis
Pour une compilation release complète incluant les outils sandbox WASM :
just build-release-with-wasm # Compile les artefacts WASM + le binaire release
cargo run --release --bin moltis
Ouvrez https://moltis.localhost:3000. Au premier lancement, un code de configuration est affiché
dans le terminal — saisissez-le dans l'interface web pour définir votre mot de passe ou enregistrer une passkey.
Drapeaux optionnels : --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
Ouvrez https://localhost:13131 et terminez la configuration. Pour les déploiements Docker
sans surveillance, définissez MOLTIS_PASSWORD, MOLTIS_PROVIDER et MOLTIS_API_KEY
avant le premier démarrage pour ignorer l'assistant de configuration. Voir Documentation Docker
pour Podman, OrbStack, confiance TLS et détails de persistance.
Déploiement Cloud
Fly.io (CLI) :
fly launch --image ghcr.io/moltis-org/moltis:latest
fly secrets set MOLTIS_PASSWORD="your-password"
Toutes les configurations cloud utilisent --no-tls car le fournisseur gère la terminaison TLS.
Voir Documentation de déploiement cloud pour les détails.
Licence
MIT