Guide self-host MnemoClaw.
Un LLM sur WhatsApp, en self-hosted. Docker, Baileys, TTS au choix, tool proxies. Multi-LLM : Claude Code par défaut, GLM 5.2, Mistral, GPT — tu branches ce que tu veux. Ce guide suppose un accès au repo privé (via waitlist).
Prérequis
Avant de commencer
- Docker + Docker Compose installés
- Un téléphone avec WhatsApp actif (pas besoin de numéro dédié)
- Clé API LLM — Anthropic (Claude), Zhipu (GLM 5.2), Mistral, OpenAI… au choix
- VPS ou machine locale (min 2 vCPU / 2GB RAM)
1. Clone & lance
# Clone le repo (accès après validation waitlist)
git clone https://github.com/jacques-chauvin/mnemoclaw.git
cd mnemoclaw
# Copie le .env
cp .env.example .env
# Lance tout
docker-compose up -d Le conteneur démarre. MnemoClaw écoute sur http://localhost:3000.
2. Pair WhatsApp (Baileys)
Baileys est une librairie qui se connecte au protocole WhatsApp Web. Pas besoin de Business API.
# Affiche le QR code de pairing
docker exec -it mnemoclaw npm run pair Scannez le QR code avec WhatsApp → Paramètres → Appareils liés → Lier un appareil. La connexion est chiffrée E2E.
3. Choisis ton LLM
MnemoClaw est LLM-agnostic. Claude Code par défaut, mais tu peux basculer vers n'importe quel LLM compatible API.
Option A — Claude (Anthropic)
# .env
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-xxx
LLM_MODEL=claude-haiku-4-5-20251001 # ou sonnet, opus Option B — GLM 5.2 (Zhipu)
# .env
LLM_PROVIDER=zhipu
ZHIPU_API_KEY=xxx
LLM_MODEL=glm-5.2 Option C — Mistral / OpenAI / autres (compatible OpenAI)
# .env
LLM_PROVIDER=openai-compatible
LLM_API_BASE=https://api.mistral.ai/v1 # ou autre endpoint compatible
LLM_API_KEY=xxx
LLM_MODEL=mistral-large-latest # System prompt commun
SYSTEM_PROMPT="Tu es MnemoClaw, mon assistant personnel." Redémarrez le conteneur : docker-compose restart
Envoyez un message à votre propre numéro WhatsApp. Le LLM répond.
4. Voice (TTS au choix) — optionnel
Pour activer la synthèse vocale, plusieurs options selon votre hardware :
Choisir son TTS
- Kokoro TTS — tourne sur CPU. Léger, rapide, idéal pour VPS ou Raspberry Pi.
- Qwen TTS — nécessite un GPU (CUDA). Meilleure qualité, voix plus naturelles.
- Cloud TTS — OpenAI, ElevenLabs, etc. Zéro hardware, payant à l'usage.
Kokoro (CPU — recommandé sans GPU)
# docker-compose.override.yml
services:
kokoro:
image: ghcr.io/remsky/kokoro-tts:latest
ports: ["8880:8880"]
# .env
TTS_ENGINE=kokoro
TTS_URL=http://kokoro:8880 Qwen TTS (GPU requis)
# docker-compose.override.yml
services:
qwen-tts:
image: custom-qwen-tts:latest # build from Qwen TTS repo
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
ports: ["8881:8881"]
# .env
TTS_ENGINE=qwen
TTS_URL=http://qwen-tts:8881 Envoyez un message vocal → l'IA transcrit (Whisper) → répond en texte + audio.
5. Tool proxies (MCP)
Branchez des outils externes via le Model Context Protocol.
# config/tools.json
{
"tools": [
{
"name": "web-search",
"type": "mcp",
"command": "npx",
"args": ["-y", "@anthropic/mcp-web-search"]
},
{
"name": "code-exec",
"type": "mcp",
"command": "npx",
"args": ["-y", "@anthropic/mcp-sandbox"]
}
]
} L'LLM peut maintenant chercher sur le web, exécuter du code, etc. — directement depuis WhatsApp.
6. Déploiement production
Options
- VPS (Hetzner, Contabo) : 4€/mois, recommandé
- Raspberry Pi 4+ : home server, zéro coût mensuel
- Cloudflare Tunnel : pas d'IP publique requise
# Cloudflare Tunnel (si pas d'IP publique)
cloudflared tunnel create mnemoclaw
cloudflared tunnel route dns mnemoclaw mnemoclow.votredomaine.com
# config.yml
ingress:
- hostname: mnemoclow.votredomaine.com
service: http://localhost:3000
- service: http_status:404 Coûts API
Tarifs indicatifs (2026)
- GLM 5.2 : ~0.15€ / M tokens — le moins cher
- Claude Haiku 4.5 : ~0.25€ / M tokens — usage quotidien modéré
- Mistral Large : ~2€ / M tokens — bon rapport qualité/prix
- Claude Sonnet 4.6 : ~3€ / M tokens — usage intensif
- Claude Opus 4.6 : ~15€ / M tokens — tâches complexes ponctuelles
Un usage personnel avec GLM 5.2 ou Haiku coûte typiquement 3–15€/mois. Configurez un spending limit sur la console de votre provider.
Dépannage
Le QR code ne s'affiche pas
Vérifiez que le conteneur tourne : docker ps. Logs : docker logs mnemoclaw.
WhatsApp se déconnecte souvent
Baileys maintient une session persistante dans ./auth. Ne supprimez pas ce dossier. Si corrompu, re-pair avec npm run pair.
Le LLM ne répond pas
Vérifiez la clé API et le provider configuré. Pour Claude : curl https://api.anthropic.com/v1/messages -H "x-api-key: $ANTHROPIC_API_KEY". Pour GLM : vérifiez sur open.bigmodel.cn. Vérifiez le crédit sur la console de votre provider.