Gemini CLI vs Claude Code: 3 huecos para LatAm
Gemini CLI vs Claude Code, desde alguien que probó cambiarse tres veces. El CLI de Google ofrece 1,000 solicitudes gratis al día contra un modelo de 1M de tokens. Claude Code cuesta 20 USD/mes en el tier de entrada. En 2026 probé Gemini CLI tres veces con la misma intención («si puede cargar el 60% aburrido de mi día, me quedo con el plan pago para el 40% difícil») y las tres veces lo solté antes de que pasara la semana. Abajo va el análisis honesto, con el ángulo que importa para quien programa en LatAm y mira el costo mensual en USD.
Antes de arrancar: yo vivo en Japón y pago impuestos en Japón. Cuando digo “20 USD/mes” lo digo desde una realidad donde ese monto no duele mucho. Para tu caso en LatAm, donde 20 USD puede ser un porcentaje real del presupuesto mensual de herramientas, la cuenta cambia, y abajo te muestro en qué punto exacto.
La razón por la que seguí volviendo
El pitch se escribe solo. Google puso sobre la mesa 60 solicitudes por minuto y 1,000 por día en tier personal, contra una ventana de contexto de 1M de tokens, y aguantó gratis, sin pedir tarjeta de crédito, durante buena parte de 2026 (docs de Gemini CLI). Los otros CLIs de agentes serios (Claude Code, Codex CLI, GitHub Copilot CLI) te piden una suscripción o una API key con contador antes del primer token.
Si ya pagas algo por CLIs de IA, “gratis con ventana de 1M” es motivo suficiente para probarlo. Yo lo hice, tres veces.
La configuración, para que puedas cuestionarme
Las tres evaluaciones siguieron la misma receta. Elegí un puñado corto de tareas que hago dentro de iris-hub y kenimoto-dev, las corrí primero contra Gemini CLI y después contra Claude Code (mi plan habitual de 20 USD/mes en Pro). Cronometré las fáciles de cronometrar y estimé el resto. Los diffs los guardé en ramas para poder abrirlos una semana después sin que la memoria me borrara los detalles.
Cinco categorías, iguales en cada ronda:
- Refactor: dividir un handler gordo en tres más chicos, los tests tienen que quedar verdes
- Bug fix: un test intermitente que venía ignorando
- Migración: un rename mecánico en ~15 puntos de llamada
- Sync de docs: regenerar el bloque
--helpdel README desde el CLI mismo - Script desde cero: un scraper de ~120 líneas para una fuente nueva
El mismo yo manejando los dos, el mismo café y la misma fatiga del viernes a las cinco de la tarde. Si Gemini CLI queda peor parado más abajo, recuerda que fui yo quien insistió tres veces porque el precio pesa.

El marcador
| Tarea | Gemini CLI | Claude Code | Ganador |
|---|---|---|---|
| Refactor (3 archivos) | Aterrizó, rompió 4 tests que arreglé a mano | Aterrizó limpio, tests verdes | Claude Code |
| Bug fix (test intermitente) | Puso un timeout más largo, lo llamó arreglado | Rastreó a race condition en fixture compartido | Claude Code |
| Migración (15 sitios) | 9 min, 100% limpio | 17 min, un sitio perdido | Gemini CLI |
Sync de docs (--help) | De un tiro, pegó al pie de la letra | Dos rondas, primero reescribió descripciones | Gemini CLI |
| Script desde cero (~120 líneas) | Script funcional, 3 rondas | Script funcional, 1 ronda | Claude Code |
Suma: Claude Code 3, Gemini CLI 2. Ese titular de portada dice poco; lo que hay que mirar es la forma que toma cada categoría.
Donde Claude Code se negó a perder
Los dos triunfos de Claude Code se parecieron entre sí: una primera hipótesis que suena bien pero está mal, con el arreglo real un nivel más abajo. Los bug fixes y los refactors no triviales caen justo en ese molde. Cuando el agente tiene que dudar (releer el fixture, preguntarse si la respuesta obvia es la buena), la diferencia entre los dos productos deja de depender del modelo y empieza a depender del harness que lo envuelve.
Gemini CLI entró al test intermitente, subió un waitFor, agregó un retry, vio dos ejecuciones verdes y se detuvo. Eso tapa el síntoma; no arregla nada. Claude Code abrió el fixture, notó que dos page.goto compartían el mismo cookie jar y los separó. El diff eran tres líneas, y aguantó dos semanas sin volver a fallar. Cuando reejecuté la “solución” de Gemini CLI una semana más tarde, el flake reapareció a menor frecuencia.
El refactor siguió el mismo guion. Gemini CLI produjo tres archivos que compilaban y pasaban la mayoría de los tests; los que rompió eran los que dependían del orden en que el handler original llamaba a dos helpers. Claude Code detectó ese orden en la primera pasada (planificó antes de escribir) y los tests no se pusieron rojos. Coincide con lo que SWE-bench Verified viene mostrando todo el año: Claude Opus 4.8 en 88.6%, Gemini 3.1 Pro en 80.6% (análisis de Vellum sobre Opus 4.8). Ocho puntos no son un error de redondeo en un benchmark cuya pregunta es “¿siguen verdes los tests?”.
El puntaje del modelo es una parte del cuadro, no todo. Lo que noté con más fuerza es que la fase de planificación de Claude Code se ejecuta antes de escribir archivos, y la de Gemini CLI no. El harness pesa por lo menos tanto como el número de parámetros.
Donde Gemini CLI se negó a perder
Dos categorías dieron vuelta la balanza con claridad. Migraciones mecánicas y sincronización de docs de una sola pasada, ambas con casi 2x de ventaja en tiempo de reloj. Gemini CLI cerró el rename de 15 sitios en 9 minutos con diff limpio. Claude Code tardó 17 minutos, se saltó un sitio dentro de un try/except ImportError, y solo lo cacé porque comparé contra la punta de la rama antes de integrar el PR.
La regeneración del --help fue lo mismo a menor escala. Gemini CLI llamó al CLI por shell, capturó la salida, la pegó entre las marcas del README y listo. Claude Code quiso razonar sobre cómo debía verse el texto de ayuda y reescribió algunas descripciones, hasta que lo corté con “solo pega lo que imprime la herramienta”.
El patrón se repite: si el ticket no tiene decisiones interesantes dentro, gana la herramienta que duda menos. El shell de Gemini CLI basado en PTY también resuelve los prompts interactivos con más soltura (flujos de autenticación y scripts que piden input a mitad de ejecución incluidos), mientras la capa de aprobación de Claude Code suma segundos cada vez (el análisis de Real Python llega a la misma conclusión). Las migraciones y las regeneraciones de docs son trabajo de flujo. Una pasada de planificación sobre un rename no aporta nada.
En un mes hago suficientes migraciones y sincronizaciones de docs como para que, si mi día fuera solo eso, ya estaría instalado en Gemini CLI. Pero un mes real no se ve así.
La categoría que tenía mal sobre el papel
Tenía “script desde cero” marcado como triunfo fácil de Gemini CLI antes de empezar. Ventana de contexto más grande, modelo más rápido, solicitudes más sueltas, ¿no?
Más o menos. Gemini CLI sacó un script funcional en tres rondas. Las rondas dos y tres se las llevó porque alucinó el nombre de una función helper que no existe en la librería de destino (un scraper de Notion a JSON local: revisé los docs de la librería y la función que se inventó era plausible pero incorrecta). Claude Code sacó un script funcional en una sola ronda porque se descargó la página de docs real de la librería a mitad de tarea antes de escribir.
Y no se me escapa la ironía. La función estrella de Gemini CLI es el grounding nativo con Google Search: el agente puede consultar la web sobre la marcha (comparación de DataCamp). En mi caso no la usó, justo en el script que más se habría beneficiado. Claude Code, sin grounding, tiró de curl contra la página de docs en el mismo turno. Tener la función disponible no basta; el agente tiene que decidir usarla en el momento correcto.
Costo en USD, y el punto donde LatAm cambia el cálculo
Aquí va la cuenta, y donde tu caso en LatAm puede separarse del mío.
Gemini CLI me costó 0 USD en fees de API durante las tres evaluaciones. El tier gratis aguantó de principio a fin, sin trampa.
Claude Code me costó los mismos 20 USD/mes de Pro que ya pagaba de antes. La factura ni se movió.
El costo de mi tiempo, sin maquillaje: las tres tardes de “arreglar la salida de Gemini CLI a mano” (los tests rotos del refactor, el test intermitente que volvió, las dos rondas extra en el scraper) sumaron aproximadamente 6 horas de mi tiempo a lo largo de las tres evaluaciones. Si valoro mi tiempo interno a 50 USD/hora (bien por debajo de mi tarifa real; estoy siendo conservador), son 300 USD en “lo gratis me ahorró 0 y me costó 300”.
Para tu caso en LatAm, la misma cuenta puede salir distinta:
- Si tu tarifa por hora es 15-25 USD, las 6 horas perdidas son 90-150 USD. El plan de 20 USD/mes de Claude Code sigue ganando, pero con menos margen.
- Si tu tarifa por hora es 5-10 USD (comienzo de carrera, freelance de mercado bajo), las 6 horas son 30-60 USD. Ahí ya te acercas al límite. Depende del tipo de trabajo que dominas.
- Si cobras por proyecto y esas 6 horas no te tocan el ingreso mensual, la cuenta se acerca a “las 6 horas son gratis”. Ahí Gemini CLI gana en USD frío.
El punto clave: en la comparación real hay que sumar tu tiempo. Es “gratis + el costo de tu tiempo vs 20 USD sin ese costo”. Con tarifa por hora alta en USD, gana Claude Code. Con tarifa baja, o si el tiempo perdido no te bloquea otro trabajo pago, Gemini CLI se vuelve competitivo.
Dos cosas que Google cambió y que importan
Dos actualizaciones de Google en 2026 movieron la cuenta a mitad de año y conviene tenerlas presentes:
- 25 de marzo de 2026: el tier gratis perdió acceso a los modelos Gemini Pro y quedó limitado a Gemini Flash (discusión #22970 de GitHub, anuncio del 18 de marzo con vigencia el 25). El 80.6% de SWE-bench Verified para Gemini 3.1 Pro que cité arriba corresponde al modelo pago. El Flash del tier gratis se ubica bastante más abajo en ese mismo benchmark, y se nota en la categoría de refactor.
- 18 de junio de 2026: Google discontinuó Gemini CLI para cuentas de consumidor individuales, con transición al sucesor Antigravity CLI y a Gemini Code Assist Standard/Enterprise o API keys pagas para seguir usando la línea de comandos (Real Python, DataCamp). Si probaste Gemini CLI antes de junio y lo estás reevaluando ahora, el camino de configuración inicial es distinto al que recuerdas.
Ninguno de los dos cambios es un escándalo. Pero los dos empujan el discurso “gratis” un paso hacia “barato”, y vender “barato” es otra historia.
A quién le pasaría cuál herramienta
El veredicto al que llegué, y el que aplico día a día:
- Gemini CLI: trabajo mecánico sin decisiones ramificadas. Renames, sincronizaciones de docs, actualizaciones de archivos de configuración, generadores de una sola pasada contra librerías que el modelo ya conoce. Si tu día es 80% de esto, puedes trabajar a 0 USD durante todo el año.
- Claude Code: cualquier cosa donde una primera hipótesis equivocada cuesta más que el ticket entero. Cacería de bugs, refactors no triviales, revisiones de PR, diseño de agentes. Ahí es donde la fase de planificación y un modelo más apretado justifican la suscripción.
No trabajo con uno solo de los dos. Tengo Gemini CLI instalado para los trabajos de flujo y voy con Claude Code para el resto. Cambiar de contexto entre las dos herramientas cuesta poco; equivocarse de herramienta en una cacería de bug cuesta mucho.
Si tu setup actual es distinto (por ejemplo, ya estás comprometido con un pipeline de context engineering armado en Claude Code), la lista de 7 archivos para 5 minutos explica cómo mido si el harness ya está haciendo el trabajo que espero.
Qué probaría distinto si estás evaluando ahora
Tres experimentos baratos antes de decidir:
- Pasa tu última semana de PRs integradas por los dos agentes en una rama scratch. Nada de tareas sintéticas: mete tickets reales de los que ya sabes la respuesta. El único benchmark que cuenta es el delta contra tu propio trabajo.
- Cronometra el prompt “explícame esta falla de test” en los dos. Es lo que más le pido a un agente, y es donde la diferencia de harness pega más fuerte.
- Compara rondas, no segundos. Acertar al primer intento es un producto distinto a “acertar en tres intentos”. Mi categoría del scraper parecía triunfo de Gemini CLI en la primera ronda y terminó siendo triunfo de Claude Code en tiempo total.
Si tu trabajo está genuinamente más cerca del extremo migración/sync-de-docs que del extremo cacería-de-bug, la respuesta honesta puede ser que “gratis gana” para ti. Es una categoría real; pero no es la mía.
En qué quiero estar equivocado
Quiero que el tier gratis cierre la brecha de SWE-bench. Quiero que la ventaja del shell PTY se extienda a las tareas pesadas en razonamiento. Quiero que el grounding con Google Search se active de verdad en los tickets donde haría falta. Este texto es la foto de alguien que hizo la evaluación tres veces en un año y no consiguió convencer a los recibos, nada más. Gemini CLI puede cerrar la distancia en 2027 y me alegraría.
Si estás en el plan pago y pensando en cambiarte, haz tu propia prueba de última-semana-de-PRs antes de cancelar. Si no pagas nada y estás por arrancar, Gemini CLI es una respuesta real para un pedazo real del trabajo. El error está en elegir uno porque el precio es 0 USD o porque las reseñas son entusiastas. Elige el que cierra tus tickets en menos rondas, contra los tickets que de verdad tienes.
ken imoto · WebRTC & Voice AI engineer · kenimoto.dev
Libro relacionado Practical Claude Code Claude Code desde cero hasta producción — CLAUDE.md, Plan Mode y workflows de equipo, desde un año de uso real Ver la página del libro → ¿Te resultó útil este artículo?