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?».
Contenido
- 1. Una configuración que protege producción: producción solo hace pull
- 2. Qué se envía si empiezas sin GitHub
- 3. Cinco puntos en los que me atasqué de verdad
- 4. Cómo cambian los modos de permisos en la nube
- 5. Lo que costó de verdad: 226 $ con una sola instrucción
- 6. Lista de comprobación antes de empezar
- Preguntas frecuentes
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
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.
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
2) En cuántos repositorios instalar la GitHub App
3) Aparecen repositorios de organizaciones sin la App
4) Seguía ahí un entorno en la nube antiguo
5) Intenté que leyera un archivo local
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).
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 $.
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 (
/compacto 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/compactla 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
- Documentación oficial de Claude Code: Use Claude Code in the cloud (incluida la sección «Send local repositories without GitHub»)
- Documentación oficial de Claude Code: Get started with cloud sessions
- Documentación oficial de Claude Code: Configure cloud environments
- Documentación oficial de Claude Code: Permission modes
- Documentación oficial de Claude Code: Manage costs effectively
- Documentación oficial de Claude Code: Create custom subagents
- Centro de ayuda de Claude: Cloud sessions bonus credit promotion
- GitHub Docs: Managing deploy keys y Error: Key already in use
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.