Ir al contenido principal

Claude Code Auto Mode y Channels: crea código desde cualquier lugar

Aprende a combinar Auto Mode de Claude Code con Channels de Telegram para ejecutar un bucle autónomo de escribir-probar-depurar desde tu móvil.
Actualizado 21 abr 2026  · 14 min leer

Imagina que vas en tren. Tu portátil en casa está con un refactor de 30 minutos. Te vibra el móvil: Telegram muestra un resumen de tu propio bot de Claude Code. Los tests pasan, esto es lo que ha cambiado y esto es lo que ha fallado. Escribes la siguiente instrucción, bloqueas el teléfono y sigues leyendo.

Dos funciones de Claude Code hacen que ese ciclo funcione. Auto Mode elimina las solicitudes de aprobación que, de otro modo, frenarían la sesión. Channels reenvía mensajes desde Telegram, Discord o iMessage a la sesión en vivo como si los hubieras tecleado tú.

Este tutorial te guía para configurarlo todo desde cero y ejecutar un bucle de escribir-probar-depurar desde tu móvil.

Si eres nuevo en los LLM de Anthropic, te recomiendo hacer antes nuestro curso Introduction to Claude Models.

Requisitos previos

Para seguir este tutorial, necesitarás:

  • Claude Code v2.1.83 o posterior (Auto Mode requiere la v2.1.83; Channels necesita la v2.1.80)
  • Bun runtime instalado (todos los plugins de Channels lo requieren; Node y Deno no funcionan)
  • Un plan de Claude en Max, Team o Enterprise, o acceso por API. Auto Mode no está disponible en Pro y no hay ningún add-on que lo active (tampoco está disponible mediante paquetes de uso extra)
  • Una cuenta de Telegram en tu teléfono
  • Python 3.10 o posterior en la máquina host
  • Una máquina que pueda permanecer activa mientras estás fuera (portátil con la tapa abierta, equipo de sobremesa encendido o un servidor)

¿Qué es Auto Mode de Claude Code (y por qué combinarlo con Channels)?

Claude Code pide confirmación antes de hacer cualquier cosa que salga del proyecto. Según datos de Anthropic, los usuarios aprueban el 93% de esos avisos. A ese ritmo, los avisos añaden fricción sin aportar seguridad.

Auto Mode sustituye ese patrón con un clasificador. Cada llamada a herramientas pasa por un modelo de Claude distinto (Sonnet 4.6) que revisa la acción y la permite o la bloquea. Las ejecuciones largas sin supervisión dejan de detenerse para pedir aprobación cada treinta segundos.

El clasificador se ejecuta en un modelo diferente del que escribe el código. Un modelo principal comprometido o mal dirigido no puede engañarlo para permitir una llamada peligrosa. Una sonda independiente analiza las salidas de herramientas (contenido de archivos, peticiones web, stdout del shell) en busca de intentos de inyección de prompts antes de que lleguen al contexto de Claude.

Two-layer defense: input probe + transcript classifier around Claude

No todas las llamadas pasan por el clasificador. Las lecturas, búsquedas de texto, navegación por código y ediciones de archivos dentro del directorio del proyecto usan una vía rápida sin revisión. Los comandos de shell, las peticiones web, cualquier acceso a archivos fuera del proyecto y cualquier subagente lanzado sí van al clasificador.

Three-tier permission flow

Anthropic publicó las cifras en el anuncio de Auto Mode. En 10.000 llamadas reales, el pipeline produjo un 0,4% de falsos positivos. En 52 acciones deliberadamente excesivas, la tasa de falsos negativos fue del 17%. Sustituir --dangerously-skip-permissions por Auto Mode es una clara mejora. Sustituir la revisión humana cuidadosa no lo es: el clasificador falla una de cada seis.

Cuando el clasificador bloquea una llamada, Claude recibe la denegación como resultado de herramienta. Se espera que Claude encuentre una vía más segura, no que la esquive. Tras tres bloqueos consecutivos o veinte en total, Auto Mode te devuelve el control. Las ejecuciones sin interfaz con claude -p terminan en su lugar.

Auto Mode vs bypassPermissions

Empecé a usar Auto Mode esperando un bypassPermissions más inteligente. Mi queja con bypass era que lo permitía todo: leer archivos .env, editar configs, etc.

Auto Mode soluciona eso. Las operaciones sobre archivos sensibles y las eliminaciones explícitas se niegan por defecto. La forma de permitirlo es nombrar el archivo en el prompt, lo que permite al clasificador autorizar la edición. Es mejor que bypass, que no comprobaba nada de esto.

Lo que me sorprendió de Auto Mode es que es un modo de toma de decisiones, no solo de permisos. Antes encadenaba varias skills de Claude Code seguidas, un pipeline para implementar o depurar una funcionalidad. Con bypassPermissions, Claude se detenía entre etapas y pedía permiso para continuar.

Me gustaba ese patrón: la pausa era donde revisaba el trabajo o le decía a Claude que siguiera. En Auto Mode, Claude decide por su cuenta si tiene suficiente contexto para pasar a la siguiente fase. Los puntos de control de revisión a los que estaba acostumbrado desaparecen. O agradecerás la mayor velocidad o echarás de menos las pausas con humano en el bucle.

La otra sorpresa fue en sentido contrario. Con bypassPermissions, si le pedía a Claude que editara su propia config o skills, se negaba. Con o sin bypass, me preguntaba igual. En Auto Mode, Claude tiene más libertad ahí: los archivos de skills, los ajustes en .claude/ y su propia configuración se pueden editar sin pedir permiso. Es útil para skills auto-mantenidas, pero un riesgo si esperas que Claude no toque su propia config.

Auto Mode vs otros modos de permiso

Claude Code trae cuatro modos, en un espectro entre "aprobar todo" y "no aprobar nada". La tabla siguiente es el resumen. Puedes leer la documentación para la versión extendida.

Modo

Qué se ejecuta sin preguntar

Ideal para

Perfil de riesgo

default

Solo lecturas

Trabajo sensible, revisando cada acción

Mínimo. Cada escritura, shell y llamada de red pide permiso

acceptEdits

Lecturas, ediciones de archivos, comandos comunes del sistema de archivos (mkdir, mv, cp)

Iterar sobre código que revisarás después

Bajo. Shell y red siguen pidiendo

plan

Solo lecturas; Claude propone un plan pero no ejecuta nada

Explorar una base de código, revisar cambios propuestos antes de escribir

Mínimo. Nada se ejecuta sin cambiar de modo

auto

Todo, con comprobaciones del clasificador en segundo plano

Tareas largas, trabajo asíncrono y remoto, reducir fatiga de prompts

Moderado. 0,4% falsos positivos, 17% falsos negativos en acciones excesivas

dontAsk

Solo herramientas preaprobadas explícitamente vía permissions.allow; todo lo demás se deniega automáticamente

Pipelines de CI bloqueados y scripts automatizados donde el set de herramientas permitido se conoce de antemano

Bajo, pero listas de permitidos mal configuradas pueden bloquear en silencio operaciones legítimas

bypassPermissions

Todo excepto rutas protegidas

Solo contenedores y VMs aislados

Máximo. Sin clasificador, sin red de seguridad

Mi recomendación: usa default para repos sensibles donde cada escritura necesita una segunda mirada, auto para tus propios proyectos, y bypassPermissions solo dentro de un contenedor desechable con el radio de impacto acotado.

Cómo encajan los channels

Los channels de Claude Code son servidores MCP que envían eventos a tu sesión en ejecución. Usaremos el plugin de Telegram; los de Discord e iMessage funcionan igual. Escribes al bot por DM, el plugin reenvía el mensaje a la sesión y Claude trabaja sobre tus archivos locales. Al final del turno llega la respuesta por el bot.

Claude solo te escribe al final del turno. No hay streaming intermedio ni vista en vivo de lo que hace en el host. Lo que Claude ejecute durante el turno, se ejecuta. Te enteras cuando llega el resumen. Por eso el modo de permisos importa más a través de un channel que en el terminal.

Channels puede reenviar avisos de permisos al móvil en default o acceptEdits. Respondes yes o no desde Telegram. Para unos pocos avisos, bien. En una sesión real de build-test-debug llegan decenas, y dar a aceptar en cada una cansa rápido.

El extremo opuesto es peor. --dangerously-skip-permissions quita los avisos, pero por un channel pierdes la vista en vivo del terminal. Nada te avisa de que se ejecutó un comando arriesgado. En el terminal, bypass al menos te deja ver el stream y pulsar Esc. En Telegram, escribes un prompt y te enteras de lo que pasó al final del turno.

Auto Mode está entre ambos. Sin spam de avisos. El clasificador bloquea por sí mismo los movimientos claramente peligrosos. El mensaje de fin de turno te da un informe revisable de lo que se ejecutó. Para trabajo remoto, es el equilibrio que mejor funciona.

El proyecto de demostración

He creado una pequeña demo llamada libcache. Es una CLI en Python que obtiene metadatos de libros de la API de OpenLibrary y guarda en caché las respuestas en ~/.cache/libcache/.

La pila es deliberadamente sencilla: uv gestiona dependencias, typer maneja la CLI, httpx hace las peticiones HTTP y pytest ejecuta los tests.

Tres cosas de libcache importan.

  1. Es multiarchivo, así que construirlo desde cero en modo default apilaría una docena de avisos de permiso.

  2. Tiene un límite HTTP, dando al clasificador una decisión real que tomar.

  3. Acaba lo bastante rápido como para que todo el andamiaje quepa en un turno de Telegram.

Configurar Auto Mode y Channels de Telegram

Tres cosas en orden: máquina host despierta, plugin emparejado y Auto Mode activo. Si falla alguna, lo demás no funcionará.

Preparar la máquina host

Claude Code es un proceso local. Cuando la máquina duerme, el proceso deja de recibir eventos. El plugin de Telegram no tiene dónde entregar tus mensajes. Los eventos solo llegan mientras la sesión está abierta.

En macOS, abre otra terminal y ejecuta:

caffeinate -d

La opción -d evita que la pantalla se duerma. En Linux, puedes enmascarar los targets de suspensión:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Se revierte con unmask.

Para algo de más de una tarde, ejecuta la sesión dentro de tmux. Mantiene tu shell viva aunque cierres ventanas o se caiga la conexión SSH. Inicia una sesión nueva:

tmux new -s claude

Lanza Claude dentro, desacopla con Ctrl+B y luego D, y vuelve a acoplar después:

tmux attach -t claude

Una cosa más antes de lanzar. Cualquier CLI que Claude pueda llamar desde Telegram debe estar ya autenticada en el host. Inicios de sesión o autenticaciones interactivas no pueden hacerse desde el móvil. Comprueba gh, la CLI de GitHub que usaremos hoy:

gh auth status

Si no está autenticada, ejecuta gh auth login y completa el flujo en el navegador. Haz lo mismo con cualquier otra CLI a la que quieras que llegue Claude (aws, gcloud, docker, registros de paquetes) para tus otros proyectos.

Instalar y configurar el plugin de Telegram

Instala Bun si aún no lo tienes. En macOS o Linux:

curl -fsSL https://bun.sh/install | bash

En Windows:

powershell -c "irm bun.sh/install.ps1 | iex"

Confirma la instalación:

bun --version

Luego crea el bot de Telegram.

Abre BotFather en Telegram, envía /newbot, elige un nombre visible y un nombre de usuario que termine en bot (algo como libcache_dev_bot). Copia el token que te envíe BotFather.

BotFather new bot creation with token reveal

De vuelta en una sesión de Claude Code, instala el plugin:

/plugin install telegram@claude-plugins-official

Si Claude Code dice que el marketplace no lo tiene, añádelo a mano y reintenta:

/plugin marketplace add anthropics/claude-plugins-official

Cuando termine, recarga los plugins para que aparezcan las herramientas de Telegram:

/reload-plugins

Configura el bot con el token de BotFather:

/telegram:configure <your_bot_token_here>

El token se guarda en ~/.claude/channels/telegram/.env.

/telegram:configure success showing token saved, policy, and empty allowlist

Después de /telegram:configure, cierra por completo Claude Code (pulsa Ctrl+D o escribe /exit) y vuelve a abrirlo. /reload-plugins no siempre muestra el código de emparejamiento en el primer DM.

Reinicia la sesión, abre el bot en Telegram y envía /start. El bot responde con un código de emparejamiento de 6 caracteres.

Telegram chat showing bot pairing instructions and the returned 6-character pairing code

En Claude Code, empareja con el código:

/telegram:access pair <code>

El emparejamiento es simétrico. Ambas partes deben aceptar para que la sesión reciba mensajes.

Telegram 'Paired! Say hi to Claude.' message plus Claude Code terminal confirming the pair

Último paso. Restringe el bot solo a tu cuenta:

/telegram:access policy allowlist

Cualquiera que no esté en la allowlist y escriba al bot será ignorado en silencio, sin que se emita código de emparejamiento.

/telegram:access policy allowlist output showing the access.json diff and Locked down confirmation

Lanzar con Auto Mode y Channels activos

Desde el directorio del proyecto, lanza Claude con ambas opciones:

claude --channels plugin:telegram@claude-plugins-official --permission-mode auto

Una sesión existente puede cambiar a Auto Mode sobre la marcha: pulsa Shift+Tab repetidamente hasta que la barra de estado muestre auto. Para que Auto Mode sea el predeterminado en cada inicio, añade esto a ~/.claude/settings.json:

{ "permissions": { "defaultMode": "auto" } }

Terminal showing claude launched with --channels and --permission-mode auto flags, Auto Mode indicator visible

Al entrar en Auto Mode, Claude Code elimina reglas de allow amplias de settings.json. Bash(*), intérpretes con comodines como Bash(python*) y permisos globales de Agent se eliminan al entrar y se restauran al salir. Reglas estrechas como Bash(pytest) se mantienen sin cambios.

Verifica la configuración. Escríbele cualquier cosa al bot y espera la respuesta. Luego pide a Claude que escriba un archivo pequeño en el proyecto y comprueba que aparece sin aviso. Si ambas cosas funcionan, ya está listo.

Auto Mode y Channels de Claude Code en acción

Veamos cómo arrancarlo desde Telegram en la práctica.

Un prompt, muchas llamadas a herramientas, cero aprobaciones

Envía un prompt inicial desde Telegram. Lo importante es el tipo de tarea: una que acumularía una docena de avisos en modo default. Para libcache, el prompt fue más o menos:

Create a Python CLI that fetches book metadata from OpenLibrary and caches it to disk, use uv for deps, typer for the CLI, httpx for requests, pytest for tests, scaffold the directory and add a README, and when you're done, summarize what you built in under 80 words.

El remate de "resume en menos de 80 palabras" es un pequeño hábito específico del channel. Las respuestas de fin de turno llegan al móvil, y el móvil no es buen sitio para leer salidas kilométricas.

El plugin envía el mensaje del teléfono a la sesión en ejecución en el host. Llega con un banner ← telegram · <sender>: ... en el terminal.

Terminal mid-turn with Telegram message banner and Claude scaffolding files underneath

Las escrituras dentro del proyecto van por la vía rápida y no pasan por el clasificador. La instalación de dependencias, la ejecución inicial de pytest y el git init final sí pasan por el clasificador y se permiten por defecto. Nada se detiene y el turno se ejecuta de principio a fin de una pasada.

Terminal end-of-turn showing summary and elapsed time

En el móvil, el resumen es la única señal durante el turno.

Telegram chat showing pytest trigger prompt and Claude's reply with verbatim test output

Escribir prompts largos en el móvil es un dolor. El dictado por voz resuelve casi todo y los prompts breves y declarativos funcionan bien. "Crea el andamiaje de libcache, OpenLibrary + caché en disco, menos de 80 palabras" basta.

El bucle de iteración: pide, trabaja, responde, repite

Cada iteración sigue el mismo bucle. Un mensaje desde Telegram, un turno de trabajo, un resumen de vuelta. El resumen es la versión de Claude, no el estado real. Pídele a Claude que ejecute los tests y pegue la salida literal:

uv run pytest -v

Pídele que haga cat de un archivo concreto. Pide tamaños o recuentos de líneas, o el historial reciente de commits:

git log --oneline

Auto Mode ejecuta las verificaciones por las mismas vías rápidas que el resto. Cuesta poco pedirlas. El resultado es una afirmación que puedes comprobar desde la pantalla de bloqueo sin ir al portátil.

Phone Telegram chat showing ship-it prompt, reply with repo URL, and GitHub link preview

Un turno más para demostrar que el bucle llega a sistemas externos reales. Desde el móvil:

push libcache to a new public GitHub repo called libcache, clean commit, decent message, send me the URL when it's up.

Claude usa la CLI gh autenticada antes y responde con la URL del repo.

Phone Telegram thread: destructive ask, safety pause, confirmation phrase, auth scope gap, interactive command request, and final completion

Cuando Auto Mode funciona, el ciclo se siente silencioso. La siguiente sección muestra lo que pasa cuando no.

Cuando Auto Mode se planta

Auto Mode te interrumpe de dos formas.

El clasificador bloquea de raíz un pequeño conjunto de patrones:

  • pipes curl | bash

  • Force-push a main

  • Eliminaciones masivas en almacenamiento en la nube.

Más suave y común, el propio Claude se detiene en acciones que reconoce como irreversibles. Ambos casos aparecen igual en el móvil: sin banner rojo ni modal, solo texto normal. Claude nombra la acción, lista los comandos y pide una frase de confirmación concreta antes de continuar.

Una petición destructiva como "borra el proyecto, elimina también el repo de GitHub" dispara la pausa de irreversibilidad. La respuesta detalla los comandos y propone alternativas más seguras: archivar, solo local o solo remoto. Espera una frase que el propio Claude elige, no un sí/no.

Open mode pushing back

La misma captura muestra un comportamiento de segundo orden. A mitad de la eliminación, Claude se topó con un alcance faltante en la CLI gh (el token no tenía delete_repo). En lugar de dejar el trabajo a medias, Claude se detuvo y me pidió ejecutar un comando interactivo en el terminal:

gh auth refresh -h github.com -s delete_repo

Auto Mode no puede manejar flujos de autenticación basados en navegador, y Claude no intentó rodear el alcance faltante.

El historial de la sesión no es consentimiento implícito. Incluso para un repo que Claude creó quince minutos antes en la misma sesión, la pausa se activa al eliminarlo. Se aplica el mismo límite de 3 consecutivos / 20 en total. Interrupciones encadenadas acaban devolviendo el control a la persona.

Dos bugs conocidos a vigilar. A veces los mensajes no se entregan cuando Claude Code está inactivo en el prompt del REPL (issue #48404). Tras una respuesta, el plugin a veces deja de reenviar mensajes nuevos hasta que lo estimulas (issue #36477). Los apaños son mantener un turno en curso o reiniciar la sesión. Aún no hay corrección.

Ajustar las reglas de seguridad de Auto Mode

Para la mayoría del trabajo en tu propio código, los valores por defecto de Auto Mode bastan. Si quieres reforzar rutas concretas o relajar otras, empieza leyendo lo que Anthropic te ha configurado:

claude auto-mode defaults

Eso imprime como JSON las reglas integradas de allow y block. La estructura está pensada para extenderse, no para sustituirse: edita la base, no empieces de cero. Cada regla que quites fuerza al clasificador a decidir, y cada decisión es una opción más de falso negativo.

Auto Mode decision order: allow or deny rules, then read-only or in-project, then classifier, then safer path retry

Añade reglas específicas del proyecto en settings.json bajo la clave permissions. Las autorizaciones estrechas se mantienen en Auto Mode; las amplias se eliminan al entrar. Una regla como Bash(pytest) o Bash(gh pr create *) es lo bastante específica para que el clasificador confíe en tu criterio. En la práctica: un allow estrecho por herramienta que use el proyecto, sin comodines.

Si tu flujo de trabajo dependía de avisos de permiso como compuertas de revisión entre etapas del pipeline, vuelve a traer esos checkpoints explícitamente. Añade reglas ask para los patrones de herramientas o rutas donde quieras que Claude se detenga. O mueve ese flujo a acceptEdits en lugar de auto para mantener el checkpoint de prompts en todo menos en ediciones de archivos dentro del proyecto.

Una función poco explotada: el clasificador trata los límites enunciados en la conversación como señales de bloqueo. Dile a Claude, "no hagas push hasta que lo revise", y bloqueará las acciones que encajen incluso si las reglas por defecto las permitirían. Una alternativa simple a escribir una regla formal para una sola sesión.

Para ver la configuración efectiva después de combinar tu settings.json con los valores por defecto:

claude auto-mode config

Los administradores de Enterprise pueden desactivar la función para toda la organización con permissions.disableAutoMode: 'disable' en los ajustes gestionados.

Conclusión

Auto Mode más Channels convierte Claude Code de una herramienta atada al escritorio en un compañero asíncrono que diriges desde cualquier sitio. El clasificador decide qué llamadas a herramientas pasan. Claude decide cuándo una acción es lo bastante seria como para pausar. Tú decides los prompts, el alcance y las reglas. El terminal es un lugar desde el que puedes trabajar, no el único.

Para profundizar, te recomiendo nuestras guías sobre Claude Code Remote Control, Claude Code Plugins y Claude Code Best Practices.

Claude Code Auto Mode y Channels: preguntas frecuentes

¿Qué es Auto Mode de Claude Code?

Auto Mode es un modo de permisos en Claude Code (v2.1.83+) donde un modelo clasificador independiente (Sonnet 4.6) revisa cada llamada a herramientas y la permite o la bloquea, de modo que las sesiones largas sin supervisión no se queden paradas esperando aprobaciones.

¿En qué se diferencia Auto Mode de --dangerously-skip-permissions?

El modo bypass elimina todas las comprobaciones, así que lecturas de archivos .env, ediciones de configuración y comandos destructivos se ejecutan igual. Auto Mode mantiene un clasificador delante de cada acción relevante, deniega por defecto operaciones sobre archivos sensibles y te devuelve el control cuando bloquea demasiadas llamadas seguidas.

¿Qué son los Channels de Claude Code?

Channels son plugins basados en MCP que reenvían mensajes desde Telegram, Discord o iMessage a tu sesión de Claude Code. Escribes al bot por DM, el plugin envía el mensaje al host y Claude responde al final del turno en el mismo chat.

¿Qué planes de claude.ai incluyen Auto Mode?

Auto Mode está disponible en los planes Max, Team y Enterprise de claude.ai, o vía API. No está disponible en Pro y no hay add-ons ni paquetes de uso extra que lo activen.

¿Es seguro usar Auto Mode en cualquier proyecto?

Es suficientemente seguro para tus propios proyectos, pero no sustituye a la revisión humana. Anthropic reporta un 0,4% de falsos positivos y un 17% de falsos negativos en acciones excesivas, así que una de cada seis acciones arriesgadas puede colarse. Para repos sensibles, mantente en modo default.


Bex Tuychiev's photo
Author
Bex Tuychiev
LinkedIn

Soy un creador de contenidos de ciencia de datos con más de 2 años de experiencia y uno de los mayores seguidores en Medium. Me gusta escribir artículos detallados sobre IA y ML con un estilo un poco sarcastıc, porque hay que hacer algo para que sean un poco menos aburridos. He publicado más de 130 artículos y un curso DataCamp, y estoy preparando otro. Mi contenido ha sido visto por más de 5 millones de ojos, 20.000 de los cuales se convirtieron en seguidores tanto en Medium como en LinkedIn. 

Temas

Los mejores cursos de IA

programa

AI Engineering with LangChain

21 h
From prompt engineering to agentic systems—develop the complete skill set to build AI applications that scale, with an AI tutor by your side.
Ver detallesRight Arrow
Iniciar curso
Ver másRight Arrow