El Muse Charm, el llavero de Meta para hablar con Muse, sale en diciembre. Yo no me aguanté. El 2 de octubre Meta publicó en código abierto lo que usan sus gadgets para conectarse a Muse, y con eso armé el mío en el Apple Watch. Toco a Marley, hablo, y la respuesta me suena en la muñeca. No es un producto para comprar: es un proyecto para armar con un agente de código: Claude Code, Codex de ChatGPT o el que uses. Esta guía te da el mapa y los prompts, y te cuenta en qué me equivoqué para que no lo repitas.
- 01Le hablas al reloj y te responde en vozTocas, hablas lo que quieras (hasta dos minutos) y la respuesta empieza a sonar con la primera frase, unos 3 a 6 segundos después.
- 02Sin el celular en la manoEl reloj llega a Muse por internet, aunque estés fuera de la casa, y la voz no se corta si bajas la muñeca.
- 03Tu voz se queda en tu computadorLa pasa a texto un modelo que corre en tu propia Mac. A Muse solo le llega el texto.
- 04Con tu avatar y la voz que elijasLe pides a tu Muse que se dibuje, y eliges una voz en español. La mía es colombiana.
El camino oficial es más corto. Meta publicó el firmware para placas ESP32 con pantalla: compras una (la redonda de Waveshare de 1,75 pulgadas o el M5Stack StickS3 están en su lista), le cargas el firmware y la emparejas desde la app de Muse. Trae avatar, botón para hablar e imágenes.
Y si tienes un Raspberry Pi, el SDK de Linux de Meta lo convierte en gadget con un solo instalador. Esta guía es para quien quiere Muse en el reloj, que es la ruta que nadie trae hecha.
Paso 00
Lo que necesitas
Yo lo hice con Claude Code, pero los prompts sirven igual en Codex de ChatGPT, Cursor o Gemini CLI. Lo único que sí necesitas es un agente que trabaje dentro de tu computador: que pueda leer archivos, correr comandos y compilar. El chat normal de ChatGPT o de Claude en el navegador no alcanza, porque no puede tocar tu Mac ni tu reloj.
Paso 01
Cómo funciona
El Apple Watch no puede ser el gadget solo. Para emparejarse con Muse hay que anunciarse por Bluetooth, y una app de reloj no puede hacerlo. Para hablar con Muse hay que mantener una conexión cifrada abierta todo el tiempo, y watchOS no lo permite fuera de las apps de audio. Entonces el trabajo se reparte:
- El reloj graba lo que dices cuando tocas a Marley.
- Tu Mac lo recibe por internet y lo pasa a texto con Whisper, en local.
- La Mac se lo manda a Muse como si fuera un gadget oficial, porque lo es.
- Muse contesta, y cada frase que termina la Mac la convierte en voz.
- El reloj reproduce las frases a medida que llegan, sin esperar la respuesta completa.
Paso 02
Tu token de Muse
En gadgets.muse.ai, en Settings y luego SDK tokens, creas uno. Empieza por mgst_.
pbpaste validando el formato, sin imprimirlo nunca. Si se te filtra, lo revocas y creas otro.Los términos de Meta dicen que el token es para uso personal y no comercial, en hasta 50 aparatos. No se puede vender lo que armes con él.
Paso 03
El relé en la Mac
La base es el SDK de Linux de Meta, que está escrito en Python. Casi todo corre igual en Mac; lo único atado a Linux es el Bluetooth del emparejamiento. A eso hay que sumarle dos cosas que el SDK no trae: recibir las respuestas de Muse (están en el firmware ESP32, en la suscripción /chat/subscribe) y una API pequeña para el reloj.
Clona github.com/facebookincubator/muse-gadget-sdk y lee linux/README.md, linux/src/musegadget/link_client.py y esp32/components/muse/muse_chat_session.cpp.
Quiero un relé en Python para esta Mac que sea un gadget de Muse:
1. Reutiliza la sesión del SDK de Linux, pero registra CERO comandos (nada de system.run ni file.read/write). Si Muse pide algo, se rechaza.
2. Porta desde el firmware ESP32 la suscripción /chat/subscribe para recibir las respuestas por eventos.
3. Expón una API local en 127.0.0.1 con token Bearer: POST /turno (audio o texto), GET /turno/{id} con long-poll, y GET del audio.
4. El token SDK se lee de ~/.claude/muse.env y nunca se imprime.
Antes de escribir código, explícame el plan y lo que no vas a poder probar.Paso 04
Emparejar con Muse
Aquí me trabé. El gadget oficial se anuncia por Bluetooth con un dato de fabricante que la app de Muse lee para mostrarlo en la lista. macOS no deja que una app incluya ese dato. Con la Mac sola, el teléfono nunca la encuentra.
La salida fue usar una placa XIAO nRF52840 como antena: anuncia exactamente igual que el gadget oficial y le pasa todo a la Mac por el cable USB. Se usa una sola vez. Después del emparejamiento, todo va por internet y la placa se guarda.
MuseGadget…, lo eliges, y el registro del relé termina con «setup complete».macOS no puede anunciar manufacturer data por BLE y la app de Muse lo necesita para listar el gadget. Escribe un firmware para mi Seeed XIAO nRF52840 (Arduino, núcleo Seeeduino:nrf52) que anuncie el servicio de setup del SDK con el dato de fabricante 0xFFFF,0x00 y el nombre en la respuesta de escaneo, y que pase las escrituras y notificaciones GATT a la Mac por USB serial. Luego adapta el emparejamiento del SDK para usar la placa en vez de BlueZ.
Si vas a dejar el relé en otra Mac, empareja desde la que tiene la placa funcionando y pasa los dos archivos de estado (identidad y emparejamiento) a la otra. Son solo credenciales; no dependen de qué computador tenía la placa.
Paso 05
Tu voz a texto, en tu Mac
El gadget oficial le manda a Muse una nota de voz, y Muse deja de escuchar a los 15 segundos. Yo lo cambié: el reloj graba hasta dos minutos, la Mac lo transcribe con whisper.cpp y a Muse solo le llega el texto. Con el modelo large-v3-turbo comprimido (574 MB) y el servidor de Whisper corriendo de fondo, transcribe en menos de un segundo.
Instala whisper-cpp con brew, baja ggml-large-v3-turbo-q5_0.bin y déjalo corriendo como servicio de launchd (whisper-server en 127.0.0.1, idioma es). En el relé, cuando llegue audio: conviértelo con ffmpeg a WAV de 16 kHz mono escribiéndolo a un archivo temporal (no por tubería, los m4a del reloj llegan vacíos así), transcríbelo y manda a Muse solo el texto. Si Whisper falla, vuelve a la nota de voz de 15 segundos. Mide el tiempo de transcripción.
Paso 06
La respuesta, en voz
Muse responde en texto: el firmware oficial lo dice tal cual, y deja el espacio para que tú pongas la voz. Yo uso ElevenLabs con una voz colombiana en español. El truco de velocidad fue no esperar la respuesta entera: cada frase que Muse termina se convierte en voz y se manda al reloj, y el reloj las va sonando en orden. Así Mateo empieza a hablar a los 3 a 6 segundos, en vez de los 7 a 11 que tardaba esperando el final.
Antes de mandar el texto a la voz, quita asteriscos, viñetas y enlaces, o la voz te los lee.
Paso 07
Que funcione en la calle
El relé escucha solo dentro de tu Mac. Para que el reloj llegue desde afuera usé Tailscale Funnel, que le da a la Mac una dirección web pública y fija, sin abrir puertos del router. Tailscale normal no sirve: funciona como VPN, y el Apple Watch no sale a internet por la VPN.
Recién activado, el nombre de Funnel tardó unos 20 minutos en aparecer en internet. Si al principio el teléfono dice que no encuentra el servidor, espera.
Paso 08
La app del reloj
Una app de SwiftUI con dos partes: la del iPhone, donde pegas el token una sola vez (queda en el llavero y se pasa al reloj), y la del reloj, con el avatar. Tocas para grabar y otra vez para enviar; el doble toque con los dedos también sirve. Al abrirla empieza a escuchar de una vez.
Con la cuenta gratis de Apple funciona, con tres límites que me tocaron todos:
- Máximo tres apps de desarrollo en el iPhone. Me tocó borrar una para hacerle espacio.
- La app caduca a los siete días y hay que reinstalarla desde Xcode.
- Xcode tiene que ver el reloj. En Xcode 27 se empareja desde Device Hub (el botón +), con el reloj en Ajustes, Privacidad y seguridad, Modo desarrollador.
Paso 09
Tu avatar, dibujado por tu Muse
El muñeco por defecto de los gadgets es un personaje de Meta y su licencia no lo cubre. Pero el SDK trae una receta oficial: un prompt que le pide a tu Muse que se dibuje a sí mismo en pixel art de 64 por 64, con una animación para cada estado. Se la mandé por el relé y a los minutos me devolvió a Marley en versión tamagotchi, a partir del mismo avatar que tengo en la app. Ese código lo convertí en cuadros para el reloj.
La receta está en el repositorio, en esp32/tools/muse/avatar_prompt.md. Ojo: la respuesta puede llegar en tu chat principal de Muse y no como contestación directa; deja algo escuchando hasta que llegue el bloque de código.
Para no repetirlo
Lo que falló
Todo esto me pasó en el mismo día. Ninguno es grave si sabes que viene.
Resumen
El orden, en una lista
- Saca el token SDK y guárdalo en un archivo, nunca en el chat.
- Pídele a tu agente el relé con cero comandos para Muse.
- Empareja con la placa como antena, una sola vez.
- Prueba con texto desde la terminal: si Muse te contesta ahí, lo difícil ya está.
- Agrega Whisper y la voz, y mide cuándo empieza a sonar la respuesta.
- Abre el relé a la calle con Funnel y comprueba que sin token diga «no autorizado».
- Instala la app del reloj desde Xcode y prueba bajando la muñeca.
- Pídele a tu Muse que se dibuje.
Créditos
Fuentes
El SDK y el firmware de los gadgets: gadgets.muse.ai y el repositorio de Meta en GitHub, licencia Apache 2.0. El anuncio: AI Weekly. El Muse Charm y su salida en diciembre: Tech Jack Solutions. La transcripción: whisper.cpp. Verificado el 3 de octubre de 2026.
Cuando lo tengas
Mándame por DM en Instagram un video de tu reloj, o de tu placa, contestándote. Y si te trabas en un paso, dime en cuál y te digo qué revisar.



