JUANCHI
InicioCVBlogLabContacto
Saltar al contenido
JUANCHI
InicioCVBlogLabContacto
Realoqué $100/mes de Claude Code a Zed + OpenRouter: lo que nadie te cuenta sobre cambiar de tool
Volver al blog
TypeScriptclaude codedesarrolloopenrouterzed-editoria-herramientascostos-ia

Realoqué $100/mes de Claude Code a Zed + OpenRouter: lo que nadie te cuenta sobre cambiar de tool

No es solo un tema de plata. Cuando cambiás de herramienta de IA, cambiás tu workflow. Y cuando cambiás tu workflow, cambiás qué proyectos te animás a arrancar. Cuento qué perdí, qué gané, y los modelos raros de OpenRouter que nadie menciona.

10 de abril de 20269 min de lectura18 visualizacionesVer en Dev.to

Contenido

Contenido

Hay una creencia instalada en la comunidad dev sobre los subscriptions de herramientas IA que está, con todo respeto, bastante equivocada: que el debate es puramente económico.

"Claude Code cuesta $100/mes, OpenRouter es más barato, hacé las cuentas." Sí, pero eso es como decir que cambiar de IDE es cuestión de cuánto pesa el ejecutable. El precio es el trigger, no la decisión real.

La decisión real es de arquitectura mental. Y eso nadie lo escribió cuando salió la oleada de posts de "me fui de Claude Code". Yo también me fui. Pero tardé tres semanas más que todos en publicar esto porque quería entender por qué cambié, no solo que cambié.

Claude Code alternativas costo: el análisis que falta en todos lados

Arranquemos con lo que sí es verdad: Claude Code es excepcionalmente bueno. Si en algún momento dudaste de eso, no lo usaste en serio o lo usaste mal. La integración agentica, cómo mantiene contexto de proyecto, cómo puede ejecutar comandos y leer output sin que vos hagas de middleware —es genuinamente impresionante.

Y el precio de $100/mes (Max plan) tiene una lógica: estás pagando por tokens de Sonnet 4 y Opus 4 con rate limits generosos y una UX que casi no te hace pensar en el modelo subyacente.

Ese "casi" es importante. Volvamos.

Cuando escribí sobre el mes que Anthropic no respondió, la queja central era vendor lock-in y soporte. Pero lo que quedó sin resolver en ese post era esto: ¿qué pasa cognitivamente cuando sabés que cada prompt tiene un costo invisible?

La respuesta es: te autocensurás. Empezás a "guardar" los prompts buenos para proyectos importantes. Dejás de explorar. Y explorar es exactamente donde está el valor de la IA en desarrollo.

Eso fue lo que me rompió el esquema.

Zed + OpenRouter: cómo lo configuré en la práctica

Zed ahora soporta cualquier proveedor compatible con OpenAI API. OpenRouter expone exactamente eso. El setup es sorprendentemente directo:

// ~/.config/zed/settings.json
{
  "assistant": {
    "version": "2",
    "default_model": {
      "provider": "openai",  // Zed usa el adaptador OpenAI para OpenRouter
      "model": "anthropic/claude-sonnet-4"  // Igual tengo Sonnet, pero ahora elijo cuándo
    },
    "openai_api_url": "https://openrouter.ai/api/v1",  // El truco está acá
    "api_key": "sk-or-v1-..."  // Tu key de OpenRouter
  }
}

Lo que esto habilita es algo que Claude Code no tiene: selección de modelo por tarea. Y eso cambia todo.

# Mi workflow actual en Zed
# Para review de código y explicaciones: Gemini 2.5 Flash
# Para arquitectura y razonamiento complejo: Claude Sonnet 4 o DeepSeek R1
# Para generación rápida de boilerplate: Qwen 2.5 Coder 32B (GRATIS en OpenRouter ahora mismo)
# Para análisis de logs largos: Gemini 2.5 Pro (ventana de contexto enorme)

Ese Qwen 2.5 Coder que mencioné: nadie lo menciona en los posts de "alternativas a Claude Code" y es un error. Para generar tipos TypeScript, escribir tests unitarios, hacer refactors mecánicos —es sorprendentemente capaz y en OpenRouter tenés requests gratis mientras el proveedor lo subsidia.

Los modelos raros que encontré explorando OpenRouter (y que no hubiera probado si cada request me costara plata "real"):

  • Mistral Codestral: especializado en código, velocísimo para completions cortas
  • DeepSeek R1: razonamiento encadenado, ideal cuando tenés un bug que no entendés
  • Nous: Hermes 3: para prompts de sistema complejos y few-shot learning
  • Qwen 2.5 72B: multilingüe, útil cuando tenés que documentar en inglés algo que pensaste en español

La diferencia psicológica es brutal: cuando el costo es visible y por uso, explorás más, no menos. Paradoja de la abundancia percibida.

Lo que perdí al salir de Claude Code (sin romanticismo)

Acá me pongo honesto porque si no, este post es propaganda.

Perdí la agenticidad sin fricción. Claude Code puede correr tu test suite, leer el output, iterar, commitear. Zed + OpenRouter no hace eso. Tenés que hacer de puente vos. Copiás output, pegás en el chat, pedís análisis. Es más trabajo.

Perdí el contexto de proyecto persistente. Claude Code sabe que tu proyecto usa PostgreSQL, que tu convención de nombres es camelCase, que tenés un lib/utils.ts con helpers comunes. Todo eso lo re-contextualizás en Zed con un system prompt o un archivo CLAUDE.md (que ahora renombré AI_CONTEXT.md), pero es setup manual.

Perdí velocidad en los picos. Cuando estoy en flow y mando 50 prompts en una hora, Claude Code no parpadea. Con OpenRouter, dependiendo del modelo, aparecen rate limits del proveedor subyacente. No siempre, pero pasa.

Esto importa decirlo porque en Project Glasswing argumenté que entender qué hace el código que usás es responsabilidad tuya. Lo mismo aplica acá: entender exactamente qué perdés cuando optimizás costos es parte de la decisión. Si tu trabajo es mayoritariamente agentico —builds, deployments, iteración rápida— quedáte en Claude Code. En serio.

Los gotchas que nadie te avisa

El gotcha de los rate limits silenciosos: Algunos modelos en OpenRouter tienen rate limits que no están claramente documentados. Tu request no falla —espera. Y Zed no siempre te muestra que está esperando de forma obvia. Perdí 10 minutos pensando que Zed se había colgado.

// Tip: si usás OpenRouter desde código propio, siempre manejá el retry
async function completarConOpenRouter(prompt: string, modelo: string) {
  const maxReintentos = 3;
  
  for (let intento = 0; intento < maxReintentos; intento++) {
    try {
      const respuesta = await fetch('https://openrouter.ai/api/v1/chat/completions', {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${process.env.OPENROUTER_API_KEY}`,
          'HTTP-Referer': 'https://tu-sitio.com',  // OpenRouter lo pide para analytics
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          model: modelo,
          messages: [{ role: 'user', content: prompt }]
        })
      });
      
      // 429 = rate limit, esperamos con backoff exponencial
      if (respuesta.status === 429) {
        const espera = Math.pow(2, intento) * 1000;
        console.log(`Rate limit en intento ${intento + 1}, esperando ${espera}ms`);
        await new Promise(r => setTimeout(r, espera));
        continue;
      }
      
      return await respuesta.json();
    } catch (error) {
      if (intento === maxReintentos - 1) throw error;
    }
  }
}

El gotcha del contexto entre modelos: Si empezás una conversación con Sonnet 4 y la continuás con Gemini Flash, el contexto no se transfiere mágicamente en Zed. Zed sí manda el historial completo de la conversación, pero el modelo nuevo lo interpreta diferente. Para trabajo de continuidad, hay que quedarse en el mismo modelo por sesión.

El gotcha de los precios en tiempo real: Los precios de modelos en OpenRouter fluctúan. No dramáticamente, pero fluctúan. El mismo modelo que costaba $0.30/M tokens input la semana pasada puede estar a $0.40 esta semana. Configuré una alerta básica para monitorear esto —no sea cosa que el ahorro se evapore.

El gotcha de HTTP-Referer: OpenRouter técnicamente requiere que mandes un header HTTP-Referer con la URL de tu app. Si no lo mandás no falla, pero afecta sus analytics internos y potencialmente tus rate limits a largo plazo. Lo aprendí leyendo los docs a fondo, no de ningún tutorial.

Lo que gané que no esperaba

Hay algo que no anticipé: cuando empezás a pensar en términos de "qué modelo es el correcto para esta tarea" en lugar de "uso el modelo que tengo", empezás a pensar mejor sobre la tarea misma.

Es como lo que pasó cuando metí el historial de git de Linux en una base de datos: el proceso de preparar los datos para el análisis me enseñó más sobre el kernel que el análisis mismo. La fricción fue el aprendizaje.

Ahora tengo un workflow documentado. Sé cuándo uso cada modelo. Sé cuánto gasto por tipo de tarea. Y ese conocimiento se transfiere: cuando algún cliente me pregunta si debería integrar IA en su producto, tengo respuestas concretas sobre costos operativos reales, no estimaciones.

En paralelo, Zed como editor tiene ventajas propias que no tienen que ver con IA: es rápido de forma ridícula, la colaboración en tiempo real funciona sin setup de servidor, y el modelo de extensiones en Rust/WASM es interesante para cuando tenga ganas de meterme ahí como hice con HAProxy.

FAQ: Claude Code alternativas costo, Zed y OpenRouter

¿Zed con OpenRouter reemplaza completamente a Claude Code? No, y no lo pretende. Reemplaza el caso de uso de "chat con IA mientras programo" muy bien. No reemplaza la agenticidad de Claude Code —correr comandos, iterar sobre output, mantener contexto de proyecto automáticamente. Si tu workflow depende mucho de eso, el ahorro no vale la fricción.

¿Cuánto estoy gastando realmente con OpenRouter comparado con $100/mes de Claude Code? Mi gasto del último mes fue $23. Pero trabajo en proyectos Next.js/TypeScript medianos, no en agentes que corren solos horas. Si trabajás en proyectos de ML training como los que describí en el post de MegaTrain, los números cambian mucho.

¿Por qué Zed y no Cursor o Windsurf que también soportan múltiples modelos? Cursor y Windsurf agregan su propia capa de abstracción y precio. Zed es más directo: editor + tu key de API. Menos magia, más control. Para mi estilo de trabajo —entender qué está pasando en cada capa— eso importa.

¿Los modelos de OpenRouter tienen la misma calidad que los mismos modelos directo de Anthropic/Google? Sí, son los mismos modelos. OpenRouter es un router, no un fine-tuning o una copia. Mandás una request a anthropic/claude-sonnet-4 en OpenRouter y llega a la API de Anthropic. Lo que OpenRouter agrega es la capa de routing, billing unificado y fallbacks. La calidad del output es idéntica.

¿Cómo manejo el contexto de proyecto si no tengo la integración automática de Claude Code? Tengo un archivo AI_CONTEXT.md en la raíz de cada proyecto. Describe el stack, las convenciones de código, los módulos principales, y qué no hacer (ej: "no uses axios, el proyecto usa fetch nativo"). Al arrancar una sesión nueva en Zed, pego ese contenido como system prompt. Tarda 30 segundos y el modelo tiene contexto suficiente para el 90% de las tareas.

¿Tiene sentido usar OpenRouter si ya tengo acceso directo a las APIs de Anthropic y Google? Depende de cuántos modelos usés activamente. Si usás solo Claude, no hay ventaja real —pagás un markup por el routing. Si alternás entre Claude, Gemini, DeepSeek y modelos open-source, OpenRouter te ahorra mantener 4 keys, 4 billing dashboards y 4 implementaciones de cliente. Para mí ese overhead vale el markup.

Conclusión: la decisión real no es de precio

Te repito lo que dije al principio porque ahora tiene más carga: esto no es sobre $100/mes. Es sobre qué tipo de relación querés tener con tus herramientas de IA.

Claude Code te abstrae el modelo, el costo, la infraestructura. Esa abstracción tiene valor —te deja focalizarte en el problema. Pero también te saca información. No sabés cuánto cuesta tu workflow real. No tenés incentivo para experimentar con otros modelos. Y no desarrollás el juicio sobre cuándo usar qué.

Yo aprobé Análisis II en el cuarto intento cursando con el traje puesto porque laburaba full time. Cada intento fallido me enseñó algo que el primero no me iba a enseñar de ninguna manera. No romanticizo el sufrimiento innecesario —si hubiera aprobado en el primero, mejor. Pero sí creo que la fricción que elegís conscientemente te hace más fuerte que la que evitás a cualquier costo.

Optimizar ciegamente hacia cero fricción en tus herramientas de desarrollo es elegir no desarrollar juicio. Lo que haría diferente: empezar con Claude Code para entender qué querés, migrar a OpenRouter cuando tenés criterio para elegir modelos. En ese orden.

Si ya pasaste por el proceso de cuestionar en qué confiás en tu supply chain de código, este es el mismo proceso aplicado a tus herramientas de IA. No es nihilismo ni minimalismo —es entender exactamente qué pagás y por qué.

Compartir:

Comentarios (0)

Deja un comentario

No hay comentarios aún. ¡Sé el primero en opinar!

Artículos Relacionados

LA
TypeScriptdevops

La criptografía que usás para firmar digitalmente tiene fecha de vencimiento: qué publicó NIST y cómo migrar tu HSM

NIST finalizó los estándares post-quantum en agosto de 2024. RSA y ECDSA tienen deadline de 2035. Si firmás documentos, JWTs o certificados con un HSM, esto te afecta ahora — te explico ML-DSA, cómo impacta al hardware, y qué hacer esta semana.

16 min8
9
WebDevTypeScript

9 patrones de TypeScript que eliminan bugs antes de ejecutar el código

Discriminated unions, branded types, satisfies, infer, Result<T,E>, type predicates y mapped types: los patrones del sistema de tipos que hacen que categorías enteras de bugs sean imposibles de escribir.

18 min8
El mes que Anthropic no respondió: billing, confianza y el costo oculto de depender de APIs de IA
ReflexionesTypeScriptanthropic

El mes que Anthropic no respondió: billing, confianza y el costo oculto de depender de APIs de IA

Un thread de HN con 365 puntos me dio permiso de decir lo que venía evitando: construir sobre APIs de IA tiene un riesgo de soporte y continuidad que nadie discute honestamente. Yo lo viví en carne propia un viernes a las 11pm.

10 min66

Categorías

Experimentos9Historia3Opinión6Reflexiones2Tecnología5Tutoriales4

Etiquetas

#TypeScript#nextjs#seguridad#devtools#devops#React#linux#Full Stack#javascript#LLM#server-components#ia#node.js#claude code#postgresql#WebGPU#desarrollo web#Gemma#git#coding-agents#agentes-ia#anthropic#vscode#AI#lighthouse#Tutorial#TLS#infraestructura#desarrollo#productividad#historia programador argentino#frontend#workflow#inferencia en browser#WebLLM#edge inferencia#IA local#freestyle#sandboxes#criptografia#Experimentos#Portfolio#WebDev#Performance#pnpm#npm#yarn#bun#package manager#monorepo#tooling#docker#backend#docker-compose#produccion#app-router#web-development#tailwind#railway#postmortem#Patrones de diseño#Programación#stack tecnologico 2025#drizzle orm#optimizacion#web-performance#autobiografía tech#railway deploy#nativo digital#ai tools#reflexión técnica#WebAssembly#fuse#storage#open source#control de versiones#agentes de ia#jujutsu#version control#software engineering#programacion#quantum computing#criptografía#seguridad web#post-quantum cryptography#JWT#vibe-coding#desarrollo-software#Browser#Edge#Inferencia Local#codebase visualization#github#análisis de código#developer tools#code review#repomix#sistemas#elf#dynamic-linking#bajo-nivel#strace#haproxy#lsp#homelab#accesibilidad#axe#aria#wcag#orquestacion#google-deepmind#scion#multi-agente#2025#ssl#x509#certificados#pki#node-forge#machine learning#LLMs#entrenamiento de modelos#GPU#deep learning#MegaTrain#full precision training#AI infraestructura#firewall#opensnitch#ebpf#networking#supply-chain#inteligencia-artificial#ci-cd#dependencias#sbom#ai-coding#APIs#vendor lock-in#producción#arquitectura#billing#análisis de datos#linux kernel#pgit#historia de commits#herramientas de desarrollo#sql#openrouter#zed-editor#ia-herramientas#costos-ia#investigacion#ai-engineering#SynthID#watermark IA#Gemini#edge computing#detección IA#reverse engineering#Google#modelos locales#filesystem#Web Vitals#Stack#Reflexiones#Next.js#Carrera#Herramientas#Opinión#Historia#Best Practices

Más Leídos

  • 01

    pnpm vs npm vs yarn vs bun: la comparativa definitiva que nadie te va a dar en 2025

    213 views
  • 02

    Next.js App Router: la guía que me hubiera gustado tener cuando migré de Pages Router

    201 views
  • 03

    TypeScript: los patrones que realmente uso todos los días

    199 views
  • 04

    De DOS a Cloud: mi viaje de 33 años con la tecnología — desde una Amiga en 1994 hasta deployar en Railway con Next.js

    195 views
  • 05

    Docker para desarrolladores Node.js: de cero a producción sin morir en el intento

    192 views

Newsletter

Recibe los últimos artículos directamente en tu inbox.

Categorías

Experimentos9Historia3Opinión6Reflexiones2Tecnología5Tutoriales4

Etiquetas

#TypeScript#nextjs#seguridad#devtools#devops#React#linux#Full Stack#javascript#LLM#server-components#ia#node.js#claude code#postgresql#WebGPU#desarrollo web#Gemma#git#coding-agents#agentes-ia#anthropic#vscode#AI#lighthouse#Tutorial#TLS#infraestructura#desarrollo#productividad#historia programador argentino#frontend#workflow#inferencia en browser#WebLLM#edge inferencia#IA local#freestyle#sandboxes#criptografia#Experimentos#Portfolio#WebDev#Performance#pnpm#npm#yarn#bun#package manager#monorepo#tooling#docker#backend#docker-compose#produccion#app-router#web-development#tailwind#railway#postmortem#Patrones de diseño#Programación#stack tecnologico 2025#drizzle orm#optimizacion#web-performance#autobiografía tech#railway deploy#nativo digital#ai tools#reflexión técnica#WebAssembly#fuse#storage#open source#control de versiones#agentes de ia#jujutsu#version control#software engineering#programacion#quantum computing#criptografía#seguridad web#post-quantum cryptography#JWT#vibe-coding#desarrollo-software#Browser#Edge#Inferencia Local#codebase visualization#github#análisis de código#developer tools#code review#repomix#sistemas#elf#dynamic-linking#bajo-nivel#strace#haproxy#lsp#homelab#accesibilidad#axe#aria#wcag#orquestacion#google-deepmind#scion#multi-agente#2025#ssl#x509#certificados#pki#node-forge#machine learning#LLMs#entrenamiento de modelos#GPU#deep learning#MegaTrain#full precision training#AI infraestructura#firewall#opensnitch#ebpf#networking#supply-chain#inteligencia-artificial#ci-cd#dependencias#sbom#ai-coding#APIs#vendor lock-in#producción#arquitectura#billing#análisis de datos#linux kernel#pgit#historia de commits#herramientas de desarrollo#sql#openrouter#zed-editor#ia-herramientas#costos-ia#investigacion#ai-engineering#SynthID#watermark IA#Gemini#edge computing#detección IA#reverse engineering#Google#modelos locales#filesystem#Web Vitals#Stack#Reflexiones#Next.js#Carrera#Herramientas#Opinión#Historia#Best Practices

Más Leídos

  • 01

    pnpm vs npm vs yarn vs bun: la comparativa definitiva que nadie te va a dar en 2025

    213 views
  • 02

    Next.js App Router: la guía que me hubiera gustado tener cuando migré de Pages Router

    201 views
  • 03

    TypeScript: los patrones que realmente uso todos los días

    199 views
  • 04

    De DOS a Cloud: mi viaje de 33 años con la tecnología — desde una Amiga en 1994 hasta deployar en Railway con Next.js

    195 views
  • 05

    Docker para desarrolladores Node.js: de cero a producción sin morir en el intento

    192 views

Newsletter

Recibe los últimos artículos directamente en tu inbox.