Puedes delegar trabajo de desarrollo en las sesiones en la nube de Claude Code sin abrir una nueva vía de entrada a producción, siempre que la nube solo pueda tocar un repositorio de GitHub y tu servidor de producción se limite a hacer pull de ese repositorio. Llegar hasta ahí, sin embargo, me costó más de un tropiezo. Este artículo es mi registro (soy quien lleva este sitio) de cuando empecé a usar las sesiones en la nube en otro proyecto de desarrollo el 4 de octubre de 2026, contrastado de nuevo con el texto original de la documentación oficial.

Lo que la nube puede tocar

Un solo repositorio de GitHub

Instala la Claude GitHub App con «Only select repositories» y dale acceso solo a este repositorio.

Servidor de producción

Solo pull

Producción descarga el código con una clave de solo lectura. Ni la nube ni GitHub reciben ninguna clave de producción.

Entorno en la nube

Uno nuevo por proyecto

Cualquiera que use un entorno puede leer sus variables de entorno. No guardes secretos en ellas.

Fuentes: Use Claude Code in the cloud y Configure cloud environments. Consultadas el 4 de octubre de 2026. Para saber cómo funciona, cómo empezar y cuánto cuesta, consulta «¿Qué son las sesiones en la nube de Claude Code?».

1. Una configuración que protege producción: producción solo hace pull

Lo que más me preocupaba era que pasar por GitHub añadiera otra vía de entrada al servidor de producción. Me decidí por la configuración siguiente (es una elección mía, no una recomendación oficial). Las flechas indican en qué dirección se obtienen los datos.

  • Sesión en la nube Escribe código y hace push de ramas (no puede entrar en producción)
  • →push
  • Repositorio privado de GitHub El único repositorio en el que está instalada la App
  • ←fetch
  • Servidor de producción Hace pull con una deploy key de solo lectura; el despliegue lo lanza una persona
ClaveEn producción va una clave de solo lectura dedicada a ese repositorio (una deploy key). Según la documentación de GitHub, una deploy key da acceso a un único repositorio y es de solo lectura por defecto.
Lo que no hagoNo le doy a GitHub Actions una clave de producción para desplegar automáticamente. Eso añadiría otra vía de entrada a producción.
DespliegueLo lanza una persona a mano. Un script en producción descarga el código más reciente, lo compila y lo pone en marcha. Si falla, la versión en ejecución se mantiene.

Al principio intenté reutilizar la clave de otro repositorio y GitHub la rechazó con «Key is already in use». Según la documentación de GitHub, este mensaje aparece cuando la clave ya está registrada en otra cuenta u otro repositorio. Como cada repositorio tiene su propia clave, si una clave se filtra solo queda expuesto ese repositorio.

2. Qué se envía si empiezas sin GitHub

Normalmente guardo el código en un repositorio git de mi propio servidor, así que al principio me planteé usar las sesiones en la nube sin GitHub. Según la documentación oficial, si ejecutas claude --cloud "task description" en, por ejemplo, un repositorio sin remoto, tu repositorio local se empaqueta en un único bundle y se envía a la nube. Esto es lo que se envía.

HistorialEl historial de todas las ramas. Un archivo que confirmaste una vez y borraste después también se envía, mientras siga en el historial.
Cambios sin confirmarLos cambios sin confirmar en archivos que git rastrea.
No se envíaLos archivos que git no rastrea (haz git add si los necesitas).

macOS, Linux, WSL

Los nombres con pinta de secreto se quedan en local

En archivos con nombres como .env, *.tfvars, id_rsa o *.pem, los cambios sin confirmar se quedan en tu equipo en lugar de enviarse.

Windows (sin WSL)

Se envía sea cual sea el nombre

Los cambios sin confirmar en archivos rastreados se envían tal cual. Antes de empezar, guarda con stash o revierte los cambios que no quieras enviar.

Los casos de riesgo son cuando rastreas con git un archivo que contiene secretos y lo has modificado y cuando confirmaste secretos en algún momento del pasado. Un .env excluido por .gitignore ni siquiera se envía.

Una cosa más: según la documentación oficial, una sesión creada a partir de un bundle solo puede hacer push a «repositories your GitHub connection has push access to» (repositorios a los que tu conexión de GitHub tiene acceso de push). No encontré en la documentación ninguna forma de devolver los resultados directamente a un repositorio propio que no esté en GitHub. Después de llegar a redactar un documento de procedimiento, me rendí y creé un repositorio privado en GitHub.

3. Cinco puntos en los que me atasqué de verdad

Estos son los tropiezos que tuve desde que creé el repositorio privado en GitHub hasta que pude empezar de verdad, cada uno ordenado como síntoma, causa y solución.

1) El repositorio no aparece en la lista

SíntomaEl repositorio que acababa de crear no estaba en la lista. Solo aparecían repositorios de prueba de otra cuenta que había usado antes.
CausaLa cuenta de GitHub conectada a claude.ai no era la que uso normalmente. Había conectado otra cuenta tiempo atrás y lo había olvidado.
SoluciónDesconecté GitHub en claude.ai/customize/connectors, volví a iniciar sesión con la cuenta correcta en el navegador y conecté de nuevo. La documentación oficial indica que al desconectar se eliminan las credenciales de GitHub que usan las sesiones en la nube.

2) En cuántos repositorios instalar la GitHub App

SíntomaA mitad de la conexión te pregunta en qué alcance instalar la Claude GitHub App. Si eliges «All repositories», se instala en todos los repositorios de esa cuenta u organización.
CausaMi cuenta también pertenece a la organización del proyecto de un cliente, y no quería que Claude tocara nada de ahí.
SoluciónLa instalé solo en la organización de mi propia empresa y, con «Only select repositories», elegí únicamente este repositorio. En algunas organizaciones, la instalación tiene que aprobarla un propietario de la organización.

3) Aparecen repositorios de organizaciones sin la App

SíntomaIncluso después de acotar el alcance, aparecían en la lista varios repositorios de otra organización.
CausaTodos eran repositorios públicos. Según la tabla de la documentación oficial, conectar mediante la GitHub App da acceso a «all public repositories, plus private repositories where the App is installed» (todos los repositorios públicos, más los privados en los que está instalada la App).
SoluciónNo hace falta solucionar nada. Los repositorios públicos ya los puede leer cualquiera, así que no se expone nada nuevo. Los privados solo se pueden usar donde está instalada la App.

4) Seguía ahí un entorno en la nube antiguo

SíntomaEntre mis entornos en la nube (configuraciones guardadas con los ajustes de acceso a la red, las variables de entorno y un script de configuración) seguía uno que había creado para otro proyecto.
CausaSegún la documentación oficial, cualquiera que use un entorno puede leer sus variables de entorno y su script de configuración. Si lo reutilizas, los valores antiguos también quedan visibles desde el nuevo proyecto.
SoluciónCreé un entorno nuevo para este proyecto y dejé vacías sus variables de entorno. El acceso a la red se quedó en el valor por defecto, «Trusted». Si necesitas una clave de API, en Pro y Max puedes registrarla en «API credentials» en lugar de en una variable de entorno, y la sesión no puede leer el valor de la clave (todavía no está disponible en Team ni en Enterprise).

5) Intenté que leyera un archivo local

SíntomaEstaba a punto de escribir «lee el documento de procedimiento de mi carpeta local» en la primera instrucción.
CausaUna sesión en la nube no ve los archivos de tu PC. La tabla comparativa de la documentación oficial también dice que las sesiones en la nube no usan tu configuración local, sino «only the repository» (solo el repositorio).
SoluciónPuse en el primer mensaje las reglas del proyecto, los requisitos de seguridad y las normas básicas de producción, y adjunté la especificación. Las reglas que reutilices puedes dejarlas en el CLAUDE.md del repositorio y confirmarlas, para no tener que escribirlas cada vez.

4. Cómo cambian los modos de permisos en la nube

Justo antes de enviar, me di cuenta de que el modo de permisos estaba en «Accept edits». Por el nombre parece el que más avanza por su cuenta, pero según la documentación oficial, Accept edits en la nube equivale al modo por defecto (Manual) de Claude Code en local. En la nube, las ediciones de archivos están aprobadas de antemano en todos los modos, así que el modo por defecto simplemente aparece con este nombre.

Accept edits

Se detiene en los comandos

Las ediciones de archivos pasan automáticamente. Comandos como npm install, las compilaciones y git push esperan tu aprobación cada vez.

Plan

Primero planifica

Antes de cambiar nada, redacta y te muestra un plan de lo que va a hacer.

Auto

Sigue adelante por su cuenta

En lugar de pedir aprobación, un clasificador (un mecanismo de control de seguridad) revisa cada acción y continúa. Solo aparece si tu organización lo permite y el modelo seleccionado lo admite.

Quería que siguiera trabajando sin mí, así que cambié a Auto. Ten en cuenta que en la nube no puedes elegir el modo que se salta todas las comprobaciones (bypass permissions), y se ignora aunque esté configurado en el archivo de ajustes del repositorio. Para una comparación detallada de cada modo, consulta «Modos de permisos de Claude Code».

5. Lo que costó de verdad: 226 $ con una sola instrucción

Con todo eso preparado, ejecuté una sesión en la nube con el crédito por tiempo limitado del plan Max (250 $). En el primer mensaje le pasé el documento de diseño y las instrucciones, con el modo de permisos en Auto. Después de eso, no le hablé ni una sola vez. A mitad del trabajo miré la pantalla de uso, me sorprendió lo rápido que se estaba gastando y le dije que parara. Cuando se detuvo, me quedaban 24 $ de crédito. Si no lo hubiera parado, se habría gastado los 250 $ enteros.

226 $

Crédito usado (de 250 $, quedaban 24 $)

676,7k

Contexto al detenerlo (68 % de 1M)

86 %

Límite semanal del plan usado (todos los modelos)

Fuente: mi pantalla de uso de Claude Code (4 de octubre de 2026, plan Max 20x). El 86 % del límite semanal incluye el uso fuera de la nube.

Con una sola instrucción, este es el trabajo que había hecho la nube cuando la detuve (según mi registro de trabajo).

BaseUna base de producto completa para una aplicación web (diseño, cambio entre japonés e inglés, formulario de contacto, notificaciones de errores, sitemap, funcionamiento sin conexión y más).
Funciones41 herramientas que se ejecutan en el navegador (texto, imágenes, PDF, hojas de cálculo y más).
Pruebas695 pruebas unitarias y 142 pruebas de interfaz. Todas superadas.
OtrosVerificación de la compilación con Docker, configuración de CI, corrección de 3 errores relacionados con producción y un documento de traspaso.

Por qué se gasta tan rápido

El coste no depende de cuántas veces le hablas, sino de cuántas veces Claude llama al modelo y cuánto contexto lee en cada llamada. Cuando trabaja de forma autónoma, cada lectura de archivo, cada escritura y cada ejecución de pruebas genera una llamada, así que puede llegar a cientos o miles de llamadas sin ninguna conversación. La documentación oficial (Manage costs effectively) también indica que el coste crece con el tamaño del contexto.

Cada llamada vuelve a leer todo el contexto acumulado. Aunque haya caché, las lecturas no son gratis: al precio de lectura de caché de Opus 5.5 (0,20 $ por millón de tokens), leer 500 000 tokens una vez cuesta unos 0,10 $. Repítelo 1000 veces y son unos 100 $ (es un ejemplo que calculé a partir del precio unitario; no he verificado el número real de llamadas ni el desglose por modelo de esta sesión). El código y las pruebas que escribe se cuentan aparte, al precio de salida.

Por lo que pude encontrar en la documentación oficial, no hay ningún ajuste para poner un tope al gasto de crédito (--max-budget-usd solo se aplica a ejecuciones no interactivas, y el límite de gasto mensual es para los créditos de uso de pago por uso). La única forma de fijar un punto de parada es escribirlo en las instrucciones o detenerlo tú. Además, cuando se acaba el crédito, las sesiones en la nube pasan a consumir el límite semanal de tu plan, igual que el uso en local. Si lanzas un trabajo del mismo tamaño cuando te queda poco límite semanal, lo alcanzarás, también en Claude Code en local.

El desglose: relecturas y subagentes

Después de detenerlo, abrí el desglose detallado en la pantalla de uso (estas cifras cubren toda la sesión, incluido el resumen que le pedí que escribiera tras detenerlo).

8 h 33 min

Tiempo que el modelo estuvo trabajando (yo intervine 2 min 24 s)

99 %

Proporción en Opus (Sonnet 1 %)

63 %

Proporción debida a subagentes (general-purpose 34 %, Agent 29 %)

Fuente: la vista de sesión de mi pantalla de uso de Claude Code (4 de octubre de 2026). Coste mostrado: 231,09 $.

Lecturas de caché242,5 millones de tokens. Es la relectura de la conversación acumulada, y supone casi todos los tokens. Tasa de acierto de caché: 99 %.
Escrituras de caché1,4 millones de tokens.
Entrada y salida1200 tokens de entrada y 10 700 tokens de salida (tal como aparecen en la fila de Opus 5.5 de la pantalla).
Consejo de la pantallaEn resumen: cada subagente hace sus propias solicitudes; plantéate usar un modelo más barato para los subagentes sencillos o ajustar mejor sus prompts.

Yo solo intervine 2 minutos y 24 segundos; durante las más de 8 horas restantes, Claude trabajó por su cuenta. Todo ese tiempo, la conversación principal en Opus y los subagentes, también en Opus, estuvieron releyendo una y otra vez una conversación cada vez más larga. Cuando le pedí a la sesión en la nube que hiciera el recuento del desglose, informó de que terminar una herramienta le llevaba unas 30 acciones a un subagente de Sonnet y entre 130 y 230 acciones a un subagente de Opus (es el recuento de la propia sesión; no lo comprobé uno por uno).

El coste mostrado en la pantalla (231,09 $) era casi igual a lo que había bajado el crédito cuando abrí esa pantalla (de 250 $ a 18 $, es decir, 232 $). Al detener la sesión me quedaban 24 $; abrí esta pantalla después, así que para entonces el saldo había bajado un poco más. Según la documentación oficial, el coste de esta pantalla es una estimación basada en el número de tokens multiplicado por los precios de tarifa. Así que parece razonable suponer que el crédito se descuenta a los precios de tarifa de la API (la documentación oficial no lo dice explícitamente).

Si no especificas un modelo, los subagentes usan el mismo modelo que la conversación principal (documentación oficial: «Create custom subagents»). Con Opus como modelo principal, incluso el trabajo más mecánico acaba ejecutándose en Opus.

Formas de reducir el coste (de mayor a menor impacto)

  • 1. Ejecuta los subagentes con Sonnet Escribe «run subagents with model: sonnet» en tus instrucciones. También puedes cambiar el valor por defecto con la variable de entorno CLAUDE_CODE_SUBAGENT_MODEL (no es un secreto, así que no pasa nada por ponerla en el entorno).
  • 2. Mantén cortas las conversaciones (/compact o una sesión nueva) Cuanto más corta es la conversación, más barata sale cada acción. Si sigues con el mismo tema, resumir con /compact la acorta sin cambiar de sesión (puedes decirle qué conservar, por ejemplo «conserva los resultados de las pruebas»). Cuando cambies de tema, o cuando retomes el trabajo tras una pausa larga, empieza una sesión nueva. Si le pides que vaya escribiendo el progreso en un documento de traspaso, no se pierde nada al dividir el trabajo.
  • 3. Fija de antemano un punto de parada Escribe algo como «detente e informa cuando termines la base» o «detente e informa al llegar a unos 50 $» (no hay ajuste de tope de gasto, así que usa las instrucciones para poner límites).
  • 4. Delega también la integración Deja que los subagentes se encarguen de las pruebas, los commits y los push, para que haya menos trabajo en la conversación principal, que es larga y cara.
  • 5. Aligera la verificación Ejecuta las pruebas de interfaz solo de las herramientas recién creadas, y la batería completa una vez antes de fusionar. Haz capturas de pantalla una vez por herramienta en ancho de escritorio y otra en ancho de móvil.
  • 6. Detén enseguida el trabajo innecesario Un subagente detenido a medias no deja ningún resultado, y lo que haya consumido no se reembolsa.

Como referencia, ejecuta de 2 a 3 en paralelo. Según la propia valoración de la sesión en la nube, reducir el paralelismo solo alarga el tiempo sin cambiar mucho el coste total. Más que el número de tareas en paralelo, lo que importa es mantener corta cada conversación y concreta cada instrucción.

A partir de la documentación oficial, así es como decido entre /compact y una sesión nueva. /compact vuelve a leer toda la conversación para generar un resumen, pero mientras la caché siga activa, gran parte de esa relectura sale de la caché, así que no es tan caro como sugeriría el tamaño de la conversación («Prompt caching»). Tras un periodo largo de inactividad, cuando la caché ya ha caducado, se relee todo sin caché, y eso sale caro. Una sesión nueva, en cambio, no cuesta nada, pero no conserva lo anterior («Manage costs effectively»). Los resúmenes pueden perder detalles, así que es más seguro dejar antes por escrito en un documento lo que quieras conservar. Ten en cuenta que en las sesiones en la nube /compact funciona pero /clear no; la sesión nueva se empieza desde la barra lateral («Claude Code on the web»).

Este es el tipo de mensaje que pego al principio de la siguiente sesión (sin el nombre del proyecto).

Retoma el trabajo donde lo dejaste.
Lee CLAUDE.md → docs/HANDOFF.md → docs/TODO.md y sigue las reglas.
Tema de esta sesión: XX
Ejecuta los subagentes con model: sonnet, como máximo 2-3 en paralelo.
Detente e informa al llegar a un presupuesto de XX $. Informa en español.

Para el resumen del contexto en las sesiones en la nube, la propia nube define la variable de entorno CLAUDE_AUTOCOMPACT_PCT_OVERRIDE, así que añadir esta variable a tu entorno no tiene efecto. Para que el resumen se active antes, usa CLAUDE_CODE_AUTO_COMPACT_WINDOW o /autocompact, como recomienda la documentación oficial.

6. Lista de comprobación antes de empezar

  • Cuenta de GitHub ¿La cuenta conectada a claude.ai es la que quieres usar?
  • Alcance de la App ¿La instalaste solo en los repositorios que necesitas, con «Only select repositories»?
  • Historial ¿Siguen en el historial del repositorio secretos que confirmaste en el pasado?
  • Entorno ¿Creaste uno nuevo para este proyecto? ¿Mantienes los secretos fuera de sus variables de entorno?
  • Producción ¿Has evitado crear cualquier vía desde la nube o GitHub hacia producción (producción hace pull)?
  • Reglas ¿Pusiste las reglas que reutilizas en el CLAUDE.md del repositorio?
  • Modo de permisos ¿Elegiste Auto para dejarlo trabajar, o Accept edits para revisar cada paso?

Resumen

Usar las sesiones en la nube protegiendo producción se reduce a tres puntos: la nube solo toca un repositorio de GitHub, producción hace pull de él con una clave de solo lectura y el despliegue lo lanza una persona. Puedes empezar sin GitHub, pero el repositorio se envía con el historial de todas las ramas y, en Windows, los cambios sin confirmar en archivos rastreados se envían sea cual sea su nombre.

Dónde me atasqué de verdad: había otra cuenta de GitHub conectada, el alcance de la App, un entorno antiguo que seguía ahí, los archivos locales invisibles y «Accept edits» deteniéndose en cada comando. La lista de comprobación de arriba evita todos estos problemas.

En cuanto al coste, una sola instrucción ejecutada de forma autónoma consumió 226 $ del crédito por tiempo limitado antes de que le dijera que parara a mitad. El coste no depende de cuántas veces le hablas, sino del número de llamadas y de la longitud del contexto. En el desglose, la mayor parte venía de releer la conversación y de subagentes que se ejecutaban con el mismo modelo que la conversación principal. Pon los subagentes en Sonnet, mantén cortas las conversaciones con /compact o una sesión nueva, y escribe un punto de parada en tus instrucciones.

Preguntas frecuentes

P. ¿Puedo probar las sesiones en la nube sin GitHub?

R. Sí. claude --cloud "task description" empaqueta y envía tu repositorio local. Debe ocupar menos de 100 MB y tener al menos un commit. Se envía el historial de todas las ramas, y la documentación oficial no describe ninguna forma de devolver los resultados directamente a un repositorio que no esté en GitHub.

P. En la lista aparecen repositorios de organizaciones en las que no instalé la App. ¿Se está filtrando algo?

R. No, si son repositorios públicos. Cuando conectas mediante la GitHub App, las sesiones en la nube pueden usar todos los repositorios públicos, así que aparecen como opciones. Los privados solo se pueden usar donde está instalada la App.

P. ¿Puedo poner una clave de API en una variable de entorno?

R. No lo recomiendo. La documentación oficial advierte de que cualquiera que use un entorno puede leer sus variables de entorno, y desaconseja guardar secretos en ellas. En Pro y Max, puedes registrarla en «API credentials», cuyo valor la sesión no puede leer.

P. Elegí «Accept edits», pero se detiene en cada comando.

R. Es lo previsto. En la nube, las ediciones están permitidas en todos los modos, así que el modo por defecto aparece con el nombre «Accept edits». Para que los comandos se ejecuten sin aprobación, elige Auto (solo aparece si tu organización lo permite y el modelo lo admite).

P. ¿Por qué baja tanto el crédito si ni siquiera le estoy hablando?

R. Porque el coste no lo determina cuántas veces hablas, sino cuántas veces Claude llama al modelo y cuánto contexto lee en cada llamada. Cuando trabaja de forma autónoma, cada lectura de archivo, cada escritura y cada ejecución de pruebas genera una llamada, y el contexto no deja de crecer. En mi caso, una sola instrucción consumió 226 $ antes de que la detuviera a mitad (sección 5).

P. ¿El crédito por tiempo limitado también se puede usar así?

R. Sí. El crédito de Pro y Max (Pro 100 $, Max 250 $) se aplica automáticamente al uso de las sesiones en la nube y, mientras dure, ese uso no cuenta para los límites de uso de tu plan. Puedes reclamarlo hasta el 7 de octubre (hora del Pacífico de EE. UU.) y caduca al final del 4 de noviembre (las 16:59 del 5 de noviembre, hora de Japón). No se puede usar en Projects, Routines, Remote Control, etc. Para más detalles, consulta el artículo oficial de soporte y «¿Qué son las sesiones en la nube de Claude Code?».

Fuentes

Todas las especificaciones oficiales se contrastaron con el texto original el 4 de octubre de 2026. El registro de la configuración procede de una única ejecución en un único proyecto mío, y lo que muestran las pantallas puede cambiar según la versión y con el tiempo.