Claude Code lento: el comando que encontró 70 horas perdidas.
Durante meses trabajé con Claude Code arrastrándose y no entendía por qué. Probé de todo, me convencí de que la herramienta andaba mal y estuve a punto de cambiarme a otra. El problema lo tenía yo, prendido en mi computadora desde abril, y lo encontró un comando de siete letras. Acá está el caso completo con los números reales, y el paso a paso para que revises el tuyo.
Un trabajo de 12 minutos que me llevaba 90
Yo produzco videos cortos con un sistema que corre adentro de Claude Code. Un episodio de 15 segundos es escribir un prompt y renderizar, nada del otro mundo. Me llevaba entre 50 y 90 minutos.
Lo más raro venía después. El mismo trabajo, con las mismas instrucciones y la misma carpeta, en la pestaña Cowork de la misma aplicación salía en 12 minutos.
Con esa información sobre la mesa, cualquiera saca la conclusión que saqué yo. Cowork anda bien y Claude Code anda mal. Me pasé semanas acomodando mi trabajo alrededor de esa idea y llegué a estar decidido a mudar todo mi sistema a otro lado.
Esa conclusión estaba equivocada, y me costó semanas darme cuenta. Cowork no era más rápido. Era la única de las dos que no cargaba con mi problema.
Escribí /doctor y andate a hacer un café
Acá no hay que instalar nada, ni abrir la terminal, ni tocar un solo archivo. Abrí Claude Code, escribí esto en el chat como si fuera un mensaje más, y dale enter.
/doctor
Cuando empezás a escribir la barra te va a aparecer una lista de comandos. Ahí lo elegís y listo. Si en tu versión aparece como /checkup, es exactamente el mismo comando con otro nombre.
Lo que arranca es un chequeo completo de cómo tenés armado tu Claude Code. Estas son las cosas que mira:
-
La instalación.
Si tenés Claude instalado dos veces por caminos distintos, si quedaron restos de instalaciones viejas, y si estás corriendo una versión atrasada.
-
Los archivos de configuración.
Si alguno tiene un error de escritura que hace que Claude lo descarte entero sin avisarte.
-
Lo que tenés prendido sin usar.
Skills, conexiones y plugins que activaste alguna vez y nunca más tocaste. Cada uno ocupa un pedazo de la memoria de trabajo de Claude en cada conversación.
-
Los hooks lentos.
Programas tuyos que se meten en el medio del trabajo de Claude. Acá estaba mi problema, y es el próximo paso.
-
Tus archivos de instrucciones.
Si tu archivo de reglas se llenó de cosas repetidas o de explicaciones que Claude puede sacar leyendo tus propios archivos.
Tarda un rato largo, así que dejalo trabajando. Y quedate tranquilo, que primero te muestra la lista entera de lo que encontró y recién después te pregunta si querés arreglarlo. No toca nada por su cuenta.
claude doctor para escribir en la terminal, y vas a encontrar gente que lo recomienda. Sirve mucho menos. Esa versión solo te muestra el estado de la instalación y no arregla nada. La que hace el trabajo es la que escribís adentro del chat.
Un portero llamando a una oficina vacía
Lo que apareció en el diagnóstico tiene un nombre técnico que te explico en un minuto. Primero la imagen, que es lo que importa.
Pensá en un portero en la puerta de una oficina. Cada vez que alguien quiere entrar, el portero levanta el teléfono y llama a un supervisor para pedir autorización. El supervisor renunció hace cuatro meses. El teléfono suena en una oficina vacía. El portero espera un minuto entero, nadie atiende, y entonces deja pasar igual a la persona.
Eso estaba pasando en mi computadora antes de cada acción de Claude. Antes de abrir un archivo, antes de escribir uno, antes de cada cosita que hiciera.
El nombre técnico del portero es hook. Un hook es un programa tuyo que Claude ejecuta solo, en un momento determinado que vos elegís. Se usan para cosas útiles, como que suene un sonido cuando termina una tarea larga.
El mío lo había armado en abril para una aplicación que me mostraba en pantalla lo que Claude estaba por hacer. Con el tiempo dejé de usar esa aplicación y me olvidé del portero. El programa quedó ahí, esperando un minuto la respuesta de algo que ya no existía, y después dejando pasar la acción igual.
44 minutos de 86 fueron esperar a nadie
Claude Code guarda el registro de cada sesión, así que pude ir a buscar exactamente cuánto había pasado entre acción y acción en una sesión concreta. Tomé la del 8 de agosto, produciendo un episodio, la que en el reloj de pared duró 86 minutos.
Estas son las pausas más largas de esa sesión, en segundos, ordenadas de mayor a menor:
864, 342, 237, 75, 72, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60...
Las tres primeras soy yo, que me fui a hacer otra cosa. Después empieza la fila de sesenta que no termina más. Conté 44 pausas de exactamente 60 segundos, y entre todas suman 44 de los 86 minutos de esa sesión. La mitad del trabajo de esa tarde fue Claude sentado esperando un teléfono que nadie iba a atender.
Cuando un número redondo se repite 44 veces, estás mirando un cronómetro. Ese era exactamente el tiempo que mi portero esperaba antes de rendirse.
El diagnóstico me dio el acumulado de todo el período y me habló de unas 70 horas. Casi tres días enteros de mi vida, mirando una pantalla que no estaba haciendo nada.
Y el dato que cierra el caso. Al día siguiente de aceptar los arreglos, produje lo mismo en una sesión de 39 minutos. Fui a revisar el registro de esa sesión y las pausas de 60 segundos fueron cero. Además procesó más acciones que la sesión de 86 minutos, en menos de la mitad de tiempo.
Por qué no lo iba a encontrar nunca por mi cuenta
Vale la pena entender por qué se me escondió tanto tiempo, porque son las mismas razones por las que se te puede estar escondiendo a vos.
-
Fallaba en silencio.
El programa nunca reportó un error. Terminaba siempre diciendo que todo estaba bien. Yo buscaba algo roto y no había nada roto, había algo lento.
-
Aparecía y desaparecía.
Yo tenía 203 reglas de permisos acumuladas. Las acciones que caían adentro de esa lista pasaban al instante, las que caían afuera esperaban el minuto completo. Entonces la lentitud iba y venía sin ningún patrón que yo pudiera ver.
-
El que sufría no era el culpable.
El tiempo se perdía en las acciones más tontas. Abrir un archivo chiquito costaba lo mismo que resolver algo complejo, y eso manda tu cabeza a buscar en el lugar equivocado.
-
Cowork no lo sufría.
Cowork corre su parte en otro lado y no ejecuta el portero que yo tenía instalado en mi computadora. Por eso la comparación entre las dos me daba una respuesta clarísima y completamente falsa.
De todo esto, lo que más me quedó es la última. Comparé dos herramientas, me dio un resultado consistente, lo repetí varias veces y siempre daba lo mismo. Y estaba midiendo otra cosa.
Aceptá los arreglos de a uno, leyendo qué hace cada uno
Cuando termina el chequeo te muestra la lista de lo que encontró y te va ofreciendo los arreglos. Yo los fui aceptando de a uno, leyendo qué hacía cada uno. Hacelo así, sin apurarte a decir que sí a todo junto.
Antes de cambiar nada, el comando guarda una copia de tus archivos de configuración tal como estaban. Si algo no te gusta, ese respaldo queda ahí. De hecho, todos los números de este tutorial los pude sacar comparando mi respaldo contra cómo quedó el archivo después.
Hay un arreglo que merece una aclaración, porque a mí me sorprendió al otro día:
Del resto, lo que más me cambió el día a día fue apagar las skills y las conexiones que tenía prendidas sin usar. Cada una de esas ocupa lugar en la memoria de trabajo de Claude en cada conversación que abrís, aunque nunca las llames.
Mirá tu configuración con tus propios ojos
Si sos de los que prefieren ver antes de aceptar, o si simplemente tenés curiosidad por saber qué hay adentro de tu configuración, pegá este prompt en Claude Code. No cambia nada, solo te muestra.
Abrí mi archivo de configuración de Claude Code y revisá si tengo hooks configurados. Por cada uno que encuentres, explicame en castellano simple, sin tecnicismos: 1. En qué momento se ejecuta y con qué frecuencia 2. Cuánto tiempo puede llegar a tardar como máximo 3. Si el programa que llama todavía existe en mi computadora 4. Si ese programa depende de alguna aplicación que tenga que estar corriendo, y si ahora mismo está corriendo Después decime cuántas reglas de permisos tengo acumuladas y cuántas skills y conexiones tengo prendidas. Solo mostrame lo que hay, no cambies nada.
Lo que te importa de la respuesta es simple. Si aparece un hook que corre antes de cada acción y que puede tardar decenas de segundos, ese es el sospechoso número uno. Sobre todo si el programa que llama depende de otra aplicación que ya no tenés abierta.
Cada cuánto conviene correrlo
Mi caso fue extremo porque el portero estuvo cuatro meses ahí. Pero la mayoría de las cosas que encuentra el chequeo son mucho más chiquitas y se acumulan igual. Un plugin que probaste una tarde, una conexión que dejaste prendida, tu archivo de instrucciones que fue creciendo hasta repetirse a sí mismo.
Yo lo corro en tres momentos:
-
Cuando lo siento lento.
Antes de cambiar de modelo, de plan o de herramienta. Es lo más barato que podés probar y es lo primero que tendría que haber hecho yo.
-
Después de andar instalando cosas.
Cuando estuve una semana probando skills, plugins o conexiones nuevas, siempre quedan varias prendidas que ya no uso.
-
Cada tanto, porque sí.
Son dos minutos de mi parte y el resto lo hace solo. No hay motivo para no hacerlo una vez por mes.
Si te quedás con una sola cosa de todo esto, que sea esta. Cuando algo te va lento y no entendés por qué, la culpa casi siempre está en las capas que le fuiste apilando alrededor con el tiempo. Yo estuve a punto de cambiar de herramienta entera por un programa viejo de cuatro meses que se había quedado esperando una llamada.
Si querés seguir por acá, el paso natural después de tener tu Claude Code limpio es ponerlo a producir. En mi tutorial de carruseles está el sistema que uso para diseñar piezas completas, y en el de anuncios con IA, el proceso entero de producción.