Quería WhatsApp en Emacs y acabé montando algo mucho mejor: Matrix para principiantes
Todo empezó con un deseo tonto: "quiero leer WhatsApp desde Emacs, como ya leo Telegram". Una tarde. Un capricho. Y acabó siendo la puerta a una de esas ideas que, cuando la pillas, te cambian la forma de ver la mensajería para siempre.
Este post es para el que no tiene ni idea de qué es Matrix y ha oído la palabra sueltas por ahí. Sin dar nada por hecho. Si al final lo pillas, habré cumplido.
Primero, el muro contra el que choqué
Telegram tiene una API abierta. Cualquiera puede escribir un programa que hable con Telegram. Por eso existe un cliente de Telegram dentro de Emacs, y bots, y mil cosas. Es un jardín con la puerta abierta.
WhatsApp es lo contrario: un búnker. No hay API para terceros, todo va cifrado extremo a extremo, y si usas un cliente no oficial te arriesgan a banearte la cuenta. No es que nadie haya hecho "WhatsApp para Emacs": es que Meta lo impide a propósito.
Así que la pregunta pasó de "¿cómo meto WhatsApp en Emacs?" a otra mucho más interesante: "¿cómo hago para que TODAS mis mensajerías —abiertas y cerradas— vivan en un solo sitio que yo controle?".
La respuesta se llama Matrix.
Qué es Matrix (la analogía que lo aclara todo)
Matrix es el email, pero para el chat en tiempo real.
Piensa en el correo un momento. Tú tienes tu cuenta en un proveedor (pongamos Gmail), tu colega la tiene en otro (pongamos su empresa), y os escribís sin ningún problema. ¿Por qué? Porque el email es un protocolo abierto: unas reglas públicas que cualquier servidor puede hablar. Nadie es "el dueño del email". Hay miles de servidores de correo y todos se entienden.
Matrix es exactamente eso, pero para mensajería instantánea:
- Es un protocolo abierto: reglas públicas para mandar mensajes, crear salas, compartir archivos.
- Es federado: hay muchos servidores independientes y todos se hablan entre sí. Un usuario de un servidor charla con uno de otro, igual que el email.
- Es self-hostable: puedes montar TU PROPIO servidor, en tu máquina, en tu casa o en un VPS de tres euros. Y sigues hablando con el resto del mundo.
Comparado con lo que ya conoces:
| Servicio | ¿Quién manda? | ¿Se habla con otros? | ¿Lo puedes alojar tú? |
|---|---|---|---|
| Meta | No | No | |
| Telegram | Telegram | No | No |
| Matrix | Nadie (abierto) | Sí (federado) | Sí |
Cuando montas tu servidor Matrix, tus mensajes viven en TU disco. No en el ordenador de otro. Esa es la diferencia de fondo, y es enorme.
Vale, ¿y esto cómo me trae WhatsApp?
Aquí entra la magia, y se llama puente (bridge en inglés).
Como Matrix es abierto, la comunidad ha escrito traductores que conectan Matrix con las mensajerías cerradas. Un puente de WhatsApp funciona así: se vincula a tu cuenta igual que lo hace WhatsApp Web (WhatsApp permite "dispositivos vinculados": tu portátil es uno). El puente hace de intérprete en medio:
Tu WhatsApp <--(vinculado como un dispositivo)--> PUENTE
|
TU servidor Matrix
|
Tu cliente (Emacs, móvil...)
¿El resultado? Tus chats de WhatsApp aparecen como salas normales de Matrix. Escribes en la sala desde Matrix y le llega a tu contacto por WhatsApp. Te responde por WhatsApp y aparece en tu sala de Matrix. El puente traduce en las dos direcciones, sin que tú notes la costura.
Y lo mejor: hay puentes para casi todo. WhatsApp, Telegram, Signal, Instagram, Discord, incluso SMS. Montas el servidor UNA vez y luego enchufas mensajerías como quien pone enchufes en una regleta. Toda tu vida de mensajería, en un solo búnker que es tuyo.
¿Y qué software necesito? (los nombres que verás por ahí)
Dos piezas, y para cada una hay varias opciones:
1. El servidor (el corazón, donde viven tus mensajes):
- Synapse: el servidor de referencia, el oficial. Potente pero pesado (come bastante RAM y quiere una base de datos aparte). Para servidores grandes.
- Conduit / continuwuity: escritos en Rust, ligerísimos, un solo programa sin base de datos externa. Perfectos para un servidor personal en una máquina modesta. (Yo tiré por aquí.)
2. El cliente (por donde lees y escribes):
- Element: el cliente "normal", con app de móvil y de escritorio, muy pulido. Si no eres de Emacs, empieza por aquí.
- Y para nosotros, la gente rara: hay clientes de Matrix dentro de Emacs.
Matrix en Emacs: el porqué de toda esta locura
Existe ement.el, un cliente de Matrix que corre dentro de Emacs. Ese era el objetivo desde el principio, y aquí está el remate de la jugada:
En Emacs, todo es texto. Y lo que es texto, es automatizable.
Cuando tus mensajes de WhatsApp, Telegram y Signal entran en Emacs, dejan de ser notificaciones que interrumpen y pasan a ser datos que manejas. Puedes buscarlos todos a la vez, archivarlos, filtrarlos, engancharlos a tus notas o a tu agenda, escribir un pequeño programa que haga algo cuando llegue cierto mensaje… Todo el poder que Emacs da sobre el texto, ahora aplicado a TODA tu mensajería junto.
Deja de ser "un editor con chat pegado" y pasa a ser tu centro de mando: el sitio donde vives, donde el correo, el código, la agenda, las notas y ahora también los mensajes conviven, y donde todo se puede programar para que trabaje por ti.
La honestidad, que es de la casa
Esto no es un botón de "instalar". Montar tu propio servidor Matrix + los puentes es un proyecto de una tarde-noche con sus cabezazos: hay que levantar el servidor, configurar cada puente, vincular tu cuenta. No es para cualquiera… todavía.
Y con WhatsApp hay que decirlo claro: como el puente se vincula de forma no oficial, existe un riesgo (bajo, pero real) de que Meta te marque la cuenta. Por eso conviene empezar por una mensajería de API abierta —Telegram— para probar que todo el circuito funciona antes de arriesgar nada.
La moraleja
Quería una tontería —leer un chat sin abrir el móvil— y acabé entendiendo algo grande: la mensajería no tiene por qué ser un puñado de búnkeres cerrados donde tú eres el producto. Puede ser un protocolo abierto, federado, que tú alojas y controlas, y al que enchufas lo que quieras.
Matrix no es "otra app de chat". Es la idea de que tus conversaciones son tuyas, y de que el sitio donde las lees lo eliges —y lo programas— tú.
Yo elijo Emacs. Cada uno que elija su casa. Pero que sea suya.
Actualización — ya está en pie (el "funciona")
Escribí el post de arriba con la idea en la cabeza. Hoy ya no es idea: está montado y funcionando.
Lo levanté en una noche: un servidor Matrix propio (con Conduit, el
ligero), creé mi usuario, y lo estoy leyendo desde
dentro de Emacs con ement.el. La primera sala que vi fue una de
bienvenida que me mandé a mí mismo, y ahí estaba, en mi editor, servida
por mi propia máquina. Ese pequeño mensaje es la prueba de que todo el
circuito —servidor, usuario, cliente— funciona de punta a punta.
Todavía "vacío" de chats reales (falta el puente, ver más abajo), pero el esqueleto —lo difícil— ya respira.
Cómo funcionan las "salas" (para el que viene de WhatsApp)
Esto confunde al principio, así que va claro. En Matrix, TODO es una sala. No hay "chats" y "grupos" como categorías distintas: todo son salas, y cambia solo cuánta gente hay dentro.
- Un chat de dos (tú y un colega) = una sala con dos personas.
- Un grupo = una sala con muchas.
- Un canal de anuncios = una sala donde casi todos solo leen.
Una sala es, en el fondo, una conversación con un historial y una lista de miembros. Nada más. Entras, lees lo que se dijo, escribes, sales.
¿Y qué pinta esto con WhatsApp? Aquí está la gracia: cuando enchufas un puente, cada uno de tus chats de WhatsApp o Telegram se convierte en una sala de Matrix. Tu conversación con tu madre pasa a ser una sala. El grupo de la cuadrilla, otra sala. Y todas conviven en la misma lista, en el mismo sitio, al lado de las salas nativas de Matrix. Dejas de tener "apps"; tienes salas.
Qué vas a poder hacer con esto
Cuando todas tus conversaciones son salas en un mismo sitio (y, si eres de los raros, dentro de Emacs), se abren cosas que las apps cerradas no te dejan:
- Leer y responder TODO desde un único lugar — WhatsApp, Telegram, Signal… sin saltar de app en app.
- Buscar en toda tu mensajería a la vez — una sola búsqueda que cruza todas las redes, no la búsqueda cutre de cada app por separado.
- Tu historial es tuyo — vive en tu servidor, en tu disco. No lo pierdes si te banean, no lo minan para venderte nada.
- Automatizar — y esta es la joya si lo lees desde Emacs: como todo es texto, puedes engancharlo a tus notas, a tu agenda, o escribir un pequeño programa que reaccione a cierto mensaje. Tu mensajería deja de interrumpirte y pasa a trabajar para ti.
El roadmap (dónde estoy y qué falta)
Para el que quiera montárselo, este es el orden que estoy siguiendo:
No es un fin de semana de clic-clic. Es un proyecto con sus cabezazos. Pero cada pieza que encaja se queda tuya para siempre. Iré actualizando este mismo post según avance —es un post vivo—, así que si te interesa, vuelve.
Comentarios (0)
Sin comentarios todavia. Se el primero!
Deja un comentario