A Slack bot for a coding agent turns a message in Slack into a request for Claude Code or Codex running on someone’s machine and posts the result back in the thread. muti gives each agent its own bot with its own name. People in your workspace DM it or mention it in a channel; that message is the task. If the person asking is not the agent’s owner, the request waits, and the owner approves it with buttons in their own DM. Pushes, destructive deletes, spending and credential access never become automatic, for anyone.
This post explains how the connector works, what “Allow always” actually stores, and why treating Slack as untrusted input is the whole point.
En qué se equivocan la mayoría de puentes
El puente típico guarda un token de bot, escucha menciones y canaliza el texto a una CLI local. Funciona, y tiene tres problemas: la pertenencia al canal se convierte en el modelo de permisos, nadie aprueba el paso arriesgado y el progreso inunda el canal con un mensaje por cada llamada a herramientas. Ninguno de ellos es un problema de Slack. Son problemas de permisos que casualmente salen a la luz en Slack.
El hilo de un canal muestra la solicitud y su estado; los botones de aprobación están en el mensaje directo del propietario; el agente se ejecuta en la máquina del propietario.
Un bot por agente
Creas la app de Slack a partir de un manifiesto que muti genera para ese agente, de modo que el bot lleva el nombre del agente y sus propias URL de eventos. No hay nada que vincular ni comandos que aprender:
- Envía un mensaje directo al bot y el texto será una tarea. El mensaje directo se convierte en una sala compartida entre tú y el propietario del agente.
- Menciónalo en un canal y ese canal se convertirá en una sala de grupo en muti tras el primer uso. El bot responde en el hilo.
- Adjunta archivos y llegarán como adjuntos de la sala que el agente puede leer, igual que las subidas web.
Los usuarios de Slack se convierten en usuarios de muti mediante el correo electrónico que Slack tiene para ellos, verificado por Slack dentro del propio espacio de trabajo del propietario. Si Slack oculta el correo, el bot envía un código de enlace de seis dígitos para canjearlo una vez en la web. De cualquier manera, los permisos se asocian a la cuenta, no a un nombre para mostrar.
El mismo control que en la web
Cada solicitud pasa por el mismo control que utiliza la web. Los mensajes del propio propietario se ejecutan de inmediato. Cualquier otra persona espera al propietario, a menos que este ya le haya concedido permiso permanente para este agente. El estado aparece en el hilo: aceptado con un id de solicitud, esperando, ejecutándose con resúmenes de llamadas a herramientas, completado con el resultado. Una sola tarjeta, actualizada en el mismo mensaje, en lugar de un mensaje por cada paso.
Botones de aprobación y qué significa «always»
Cuando llega una solicitud de otra persona, o cuando una ejecución llega a una llamada a herramientas que necesita intervención humana, el propietario recibe una tarjeta en su mensaje directo con tres botones: Allow, Allow always, Deny.
Allow es para esa llamada concreta. Allow always guarda una regla para el agente con un alcance tan acotado como la propia llamada: este dominio para WebFetch, este prefijo de comando para Bash, esta skill por su nombre, esta herramienta de solo lectura. Las futuras llamadas que coincidan las responde muti sin un prompt. Las reglas se enumeran y se pueden revocar en el cuadro de diálogo del agente.
Las llamadas en categorías peligrosas nunca califican para una regla ni coincidirán con ninguna: hacer push a ramas compartidas, eliminaciones destructivas, escalada de privilegios, publicaciones y despliegues, y lecturas o escrituras en rutas de credenciales. Se mantienen llamada a llamada, solo con Allow y Deny. Esa es la versión del conector de las cuatro acciones que siempre requieren confirmación. Las aprobaciones sin responder caducan tras 24 horas, al igual que las solicitudes.
Lo que ve el canal
Texto de la solicitud, estado e id; resúmenes de llamadas a herramientas; rutas y recuentos de líneas de diff; el final de la salida de comandos; archivos producidos y enlaces. Nunca: variables de entorno, archivos de claves, el working tree o cualquier cosa de otra sala. Los tokens de Slack se guardan cifrados en muti; nada relacionado con Slack reside en la máquina del propietario, que mantiene su conexión saliente exclusiva mediante el daemon. Consulta qué sube el daemon.
Configuración
- En la consola, abre Slack para el agente que quieras exponer y crea una app de Slack a partir del manifiesto generado. Sube el avatar del agente como icono de la app si lo deseas; el asistente lo renderiza.
- Pega las dos cadenas de la configuración de la app. muti llama a Slack una vez, te localiza por correo electrónico y te vincula como propietario para que los botones de aprobación funcionen de inmediato.
- Instala la app en tu espacio de trabajo. Envía un mensaje directo al bot o invítalo a un canal y menciónalo.
- Aprueba la primera solicitud de un compañero en tu mensaje directo. Usa Allow always solo para las llamadas específicas y rutinarias; deja que las peligrosas sigan pidiendo confirmación.
Preguntas frecuentes
¿Necesita el bot a un administrador de Slack? Instalar una app en un espacio de trabajo suele requerir una única aprobación del administrador. La app es tuya, creada a partir del manifiesto de muti, por lo que ninguna app de terceros tiene el token de tu espacio de trabajo.
¿Pueden los miembros del canal aprobar por sí mismos? No. La aprobación corresponde al propietario del agente y llega a su mensaje directo. Los miembros pueden cancelar o añadir contexto.
¿Qué pasa con Feishu, Lark y DingTalk? Feishu/Lark será el siguiente y sigue el mismo modelo de sala y aprobación; consulta el diseño para Feishu. DingTalk vendrá después.
¿Es esto lo mismo que Claude Code Dispatch? Dispatch reenvía tus mensajes de Telegram a tu propia sesión. Este conector es para otras personas, con aprobaciones; consulta Dispatch frente a una sala.
La sala se encarga de gestionar los permisos; Slack es solo una puerta más de entrada. Dale una sala a tu agente.
Publicado el · Actualizado el