EN Instalar

Agrégale funciones a MADRE.

Un módulo le suma algo a MADRE, como un comando nuevo, una herramienta para tus agentes o una integración. Todo cabe en un solo archivo. Se lo puedes pedir a un agente con /module o escribirlo tú. No compilas nada, no instala paquetes y no te pide registro.

Basado en docs/SDK.md · MADRE 1.1.3

En corto

  • Un módulo le suma algo a MADRE: un comando, una herramienta para tus agentes o una integración. Es un solo archivo.
  • No tienes que escribirlo tú: escribe /module y lo que quieres, y un agente lo escribe.
  • Nada se instala solo. MADRE te muestra qué hace y qué toca, y tú decides.
  • Si el módulo trae un error, MADRE te lo dice en vez de instalarlo a medias.

Que lo escriba un agente

Pídeselo a un agente con /module.

Escribe /module y lo que quieres que haga. MADRE le pasa al agente la guía y el ejemplo, y él escribe el módulo. A ti te toca revisarlo e instalarlo.

MADRE 1.1, un chat nuevo con el mensaje «#2 /module un comando /pendientes que liste los comentarios TODO de los archivos del proyecto, con archivo y línea. @opencode». #2, /module y @opencode aparecen marcados, y el modo dice #2 Crear.
La petición, en la caja de texto. #2 es el permiso Crear, /module es la petición y @opencode, quién la hace.
  1. Lo pides

    Escribe /module y lo que necesitas, por ejemplo «un comando /pendientes que liste los TODO del proyecto».

  2. Das permiso

    Le hace falta el permiso #2 Crear. Si no está prendido, MADRE te lo pide y guarda tu petición. Escribir el comando nunca lo prende por ti.

  3. El agente lo escribe

    Hace un solo archivo, <id>.module.mjs, en su carpeta de borrador. Nunca lo instala por su cuenta.

  4. Tú lo instalas

    MADRE pone una tarjeta en la conversación con INSTALAR PARA TODOS LOS PROYECTOS o INSTALAR PARA ESTE PROYECTO. Lo revisas, escoges con un clic y lo prendes en Módulos.

MADRE 1.1, debajo de la respuesta de OpenCode, que creó pendientes.module.mjs en su carpeta de borrador, la tarjeta «Módulo · @opencode · Escribió pendientes.module.mjs» con «Instalar para todos los proyectos» e «Instalar para este proyecto», y la nota «Léelo antes de instalarlo: un módulo corre dentro de MADRE con tus permisos».
La tarjeta para instalarlo. El agente escribió el módulo. Tú decides dónde va, o si mejor no lo instalas.

Lo que puede hacer

Lo que puede hacer tu módulo.

Cada cosa la declaras en el archivo del módulo, y MADRE la conecta a tus proyectos.

  • Comandos en el proyecto. Haz tus propios comandos con /. Contestan con una tarjeta que leen tú y tus agentes.

  • Herramientas para los agentes. Le das a un agente herramientas de más (servidores MCP) solo durante su turno, y MADRE le cuenta qué recibió.

  • Ajustes sin diseñar nada. Declara selectores, interruptores y campos. MADRE los dibuja en la ficha y guarda lo que escojas.

  • Direcciones propias. Tu módulo puede contestar en sus propias direcciones web, siempre bajo /api/x/tu-módulo/.

  • Escuchar el proyecto. Le llega cada mensaje y cada turno del proyecto, y puede reaccionar a ellos.

  • Versiones al día. Si tu módulo usa un programa de fuera, MADRE vigila su versión y te enseña el comando para actualizarlo antes de correrlo.

  • Diagnóstico. Enséñale al Diagnóstico a reconocer problemas nuevos y cómo se arreglan en cada sistema.

  • Compartirlo en el Mercado. Mándalo al Mercado de la comunidad. Lo leo, lo firmo y aparece en el Mercado de todos. Quien lo instale ve antes qué declara: a dónde se conecta, qué llaves pide y qué agrega.

Errores comunes

MADRE te avisa antes de que algo truene.

Si tú o un agente se equivocan al escribir un módulo, MADRE te lo dice en lugar de instalarlo a medias.

  • Un campo mal escrito. Si pones sumary en vez de summary, MADRE te dice qué campo no conoce. No lo instala con la ficha vacía.

  • Un import que no jala. Un módulo no lleva imports. MADRE le pasa lo que necesita. Si copias el import de un módulo integrado, el error te dice qué hacer en su lugar.

  • Quitarlo es un clic. Cada módulo tuyo trae DESINSTALAR en su propia tarjeta. Borra su archivo y lo saca del proyecto sin reiniciarlo.

Si prefieres escribirlo tú

Escribe tu primer módulo.

  1. Copia el archivo

    Ponlo en ~/.pulse/modules/ para tenerlo en todos tus proyectos, o en .madre/modules/ dentro de un proyecto para que solo funcione ahí.

  2. Recarga

    En Módulos, abre «Crea tu módulo» y dale a Recargar módulos. Si algo falla, ahí te dice el archivo y la línea exacta.

  3. Úsalo

    Préndelo con su interruptor y escribe /tu-comando. Si cambias el archivo, recargas y listo. No tienes que reiniciar el proyecto.

hello.mjs
export default {
  id: 'hello',            // kebab-case
  name: 'HELLO',
  summary: 'Qué hace, en una frase.',
  settings: { enabled: false, greeting: 'hola' },
  async status(ctx) {
    return { status: { installed: Boolean(ctx.settings.enabled), detail: ctx.settings.enabled ? 'on' : 'off' } };
  },
  slash: [{
    name: 'hello',
    usage: '/hello [name]',
    summary: 'Saluda.',
    async execute(ctx, args) {
      return { ok: true, title: 'HELLO', text: `${ctx.settings.greeting}, ${args[0] ?? 'crew'}` };
    },
  }],
};
Un módulo completo. Trae un interruptor, un ajuste y el comando /hello. No tiene import porque MADRE le pasa todo lo que necesita. Ver hello-module.mjs

La ficha

MADRE arma la ficha de tu módulo.

Todas las fichas de Módulos tienen las mismas cinco partes, siempre en el mismo orden. Así la de tu módulo se lee igual que las de los módulos que ya trae MADRE.

  1. Quién es

    El nombre, si está prendido o apagado, quién lo hizo, la versión y el botón para buscar una más nueva.

  2. Qué hace

    Una sola frase.

  3. Qué toca

    Lo que escribe y lo que necesita para funcionar.

  4. Ajustes

    Tus selectores, interruptores y campos.

  5. El interruptor

    Instalar, prender o apagar. Siempre va abajo. Los módulos tuyos también traen DESINSTALAR.

MADRE 1.1, Módulos de mi-tienda: tarjetas de Notas y Recordatorios encendidas, Continuidad sin instalar, Imágenes, Git, Ahorro de tokens, Vista previa, Navegador de pruebas, GitHub y «Crea tu módulo», cada una con su interruptor.
Módulos, en tu proyecto. Cada tarjeta lleva su interruptor; al abrirla ves su ficha con las cinco partes. «Crea tu módulo» te lleva a escribir el tuyo.

Desde 1.1

Un archivo, el contrato sdk: 2 y el Mercado.

Un módulo dice para qué contrato del SDK está escrito. Con sdk: 2 es un solo archivo que no importa nada de MADRE, y lo puedes compartir con todos en el Mercado.

  • Lo que te da MADRE. ctx.t te da tus palabras en el idioma del proyecto, ctx.services.ollama.generate la IA local, y tus rutas reciben sus propios ajustes.

  • Se lee antes de instalarse. En el Mercado, la gente ve lo que declara tu módulo antes de instalarlo, y se instala el mismo archivo que leyó.

  • Firmado para todos. Lo mandas al Mercado de la comunidad; después de revisarlo, lo firmo y llega a cada copia de MADRE que lo pida.

MADRE 1.1, el Mercado de mi-tienda con la ficha de «Antes de subir»: gratis, apagado en este proyecto, estante «Sin pasar por la terminal», versión 1.0.1, su vista previa y «Qué hace».
La ficha de un módulo en el Mercado. Precio, estante, versión, su vista previa y qué hace: lo que la gente lee antes de obtenerlo.

Reglas de la casa

Cómo se porta un buen módulo.

  • No se conecta sin avisar. Si tu módulo habla con un servicio, lo dice en su ficha, y solo lo hace cuando la persona se lo pide.

  • Sin credenciales. Usa las sesiones que ya están en la compu. No guarda claves.

  • No escribe en el proyecto. Para eso están los permisos de los agentes. Si instala algo, te enseña el comando antes de correrlo.

  • Si falla, no rompe el turno. El error sale en la tarjeta del módulo y el proyecto sigue jalando.

  • Habla como MADRE. Textos cortos y claros, en el idioma de la persona: con sdk: 2, ctx.t te da tus palabras en el idioma del proyecto.

  • Se desinstala desde su tarjeta. Los módulos tuyos se desinstalan. Los que vienen con MADRE solo se apagan.

Tu opinión

¿Qué te falta para hacer tu módulo?

Si el SDK no te deja hacer algo que necesitas, como un campo, un evento o una herramienta para los agentes, cuéntame. No te pide cuenta y te da un enlace privado donde ves la respuesta.

Sugerir una mejora al SDK

Ojo

Un módulo corre con tus permisos.

MADRE revisa que cargue bien y que no se salga de su espacio. Lo que hace su código solo lo puedes revisar tú. Instala solo los módulos que hayas leído o que vengan de alguien de confianza.

Sus direcciones viven bajo /api/x/<id>/.
Si uno intenta usar otra, no carga. Ninguno se puede hacer pasar por MADRE.
No usa el nombre de otro.
Ni el de un módulo integrado ni el de uno que ya está instalado.
No inventa mensajes.
No puede fabricar turnos ni mensajes de los agentes.
No recibe credenciales.
Igual que MADRE, usa las sesiones de la compu.

Abre MADRE en tu proyecto.

npx @jossuealcala/madre

Volver a MADRE