Enviar eventos a una sesión en ejecución con channels
Utilice channels para enviar mensajes, alertas y webhooks a su sesión de Claude Code desde un servidor MCP. Reenvíe resultados de CI, mensajes de chat y eventos de monitoreo para que Claude pueda reaccionar mientras está fuera.
Los channels están en vista previa de investigación y requieren Claude Code v2.1.80 o posterior. Requieren autenticación de Anthropic a través de claude.ai o una clave API de Console, y no están disponibles en Amazon Bedrock, Google Vertex AI o Microsoft Foundry. Las organizaciones de Team y Enterprise deben habilitarlos explícitamente.
Un channel es un servidor MCP que envía eventos a su sesión de Claude Code en ejecución, para que Claude pueda reaccionar a cosas que suceden mientras no está en la terminal. Los channels pueden ser bidireccionales: Claude lee el evento y responde a través del mismo channel, como un puente de chat. Los eventos solo llegan mientras la sesión está abierta, por lo que para una configuración siempre activa, ejecuta Claude en un proceso de fondo o terminal persistente.
A diferencia de las integraciones que generan una sesión en la nube nueva o esperan a ser consultadas, el evento llega a la sesión que ya tiene abierta: vea cómo se comparan los channels.
Instala un channel como un plugin y lo configura con tus propias credenciales. Telegram, Discord e iMessage se incluyen en la vista previa de investigación.
Cuando Claude responde a través de un channel, ve el mensaje entrante en su terminal pero no el texto de respuesta. La terminal muestra la llamada de herramienta y una confirmación (como "enviado"), y la respuesta real aparece en la otra plataforma.
Esta página cubre:
- Channels compatibles: configuración de Telegram, Discord e iMessage
- Instalar y ejecutar un channel con fakechat, una demostración de localhost
- Quién puede enviar mensajes: listas de permitidos del remitente y cómo se empareja
- Habilitar channels para su organización si administra una organización de Team, Enterprise o Console
- Cómo se comparan los channels con sesiones web, Slack, MCP y Control Remoto
Para crear su propio channel, consulte la referencia de Channels.
Canales compatibles
Cada canal compatible es un plugin que requiere Bun. Para una demostración práctica del flujo de plugins antes de conectar una plataforma real, pruebe el inicio rápido de fakechat.
Vea el código fuente completo de Telegram.
Crear un bot de Telegram
Abra BotFather en Telegram y envíe /newbot. Asígnele un nombre para mostrar y un nombre de usuario único que termine en bot. Copie el token que devuelve BotFather.
Instalar el plugin
En Claude Code, ejecute:
/plugin install telegram@claude-plugins-official
Si Claude Code informa que el plugin no se encuentra en ningún marketplace, su marketplace falta o está desactualizado. Ejecute /plugin marketplace update claude-plugins-official para actualizarlo, o /plugin marketplace add anthropics/claude-plugins-official si no lo ha agregado antes. Luego reintente la instalación.
Después de instalar, ejecute /reload-plugins para activar el comando de configuración del plugin.
Configurar su token
Ejecute el comando de configuración con el token de BotFather:
/telegram:configure <token>
Esto lo guarda en ~/.claude/channels/telegram/.env. También puede establecer TELEGRAM_BOT_TOKEN en su entorno de shell antes de lanzar Claude Code.
Reiniciar con canales habilitados
Salga de Claude Code y reinicie con la bandera de canal. Esto inicia el plugin de Telegram, que comienza a sondear mensajes de su bot:
claude --channels plugin:telegram@claude-plugins-official
Emparejar su cuenta
Abra Telegram y envíe cualquier mensaje a su bot. El bot responde con un código de emparejamiento.
Si su bot no responde, asegúrese de que Claude Code se esté ejecutando con --channels del paso anterior. El bot solo puede responder mientras el canal está activo.
De vuelta en Claude Code, ejecute:
/telegram:access pair <code>
Luego bloquee el acceso para que solo su cuenta pueda enviar mensajes:
/telegram:access policy allowlist
Vea el código fuente completo de Discord.
Crear un bot de Discord
Vaya al Portal de Desarrolladores de Discord, haga clic en Nueva Aplicación y asígnele un nombre. En la sección Bot, cree un nombre de usuario y luego haga clic en Restablecer Token y copie el token.
Habilitar Intención de Contenido de Mensaje
En la configuración de su bot, desplácese hasta Intenciones de Puerta de Enlace Privilegiadas y habilite Intención de Contenido de Mensaje.
Invitar el bot a su servidor
Vaya a OAuth2 > Generador de URL. Seleccione el alcance bot y habilite estos permisos:
- Ver Canales
- Enviar Mensajes
- Enviar Mensajes en Hilos
- Leer Historial de Mensajes
- Adjuntar Archivos
- Agregar Reacciones
Abra la URL generada para agregar el bot a su servidor.
Instalar el plugin
En Claude Code, ejecute:
/plugin install discord@claude-plugins-official
Si Claude Code informa que el plugin no se encuentra en ningún marketplace, su marketplace falta o está desactualizado. Ejecute /plugin marketplace update claude-plugins-official para actualizarlo, o /plugin marketplace add anthropics/claude-plugins-official si no lo ha agregado antes. Luego reintente la instalación.
Después de instalar, ejecute /reload-plugins para activar el comando de configuración del plugin.
Configurar su token
Ejecute el comando de configuración con el token del bot que copió:
/discord:configure <token>
Esto lo guarda en ~/.claude/channels/discord/.env. También puede establecer DISCORD_BOT_TOKEN en su entorno de shell antes de lanzar Claude Code.
Reiniciar con canales habilitados
Salga de Claude Code y reinicie con la bandera de canal. Esto conecta el plugin de Discord para que su bot pueda recibir y responder a mensajes:
claude --channels plugin:discord@claude-plugins-official
Emparejar su cuenta
Envíe un mensaje directo a su bot en Discord. El bot responde con un código de emparejamiento.
Si su bot no responde, asegúrese de que Claude Code se esté ejecutando con --channels del paso anterior. El bot solo puede responder mientras el canal está activo.
De vuelta en Claude Code, ejecute:
/discord:access pair <code>
Luego bloquee el acceso para que solo su cuenta pueda enviar mensajes:
/discord:access policy allowlist
Vea el código fuente completo de iMessage.
El canal de iMessage lee su base de datos de Mensajes directamente y envía respuestas a través de AppleScript. Requiere macOS y no necesita token de bot ni servicio externo.
Otorgar Acceso Completo al Disco
La base de datos de Mensajes en ~/Library/Messages/chat.db está protegida por macOS. La primera vez que el servidor la lee, macOS solicita acceso: haga clic en Permitir. El mensaje nombra cualquier aplicación que haya lanzado Bun, como Terminal, iTerm o su IDE.
Si el mensaje no aparece o hizo clic en No Permitir, otorgue acceso manualmente en Configuración del Sistema > Privacidad y Seguridad > Acceso Completo al Disco y agregue su terminal. Sin esto, el servidor se cierra inmediatamente con authorization denied.
Instalar el plugin
En Claude Code, ejecute:
/plugin install imessage@claude-plugins-official
Si Claude Code informa que el plugin no se encuentra en ningún marketplace, su marketplace falta o está desactualizado. Ejecute /plugin marketplace update claude-plugins-official para actualizarlo, o /plugin marketplace add anthropics/claude-plugins-official si no lo ha agregado antes. Luego reintente la instalación.
Reiniciar con canales habilitados
Salga de Claude Code y reinicie con la bandera de canal:
claude --channels plugin:imessage@claude-plugins-official
Envíese un mensaje a sí mismo
Abra Mensajes en cualquier dispositivo conectado a su ID de Apple y envíese un mensaje a sí mismo. Llega a Claude inmediatamente: el auto-chat evita el control de acceso sin configuración.
La primera respuesta que Claude envía activa un mensaje de Automatización de macOS preguntando si su terminal puede controlar Mensajes. Haga clic en Aceptar.
Permitir otros remitentes
De forma predeterminada, solo sus propios mensajes pasan. Para permitir que otro contacto llegue a Claude, agregue su identificador:
/imessage:access allow +15551234567
Los identificadores son números de teléfono en formato +country o correos electrónicos de ID de Apple como user@example.com.
También puede crear su propio canal para sistemas que aún no tienen un plugin.
Inicio rápido
Fakechat es un channel de demostración oficialmente compatible que ejecuta una interfaz de chat en localhost, sin nada que autenticar y sin servicio externo que configurar.
Una vez que instale y habilite fakechat, puede escribir en el navegador y el mensaje llega a su sesión de Claude Code. Claude responde y la respuesta aparece de nuevo en el navegador. Después de haber probado la interfaz de fakechat, pruebe Telegram, Discord o iMessage.
Para probar la demostración de fakechat, necesitará:
- Claude Code instalado y autenticado con una cuenta de claude.ai o una clave API de Claude Console
- Bun instalado. Los plugins de channel precompilados son scripts de Bun. Verifique con
bun --version; si eso falla, instale Bun. - Organización de Team, Enterprise o Console administrada: su administrador debe habilitar channels en la configuración administrada
Instalar el plugin de channel fakechat
Inicie una sesión de Claude Code y ejecute el comando de instalación:
/plugin install fakechat@claude-plugins-official
Si Claude Code informa que el plugin no se encuentra en ningún marketplace, su marketplace falta o está desactualizado. Ejecute /plugin marketplace update claude-plugins-official para actualizarlo, o /plugin marketplace add anthropics/claude-plugins-official si no lo ha agregado antes. Luego reintente la instalación.
Reiniciar con el channel habilitado
Salga de Claude Code y reinicie con --channels y pase el plugin fakechat que instaló:
claude --channels plugin:fakechat@claude-plugins-official
El servidor fakechat se inicia automáticamente.
Puede pasar varios plugins a --channels, separados por espacios.
Enviar un mensaje
Abra la interfaz de fakechat en http://localhost:8787 y escriba un mensaje:
hey, what's in my working directory?
El mensaje llega a su sesión de Claude Code como un evento <channel source="fakechat">. Claude lo lee, hace el trabajo y llama a la herramienta reply de fakechat. La respuesta aparece en la interfaz de chat.
Si Claude encuentra un mensaje de permiso mientras está fuera de la terminal, la sesión se pausa hasta que responda. Los servidores de channel que declaran la capacidad de retransmisión de permisos pueden reenviarle estos mensajes para que pueda aprobar o denegar de forma remota. Para uso desatendido, --dangerously-skip-permissions evita los mensajes por completo, pero solo úselo en entornos en los que confíe.
Cuando ejecuta channels en modo no interactivo con -p, las herramientas que necesitan entrada de terminal, como preguntas de opción múltiple y aprobación de plan mode, se deshabilitan para que la sesión nunca se quede esperando entrada.
Seguridad
Cada plugin de channel aprobado mantiene una lista de permitidos del remitente: solo los ID que ha agregado pueden enviar mensajes, y todos los demás se descartan silenciosamente.
Telegram y Discord inician la lista mediante emparejamiento:
- Encuentre su bot en Telegram o Discord y envíele cualquier mensaje
- El bot responde con un código de emparejamiento
- En su sesión de Claude Code, apruebe el código cuando se le solicite
- Su ID de remitente se agrega a la lista de permitidos
iMessage funciona de manera diferente: enviarse un mensaje a sí mismo evita la puerta automáticamente, y agrega otros contactos por identificador con /imessage:access allow.
Además de eso, controla qué servidores están habilitados en cada sesión con --channels, y su organización controla la disponibilidad con channelsEnabled en planes de Team y Enterprise de claude.ai y en organizaciones de Console que implementan configuración administrada.
Estar en .mcp.json no es suficiente para enviar mensajes: un servidor también tiene que estar nombrado en --channels.
La lista de permitidos también controla la retransmisión de permisos si el channel la declara. Cualquiera que pueda responder a través del channel puede aprobar o denegar el uso de herramientas en su sesión, por lo que solo agregue remitentes de lista de permitidos en los que confíe con esa autoridad.
Controles empresariales
Los administradores controlan la disponibilidad a través de dos configuraciones administradas que los usuarios no pueden anular. El valor predeterminado depende de cómo se autentique:
- claude.ai Team y Enterprise: los channels se bloquean hasta que un administrador los habilita.
- Anthropic Console con autenticación de clave API: los channels se permiten de forma predeterminada. Solo necesita esta configuración si su organización implementa configuración administrada.
En todos los casos, ningún channel se ejecuta hasta que un usuario lo opte por la sesión con --channels.
| Configuración | Propósito | Cuando no está configurado |
|---|---|---|
channelsEnabled |
Interruptor maestro. Debe ser true para que cualquier channel entregue mensajes. Establézcalo a través del botón de alternancia de la consola de administrador de claude.ai o directamente en la configuración administrada. Bloquea todos los channels incluida la bandera de desarrollo cuando está desactivado. |
claude.ai Team y Enterprise: channels bloqueados. Console: channels permitidos a menos que su organización implemente configuración administrada, en cuyo caso los channels se bloquean hasta que se establezca esta clave |
allowedChannelPlugins |
Qué plugins pueden registrarse una vez que los channels están habilitados. Reemplaza la lista mantenida por Anthropic cuando se establece. Solo se aplica cuando channelsEnabled es true. |
Se aplica la lista predeterminada de Anthropic |
Los usuarios de Pro y Max sin una organización omiten estas comprobaciones por completo: los channels están disponibles y los usuarios optan por participar por sesión con --channels.
Habilitar channels para su organización
Los administradores pueden habilitar channels desde claude.ai → Configuración de administrador → Claude Code → Channels, o estableciendo channelsEnabled en true en la configuración administrada.
Una vez habilitado, los usuarios de su organización pueden usar --channels para optar por servidores de channel en sesiones individuales. Si la configuración está deshabilitada o no está establecida, el servidor MCP aún se conecta y sus herramientas funcionan, pero los mensajes de channel no llegarán. Un mensaje de advertencia de inicio le dice al usuario que un administrador habilite la configuración.
Restringir qué plugins de channel pueden ejecutarse
De forma predeterminada, cualquier plugin en la lista de permitidos mantenida por Anthropic puede registrarse como un channel. Los administradores en planes de Team y Enterprise pueden reemplazar esa lista de permitidos con la suya propia estableciendo allowedChannelPlugins en la configuración administrada. Úselo para restringir qué plugins oficiales están permitidos, aprobar channels de su propio marketplace interno, o ambos. Cada entrada nombra un plugin y el marketplace del que proviene:
{
"channelsEnabled": true,
"allowedChannelPlugins": [
{ "marketplace": "claude-plugins-official", "plugin": "telegram" },
{ "marketplace": "claude-plugins-official", "plugin": "discord" },
{ "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
]
}
Cuando allowedChannelPlugins está establecido, reemplaza completamente la lista de permitidos de Anthropic: solo los plugins listados pueden registrarse. Déjelo sin establecer para volver a la lista de permitidos predeterminada de Anthropic. Una matriz vacía bloquea todos los plugins de channel de la lista de permitidos, pero --dangerously-load-development-channels aún puede omitirlo para pruebas locales. Para bloquear channels completamente incluida la bandera de desarrollo, déjelo sin establecer en su lugar.
Esta configuración requiere channelsEnabled: true. Si un usuario pasa un plugin a --channels que no está en su lista, Claude Code se inicia normalmente pero el channel no se registra, y el aviso de inicio explica que el plugin no está en la lista aprobada de la organización.
Vista previa de investigación
Los channels son una característica de vista previa de investigación. La disponibilidad se está implementando gradualmente, y la sintaxis de la bandera --channels y el contrato de protocolo pueden cambiar según los comentarios.
Durante la vista previa, --channels solo acepta plugins de una lista de permitidos mantenida por Anthropic, o de la lista de permitidos de su organización si un administrador ha establecido allowedChannelPlugins. Los plugins de channel en claude-plugins-official son el conjunto aprobado predeterminado. Si pasa algo que no está en la lista de permitidos efectiva, Claude Code se inicia normalmente pero el channel no se registra, y el aviso de inicio le dice por qué.
Para probar un channel que está creando, use --dangerously-load-development-channels. Vea Probar durante la vista previa de investigación para obtener información sobre cómo probar channels personalizados que cree.
Informe de problemas o comentarios en el repositorio de GitHub de Claude Code.
Cómo se comparan los channels
Varias características de Claude Code se conectan a sistemas fuera de la terminal, cada una adecuada para un tipo diferente de trabajo:
| Característica | Qué hace | Bueno para |
|---|---|---|
| Claude Code en la web | Ejecuta tareas en una nueva sandbox en la nube, clonada desde GitHub | Delegar trabajo asincrónico independiente que verifica más tarde |
| Claude en Slack | Genera una sesión web desde una mención @Claude en un canal o hilo |
Iniciar tareas directamente desde el contexto de conversación del equipo |
| Servidor MCP estándar | Claude lo consulta durante una tarea; nada se envía a la sesión | Dar a Claude acceso bajo demanda para leer o consultar un sistema |
| Control Remoto | Conduce su sesión local desde claude.ai o la aplicación móvil de Claude | Dirigir una sesión en progreso mientras está fuera de su escritorio |
Los channels cierran la brecha en esa lista al enviar eventos de fuentes que no son de Claude a su sesión local ya en ejecución.
- Puente de chat: pregúntele a Claude algo desde su teléfono a través de Telegram, Discord o iMessage, y la respuesta regresa en el mismo chat mientras el trabajo se ejecuta en su máquina contra sus archivos reales.
- Receptor de webhook: un webhook de CI, su rastreador de errores, una canalización de implementación u otro servicio externo llega donde Claude ya tiene sus archivos abiertos y recuerda lo que estaba depurando.
Próximos pasos
Una vez que tenga un channel en ejecución, explore estas características relacionadas:
- Crear su propio channel para sistemas que aún no tienen plugins
- Control Remoto para conducir una sesión local desde su teléfono en lugar de reenviar eventos a ella
- Tareas programadas para sondear en un temporizador en lugar de reaccionar a eventos enviados