Canal Signal de OpenClaw
Conecta OpenClaw a Signal usando signal-cli — una interfaz de línea de comandos de código abierto de terceros para el protocolo Signal. Esta integración proporciona mensajería de IA con privacidad como prioridad y cifrado de extremo a extremo completo. OpenClaw se comunica con un daemon de signal-cli a través de HTTP JSON-RPC y Server-Sent Events, permitiendo que tu asistente de IA envíe y reciba mensajes en Signal. Se requiere un número de teléfono dedicado para la cuenta del bot.
Signal Funciones compatibles
Mensajes de texto
Compatible
Medios y archivos
Compatible
Reacciones
Compatible
Hilos
No compatible
Mensajes de voz
No compatible
Chat grupal
Compatible
Signal Requisitos previos
- Un número de teléfono dedicado para la cuenta del bot de Signal (separado de tu número personal)
- Java Runtime Environment (JRE 25+) instalado en tu servidor
- signal-cli instalado y accesible en tu PATH
- OpenClaw Gateway en funcionamiento y configurado
- Una cuenta de Signal existente para vincular el bot (o un nuevo registro)
Signal Configuración rápida
Instalar signal-cli
Descarga e instala signal-cli desde el repositorio oficial de GitHub. Requiere Java 25 o posterior. Verifica la instalación ejecutando 'signal-cli --version' en tu terminal.
Vincular o registrar una cuenta de Signal
Vincula signal-cli a una cuenta de Signal existente ejecutando 'signal-cli link -n "OpenClaw"' y escaneando el código QR desde otro dispositivo. Alternativamente, registra una nueva cuenta con 'signal-cli -a +15551234567 register'. Usa un número dedicado — ejecutarlo en tu cuenta personal causará bucles de auto-mensajes.
Agregar configuración del canal Signal
Agrega la configuración del canal Signal a ~/.openclaw/openclaw.json. Establece el campo 'account' con el número de teléfono de tu bot en formato E.164 y configura la dmPolicy (pairing, allowlist u open) para controlar quién puede enviar mensajes a tu asistente.
Iniciar Gateway y enviar un mensaje de prueba
Inicia el proceso Gateway. OpenClaw iniciará automáticamente el daemon de signal-cli. Envía un mensaje al número del bot desde otra cuenta de Signal. Si usas la política pairing por defecto, aprueba al remitente mediante 'openclaw pairing approve signal <code>'.
Signal Ejemplo de configuración
{
"channels": {
"signal": {
"enabled": true,
"account": "+15551234567",
"dmPolicy": "pairing"
}
}
}Signal Documentación Detallada
Descripción general de la arquitectura
Configuración de la cuenta de Signal
{
"channels": {
"signal": {
"account": "+15551234567",
"cliPath": "/usr/local/bin/signal-cli"
}
}
}Modo daemon externo
{
"channels": {
"signal": {
"account": "+15551234567",
"httpUrl": "http://127.0.0.1:8080/api/v1/rpc"
}
}
}Políticas de DM
{
"channels": {
"signal": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567", "uuid:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
}
}Gestión de chats grupales
{
"channels": {
"signal": {
"groupPolicy": "open",
"historyLimit": 50
}
}
}Privacidad y cifrado de extremo a extremo
Reacciones
{
"channels": {
"signal": {
"reactionLevel": "minimal"
}
}
}Medios y adjuntos
{
"channels": {
"signal": {
"mediaMaxMb": 8,
"ignoreAttachments": false
}
}
}Indicadores de escritura y confirmaciones de lectura
{
"channels": {
"signal": {
"sendReadReceipts": true
}
}
}Fragmentación y entrega de texto
{
"channels": {
"signal": {
"textChunkLimit": 4000,
"chunkMode": "newline"
}
}
}Signal Referencia de Configuración
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Habilitar o deshabilitar el canal Signal |
| account | string | "" | Número de teléfono del bot en formato E.164 (ej., +15551234567). Requerido |
| cliPath | string | "signal-cli" | Ruta al ejecutable de signal-cli |
| httpUrl | string | "" | URL completa de un daemon externo de signal-cli. Cuando se establece, deshabilita el inicio automático |
| httpHost | string | "127.0.0.1" | Dirección de host a la que se vincula el daemon auto-iniciado de signal-cli |
| httpPort | number | 8080 | Puerto al que se vincula el daemon auto-iniciado de signal-cli |
| autoStart | boolean | true | Si se inicia automáticamente el daemon de signal-cli al arrancar el Gateway |
| startupTimeoutMs | number | 30000 | Tiempo máximo (ms) de espera para que el daemon de signal-cli esté disponible. Máximo 120000 |
| dmPolicy | string | "pairing" | Controla quién puede enviar DMs al bot. Opciones: pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | Números de teléfono (E.164) o identificadores uuid:<id> autorizados para enviar mensajes al bot |
| dmHistoryLimit | number | 50 | Número de mensajes DM recientes a incluir como contexto de IA por conversación |
| groupPolicy | string | "disabled" | Política de chat grupal. Opciones: disabled, allowlist, open |
| groupAllowFrom | string[] | [] | Números de teléfono o UUID autorizados para activar el bot en grupos (cuando groupPolicy es allowlist) |
| historyLimit | number | 50 | Máximo de mensajes de grupo incluidos como contexto de IA. Establecer en 0 para deshabilitar |
| sendReadReceipts | boolean | false | Si se reenvían señales de confirmación de lectura para contactos DM aprobados |
| textChunkLimit | number | 4000 | Máximo de caracteres por mensaje saliente antes de fragmentar |
| chunkMode | string | "length" | Modo de fragmentación de texto. Opciones: length (división estricta), newline (consciente de párrafos) |
| mediaMaxMb | number | 8 | Tamaño máximo de archivo multimedia en megabytes para adjuntos entrantes/salientes |
| ignoreAttachments | boolean | false | Omitir la descarga de adjuntos multimedia entrantes |
| ignoreStories | boolean | false | Ignorar los eventos de historias de Signal completamente |
| receiveMode | string | "" | Modo de recepción de mensajes. Opciones: on-start (obtener al iniciar), manual |
| configWrites | boolean | true | Permitir que los comandos /config modifiquen la configuración del canal en tiempo de ejecución |
| reactionLevel | string | "ack" | Capacidad de reacción del bot. Opciones: off, ack, minimal, extensive |
Habilitar o deshabilitar el canal Signal
Número de teléfono del bot en formato E.164 (ej., +15551234567). Requerido
Ruta al ejecutable de signal-cli
URL completa de un daemon externo de signal-cli. Cuando se establece, deshabilita el inicio automático
Dirección de host a la que se vincula el daemon auto-iniciado de signal-cli
Puerto al que se vincula el daemon auto-iniciado de signal-cli
Si se inicia automáticamente el daemon de signal-cli al arrancar el Gateway
Tiempo máximo (ms) de espera para que el daemon de signal-cli esté disponible. Máximo 120000
Controla quién puede enviar DMs al bot. Opciones: pairing, allowlist, open, disabled
Números de teléfono (E.164) o identificadores uuid:<id> autorizados para enviar mensajes al bot
Número de mensajes DM recientes a incluir como contexto de IA por conversación
Política de chat grupal. Opciones: disabled, allowlist, open
Números de teléfono o UUID autorizados para activar el bot en grupos (cuando groupPolicy es allowlist)
Máximo de mensajes de grupo incluidos como contexto de IA. Establecer en 0 para deshabilitar
Si se reenvían señales de confirmación de lectura para contactos DM aprobados
Máximo de caracteres por mensaje saliente antes de fragmentar
Modo de fragmentación de texto. Opciones: length (división estricta), newline (consciente de párrafos)
Tamaño máximo de archivo multimedia en megabytes para adjuntos entrantes/salientes
Omitir la descarga de adjuntos multimedia entrantes
Ignorar los eventos de historias de Signal completamente
Modo de recepción de mensajes. Opciones: on-start (obtener al iniciar), manual
Permitir que los comandos /config modifiquen la configuración del canal en tiempo de ejecución
Capacidad de reacción del bot. Opciones: off, ack, minimal, extensive
Signal Preguntas Frecuentes
Signal Solución de Problemas
Java no está instalado, o la versión instalada es demasiado antigua. signal-cli requiere Java 25 o posterior.
El campo account puede ser incorrecto, el daemon de signal-cli puede no estar ejecutándose, o el remitente no ha sido aprobado mediante emparejamiento.
El remitente puede no estar en la lista allowFrom (al usar la política allowlist), o el formato del identificador del remitente puede no coincidir.
groupPolicy está establecido en 'disabled' (por defecto), o el grupo no está en la lista de permitidos.
El daemon de signal-cli no está ejecutándose, la URL es incorrecta, o un firewall está bloqueando la conexión.