Canal Signal OpenClaw
Connectez OpenClaw à Signal en utilisant signal-cli — une interface en ligne de commande tierce et open-source pour le protocole Signal. Cette intégration offre une messagerie IA axée sur la confidentialité avec un chiffrement de bout en bout complet. OpenClaw communique avec un démon signal-cli via HTTP JSON-RPC et Server-Sent Events, permettant à votre assistant IA d'envoyer et recevoir des messages sur Signal. Un numéro de téléphone dédié est requis pour le compte du bot.
Signal Fonctionnalités prises en charge
Messages texte
Pris en charge
Médias et fichiers
Pris en charge
Réactions
Pris en charge
Fils de discussion
Non pris en charge
Messages vocaux
Non pris en charge
Discussion de groupe
Pris en charge
Signal Prérequis
- Un numéro de téléphone dédié pour le compte Signal du bot (séparé de votre numéro personnel)
- Java Runtime Environment (JRE 25+) installé sur votre serveur
- signal-cli installé et accessible dans votre PATH
- OpenClaw Gateway en fonctionnement et configuré
- Un compte Signal existant pour associer le bot (ou une nouvelle inscription)
Signal Configuration rapide
Installer signal-cli
Téléchargez et installez signal-cli depuis le dépôt GitHub officiel. Java 25 ou ultérieur est requis. Vérifiez l'installation en exécutant 'signal-cli --version' dans votre terminal.
Associer ou enregistrer un compte Signal
Associez signal-cli à un compte Signal existant en exécutant 'signal-cli link -n "OpenClaw"' et en scannant le QR code depuis un autre appareil. Alternativement, enregistrez un nouveau compte avec 'signal-cli -a +15551234567 register'. Utilisez un numéro dédié — l'utilisation de votre compte personnel provoquera des boucles de messages.
Ajouter la configuration du canal Signal
Ajoutez la configuration du canal Signal dans ~/.openclaw/openclaw.json. Définissez le champ 'account' avec le numéro de téléphone E.164 de votre bot et configurez la dmPolicy (pairing, allowlist ou open) pour contrôler qui peut envoyer des messages à votre assistant.
Démarrer le Gateway et envoyer un message test
Lancez le processus Gateway. OpenClaw démarrera automatiquement le démon signal-cli. Envoyez un message au numéro du bot depuis un autre compte Signal. Si vous utilisez la politique pairing par défaut, approuvez l'expéditeur via 'openclaw pairing approve signal <code>'.
Signal Exemple de configuration
{
"channels": {
"signal": {
"enabled": true,
"account": "+15551234567",
"dmPolicy": "pairing"
}
}
}Signal Documentation Détaillée
Aperçu de l'architecture
Configuration du compte Signal
{
"channels": {
"signal": {
"account": "+15551234567",
"cliPath": "/usr/local/bin/signal-cli"
}
}
}Mode démon externe
{
"channels": {
"signal": {
"account": "+15551234567",
"httpUrl": "http://127.0.0.1:8080/api/v1/rpc"
}
}
}Politiques de DM
{
"channels": {
"signal": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567", "uuid:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
}
}Gestion des discussions de groupe
{
"channels": {
"signal": {
"groupPolicy": "open",
"historyLimit": 50
}
}
}Confidentialité et chiffrement de bout en bout
Réactions
{
"channels": {
"signal": {
"reactionLevel": "minimal"
}
}
}Médias et pièces jointes
{
"channels": {
"signal": {
"mediaMaxMb": 8,
"ignoreAttachments": false
}
}
}Indicateurs de saisie et accusés de lecture
{
"channels": {
"signal": {
"sendReadReceipts": true
}
}
}Découpage du texte et livraison
{
"channels": {
"signal": {
"textChunkLimit": 4000,
"chunkMode": "newline"
}
}
}Signal Référence de Configuration
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Activer ou désactiver le canal Signal |
| account | string | "" | Numéro de téléphone du bot au format E.164 (ex : +15551234567). Requis |
| cliPath | string | "signal-cli" | Chemin vers l'exécutable signal-cli |
| httpUrl | string | "" | URL complète d'un démon signal-cli externe. Lorsque défini, désactive le démarrage automatique |
| httpHost | string | "127.0.0.1" | Adresse de l'hôte pour le démon signal-cli auto-démarré |
| httpPort | number | 8080 | Port pour le démon signal-cli auto-démarré |
| autoStart | boolean | true | Démarrer automatiquement le démon signal-cli au lancement du Gateway |
| startupTimeoutMs | number | 30000 | Temps maximum (ms) d'attente pour que le démon signal-cli devienne disponible. Maximum 120000 |
| dmPolicy | string | "pairing" | Contrôle qui peut envoyer des DM au bot. Options : pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | Numéros de téléphone (E.164) ou identifiants uuid:<id> autorisés à envoyer des messages au bot |
| dmHistoryLimit | number | 50 | Nombre de messages DM récents à inclure comme contexte IA par conversation |
| groupPolicy | string | "disabled" | Politique de discussion de groupe. Options : disabled, allowlist, open |
| groupAllowFrom | string[] | [] | Numéros de téléphone ou UUID autorisés à déclencher le bot dans les groupes (quand groupPolicy est allowlist) |
| historyLimit | number | 50 | Nombre maximum de messages de groupe inclus comme contexte IA. Définir à 0 pour désactiver |
| sendReadReceipts | boolean | false | Transférer les accusés de lecture pour les contacts DM approuvés |
| textChunkLimit | number | 4000 | Nombre maximum de caractères par message sortant avant découpage |
| chunkMode | string | "length" | Mode de découpage du texte. Options : length (découpage strict), newline (respecte les paragraphes) |
| mediaMaxMb | number | 8 | Taille maximale des fichiers multimédias en mégaoctets pour les pièces jointes entrantes/sortantes |
| ignoreAttachments | boolean | false | Ne pas télécharger les pièces jointes multimédias entrantes |
| ignoreStories | boolean | false | Ignorer entièrement les événements de stories Signal |
| receiveMode | string | "" | Mode de réception des messages. Options : on-start (récupérer au démarrage), manual |
| configWrites | boolean | true | Autoriser les commandes /config à modifier les paramètres du canal en temps réel |
| reactionLevel | string | "ack" | Capacité de réaction du bot. Options : off, ack, minimal, extensive |
Activer ou désactiver le canal Signal
Numéro de téléphone du bot au format E.164 (ex : +15551234567). Requis
Chemin vers l'exécutable signal-cli
URL complète d'un démon signal-cli externe. Lorsque défini, désactive le démarrage automatique
Adresse de l'hôte pour le démon signal-cli auto-démarré
Port pour le démon signal-cli auto-démarré
Démarrer automatiquement le démon signal-cli au lancement du Gateway
Temps maximum (ms) d'attente pour que le démon signal-cli devienne disponible. Maximum 120000
Contrôle qui peut envoyer des DM au bot. Options : pairing, allowlist, open, disabled
Numéros de téléphone (E.164) ou identifiants uuid:<id> autorisés à envoyer des messages au bot
Nombre de messages DM récents à inclure comme contexte IA par conversation
Politique de discussion de groupe. Options : disabled, allowlist, open
Numéros de téléphone ou UUID autorisés à déclencher le bot dans les groupes (quand groupPolicy est allowlist)
Nombre maximum de messages de groupe inclus comme contexte IA. Définir à 0 pour désactiver
Transférer les accusés de lecture pour les contacts DM approuvés
Nombre maximum de caractères par message sortant avant découpage
Mode de découpage du texte. Options : length (découpage strict), newline (respecte les paragraphes)
Taille maximale des fichiers multimédias en mégaoctets pour les pièces jointes entrantes/sortantes
Ne pas télécharger les pièces jointes multimédias entrantes
Ignorer entièrement les événements de stories Signal
Mode de réception des messages. Options : on-start (récupérer au démarrage), manual
Autoriser les commandes /config à modifier les paramètres du canal en temps réel
Capacité de réaction du bot. Options : off, ack, minimal, extensive
Signal Questions Fréquentes
Signal Dépannage
Java n'est pas installé, ou la version installée est trop ancienne. signal-cli nécessite Java 25 ou ultérieur.
Le champ account peut être incorrect, le démon signal-cli peut ne pas être en cours d'exécution, ou l'expéditeur n'a pas été approuvé via l'association.
L'expéditeur peut ne pas être dans la liste allowFrom (lors de l'utilisation de la politique allowlist), ou le format d'identifiant de l'expéditeur peut ne pas correspondre.
groupPolicy est défini sur 'disabled' (par défaut), ou le groupe n'est pas dans la liste autorisée.
Le démon signal-cli n'est pas en cours d'exécution, l'URL est incorrecte, ou un pare-feu bloque la connexion.