<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>AI Coding on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/ai-coding/</link>
        <description>Recent content in AI Coding on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Thu, 21 May 2026 08:53:13 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/ai-coding/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Clasificación de proyectos open source de AI en GitHub: de Coding Agent a bases de conocimiento RAG</title>
        <link>https://knightli.com/es/2026/05/21/github-ai-projects-site-statistics/</link>
        <pubDate>Thu, 21 May 2026 08:53:13 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/21/github-ai-projects-site-statistics/</guid>
        <description>&lt;p&gt;Esta página organiza proyectos de AI en GitHub por dirección de uso: AI Coding y Coding Agents, skills y flujos Agent, RAG y bases de conocimiento, creación multimodal, modelos locales e inferencia, aplicaciones verticales y automatización, e infraestructura para desarrollar aplicaciones de AI. Cuando aparezcan nuevos proyectos, pueden añadirse con la misma estructura.&lt;/p&gt;
&lt;h2 id=&#34;resumen-por-categoría&#34;&gt;Resumen por categoría
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Categoría&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Proyectos&lt;/th&gt;
          &lt;th&gt;Para quién empezar aquí&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;AI Coding y Coding Agents&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19&lt;/td&gt;
          &lt;td&gt;Usuarios que trabajan con Claude Code, Codex, Cursor, agents de terminal o automatización de repositorios&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Skills y flujos Agent&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren estandarizar AI Coding, investigación o flujos de creación&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RAG, bases de conocimiento y memoria&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;Usuarios que necesitan búsqueda documental, bases de conocimiento, memoria de largo plazo, crawling web o extracción estructurada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicaciones verticales y automatización&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;Usuarios interesados en finanzas, trading, monitoreo de Xianyu, control de escritorio, automatización de navegador y otros escenarios prácticos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Multimodal y creación de contenido&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5&lt;/td&gt;
          &lt;td&gt;Usuarios que trabajan con imágenes, video, transcripción, librerías de prompts y distribución de contenido&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Infraestructura para aplicaciones de AI&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3&lt;/td&gt;
          &lt;td&gt;Desarrolladores que construyen apps de AI, automatización de navegador o toolchains Prompt/MCP&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Modelos locales e inferencia&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1&lt;/td&gt;
          &lt;td&gt;Usuarios interesados en DeepSeek local, motores de inferencia y adaptación de hardware&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La distribución muestra varias direcciones frecuentes en los proyectos open source actuales de AI: las herramientas de AI Coding son las más numerosas, seguidas por flujos Agent, bases de conocimiento RAG y escenarios aplicados. Hay menos proyectos centrados solo en inferencia local porque mucho contenido de despliegue local se organiza alrededor de modelos, GPUs o planes de despliegue, no de un único proyecto de GitHub.&lt;/p&gt;
&lt;h2 id=&#34;ai-coding-y-coding-agents&#34;&gt;AI Coding y Coding Agents
&lt;/h2&gt;&lt;p&gt;Esta categoría se centra en comprensión de código, modificación de código, flujos de ingeniería y agents de terminal. Es el grupo más grande, con &lt;strong&gt;19&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Ralph&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/&#34; &gt;Ralph: convertir Claude Code y Amp en un ciclo autónomo de desarrollo&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/snarktank/ralph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;snarktank/ralph&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Guiar Claude Code / Amp por PRD, planificación, ejecución y revisión&lt;/td&gt;
          &lt;td&gt;Quienes quieren ordenar el flujo de AI Coding&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude-Mem&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/&#34; &gt;Claude-Mem: memoria de largo plazo entre sesiones para Claude Code&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Añadir memoria entre sesiones a Claude Code&lt;/td&gt;
          &lt;td&gt;Usuarios intensivos de Claude Code&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Code Hooks Mastery&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/claude-code-hooks-mastery-guide/&#34; &gt;Claude Code Hooks Mastery: introducción a 13 etapas del ciclo de hooks&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/disler/claude-code-hooks-mastery&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;disler/claude-code-hooks-mastery&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Aprender el ciclo de vida de hooks y control de automatización&lt;/td&gt;
          &lt;td&gt;Quienes quieren personalizar Claude Code&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Compound Engineering Plugin&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/compound-engineering-plugin-ai-coding-workflow/&#34; &gt;Compound Engineering Plugin: convertir AI Coding en ciclos de planificación, ejecución y revisión&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EveryInc/compound-engineering-plugin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EveryInc/compound-engineering-plugin&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Dividir AI Coding en planificación, ejecución y revisión&lt;/td&gt;
          &lt;td&gt;Usuarios que buscan ingeniería más disciplinada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;free-claude-code&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/free-claude-code-anthropic-compatible-proxy/&#34; &gt;free-claude-code: conectar Claude Code a OpenRouter, DeepSeek y modelos locales&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Conectar Claude Code a distintos backends mediante proxy&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren reducir costes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Hermes Agent&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/12/hermes-agent-intro-guide-vs-openclaw/&#34; &gt;Qué es Hermes Agent: visión general, ventajas, inicio rápido y comparación con OpenClaw&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NousResearch/hermes-agent&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Framework local de Agent con herramientas y ejecución de tareas&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren correr Agents locales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenHarness&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/12/openharness-basic-functions/&#34; &gt;Qué puede hacer OpenHarness como Agent Harness open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HKUDS/OpenHarness&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent Harness y ejecución multi-agent&lt;/td&gt;
          &lt;td&gt;Investigadores de orquestación Agent&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CodexBridge&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/13/codexbridge-openai-compatible-api/&#34; &gt;Usar Codex con modelos nacionales: API compatibles con OpenAI y CodexBridge&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/begonia599/CodexBridge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;begonia599/CodexBridge&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Conectar Codex a APIs compatibles con OpenAI&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren usar Codex con modelos nacionales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ccx&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/13/ccx-ai-api-proxy-gateway/&#34; &gt;Usar CCX para gestionar APIs compatibles con OpenAI para Codex y modelos nacionales&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;BenedictKing/ccx&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Gestionar proxies de API para Claude, Codex, Gemini y más&lt;/td&gt;
          &lt;td&gt;Usuarios que alternan varios modelos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;cc-haha&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/14/cc-haha-claude-code-desktop-workbench/&#34; &gt;cc-haha: un escritorio de trabajo para Claude Code&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NanmiCoder/cc-haha&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Workspace de escritorio y entrada Computer Use para Claude Code&lt;/td&gt;
          &lt;td&gt;Usuarios de Claude Code que prefieren GUI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek-TUI&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/16/deepseek-tui-terminal-coding-agent/&#34; &gt;DeepSeek-TUI: convertir DeepSeek V4 en un agente de programación en terminal&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hmbown/DeepSeek-TUI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Ejecutar un agente de programación DeepSeek en terminal&lt;/td&gt;
          &lt;td&gt;Usuarios de DeepSeek y línea de comandos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Open Design&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;Open Design: convertir Claude Code y Codex en herramientas de diseño AI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nexu-io/open-design&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Llevar Claude Code / Codex a generación de diseño&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren agentes para prototipos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;agentmemory&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/&#34; &gt;agentmemory: memoria persistente para Claude Code, Codex y Cursor&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/rohitg00/agentmemory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;rohitg00/agentmemory&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Añadir memoria persistente a coding agents&lt;/td&gt;
          &lt;td&gt;Desarrolladores con proyectos largos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Graphify&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/21/safishamsi-graphify-ai-code-knowledge-graph/&#34; &gt;Graphify: convertir una base de código en un grafo consultable por AI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/safishamsi/graphify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;safishamsi/graphify&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Convertir código en grafo de conocimiento para reducir lecturas repetidas&lt;/td&gt;
          &lt;td&gt;Usuarios con bases de código grandes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CC Switch&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/06/cc-switch-ai-cli-manager/&#34; &gt;CC Switch: gestionar Claude Code, Codex, Gemini CLI y OpenClaw en una herramienta de escritorio&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/farion1231/cc-switch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;farion1231/cc-switch&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Gestionar varias CLI de AI y cambios de cuenta/configuración&lt;/td&gt;
          &lt;td&gt;Usuarios de varias CLI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Warp&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/07/warpdotdev-warp-open-source-agentic-terminal/&#34; &gt;Warp open source: del terminal al Agentic Development Environment&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/warpdotdev/warp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;warpdotdev/warp&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Terminal y entorno de desarrollo agentic&lt;/td&gt;
          &lt;td&gt;Usuarios intensivos de terminal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;opencode&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/08/opencode-open-source-ai-coding-agent/&#34; &gt;opencode vs Claude Code vs Codex: guía de herramientas open source de AI Coding&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anomalyco/opencode&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent open source para AI Coding&lt;/td&gt;
          &lt;td&gt;Quienes buscan alternativas a Claude Code / Codex&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9Router&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/08/9router-ai-coding-router-token-saver/&#34; &gt;9Router: conectar Claude Code, Codex y Cursor a un único router de AI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/decolua/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;decolua/9router&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Ruteo de modelos para AI Coding y control de coste de tokens&lt;/td&gt;
          &lt;td&gt;Usuarios multi-herramienta y multi-modelo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;goose&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/&#34; &gt;goose: AI Agent open source para escritorio, CLI y API&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aaif-goose/goose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;aaif-goose/goose&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent open source en escritorio, CLI y API&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren un workspace Agent general&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;skills-y-flujos-agent&#34;&gt;Skills y flujos Agent
&lt;/h2&gt;&lt;p&gt;Esta categoría convierte capacidades de AI en skills, procesos y especificaciones repetibles. Incluye &lt;strong&gt;7&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;mattpocock/skills&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/&#34; &gt;Rechazar Vibe Coding: el repo skills de Matt Pocock añade restricciones de ingeniería&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mattpocock/skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Usar skills para controlar flujos de AI Coding&lt;/td&gt;
          &lt;td&gt;Quienes quieren disciplina de ingeniería para Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Superpowers&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/obra-superpowers-agentic-skills-framework/&#34; &gt;Superpowers: devolver Coding Agents al flujo de ingeniería&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;obra/superpowers&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Framework de skills agentic y metodología de desarrollo&lt;/td&gt;
          &lt;td&gt;Quienes quieren flujos sistemáticos con Coding Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Prompt-Vault&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/prompt-vault-coding-prompt-benchmark/&#34; &gt;Prompt-Vault: biblioteca de especificaciones de prompts para probar AI Coding&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/w512/Prompt-Vault&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;w512/Prompt-Vault&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Reunir prompts de prueba para AI Coding&lt;/td&gt;
          &lt;td&gt;Evaluadores de modelos y herramientas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;web-video-presentation&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/web-video-presentation-agent-skill/&#34; &gt;web-video-presentation: skill Agent para convertir artículos en videos web grabables&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ConardLi/garden-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ConardLi/garden-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Convertir artículos en videos web grabables&lt;/td&gt;
          &lt;td&gt;Creadores y usuarios de automatización&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;nuwa-skill&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/22/nuwa-skill-distill-how-someone-thinks/&#34; &gt;nuwa-skill: convertir “destilar una persona” en un flujo ejecutable&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;alchaincyf/nuwa-skill&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Reproducir estilo expresivo y flujo de pensamiento con skill&lt;/td&gt;
          &lt;td&gt;Usuarios que construyen Agents de estilo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Scientific Agent Skills&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/scientific-agent-skills/&#34; &gt;Scientific Agent Skills: entregar flujos científicos a AI Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Dense-AI/scientific-agent-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Colección de skills para investigación científica&lt;/td&gt;
          &lt;td&gt;Investigadores, analistas y redactores técnicos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;easy-vibe&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/16/easy-vibe-vibe-coding-learning-map/&#34; &gt;easy-vibe: mapa de aprendizaje para principiantes de Vibe Coding&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/datawhalechina/easy-vibe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;datawhalechina/easy-vibe&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Mapa de aprendizaje de Vibe Coding&lt;/td&gt;
          &lt;td&gt;Principiantes de AI Coding&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;rag-bases-de-conocimiento-y-memoria&#34;&gt;RAG, bases de conocimiento y memoria
&lt;/h2&gt;&lt;p&gt;Esta categoría aborda búsqueda documental, construcción de bases de conocimiento, memoria de largo plazo y extracción estructurada. Incluye &lt;strong&gt;7&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;LangExtract&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/google-langextract-llm-structured-data-extraction/&#34; &gt;Google LangExtract: extraer datos estructurados de textos largos con LLM&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/langextract&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/langextract&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Extraer información estructurada de textos largos&lt;/td&gt;
          &lt;td&gt;Usuarios de extracción de información y datos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;qmd&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/qmd-markdown-search-for-ai-agents/&#34; &gt;qmd: búsqueda local en Markdown para AI Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tobi/qmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tobi/qmd&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Búsqueda local en documentos Markdown&lt;/td&gt;
          &lt;td&gt;Usuarios que gestionan conocimiento en Markdown&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Firecrawl&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/15/firecrawl-ai-web-data-api/&#34; &gt;Firecrawl: búsqueda, crawling e interacción web para AI Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/firecrawl/firecrawl&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;firecrawl/firecrawl&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Crawling web, búsqueda y entrada de datos estructurados&lt;/td&gt;
          &lt;td&gt;Usuarios de RAG e ingestión de datos para Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RAGFlow&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/15/ragflow-rag-engine-guide/&#34; &gt;RAGFlow: funciones y uso de un motor RAG open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/infiniflow/ragflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;infiniflow/ragflow&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Motor RAG open source&lt;/td&gt;
          &lt;td&gt;Bases de conocimiento empresariales y Q&amp;amp;A documental&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenHuman&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/openhuman-open-source-personal-ai-agent/&#34; &gt;OpenHuman: ruta de escritorio para AI Agent personal open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tinyhumansai/openhuman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tinyhumansai/openhuman&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent personal local-first y capa de memoria&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren integrar datos personales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenKB&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/openkb-llm-knowledge-base/&#34; &gt;OpenKB: compilar documentos en bases de conocimiento LLM actualizables&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/OpenKB&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Compilar documentos en bases de conocimiento actualizables&lt;/td&gt;
          &lt;td&gt;Mantenedores de documentación y conocimiento&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PageIndex&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/20/vectifyai-pageindex-vectorless-rag/&#34; &gt;PageIndex: indexación RAG razonada sin bases vectoriales&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/PageIndex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/PageIndex&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Indexación documental razonada sin bases vectoriales&lt;/td&gt;
          &lt;td&gt;Usuarios que siguen nuevas rutas de RAG&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;multimodal-y-creación-de-contenido&#34;&gt;Multimodal y creación de contenido
&lt;/h2&gt;&lt;p&gt;Esta categoría cubre imágenes, video, transcripción y distribución de contenido. Incluye &lt;strong&gt;5&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;rembg&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/19/rembg-background-removal-notes/&#34; &gt;rembg: herramienta local para quitar fondos de imágenes&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;danielgatis/rembg&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Eliminación local de fondos&lt;/td&gt;
          &lt;td&gt;E-commerce, diseño y procesamiento de imágenes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;awesome-gpt-image-2-prompts&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Biblioteca de prompts GPT-Image 2: e-commerce, pósters, retratos y UI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EvoLinkAI/awesome-gpt-image-2-prompts&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Prompts y casos para GPT-Image 2&lt;/td&gt;
          &lt;td&gt;Usuarios de AI Art y prompts&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;faster-whisper&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/faster-whisper-speech-to-text/&#34; &gt;faster-whisper: motor Whisper más rápido para transcripción&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/SYSTRAN/faster-whisper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SYSTRAN/faster-whisper&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Speech-to-text de alto rendimiento&lt;/td&gt;
          &lt;td&gt;Usuarios de subtítulos, transcripción y voz&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pixelle-Video&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/07/pixelle-video-ai-short-video-engine/&#34; &gt;Pixelle-Video: motor AI open source para generar videos cortos desde un tema&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/AIDC-AI/Pixelle-Video&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AIDC-AI/Pixelle-Video&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Flujo para generar videos cortos desde un tema&lt;/td&gt;
          &lt;td&gt;Creadores de videos cortos y AIGC&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AiToEarn&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/aitoearn-ai-content-marketing-agent/&#34; &gt;¿Demasiadas plataformas de contenido? AiToEarn usa Agents para ahorrar trabajo&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/yikart/AiToEarn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;yikart/AiToEarn&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Distribución multicanal y automatización para creadores&lt;/td&gt;
          &lt;td&gt;Operadores de contenido y creadores&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;modelos-locales-e-inferencia&#34;&gt;Modelos locales e inferencia
&lt;/h2&gt;&lt;p&gt;Esta categoría se centra en ejecución local de modelos y experimentos de inferencia. Actualmente tiene menos proyectos, con &lt;strong&gt;1&lt;/strong&gt; proyecto.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;ds4&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/11/deepseek-v4-flash-ds4-metal/&#34; &gt;Ejecutar DeepSeek 4 localmente: Antirez ds4 en Apple Silicon Mac&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;antirez/ds4&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Experimentar con DeepSeek 4 en Apple Silicon&lt;/td&gt;
          &lt;td&gt;Usuarios de modelos locales e inferencia&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;aplicaciones-verticales-y-automatización&#34;&gt;Aplicaciones verticales y automatización
&lt;/h2&gt;&lt;p&gt;Esta categoría aplica Agents o AI a finanzas, trading, navegadores, escritorio, monitoreo de comercio electrónico y otros escenarios concretos. Incluye &lt;strong&gt;7&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;TradingAgents-CN&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/&#34; &gt;TradingAgents-CN: framework multi-agent para investigación de trading financiero en chino&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/hsliuping/TradingAgents-CN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hsliuping/TradingAgents-CN&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Framework multi-agent de investigación financiera&lt;/td&gt;
          &lt;td&gt;Investigadores quant, financieros y de Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;FinceptTerminal&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/finceptterminal-open-source-financial-terminal/&#34; &gt;FinceptTerminal: terminal financiero open source, investigación quant y workspace AI Agent&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fincept-Corporation/FinceptTerminal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Fincept-Corporation/FinceptTerminal&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Terminal financiero, investigación quant y workspace Agent&lt;/td&gt;
          &lt;td&gt;Analistas financieros y usuarios quant&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Anthropic financial-services&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/16/anthropic-financial-services-agent-templates/&#34; &gt;Anthropic financial-services: plantillas reutilizables para escenarios Agent financieros&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/financial-services&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anthropics/financial-services&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Plantillas de Agents para servicios financieros&lt;/td&gt;
          &lt;td&gt;Usuarios que crean soluciones AI financieras&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ai-goofish-monitor&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/ai-goofish-monitor/&#34; &gt;ai-goofish-monitor: sistema open source de monitoreo AI para productos de Xianyu&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usagi-org/ai-goofish-monitor&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Monitoreo de productos y automatización de Xianyu&lt;/td&gt;
          &lt;td&gt;Usuarios de monitoreo de segunda mano&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CloakBrowser&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/cloakbrowser-stealth-chromium-browser-automation/&#34; &gt;CloakBrowser: navegador más humano para Playwright y Puppeteer&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/CloakHQ/CloakBrowser&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CloakHQ/CloakBrowser&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Entorno de automatización de navegador más humano&lt;/td&gt;
          &lt;td&gt;Automatización de navegador y operación Agent&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;UI-TARS-desktop&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/&#34; &gt;¿Dejar que AI use el ordenador? UI-TARS-desktop conecta escritorio, navegador y herramientas&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/bytedance/UI-TARS-desktop&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;bytedance/UI-TARS-desktop&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent para operar escritorio, navegador y herramientas&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren que AI opere el ordenador&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI-Trader&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/ai-trader-agent-native-trading-platform/&#34; &gt;Qué es AI-Trader: plataforma para señales y simulación de trading con Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/AI-Trader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HKUDS/AI-Trader&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Señales de trading y simulación con AI Agent&lt;/td&gt;
          &lt;td&gt;Investigadores de trading y Agents financieros&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;infraestructura-para-aplicaciones-de-ai&#34;&gt;Infraestructura para aplicaciones de AI
&lt;/h2&gt;&lt;p&gt;Esta categoría ofrece componentes base para construir aplicaciones de AI y toolchains Agent. Incluye &lt;strong&gt;3&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Prompt Optimizer&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/prompt-optimizer-prompt-engineering-tool/&#34; &gt;Prompt Optimizer: optimización, pruebas y herramientas MCP open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Optimización de prompts, pruebas y MCP&lt;/td&gt;
          &lt;td&gt;Usuarios de prompt engineering y ajuste de apps&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Playwright CLI&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/12/playwright-cli-getting-started/&#34; &gt;Playwright CLI: instalación, skills, sesiones y comandos comunes&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;microsoft/playwright-cli&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;CLI de automatización de navegador para coding agents&lt;/td&gt;
          &lt;td&gt;Usuarios Agent que necesitan operar navegador&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Vercel AI SDK&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/vercel-ai-sdk-typescript-agent-toolkit/&#34; &gt;Qué es Vercel AI SDK: toolkit unificado para apps AI en TypeScript&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;vercel/ai&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;SDK para aplicaciones AI en TypeScript&lt;/td&gt;
          &lt;td&gt;Desarrolladores front-end y full-stack&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
        </item>
        <item>
        <title>Graphify resuelve la mayor limitación de Claude Code: convertir un codebase en un grafo consultable por IA</title>
        <link>https://knightli.com/es/2026/05/21/safishamsi-graphify-ai-code-knowledge-graph/</link>
        <pubDate>Thu, 21 May 2026 08:02:32 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/21/safishamsi-graphify-ai-code-knowledge-graph/</guid>
        <description>&lt;p&gt;&lt;code&gt;safishamsi/graphify&lt;/code&gt; es una herramienta de grafo de conocimiento para asistentes de programación con IA. Su objetivo es directo: tomar el código, documentación, SQL schemas, scripts, papers, imágenes, video y audio dentro de una carpeta de proyecto, convertirlos en un grafo consultable y evitar que los asistentes de IA dependan solo de &lt;code&gt;grep&lt;/code&gt;, lectura completa de archivos o búsquedas improvisadas para entender el proyecto.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/safishamsi/graphify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;safishamsi/graphify&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de preparar este artículo, la página de GitHub muestra unas 50.2k stars y 5.4k forks, con licencia MIT. El README lo describe así: escribe &lt;code&gt;/graphify&lt;/code&gt; en tu asistente de programación con IA y mapeará todo el proyecto como un grafo de conocimiento consultable.&lt;/p&gt;
&lt;h2 id=&#34;el-problema-central-que-resuelve&#34;&gt;El problema central que resuelve
&lt;/h2&gt;&lt;p&gt;Los asistentes de programación con IA son cada vez más potentes, pero en codebases reales todavía encuentran varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No saben cómo se conectan los módulos clave.&lt;/li&gt;
&lt;li&gt;Leen muchos archivos, pero no forman un mapa general de arquitectura.&lt;/li&gt;
&lt;li&gt;La búsqueda encuentra texto, pero no dependencias aguas arriba y aguas abajo.&lt;/li&gt;
&lt;li&gt;Código, database schema, documentación e infraestructura están dispersos.&lt;/li&gt;
&lt;li&gt;En colaboración de equipo, cada persona puede tener un modelo mental distinto de la estructura del proyecto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Graphify intenta añadir una &amp;ldquo;capa de memoria&amp;rdquo; al proyecto. Conecta entidades de código, conceptos documentales, tablas de base de datos, configuración, notas de diseño y relaciones entre archivos para que el asistente de IA pueda consultar el grafo en lugar de escanear archivos desde cero cada vez.&lt;/p&gt;
&lt;h2 id=&#34;uso-mínimo&#34;&gt;Uso mínimo
&lt;/h2&gt;&lt;p&gt;El uso mínimo de Graphify es muy simple. Tras instalarlo, escribe esto en tu asistente de programación con IA:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En PowerShell, el &lt;code&gt;/&lt;/code&gt; inicial se interpreta como separador de ruta, así que en Windows PowerShell usa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de ejecutarlo, genera el directorio &lt;code&gt;graphify-out/&lt;/code&gt; con tres archivos principales:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify-out/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── graph.html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── GRAPH_REPORT.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── graph.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cada archivo cumple una función:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;graph.html&lt;/code&gt;: grafo interactivo que se abre en el navegador, con nodos clicables, filtros y búsqueda.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GRAPH_REPORT.md&lt;/code&gt;: puntos destacados del proyecto, conceptos clave, conexiones inesperadas y preguntas sugeridas.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;graph.json&lt;/code&gt;: grafo completo, consultable después sin volver a leer todos los archivos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para generar una página de arquitectura más legible con diagramas Mermaid de flujo de llamadas, ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; callflow-html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;instalación-y-soporte-de-plataformas&#34;&gt;Instalación y soporte de plataformas
&lt;/h2&gt;&lt;p&gt;El paquete de Graphify en PyPI se llama &lt;code&gt;graphifyy&lt;/code&gt;, con doble &lt;code&gt;y&lt;/code&gt;. El README advierte que otros paquetes &lt;code&gt;graphify*&lt;/code&gt; en PyPI no están afiliados al proyecto, aunque el comando CLI sigue siendo &lt;code&gt;graphify&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La instalación recomendada es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv tool install graphifyy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pipx install graphifyy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install graphifyy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después, regístralo con tu asistente de IA:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El proyecto soporta muchas plataformas, incluidas Claude Code, Codex, OpenCode, GitHub Copilot CLI, VS Code Copilot Chat, Aider, Cursor, Gemini CLI, Kimi Code, Kiro y Google Antigravity. Cada plataforma puede usar comandos distintos, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify install --platform codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify install --platform gemini
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify cursor install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify antigravity install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los usuarios de Codex también deben añadir esto bajo &lt;code&gt;[features]&lt;/code&gt; en &lt;code&gt;~/.codex/config.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;multi_agent&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README también indica que Codex usa &lt;code&gt;$graphify&lt;/code&gt;, no &lt;code&gt;/graphify&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;qué-archivos-puede-procesar&#34;&gt;Qué archivos puede procesar
&lt;/h2&gt;&lt;p&gt;Graphify cubre muchos tipos de entrada.&lt;/p&gt;
&lt;p&gt;En código, soporta 31 lenguajes, incluidos Python, TypeScript, JavaScript, Go, Rust, Java, C/C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, SQL, Shell, JSON y más.&lt;/p&gt;
&lt;p&gt;En documentación, soporta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.mdx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.qmd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.rst&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.yml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También puede ampliarse con dependencias opcionales:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[pdf]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[office]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[video]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[mcp]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[neo4j]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[sql]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[all]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;pdf&lt;/code&gt; sirve para extracción PDF, &lt;code&gt;office&lt;/code&gt; para &lt;code&gt;.docx&lt;/code&gt; y &lt;code&gt;.xlsx&lt;/code&gt;, &lt;code&gt;video&lt;/code&gt; para transcripción de video y audio, &lt;code&gt;mcp&lt;/code&gt; para MCP stdio server, &lt;code&gt;neo4j&lt;/code&gt; para enviar a Neo4j, y &lt;code&gt;sql&lt;/code&gt; para extracción de SQL schema.&lt;/p&gt;
&lt;h2 id=&#34;qué-valor-tiene-el-informe-generado&#34;&gt;Qué valor tiene el informe generado
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GRAPH_REPORT.md&lt;/code&gt; no es un resumen normal. Selecciona relaciones del proyecto que son especialmente útiles para asistentes de IA.&lt;/p&gt;
&lt;p&gt;El README menciona contenidos como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;God nodes&lt;/code&gt;: los conceptos centrales más conectados del proyecto.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Surprising connections&lt;/code&gt;: enlaces inesperados entre archivos o módulos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;The why&lt;/code&gt;: razones de diseño extraídas de comentarios, docstrings y documentos de diseño.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Suggested questions&lt;/code&gt;: preguntas que el grafo está especialmente preparado para responder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Confidence tags&lt;/code&gt;: cada relación se marca como &lt;code&gt;EXTRACTED&lt;/code&gt;, &lt;code&gt;INFERRED&lt;/code&gt; o &lt;code&gt;AMBIGUOUS&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es importante. Una búsqueda normal solo dice &amp;ldquo;dónde aparece esta palabra&amp;rdquo;. Un grafo puede responder &amp;ldquo;con qué módulos, configuraciones, tablas y documentos se conecta este concepto&amp;rdquo;. En codebases grandes, eso se acerca más a entender la arquitectura que una simple búsqueda de texto completo.&lt;/p&gt;
&lt;h2 id=&#34;comandos-comunes&#34;&gt;Comandos comunes
&lt;/h2&gt;&lt;p&gt;Comandos comunes de Graphify:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify ./docs --update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify . --cluster-only
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify . --no-viz
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify . --wiki
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; callflow-html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify query &lt;span class=&#34;s2&#34;&gt;&amp;#34;what connects auth to the database?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify path &lt;span class=&#34;s2&#34;&gt;&amp;#34;UserService&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DatabasePool&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify explain &lt;span class=&#34;s2&#34;&gt;&amp;#34;RateLimiter&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes añadir un paper o video al grafo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify add https://arxiv.org/abs/1706.03762
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify add &amp;lt;youtube-url&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para análisis asistido de PR:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs &lt;span class=&#34;m&#34;&gt;42&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs --triage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs --conflicts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estos comandos encajan con revisiones de código: ver qué comunidades del grafo afecta un PR, si hay riesgo de conflicto con otros PRs y qué review queue conviene priorizar.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-mcp-neo4j-y-ci&#34;&gt;Relación con MCP, Neo4j y CI
&lt;/h2&gt;&lt;p&gt;Graphify no solo genera un grafo HTML. También puede exponer el grafo a asistentes de IA para uso repetido.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes iniciar un MCP server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m graphify.serve graphify-out/graph.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El MCP server ofrece capacidades como &lt;code&gt;query_graph&lt;/code&gt;, &lt;code&gt;get_node&lt;/code&gt;, &lt;code&gt;get_neighbors&lt;/code&gt;, &lt;code&gt;shortest_path&lt;/code&gt;, &lt;code&gt;list_prs&lt;/code&gt;, &lt;code&gt;get_pr_impact&lt;/code&gt; y &lt;code&gt;triage_prs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;También soporta exportación o push a Neo4j:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify ./raw --neo4j
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify ./raw --neo4j-push bolt://localhost:7687
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para trabajo en equipo, el README recomienda poder commitear &lt;code&gt;graphify-out/&lt;/code&gt;, de modo que todos empiecen con el mismo mapa del proyecto. También puedes ejecutar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify hook install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Así el grafo se reconstruye automáticamente después de cada git commit y se configura un merge driver para evitar que &lt;code&gt;graph.json&lt;/code&gt; quede con marcadores de conflicto cuando varias personas commitean en paralelo.&lt;/p&gt;
&lt;h2 id=&#34;privacidad-y-coste&#34;&gt;Privacidad y coste
&lt;/h2&gt;&lt;p&gt;El README de Graphify explica bastante bien los límites de privacidad.&lt;/p&gt;
&lt;p&gt;Los archivos de código se parsean localmente con tree-sitter y no generan llamadas API. Video y audio pueden transcribirse localmente con faster-whisper. Docs, PDFs e imágenes para extracción semántica pasan por la API del modelo usado por tu asistente de IA.&lt;/p&gt;
&lt;p&gt;Si usas headless &lt;code&gt;graphify extract&lt;/code&gt;, puede que necesites estas variables de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GEMINI_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GOOGLE_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OPENAI_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;DEEPSEEK_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MOONSHOT_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OLLAMA_BASE_URL
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También pueden usarse backends como Ollama local, AWS Bedrock o Claude Code CLI. El README indica además que el proyecto no tiene telemetry, usage tracking ni analytics.&lt;/p&gt;
&lt;p&gt;En la práctica, conviene recordar que parsear código localmente no significa que todo se quede offline. Si intervienen docs, PDFs, imágenes o modelos cloud, hay que revisar backend, API keys, cumplimiento empresarial y límites de datos.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;Graphify encaja con varios tipos de usuarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desarrolladores que quieren que Claude Code, Codex, Cursor y Gemini CLI entiendan mejor la estructura del proyecto.&lt;/li&gt;
&lt;li&gt;Personas que necesitan comprender rápido un codebase grande y desconocido.&lt;/li&gt;
&lt;li&gt;Equipos que quieren analizar juntos código, SQL schema, documentación y configuración.&lt;/li&gt;
&lt;li&gt;Personas que hacen revisión de arquitectura, PR review o análisis de impacto de refactors.&lt;/li&gt;
&lt;li&gt;Equipos que quieren exponer conocimiento del proyecto como herramienta MCP para Agents.&lt;/li&gt;
&lt;li&gt;Líderes técnicos que quieren conservar un &amp;ldquo;mapa del proyecto&amp;rdquo; para el equipo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es necesario para todos los proyectos. En scripts pequeños, demos puntuales o repositorios muy simples, una búsqueda normal y el README quizá basten. El valor de Graphify aparece con más claridad en proyectos con muchos módulos, mucha documentación, mucha colaboración y uso frecuente de asistentes de IA.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Graphify importa porque mueve el contexto de los asistentes de programación con IA desde &amp;ldquo;leer archivos temporalmente&amp;rdquo; hacia &amp;ldquo;un grafo de conocimiento del proyecto consultable y persistente&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Para desarrolladores, no reemplaza el IDE, la búsqueda o el LSP. Añade una capa de memoria estructurada para asistentes de IA: qué módulos importan, qué conceptos están muy conectados, qué documentos explican decisiones de diseño y qué comunidades puede afectar un PR. A medida que herramientas Agent como Codex, Claude Code, Gemini CLI y Antigravity se vuelvan más comunes, esta capa de grafo del proyecto será cada vez más útil.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/safishamsi/graphify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub: safishamsi/graphify&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini 3.5 ya está aquí: Flash llega primero y Google pone el foco en agentes y tareas largas</title>
        <link>https://knightli.com/es/2026/05/20/google-gemini-3-5-flash-agent-coding/</link>
        <pubDate>Wed, 20 May 2026 22:51:31 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/20/google-gemini-3-5-flash-agent-coding/</guid>
        <description>&lt;p&gt;Google lanzó oficialmente la serie Gemini 3.5 el 20 de mayo de 2026. El primer modelo disponible es Gemini 3.5 Flash. Su posicionamiento no es solo chat, sino agentes, generación de código y ejecución de tareas complejas de larga duración.&lt;/p&gt;
&lt;p&gt;El mensaje de esta presentación es claro: Google quiere que Gemini 3.5 no solo responda preguntas, sino que también planifique, ejecute, compruebe resultados y mantenga el avance en flujos de trabajo de varios pasos.&lt;/p&gt;
&lt;h2 id=&#34;gemini-35-flash-llega-primero&#34;&gt;Gemini 3.5 Flash llega primero
&lt;/h2&gt;&lt;p&gt;Gemini 3.5 Flash ya está disponible para varios tipos de usuarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los usuarios generales pueden probarlo en la app Gemini y en AI Mode de Google Search.&lt;/li&gt;
&lt;li&gt;Los desarrolladores pueden usarlo mediante Google Antigravity, Google AI Studio y la Gemini API en Android Studio.&lt;/li&gt;
&lt;li&gt;Los usuarios empresariales pueden acceder a él mediante Gemini Enterprise Agent Platform y Gemini Enterprise.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google también dijo que Gemini 3.5 Pro sigue en desarrollo, ya se usa internamente en Google y se espera para el próximo mes.&lt;/p&gt;
&lt;p&gt;Esto indica que la serie 3.5 mantiene la división entre Flash y Pro: Flash enfatiza velocidad, costo y ejecución a escala, mientras que Pro probablemente apuntará a escenarios más complejos y con mayores requisitos de capacidad.&lt;/p&gt;
&lt;h2 id=&#34;el-foco-está-en-agentes-y-código&#34;&gt;El foco está en agentes y código
&lt;/h2&gt;&lt;p&gt;Google describe Gemini 3.5 Flash como uno de sus modelos más fuertes para agentes y programación. El anuncio afirma que supera algunos resultados de Gemini 3.1 Pro en benchmarks de código y agentes como Terminal-Bench 2.1, GDPval-AA, MCP Atlas y CharXiv Reasoning.&lt;/p&gt;
&lt;p&gt;La mayoría de usuarios no necesita obsesionarse con cada número. Lo más importante es que Google está llevando la capacidad del modelo hacia flujos ejecutables: no solo escribir código, sino migrar proyectos antiguos, desarrollar aplicaciones complejas, organizar reportes financieros, analizar datos y ejecutar pruebas repetidas.&lt;/p&gt;
&lt;p&gt;Dentro del framework de desarrollo Antigravity, Gemini 3.5 Flash puede usar varios subagents colaborativos para manejar tareas grandes. Google mostró ejemplos como analizar el paper de AlphaZero y crear un juego jugable, convertir código legacy a Next.js y generar paisajes urbanos y opciones de UI en paralelo.&lt;/p&gt;
&lt;p&gt;La dirección es clara: las herramientas de programación con IA están pasando de &amp;ldquo;generar un fragmento de código&amp;rdquo; a &amp;ldquo;coordinar varios agentes para completar un proyecto&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;ui-multimodal-y-gráficos-más-potentes&#34;&gt;UI multimodal y gráficos más potentes
&lt;/h2&gt;&lt;p&gt;Gemini 3.5 Flash se apoya en la base multimodal de Gemini 3. Google dice que puede generar interfaces web más ricas, animaciones interactivas y contenido visual.&lt;/p&gt;
&lt;p&gt;El anuncio incluye ejemplos como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear animaciones interactivas para papers de investigación.&lt;/li&gt;
&lt;li&gt;Convertir descripciones de texto en modelos de hardware interactivos.&lt;/li&gt;
&lt;li&gt;Generar un concepto completo de marca para una campaña escolar de recaudación.&lt;/li&gt;
&lt;li&gt;Producir varias opciones de UX para un flujo de checkout en poco tiempo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto importa para desarrolladores y equipos de producto. El modelo ya no solo escribe explicaciones. También puede participar en prototipos frontend, diseño de interacción y visualización.&lt;/p&gt;
&lt;h2 id=&#34;uso-empresarial-automatizar-flujos-que-consumen-tiempo&#34;&gt;Uso empresarial: automatizar flujos que consumen tiempo
&lt;/h2&gt;&lt;p&gt;Google citó varios ejemplos de socios. Shopify usa subagents para analizar datos complejos y predecir crecimiento de comerciantes. Macquarie Bank prueba 3.5 Flash con documentos de más de 100 páginas para acelerar la apertura de cuentas. Salesforce lo integra en Agentforce. Ramp lo usa para mejorar OCR en facturas complejas. Xero usa agentes de IA para procesos administrativos. Databricks usa flujos automatizados para monitorear anomalías de datos y sugerir correcciones.&lt;/p&gt;
&lt;p&gt;Estos casos apuntan a la misma tendencia: la adopción empresarial de modelos grandes se está moviendo de preguntas puntuales a automatización de procesos. Que un modelo sea barato, rápido y estable en tareas largas puede importar más que una respuesta aislada muy llamativa.&lt;/p&gt;
&lt;h2 id=&#34;gemini-spark-un-agente-personal-de-ia&#34;&gt;Gemini Spark: un agente personal de IA
&lt;/h2&gt;&lt;p&gt;Google también anunció Gemini Spark, un agente personal de IA impulsado por Gemini 3.5 Flash. Su objetivo es ejecutarse durante largos periodos y realizar tareas de forma proactiva bajo la guía del usuario.&lt;/p&gt;
&lt;p&gt;Gemini Spark ya empezó a desplegarse para testers de confianza. Google planea abrir una beta la próxima semana para suscriptores de Google AI Ultra en Estados Unidos.&lt;/p&gt;
&lt;p&gt;Vale la pena seguir esta parte. Google Search, la app Gemini, Android, Workspace y el ecosistema del navegador ya están presentes en muchas áreas de la vida digital personal. Si un agente personal puede conectarse con estas entradas, su impacto puede ser mayor que el de un chatbot aislado.&lt;/p&gt;
&lt;h2 id=&#34;la-seguridad-se-mueve-más-arriba-en-el-proceso&#34;&gt;La seguridad se mueve más arriba en el proceso
&lt;/h2&gt;&lt;p&gt;Google dice que Gemini 3.5 fue desarrollado bajo su Frontier Safety Framework, con protecciones reforzadas para seguridad de la información y riesgos CBRN. El anuncio también menciona herramientas de interpretabilidad para ayudar a examinar y entender el razonamiento del modelo antes de entregar respuestas.&lt;/p&gt;
&lt;p&gt;Esto muestra que los lanzamientos de modelos frontera ya no son solo una competencia de capacidad. Cuanto más se enfatizan agentes, ejecución autónoma y tareas largas, más importantes se vuelven los controles de seguridad, la tasa de rechazos erróneos, la prevención de salidas dañinas y la interpretabilidad.&lt;/p&gt;
&lt;h2 id=&#34;cómo-mirar-gemini-35&#34;&gt;Cómo mirar Gemini 3.5
&lt;/h2&gt;&lt;p&gt;Gemini 3.5 Flash no es solo otro lanzamiento de modelo. Parece más bien la apuesta de Google por la siguiente forma de los productos de IA: modelos que llaman herramientas, dividen tareas, coordinan ejecución, generan UI y entran en flujos personales y empresariales.&lt;/p&gt;
&lt;p&gt;Para desarrolladores, lo importante será la experiencia real en Google Antigravity, AI Studio, Gemini API y Android Studio. Para empresas, la pregunta es si puede reducir trabajo manual de forma estable en flujos reales, no solo sacar buenos resultados en benchmarks.&lt;/p&gt;
&lt;p&gt;Gemini 3.5 Pro todavía no está disponible públicamente. Cuando Pro llegue, las diferencias entre Flash y Pro en capacidad, precio, velocidad y manejo de contexto determinarán para qué escenarios de producción conviene cada uno.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/intl/zh-tw/products/explore-get-answers/gemini-3-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google Blog: Gemini 3.5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>agentmemory: memoria persistente para Claude Code, Codex, Cursor y otros agentes de programación</title>
        <link>https://knightli.com/es/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;rohitg00/agentmemory&lt;/code&gt; es un sistema de memoria persistente para agentes de programación con IA. Su objetivo es claro: que Claude Code, Codex CLI, Cursor, Gemini CLI, OpenCode y herramientas similares no tengan que volver a aprender el contexto del proyecto, las decisiones de arquitectura y los problemas históricos en cada sesión nueva.&lt;/p&gt;
&lt;p&gt;URL del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/rohitg00/agentmemory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/rohitg00/agentmemory&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir este artículo, la API de GitHub mostraba unas 13k estrellas, TypeScript como lenguaje principal y licencia Apache-2.0. El README lo describe como &amp;ldquo;Persistent memory for AI coding agents&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Un dolor habitual de los coding agents es la fragmentación de memoria. Puedes pedir a un agente que arregle un problema de autenticación hoy y abrir una conversación nueva mañana, pero quizá ya no recuerde:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué se tomó una decisión de arquitectura.&lt;/li&gt;
&lt;li&gt;Qué archivos son delicados.&lt;/li&gt;
&lt;li&gt;Qué bugs se corrigieron antes.&lt;/li&gt;
&lt;li&gt;Qué comandos, herramientas o servicios locales usa el proyecto.&lt;/li&gt;
&lt;li&gt;Qué convenciones sigue el equipo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las notas estáticas ayudan, pero a menudo se olvidan o no están conectadas al flujo activo. agentmemory intenta ofrecer una capa de memoria compartida entre distintas herramientas de programación con IA.&lt;/p&gt;
&lt;h2 id=&#34;agentes-compatibles&#34;&gt;Agentes compatibles
&lt;/h2&gt;&lt;p&gt;El README menciona Claude Code, Codex CLI, Cursor, Gemini CLI, OpenCode y otras herramientas compatibles con MCP. La idea central es exponer memoria mediante un servicio local, MCP, hooks e integraciones, para que varios asistentes compartan el mismo contexto de proyecto.&lt;/p&gt;
&lt;p&gt;Esto es útil para equipos que cambian de herramienta. Un desarrollador puede usar Cursor, otro Claude Code y la automatización Codex CLI. Una capa de memoria compartida reduce explicaciones repetidas.&lt;/p&gt;
&lt;h2 id=&#34;inicio-rápido&#34;&gt;Inicio rápido
&lt;/h2&gt;&lt;p&gt;Instalación global:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @agentmemory/agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory connect claude-code
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También se puede ejecutar con npx:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx @agentmemory/agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El servicio local queda disponible en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:3113
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En la práctica, el flujo suele ser iniciar el servicio, conectar el asistente de programación y dejar que el agente lea o escriba memorias del proyecto durante el desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-con-archivos-de-memoria-estáticos&#34;&gt;Diferencia con archivos de memoria estáticos
&lt;/h2&gt;&lt;p&gt;Muchos equipos ya mantienen &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;CLAUDE.md&lt;/code&gt;, README o documentación local. Esos archivos son útiles, pero estáticos. No capturan automáticamente historial de sesiones, resultados de tareas o decisiones recurrentes.&lt;/p&gt;
&lt;p&gt;agentmemory se parece más a un servicio de contexto persistente. Puede guardar y mostrar memorias relevantes para el proyecto o la tarea actual. No busca reemplazar la documentación, sino hacer más reutilizable el contexto de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-típicos&#34;&gt;Escenarios típicos
&lt;/h2&gt;&lt;p&gt;Puede servir para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recordar pasos de setup y comandos frecuentes.&lt;/li&gt;
&lt;li&gt;Registrar por qué se evitó un refactor arriesgado.&lt;/li&gt;
&lt;li&gt;Guardar notas sobre tests inestables o servicios locales.&lt;/li&gt;
&lt;li&gt;Compartir terminología de dominio entre asistentes.&lt;/li&gt;
&lt;li&gt;Ayudar a continuar trabajo después de abrir una sesión nueva.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tiene más valor en productos de larga vida, monorepos y proyectos con muchas convenciones implícitas.&lt;/p&gt;
&lt;h2 id=&#34;precauciones&#34;&gt;Precauciones
&lt;/h2&gt;&lt;p&gt;La calidad de la memoria importa. Si se guarda información vieja o incorrecta, los agentes futuros pueden repetir el error. Las memorias importantes deberían ser cortas, claras y revisables.&lt;/p&gt;
&lt;p&gt;También importa la privacidad. No conviene guardar secretos, API keys, datos de clientes ni información sensible de producción si el modelo de seguridad no está claro.&lt;/p&gt;
&lt;p&gt;Por último, la memoria no sustituye las pruebas. Ayuda a entender contexto, pero la garantía final viene de revisión de código, tests y verificación.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;agentmemory encaja con desarrolladores que usan varias herramientas de AI coding, equipos con codebases grandes y usuarios que necesitan que un agente continúe trabajo anterior. No es imprescindible para scripts pequeños de una sola vez.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;agentmemory es interesante porque trata la memoria como infraestructura para AI coding, no como un pequeño truco de prompt. Si los coding agents entran en el desarrollo diario, la memoria persistente de proyecto se vuelve una pieza práctica que faltaba.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guía para ahorrar tokens en Claude Code: cómo modelos, MCP, CLAUDE.md y Skills afectan la caché</title>
        <link>https://knightli.com/es/2026/05/18/claude-code-prompt-cache-token-optimization/</link>
        <pubDate>Mon, 18 May 2026 18:30:24 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/claude-code-prompt-cache-token-optimization/</guid>
        <description>&lt;p&gt;En tareas largas con Claude Code, la tasa de aciertos de Prompt Cache afecta directamente el costo y la velocidad. Muchos usuarios saben que la caché puede ahorrar tokens, pero no qué acciones hacen que falle de repente.&lt;/p&gt;
&lt;p&gt;La forma más simple de entenderlo es imaginar cada petición como una cadena de contexto de izquierda a derecha:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tools -&amp;gt; system -&amp;gt; CLAUDE.md / skills -&amp;gt; messages
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuanto más a la izquierda está un contenido, más estable debería ser y mayor es el beneficio de cachearlo. Si cambia una sección de la izquierda, todo lo que va después puede necesitar recalcularse. Si cambia algo a la derecha, el impacto suele ser menor.&lt;/p&gt;
&lt;p&gt;Optimizar Prompt Cache en Claude Code no es magia. La regla es simple: antes de iniciar una tarea, prepara modelo, servidores MCP, Skills, &lt;code&gt;CLAUDE.md&lt;/code&gt; y el contexto base. Una vez iniciada, cambia lo menos posible esa parte fija.&lt;/p&gt;
&lt;h2 id=&#34;prompt-cache-no-guarda-texto-plano&#34;&gt;Prompt Cache no guarda texto plano
&lt;/h2&gt;&lt;p&gt;Prompt Cache no es solo una caché de cadenas de texto. En la inferencia Transformer, lo importante es el estado Key/Value calculado por las capas de atención a partir del prefijo de contexto, lo que solemos llamar KV cache.&lt;/p&gt;
&lt;p&gt;Eso implica dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si el prefijo se mantiene estable, parte del cálculo previo puede reutilizarse.&lt;/li&gt;
&lt;li&gt;Si cambian el modelo, las definiciones de herramientas, el prompt del sistema o los mensajes iniciales, las entradas antiguas de caché pueden dejar de coincidir.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La documentación de Anthropic resume la jerarquía de invalidación como &lt;code&gt;tools -&amp;gt; system -&amp;gt; messages&lt;/code&gt;. Cambiar definiciones de herramientas puede invalidar toda la caché; cambios en system afectan system y messages; cambios en messages afectan sobre todo la caché de mensajes.&lt;/p&gt;
&lt;p&gt;Claude Code añade otras fuentes de contexto como &lt;code&gt;CLAUDE.md&lt;/code&gt;, Skills, MCP, plugins y subagents, así que es fácil romper la caché sin querer.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-1-cambiar-de-modelo-a-mitad-de-tarea&#34;&gt;Asesino de caché 1: cambiar de modelo a mitad de tarea
&lt;/h2&gt;&lt;p&gt;Cambiar de modelo es una de las operaciones más caras.&lt;/p&gt;
&lt;p&gt;Prompt Cache está aislada por modelo. Opus, Sonnet y Haiku tienen arquitecturas y pesos distintos, así que el KV cache calculado desde el mismo texto no es intercambiable. Si construyes un contexto largo en Opus y luego cambias a Sonnet, Sonnet no puede reutilizar la caché de Opus.&lt;/p&gt;
&lt;p&gt;Esto produce un resultado poco intuitivo: cambiar a un modelo más barato a mitad de tarea puede hacer inútil la caché acumulada. El contexto que podría leerse a precio de cache read quizá tenga que escribirse y calcularse de nuevo.&lt;/p&gt;
&lt;p&gt;Un patrón más estable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mantén la conversación principal en un solo modelo.&lt;/li&gt;
&lt;li&gt;Usa un subagent para tareas laterales que puedan ejecutarse con un modelo más barato.&lt;/li&gt;
&lt;li&gt;Deja que el agente lateral busque, explore o resuma, y devuelva un resultado breve a la conversación principal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así el prefijo largo de la conversación principal se mantiene estable y la caché acierta con más consistencia.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-2-añadir-mcp-o-recargar-plugins-a-mitad-de-tarea&#34;&gt;Asesino de caché 2: añadir MCP o recargar plugins a mitad de tarea
&lt;/h2&gt;&lt;p&gt;MCP proporciona herramientas a Claude Code. Al añadir un servidor MCP, cambia la lista de herramientas, y las definiciones de herramientas están en el extremo izquierdo de la cadena de contexto.&lt;/p&gt;
&lt;p&gt;Desde la perspectiva de Prompt Cache, cuando cambia la lista de herramientas, system y messages pueden necesitar recalcularse. Si usas muchos MCP, las definiciones de herramientas pueden ocupar muchos tokens, y el costo de invalidación se nota.&lt;/p&gt;
&lt;p&gt;Un detalle importante: Claude Code suele leer la configuración MCP al iniciar la sesión. Cambiar configuración durante la sesión no siempre afecta de inmediato. Los momentos peligrosos son reiniciar, hacer resume, recargar plugins o reconstruir la lista de herramientas.&lt;/p&gt;
&lt;p&gt;Recomendaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instala los MCP necesarios antes de iniciar una tarea larga.&lt;/li&gt;
&lt;li&gt;Evita descubrir a mitad de trabajo que falta una herramienta y recargar.&lt;/li&gt;
&lt;li&gt;Reduce los MCP habilitados por defecto cuando sea posible.&lt;/li&gt;
&lt;li&gt;No mantengas servidores MCP raramente usados siempre activos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las definiciones de herramientas estables son la base de una Prompt Cache estable.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-3-editar-claudemd-durante-la-sesión&#34;&gt;Asesino de caché 3: editar CLAUDE.md durante la sesión
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es el archivo de memoria de proyecto de Claude Code. Sirve para comandos de build, tests, convenciones de arquitectura, estilo de código y restricciones del proyecto.&lt;/p&gt;
&lt;p&gt;Es útil, pero también entra en el contexto. La ayuda de Claude explica que &lt;code&gt;CLAUDE.md&lt;/code&gt; se lee al iniciar la sesión y se entrega como mensaje de usuario. También se beneficia de Prompt Cache: la primera petición paga el precio completo de entrada, y las siguientes pueden usar el precio menor de cache read si la caché sigue válida.&lt;/p&gt;
&lt;p&gt;El problema es que &lt;code&gt;CLAUDE.md&lt;/code&gt; se identifica por contenido. Si cambias el archivo, la caché antigua deja de coincidir.&lt;/p&gt;
&lt;p&gt;Por eso conviene no editar &lt;code&gt;CLAUDE.md&lt;/code&gt; con frecuencia durante tareas largas. Mejor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisa si &lt;code&gt;CLAUDE.md&lt;/code&gt; es suficiente antes de empezar.&lt;/li&gt;
&lt;li&gt;Coloca reglas estables en el archivo e instrucciones temporales en la conversación.&lt;/li&gt;
&lt;li&gt;No edites la memoria de largo plazo por una necesidad puntual.&lt;/li&gt;
&lt;li&gt;Si debes cambiarlo, trata la siguiente fase como una nueva sesión o etapa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; debería ser guía estable de proyecto, no un borrador temporal que cambia cada ronda.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-4-instalar-o-actualizar-skills-a-mitad-de-tarea&#34;&gt;Asesino de caché 4: instalar o actualizar Skills a mitad de tarea
&lt;/h2&gt;&lt;p&gt;Skills también forman parte del contexto. Instalar una Skill nueva, actualizar una Skill o cambiar la lista de Skills cambia lo que se inyecta en la sesión.&lt;/p&gt;
&lt;p&gt;Estos cambios suelen aplicarse al recargar, reanudar o abrir una nueva sesión. Cuando messages se reconstruye, las entradas antiguas de caché pueden dejar de servir.&lt;/p&gt;
&lt;p&gt;La recomendación es similar a MCP:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decide qué Skills necesitas antes de empezar.&lt;/li&gt;
&lt;li&gt;Mantén estable el conjunto de Skills para tareas similares.&lt;/li&gt;
&lt;li&gt;Evita instalar Skills en mitad de una tarea larga.&lt;/li&gt;
&lt;li&gt;Si instalas una Skill nueva, trátalo como inicio de una nueva etapa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para flujos repetibles como producción de contenido, review, despliegue o traducción, mantener un conjunto fijo de Skills ayuda a estabilizar la estructura del contexto.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-5-estar-inactivo-más-allá-del-ttl&#34;&gt;Asesino de caché 5: estar inactivo más allá del TTL
&lt;/h2&gt;&lt;p&gt;Prompt Cache no dura para siempre. Un TTL común está en el orden de minutos, y la documentación relacionada con Claude Code suele hablar de una ventana cercana a cinco minutos. Pasado el TTL, incluso la misma petición puede requerir reconstruir la caché.&lt;/p&gt;
&lt;p&gt;Esto explica una sensación común en tareas largas: todo iba rápido y barato, sales por un café, vuelves y el costo de tokens sube otra vez.&lt;/p&gt;
&lt;p&gt;Es fácil que ocurra. Lees la salida de Claude Code, inspeccionas archivos, ejecutas tests o piensas el siguiente paso. Cinco minutos pasan rápido.&lt;/p&gt;
&lt;p&gt;Si tu entorno lo permite, puedes pedir un TTL de una hora antes de tareas largas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Windows PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Las escrituras de caché de una hora suelen costar más que las de cinco minutos. No siempre conviene para tareas cortas, pero en bases de código grandes, conversaciones largas y trabajos complejos de varias etapas, puede ser más barato que sufrir expiraciones repetidas.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-de-claude-code-que-ahorra-tokens&#34;&gt;Un flujo de Claude Code que ahorra tokens
&lt;/h2&gt;&lt;p&gt;Un flujo más estable sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Elegir el modelo antes de empezar y evitar cambios frecuentes.&lt;/li&gt;
&lt;li&gt;Habilitar los MCP necesarios y desactivar los que no usarás.&lt;/li&gt;
&lt;li&gt;Mantener &lt;code&gt;CLAUDE.md&lt;/code&gt; breve, estable y centrado en reglas duraderas.&lt;/li&gt;
&lt;li&gt;Preparar por adelantado las Skills necesarias.&lt;/li&gt;
&lt;li&gt;En tareas complejas, considerar TTL de una hora.&lt;/li&gt;
&lt;li&gt;Dividir la tarea en fases, pero mantener estable la estructura de contexto dentro de cada fase.&lt;/li&gt;
&lt;li&gt;Usar subagents o sesiones separadas para exploraciones laterales, sin alterar la conversación principal.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El objetivo no es eliminar todos los fallos de caché. Es evitar los fallos caros y fáciles de pasar por alto.&lt;/p&gt;
&lt;h2 id=&#34;regla-rápida&#34;&gt;Regla rápida
&lt;/h2&gt;&lt;p&gt;Hazte esta pregunta:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;¿Esta operación cambia el modelo, las definiciones de herramientas, el contexto del sistema o los mensajes fijos del inicio de la sesión?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si la respuesta es sí, probablemente afecte a Prompt Cache. Cuanto más a la izquierda esté en la cadena de contexto, mayor será el impacto.&lt;/p&gt;
&lt;p&gt;Operaciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambiar modelo: alto riesgo, cachés aisladas por modelo.&lt;/li&gt;
&lt;li&gt;Añadir MCP o recargar plugins: alto riesgo, cambia la lista de herramientas.&lt;/li&gt;
&lt;li&gt;Editar &lt;code&gt;CLAUDE.md&lt;/code&gt;: riesgo medio-alto, cambia la memoria del proyecto.&lt;/li&gt;
&lt;li&gt;Instalar Skills: riesgo medio-alto, cambia el contexto inyectado.&lt;/li&gt;
&lt;li&gt;Continuar una conversación normal: bajo riesgo, principalmente añade messages.&lt;/li&gt;
&lt;li&gt;Superar el TTL en inactividad: alto riesgo, la caché del servidor expira.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Optimizar Prompt Cache en Claude Code consiste en mantener estable el prefijo de la sesión.&lt;/p&gt;
&lt;p&gt;No cambies modelos sin necesidad. No instales MCP y Skills a mitad de trabajo. No uses &lt;code&gt;CLAUDE.md&lt;/code&gt; como borrador temporal. En tareas complejas, considera un TTL más largo. Con estas bases estables, el costo en tokens y la velocidad de respuesta se vuelven mucho más predecibles.&lt;/p&gt;
&lt;p&gt;La frase práctica es: configura antes de empezar, cambia menos después.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic: Tool use with prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/14553240-give-claude-context-claude-md-and-better-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Help Center: CLAUDE.md and prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/mcp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Code Docs: Connect Claude Code to tools via MCP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo ve el desarrollo de software con IA Peter Steinberger, creador de OpenClaw: de OpenClaw a la programación en bucle cerrado</title>
        <link>https://knightli.com/es/2026/05/17/peter-steinberger-ai-software-development/</link>
        <pubDate>Sun, 17 May 2026 20:02:26 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/peter-steinberger-ai-software-development/</guid>
        <description>&lt;p&gt;La trayectoria de Peter Steinberger sirve para observar qué está cambiando en el desarrollo de software con IA.&lt;/p&gt;
&lt;p&gt;No es un recién llegado que se hizo visible de repente gracias a la IA. Antes de OpenClaw, ya era fundador de PSPDFKit, una empresa dedicada a renderizado PDF, procesamiento de documentos y herramientas para desarrolladores. Este tipo de producto no gana solo con narrativa: debe resolver rendimiento, compatibilidad, diseño de API, clientes empresariales y mantenimiento a largo plazo.&lt;/p&gt;
&lt;p&gt;Por eso, cuando Steinberger construyó OpenClaw con herramientas de IA y empezó a hablar de AI Agent, automatización personal y AI coding, lo importante no fue solo que &amp;ldquo;una persona escribió mucho código&amp;rdquo;. Lo más interesante es cómo combinó años de experiencia en ingeniería de software con una nueva generación de AI coding agents para reinterpretar el proceso de desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;ai-coding-no-es-un-botón-mágico&#34;&gt;AI coding no es un botón mágico
&lt;/h2&gt;&lt;p&gt;Muchas discusiones sobre AI coding se reducen a dos extremos.&lt;/p&gt;
&lt;p&gt;Uno dice que la IA ya puede escribir código y que los programadores pronto no serán necesarios.&lt;/p&gt;
&lt;p&gt;El otro dice que el código generado por IA no es fiable y que la ingeniería real debe seguir escribiéndose a mano.&lt;/p&gt;
&lt;p&gt;La experiencia de Steinberger apunta a una tercera idea: la IA cambia la unidad de operación del desarrollo de software, pero no elimina el juicio de ingeniería.&lt;/p&gt;
&lt;p&gt;Antes, el trabajo del desarrollador giraba alrededor de editar código. Descomponer requisitos, decidir arquitectura, implementar, probar y corregir bugs se organizaba alrededor de cambios manuales.&lt;/p&gt;
&lt;p&gt;Cuando entran AI coding agents, el desarrollador empieza a parecerse más a alguien que gestiona un sistema de ejecución:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explicar el objetivo.&lt;/li&gt;
&lt;li&gt;Proporcionar contexto.&lt;/li&gt;
&lt;li&gt;Definir límites.&lt;/li&gt;
&lt;li&gt;Dejar que el agent modifique código.&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas y comprobaciones.&lt;/li&gt;
&lt;li&gt;Iterar según los resultados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no es simplemente entregar el teclado al modelo. Es pasar de &amp;ldquo;escribir cada línea a mano&amp;rdquo; a &amp;ldquo;definir dirección, diseñar feedback y juzgar resultados&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-no-le-convence-llamarlo-vibe-coding&#34;&gt;Por qué no le convence llamarlo vibe coding
&lt;/h2&gt;&lt;p&gt;Una expresión frecuente alrededor de Steinberger es &lt;code&gt;vibe coding&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El término nació para describir una nueva forma de desarrollo: el desarrollador describe ideas en lenguaje natural, deja que la IA genere mucho código y luego ajusta con resultados de ejecución y feedback.&lt;/p&gt;
&lt;p&gt;Pero Steinberger no está del todo de acuerdo con esa etiqueta. En cobertura pública se ha señalado que ve &lt;code&gt;vibe coding&lt;/code&gt; como una expresión que puede volverse despectiva, porque sugiere que el desarrollo asistido por IA es solo &amp;ldquo;generar por intuición&amp;rdquo; e ignora la habilidad, el juicio y la experiencia detrás.&lt;/p&gt;
&lt;p&gt;La crítica tiene sentido.&lt;/p&gt;
&lt;p&gt;El AI coding efectivo no consiste en escribir una frase casual y confiar en la salida del modelo. Requiere:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convertir requisitos vagos en tareas ejecutables.&lt;/li&gt;
&lt;li&gt;Detectar si el modelo entendió mal el objetivo.&lt;/li&gt;
&lt;li&gt;Diseñar pruebas y criterios de aceptación.&lt;/li&gt;
&lt;li&gt;Juzgar si la estructura del código será mantenible.&lt;/li&gt;
&lt;li&gt;Saber cuándo dejar de generar y pasar a revisión humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, la IA reduce la fricción de escribir código, pero no reduce la responsabilidad de entender el sistema.&lt;/p&gt;
&lt;h2 id=&#34;la-clave-es-el-bucle&#34;&gt;La clave es el bucle
&lt;/h2&gt;&lt;p&gt;Una idea que se asocia con frecuencia a entrevistas y textos de Steinberger es el bucle.&lt;/p&gt;
&lt;p&gt;Dejar que la IA genere código es un proceso de bucle abierto.&lt;/p&gt;
&lt;p&gt;Dejar que la IA genere código, lo ejecute, lea errores, corrija problemas y vuelva a ejecutar pruebas se acerca más a un bucle cerrado.&lt;/p&gt;
&lt;p&gt;La diferencia es importante.&lt;/p&gt;
&lt;p&gt;La generación en bucle abierto crea con facilidad software que parece utilizable. La página abre, las funciones parecen existir y hay bastante código. Pero al entrar en escenarios reales aparecen problemas de estado, permisos, manejo de errores, casos límite y despliegue.&lt;/p&gt;
&lt;p&gt;El desarrollo en bucle cerrado exige que la salida esté limitada por feedback. El bucle más simple es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribir claramente el objetivo.&lt;/li&gt;
&lt;li&gt;Dejar que la IA modifique el código.&lt;/li&gt;
&lt;li&gt;Ejecutar automáticamente pruebas, type checks, lint o build.&lt;/li&gt;
&lt;li&gt;Devolver los errores a la IA.&lt;/li&gt;
&lt;li&gt;Repetir hasta que pase.&lt;/li&gt;
&lt;li&gt;Hacer una revisión humana de la ruta crítica.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ahí es donde el desarrollo de software con IA puede mejorar de verdad la eficiencia. No porque el modelo acierte a la primera, sino porque puede participar rápidamente en el ciclo de generar, validar y reparar.&lt;/p&gt;
&lt;h2 id=&#34;cuanta-más-experiencia-mejor-se-usa-la-ia&#34;&gt;Cuanta más experiencia, mejor se usa la IA
&lt;/h2&gt;&lt;p&gt;Uno de los malentendidos más comunes sobre AI coding es que la experiencia deja de importar.&lt;/p&gt;
&lt;p&gt;El caso de Steinberger sugiere lo contrario: la experiencia importa más, aunque su función cambia.&lt;/p&gt;
&lt;p&gt;Un ingeniero con experiencia juzga mejor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué tareas conviene pasar a un agent.&lt;/li&gt;
&lt;li&gt;Qué módulos necesitan pruebas primero.&lt;/li&gt;
&lt;li&gt;Qué cambios son demasiado riesgosos para una refactorización amplia con IA.&lt;/li&gt;
&lt;li&gt;Qué código generado solo parece razonable.&lt;/li&gt;
&lt;li&gt;Qué problemas deberían resolverse con arquitectura y no con más parches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La IA puede generar muchas soluciones candidatas, pero cuantas más opciones hay, más juicio se necesita. Alguien sin experiencia puede quedar impresionado porque &amp;ldquo;funciona&amp;rdquo;. Un ingeniero con experiencia pregunta: ¿se puede mantener? ¿se puede extender? ¿rompe límites de seguridad? ¿se puede depurar si falla?&lt;/p&gt;
&lt;p&gt;Por eso los AI coding agents no convierten la ingeniería de software en puro chat. Más bien externalizan una parte del trabajo de ejecución y amplifican la importancia de planificar, revisar, validar y decidir trade-offs.&lt;/p&gt;
&lt;h2 id=&#34;openclaw-importa-más-allá-del-proyecto&#34;&gt;OpenClaw importa más allá del proyecto
&lt;/h2&gt;&lt;p&gt;OpenClaw llamó la atención no solo porque es un AI agent open source, ni solo porque creció rápido.&lt;/p&gt;
&lt;p&gt;También funciona como señal: los desarrolladores empiezan a querer que la IA no solo responda preguntas, sino que se conecte a herramientas reales y ejecute acciones reales.&lt;/p&gt;
&lt;p&gt;Los chatbots tradicionales se quedan dentro de la caja de conversación. Pueden explicar código, escribir borradores y dar consejos, pero muchas veces una persona todavía debe copiar, pegar, abrir software y ejecutar comandos.&lt;/p&gt;
&lt;p&gt;La dirección de los agents es conectar modelos con herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sistema de archivos.&lt;/li&gt;
&lt;li&gt;Navegador.&lt;/li&gt;
&lt;li&gt;Terminal.&lt;/li&gt;
&lt;li&gt;Email.&lt;/li&gt;
&lt;li&gt;Calendario.&lt;/li&gt;
&lt;li&gt;Servicios de terceros.&lt;/li&gt;
&lt;li&gt;Repositorios de proyecto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando los modelos pueden usar esas herramientas, cambian los límites del desarrollo de software. La IA deja de ser solo autocompletado de código y participa en lectura de proyectos, descomposición de tareas, edición de archivos, ejecución de pruebas, preparación de PR y automatización de workflows.&lt;/p&gt;
&lt;p&gt;Por eso también llamó la atención la incorporación de Steinberger a OpenAI. No representa solo una historia individual de desarrollador, sino una dirección de producto: los agents personales pasarán de demos a la capa de trabajo diaria.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-desarrolladores-comunes&#34;&gt;Qué significa para desarrolladores comunes
&lt;/h2&gt;&lt;p&gt;Para desarrolladores comunes, la experiencia de Steinberger no se puede copiar directamente en todos los casos.&lt;/p&gt;
&lt;p&gt;No todo el mundo puede gestionar varios agents a la vez. No todos los proyectos toleran generación intensa con IA. No todos los equipos aceptan el ritmo de &amp;ldquo;generar primero e iterar rápido&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Pero hay varias lecciones útiles.&lt;/p&gt;
&lt;p&gt;Primero, escribir tareas con claridad.&lt;/p&gt;
&lt;p&gt;La IA es sensible a objetivos vagos. Si dices &amp;ldquo;optimiza esto&amp;rdquo;, puede cambiar estilo, estructura, funciones y lógica. Si dices &amp;ldquo;cambia el mensaje de error al fallar el login de inglés a chino sin alterar el flujo de autenticación&amp;rdquo;, el resultado suele ser más controlable.&lt;/p&gt;
&lt;p&gt;Segundo, fijar comandos de validación.&lt;/p&gt;
&lt;p&gt;Si un proyecto no tiene pruebas, build ni lint, la IA tiene dificultades para formar un bucle. Incluso comandos básicos como &lt;code&gt;npm test&lt;/code&gt;, &lt;code&gt;go test ./...&lt;/code&gt;, &lt;code&gt;pytest&lt;/code&gt; o &lt;code&gt;hugo&lt;/code&gt; son mejores que revisar solo a ojo.&lt;/p&gt;
&lt;p&gt;Tercero, controlar el alcance del cambio.&lt;/p&gt;
&lt;p&gt;Pedir a la IA que trabaje en un módulo, un bug o una página cada vez suele ser más fiable que pedirle &amp;ldquo;refactoriza todo el proyecto&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuarto, mantener revisión humana.&lt;/p&gt;
&lt;p&gt;En autenticación, pagos, permisos, eliminación de datos, scripts de despliegue, migraciones de base de datos y configuración de seguridad, no bajes el estándar de revisión solo porque el código lo generó IA.&lt;/p&gt;
&lt;p&gt;Quinto, revisar prompts y patrones de fallo.&lt;/p&gt;
&lt;p&gt;Si la IA malinterpreta a menudo cierto tipo de tarea, escribe esas restricciones en reglas del proyecto, agent instructions o archivos de skill. La capacidad de AI coding no viene solo del modelo, sino también del entorno de trabajo que construyes alrededor.&lt;/p&gt;
&lt;h2 id=&#34;hacia-dónde-va-el-desarrollo-de-software-con-ia&#34;&gt;Hacia dónde va el desarrollo de software con IA
&lt;/h2&gt;&lt;p&gt;La historia de Steinberger muestra que el desarrollo de software con IA se mueve desde &amp;ldquo;ayudar a escribir código&amp;rdquo; hacia &amp;ldquo;organizar flujos de producción de software&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Las primeras herramientas de AI coding servían sobre todo para completar funciones, explicar errores y generar plantillas. El cambio actual es que los agents pueden trabajar entre archivos, llamar herramientas, ejecutar comprobaciones y seguir corrigiendo con feedback.&lt;/p&gt;
&lt;p&gt;Esto apunta a varias tendencias.&lt;/p&gt;
&lt;p&gt;Primero, subirá el techo productivo de los desarrolladores individuales.&lt;/p&gt;
&lt;p&gt;Una persona puede avanzar más prototipos, scripts, herramientas internas y productos pequeños. Pero producir más no significa producir mejor automáticamente. Cuanto más rápido se genera, más importante es validar.&lt;/p&gt;
&lt;p&gt;Segundo, la estructura del proyecto será más importante.&lt;/p&gt;
&lt;p&gt;Cuanto más claro sea el código, más explícitas las pruebas y más completa la documentación, más fácil será que la IA haga cambios correctos. Los proyectos caóticos son difíciles para humanos y para IA.&lt;/p&gt;
&lt;p&gt;Tercero, los ingenieros de software se parecerán más a diseñadores de workflows.&lt;/p&gt;
&lt;p&gt;En el futuro no importará solo conocer un lenguaje, sino saber organizar requisitos, contexto, herramientas, pruebas, despliegue y permisos en un bucle controlable.&lt;/p&gt;
&lt;p&gt;Cuarto, los límites de seguridad serán más sensibles.&lt;/p&gt;
&lt;p&gt;Si un agent puede hacer cosas, también puede hacer cosas equivocadas. Si puede leer archivos, ejecutar comandos y acceder a servicios, permisos, auditoría y rollback se vuelven infraestructura básica del entorno de desarrollo con IA.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo más valioso de la visión de Peter Steinberger sobre desarrollo de software con IA no es &amp;ldquo;cuánto código generó la IA&amp;rdquo;, sino la nueva postura de desarrollo que muestra.&lt;/p&gt;
&lt;p&gt;Las personas ya no solo escriben línea por línea dentro del editor. Diseñan objetivos, gestionan agents, construyen bucles de feedback, revisan resultados y ajustan el sistema. El código sigue siendo importante, pero ya no es el único centro del trabajo.&lt;/p&gt;
&lt;p&gt;Si el desarrollo tradicional enfatizaba &amp;ldquo;escribir bien el código&amp;rdquo;, el desarrollo con IA enfatizará cada vez más &amp;ldquo;hacer que el sistema produzca resultados correctos y verificables de forma continua&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No se trata solo de bajar la barrera de la ingeniería. Cambia la forma de la capacidad técnica: de implementación manual hacia descomposición de tareas, gestión de contexto, orquestación de herramientas, validación automática y juicio final.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://techcrunch.com/2026/02/25/openclaw-creators-advice-to-ai-builders-is-to-be-more-playful-and-allow-yourself-time-to-improve/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TechCrunch: OpenClaw creator’s advice to AI builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://builtin.com/articles/openclaw-founder-to-openai-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Built In: What Is OpenAI Getting From the OpenClaw Deal?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://podwise.ai/dashboard/episodes/7026858&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The Pragmatic Engineer: The creator of Clawd: I ship code I don&amp;rsquo;t read&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.teamday.ai/ai/steinberger-openclaw-builders-unscripted-openai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TeamDay: Peter Steinberger: Building OpenClaw as a Solo Dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Filtración de Gemini 3.5 Pro: con nombre en clave Cappuccino, Google intenta recuperar ritmo en coding y agentes</title>
        <link>https://knightli.com/es/2026/05/17/gemini-35-pro-cappuccino-spark-leak/</link>
        <pubDate>Sun, 17 May 2026 11:47:27 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/gemini-35-pro-cappuccino-spark-leak/</guid>
        <description>&lt;p&gt;Google todavía no ha lanzado oficialmente &lt;code&gt;Gemini 3.5 Pro&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La información disponible por ahora proviene sobre todo de capturas de comunidades de desarrolladores, benchmarks anónimos, filtradores y reportes de medios. El 15 de mayo de 2026, 36Kr / Xinzhiyuan publicó que un checkpoint de la próxima generación de Gemini podría tener el nombre interno &lt;code&gt;Cappuccino&lt;/code&gt;, y que modelos relacionados ya habrían aparecido en comunidades y plataformas de evaluación.&lt;/p&gt;
&lt;p&gt;Esta información no debe tratarse como un lanzamiento oficial, pero sí muestra una dirección clara: Google intenta cubrir dos brechas a la vez, coding y razonamiento por un lado, y agentes de IA always-on por el otro.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-rápida&#34;&gt;Conclusión rápida
&lt;/h2&gt;&lt;p&gt;Esta filtración puede leerse en tres capas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Gemini 3.5 Pro&lt;/code&gt; aún no ha sido lanzado oficialmente, y &lt;code&gt;Cappuccino&lt;/code&gt; parece más un checkpoint interno o una build candidata.&lt;/li&gt;
&lt;li&gt;La información filtrada sugiere que el nuevo Gemini mejora en generación de código, generación SVG / web interactiva y salida multimodal.&lt;/li&gt;
&lt;li&gt;La prueba paralela de &lt;code&gt;Gemini Spark&lt;/code&gt; por parte de Google puede ser más importante que el modelo en sí, porque apunta a un agente personal de IA funcionando 24 horas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En otras palabras, no es solo una historia de benchmarks. Parece más una señal de roadmap antes de Google I/O: el modelo necesita alcanzar a GPT-5.5, mientras la capa de agentes necesita capturar flujos de trabajo de usuarios.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-cappuccino&#34;&gt;Qué es Cappuccino
&lt;/h2&gt;&lt;p&gt;El artículo de 36Kr menciona que, según una publicación de Lentils, el checkpoint de &lt;code&gt;Gemini 3.5 Pro&lt;/code&gt; con nombre en clave &lt;code&gt;Cappuccino&lt;/code&gt; ya habría empezado a producirse. La comunidad todavía hablaba de &lt;code&gt;Gemini 3.2&lt;/code&gt; horas antes, pero la filtración más reciente saltó directamente a &lt;code&gt;3.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si ese nombre termina siendo correcto, Google podría querer presentar el próximo Gemini como un salto de versión más grande, no como una actualización menor.&lt;/p&gt;
&lt;p&gt;Por ahora, &lt;code&gt;Cappuccino&lt;/code&gt; debe tratarse como un nombre interno filtrado. No significa que Google haya lanzado públicamente el modelo final, ni garantiza que el nombre de lanzamiento vaya a ser &lt;code&gt;Gemini 3.5 Pro&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-el-coding-es-el-foco&#34;&gt;Por qué el coding es el foco
&lt;/h2&gt;&lt;p&gt;La parte más comentada de la filtración es la capacidad de coding del nuevo Gemini.&lt;/p&gt;
&lt;p&gt;Según capturas y supuestos benchmarks citados por 36Kr, el nuevo modelo parece más fuerte en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generación de SVG y componentes visuales.&lt;/li&gt;
&lt;li&gt;Generación de aplicaciones web interactivas.&lt;/li&gt;
&lt;li&gt;Manejo de animación, 3D, paneles de parámetros ajustables y otras salidas frontend complejas.&lt;/li&gt;
&lt;li&gt;Mejoras en razonamiento lógico y generación de código.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El artículo también cita a Bindu Reddy, CEO de Abacus.AI, diciendo que &lt;code&gt;3.2 Flash&lt;/code&gt; se acerca a &lt;code&gt;GPT-5.5&lt;/code&gt; en coding y razonamiento, con un coste mucho menor. Otras fuentes de medios creen que el nuevo Gemini se ubica aproximadamente en el nivel de &lt;code&gt;GPT-5.5&lt;/code&gt;, aunque quizá no represente un salto cualitativo.&lt;/p&gt;
&lt;p&gt;Por eso conviene leer con cautela la frase &amp;ldquo;alcanza a GPT-5.5&amp;rdquo;. Se parece más a un juicio relativo basado en filtraciones y pruebas anónimas que a un resultado oficial de benchmark de Google.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-google-necesita-ponerse-al-día-en-coding&#34;&gt;Por qué Google necesita ponerse al día en coding
&lt;/h2&gt;&lt;p&gt;El AI coding pasó de ser una categoría de herramientas para desarrolladores a ocupar el centro de la competencia entre modelos fundacionales.&lt;/p&gt;
&lt;p&gt;OpenAI tiene Codex y Anthropic tiene Claude Code. No solo sirven a ingenieros: también llevan a product managers, diseñadores y equipos de operaciones a flujos donde el lenguaje natural produce productos ejecutables.&lt;/p&gt;
&lt;p&gt;En comparación, Google tiene Gemini y Antigravity, pero no ha logrado formar el mismo punto de entrada predeterminado en la mente de los desarrolladores. El artículo de 36Kr también señala que Antigravity no ha logrado despegar claramente en el mercado externo, y que precios, avisos de cuota y estabilidad de experiencia han generado discusión en la comunidad.&lt;/p&gt;
&lt;p&gt;Así que, si el nuevo Gemini necesita demostrar algo, coding será el campo de batalla más directo. La pregunta no es solo si puede escribir código, sino si puede producir interfaces completas de forma estable, entender requisitos complejos, llamar herramientas, corregir errores e integrarse en flujos reales de desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;spark-puede-importar-más-que-35-pro&#34;&gt;Spark puede importar más que 3.5 Pro
&lt;/h2&gt;&lt;p&gt;En la misma ola de filtraciones también apareció &lt;code&gt;Gemini Spark BETA&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Según TestingCatalog y otras fuentes, Spark se posiciona como un agente de IA always-on: puede procesar la bandeja de entrada, ejecutar tareas online, gestionar flujos de varios pasos y conectar contexto de apps de Google, módulos de habilidades, historial de chats, tareas programadas, sitios con sesión iniciada e información de ubicación.&lt;/p&gt;
&lt;p&gt;Eso significa que Spark no es una entrada de chat normal. Podría ser un sistema que permanece online, lee contexto de forma continua y ejecuta tareas por el usuario.&lt;/p&gt;
&lt;p&gt;El atractivo es obvio: si Google puede conectar Gmail, Calendar, Chrome, Android, Workspace y Gemini, Spark tendrá una ventaja de distribución difícil de copiar para OpenAI y Anthropic.&lt;/p&gt;
&lt;p&gt;El riesgo también es obvio. El artículo de 36Kr menciona una descripción de Spark según la cual podría compartir información o completar compras sin preguntar. Aunque el sistema esté diseñado para pedir permiso antes de operaciones sensibles, este tipo de agente sigue planteando riesgos de privacidad, límites de autorización y acciones accidentales.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-usuarios-comunes&#34;&gt;Qué significa para usuarios comunes
&lt;/h2&gt;&lt;p&gt;Si eres un usuario normal de Gemini, lo más importante de esta filtración no es el nombre del modelo, sino tres cambios.&lt;/p&gt;
&lt;p&gt;Primero, Google puede seguir reforzando la capacidad de producir resultados completos. Antes, usuarios se quejaban de que Gemini podía ser perezoso en generación visual, SVG y páginas frontend. Si el nuevo modelo puede generar varias propuestas completas en una sola pasada, la experiencia mejorará de forma visible.&lt;/p&gt;
&lt;p&gt;Segundo, la capacidad de coding seguirá bajando a modelos más ligeros. La filtración menciona varias veces mejoras de Flash en coding, razonamiento y generación interactiva, lo que significa que en el futuro no siempre hará falta un modelo Pro para tareas complejas.&lt;/p&gt;
&lt;p&gt;Tercero, los agentes serán más proactivos. Si Spark se lanza, Gemini podría dejar de limitarse a responder preguntas y empezar a asumir correo, web, compras, calendario y tareas entre apps durante periodos largos.&lt;/p&gt;
&lt;p&gt;Eso es bueno para la eficiencia, pero crea un nuevo desafío de gestión de permisos.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-desarrolladores&#34;&gt;Qué significa para desarrolladores
&lt;/h2&gt;&lt;p&gt;Los desarrolladores deberían vigilar dos cuestiones.&lt;/p&gt;
&lt;p&gt;La primera es el ecosistema de herramientas. El artículo de 36Kr dice que la comunidad vio una entrada no publicada llamada &lt;code&gt;MCP Tool Testing&lt;/code&gt; en el selector de modelos. Si Gemini soporta MCP o pruebas de herramientas de terceros de forma nativa, será más fácil conectarlo a las toolchains propias de los desarrolladores.&lt;/p&gt;
&lt;p&gt;La segunda es coste y estabilidad. Aunque el nuevo Gemini alcance a GPT-5.5 en algunos benchmarks, los desarrolladores acabarán mirando tres cosas: calidad real del código, estabilidad del contexto, y si precios y cuotas son predecibles.&lt;/p&gt;
&lt;p&gt;El último año de competencia en herramientas de AI coding ha demostrado que la capacidad del modelo es solo el billete de entrada. Lo que retiene a los desarrolladores es si la herramienta puede editar código, ejecutar tests, leer contexto y manejar casos límite de forma fiable en proyectos diarios.&lt;/p&gt;
&lt;h2 id=&#34;cómo-leer-esta-noticia-ahora&#34;&gt;Cómo leer esta noticia ahora
&lt;/h2&gt;&lt;p&gt;Esta noticia se entiende mejor como &amp;ldquo;señal fuerte, confirmación débil&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La señal fuerte es que múltiples pistas comunitarias apuntan a que Google prepara un Gemini más fuerte y un Gemini Spark Agent más proactivo.&lt;/p&gt;
&lt;p&gt;La confirmación débil es que &lt;code&gt;Gemini 3.5 Pro&lt;/code&gt; aún no ha sido lanzado oficialmente, &lt;code&gt;Cappuccino&lt;/code&gt; sigue siendo un nombre filtrado, y la afirmación de que &amp;ldquo;alcanza a GPT-5.5&amp;rdquo; necesita validación con benchmarks oficiales de Google, pruebas de terceros y experiencia real de usuarios.&lt;/p&gt;
&lt;p&gt;La lectura más prudente por ahora:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No tratarlo como un producto ya lanzado.&lt;/li&gt;
&lt;li&gt;Tratarlo como una vista previa temprana de la próxima dirección de Gemini.&lt;/li&gt;
&lt;li&gt;Observar si I/O u otros eventos oficiales confirman el nombre del modelo, disponibilidad de API, precios, ventana de contexto, tool calling y límites de permisos del agente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La exposición de &lt;code&gt;Gemini 3.5 Pro / Cappuccino&lt;/code&gt; sugiere que Google podría estar preparando un empuje más fuerte para la próxima generación de Gemini. No intenta corregir una sola capacidad aislada, sino todo un flujo de trabajo de IA: el modelo debe escribir mejor código, generar interfaces y manejar razonamiento complejo, mientras Spark empuja Gemini hacia un agente always-on.&lt;/p&gt;
&lt;p&gt;Pero antes de un lanzamiento oficial, todos los benchmarks y capturas siguen siendo pistas. Lo que decidirá si Gemini 3.5 Pro puede recuperar impulso no será si el nombre en clave suena bien, sino si puede ganar de forma fiable en desarrollo real, trabajo de oficina real y tareas reales de varios pasos.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://m.36kr.com/p/3810432812162816&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;36Kr: Gemini 3.5 Pro filtrado, coding supuestamente alcanza a GPT-5.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.testingcatalog.com/google-prepares-gemini-spark-ai-agent-ahead-of-i-o-launch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TestingCatalog: Google prepares Gemini Spark AI agent ahead of I/O launch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alexeheath/status/2054747125616169229&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;X: Alex Heath sobre el nuevo Gemini y GPT-5.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Lentils80/status/2054628116094501377&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;X: Lentils sobre Gemini 3.5 / Cappuccino&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex ya admite acceso remoto desde ChatGPT móvil y Access Tokens para espacios Enterprise</title>
        <link>https://knightli.com/es/2026/05/17/codex-mobile-remote-access-enterprise-access-tokens/</link>
        <pubDate>Sun, 17 May 2026 09:12:07 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/codex-mobile-remote-access-enterprise-access-tokens/</guid>
        <description>&lt;p&gt;El 14 de mayo de 2026, OpenAI actualizó las notas de lanzamiento de ChatGPT Enterprise &amp;amp; Edu con dos cambios centrados en Codex: acceso remoto desde la app móvil de ChatGPT y Codex access tokens para automatización controlada en espacios Enterprise.&lt;/p&gt;
&lt;p&gt;No es un lanzamiento de nuevas capacidades de modelo. Es un cambio en la forma del producto Codex. Codex está pasando de ser un asistente de programación local o web a un coding agent que puede ejecutarse durante más tiempo, gestionarse a distancia e integrarse en flujos de automatización empresarial.&lt;/p&gt;
&lt;h2 id=&#34;qué-cambió&#34;&gt;Qué cambió
&lt;/h2&gt;&lt;p&gt;Según OpenAI Help Center, Codex ahora admite acceso remoto desde ChatGPT mobile app. Los usuarios pueden conectarse desde el teléfono a un entorno Codex en ejecución, seguir tareas largas e intervenir cuando sea necesario.&lt;/p&gt;
&lt;p&gt;Al mismo tiempo, los espacios ChatGPT Enterprise reciben Codex access tokens. Están pensados para flujos locales confiables y no interactivos, permitiendo que la automatización use ChatGPT workspace identity y controles empresariales sin iniciar sesión en el navegador cada vez.&lt;/p&gt;
&lt;p&gt;La actualización tiene dos entradas principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acceso remoto móvil: resuelve qué hacer cuando Codex ejecuta una tarea larga y el usuario no está frente al ordenador.&lt;/li&gt;
&lt;li&gt;Access Tokens: resuelve cómo los scripts empresariales de automatización pueden llamar flujos de Codex con una identidad controlada.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-problema-resuelve-el-acceso-remoto-móvil&#34;&gt;Qué problema resuelve el acceso remoto móvil
&lt;/h2&gt;&lt;p&gt;Las tareas típicas de Codex no siempre terminan en segundos. En desarrollo real, puede leer un repositorio, modificar varios archivos, ejecutar pruebas, esperar salida de comandos, corregir errores y pedir aprobación a mitad del proceso.&lt;/p&gt;
&lt;p&gt;Antes, estas tareas solían exigir que el usuario estuviera cerca del Mac local, la app de escritorio, la CLI o el IDE. Ahora, ChatGPT móvil puede funcionar como una consola remota para seguir Codex incluso lejos del ordenador.&lt;/p&gt;
&lt;p&gt;OpenAI indica que el móvil puede mostrar el estado en tiempo real del entorno subyacente, incluyendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Contexto del proyecto.&lt;/li&gt;
&lt;li&gt;approvals.&lt;/li&gt;
&lt;li&gt;screenshots.&lt;/li&gt;
&lt;li&gt;terminal output.&lt;/li&gt;
&lt;li&gt;diffs.&lt;/li&gt;
&lt;li&gt;test results.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El usuario también puede responder preguntas de Codex, redirigir la ejecución, aprobar acciones, revisar salidas y cambiar entre distintos connected hosts. La tarea sigue ejecutándose en un Mac host o en un entorno remoto conectado; el teléfono sirve para revisar y controlar.&lt;/p&gt;
&lt;h2 id=&#34;valor-para-desarrolladores&#34;&gt;Valor para desarrolladores
&lt;/h2&gt;&lt;p&gt;Esta capacidad es especialmente útil para tareas largas que requieren confirmaciones ocasionales.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Codex está ejecutando pruebas lentas y quieres revisar el resultado fuera de casa.&lt;/li&gt;
&lt;li&gt;Codex modificó varios archivos y quieres revisar el diff en el móvil antes de aprobar el siguiente paso.&lt;/li&gt;
&lt;li&gt;Codex espera confirmación antes de una operación riesgosa.&lt;/li&gt;
&lt;li&gt;Hay varios connected hosts y quieres cambiar entre ellos desde el móvil.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor no es escribir código en el teléfono. El valor es no tener que permanecer frente al ordenador todo el tiempo. Codex sigue trabajando en el entorno original y el usuario interviene solo en momentos clave.&lt;/p&gt;
&lt;p&gt;Esto también muestra que Codex se acerca a un modelo de “Agent en segundo plano”: las tareas pueden seguir ejecutándose, el usuario no necesita estar siempre conectado, pero la aprobación y el control siguen en manos humanas.&lt;/p&gt;
&lt;h2 id=&#34;qué-resuelven-los-access-tokens&#34;&gt;Qué resuelven los Access Tokens
&lt;/h2&gt;&lt;p&gt;Codex access tokens están dirigidos a espacios ChatGPT Enterprise. Su objetivo no es el inicio de sesión normal de usuarios personales, sino la automatización empresarial confiable.&lt;/p&gt;
&lt;p&gt;En una empresa, a menudo hay flujos locales o internos que deben ejecutarse de forma no interactiva, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisiones de código programadas.&lt;/li&gt;
&lt;li&gt;Activación de flujos Codex en máquinas controladas.&lt;/li&gt;
&lt;li&gt;Integración de Codex con herramientas internas de desarrollo.&lt;/li&gt;
&lt;li&gt;Uso de identidad de workspace sin abrir el navegador.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Access tokens permiten que estos flujos se ejecuten con ChatGPT workspace identity y sigan sujetos a políticas empresariales. Frente al login manual, encajan mejor con automatización. Frente a compartir credenciales personales, son más fáciles de gobernar.&lt;/p&gt;
&lt;h2 id=&#34;no-es-una-api-key-genérica&#34;&gt;No es una API key genérica
&lt;/h2&gt;&lt;p&gt;Este punto es importante. Codex access tokens no deberían entenderse como una simple “API key universal”.&lt;/p&gt;
&lt;p&gt;OpenAI señala que access tokens están disponibles para espacios ChatGPT Enterprise, los administradores pueden gestionar su disponibilidad a nivel de workspace, y los miembros con roles permitidos pueden crear sus propios tokens. Cuando esté disponible, la interfaz de gobernanza también puede reflejar actividad de access tokens.&lt;/p&gt;
&lt;p&gt;Es decir, access tokens se integran en el marco de permisos, roles y auditoría empresarial:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El administrador decide si el workspace los habilita.&lt;/li&gt;
&lt;li&gt;No todos los miembros pueden crearlos por defecto.&lt;/li&gt;
&lt;li&gt;La actividad del token puede aparecer en vistas de gobernanza.&lt;/li&gt;
&lt;li&gt;Heredan ChatGPT workspace identity y controles empresariales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no es lo mismo que crear casualmente un secreto personal de larga duración.&lt;/p&gt;
&lt;h2 id=&#34;valor-seguro-por-defecto-remote-control-está-apagado&#34;&gt;Valor seguro por defecto: Remote Control está apagado
&lt;/h2&gt;&lt;p&gt;Codex mobile remote access toca entornos de código, salida de terminal, diffs, resultados de pruebas y acciones de aprobación. Si estuviera habilitado por defecto, implicaría riesgos empresariales evidentes.&lt;/p&gt;
&lt;p&gt;Por eso OpenAI adopta una postura conservadora: remote control está apagado por defecto y un admin u owner debe habilitarlo en Workspace settings.&lt;/p&gt;
&lt;p&gt;Al activar el acceso remoto móvil, también pueden intervenir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;workspace-enabled Remote Control access.&lt;/li&gt;
&lt;li&gt;SSO.&lt;/li&gt;
&lt;li&gt;Autenticación multifactor.&lt;/li&gt;
&lt;li&gt;passkey.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que es una capacidad que debe configurar el equipo de IT y seguridad, no algo disponible automáticamente para todos tras actualizar la app.&lt;/p&gt;
&lt;h2 id=&#34;qué-hay-que-actualizar-antes-de-usarlo&#34;&gt;Qué hay que actualizar antes de usarlo
&lt;/h2&gt;&lt;p&gt;OpenAI indica que el acceso remoto móvil requiere actualizar ambos lados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT mobile app.&lt;/li&gt;
&lt;li&gt;Codex app en macOS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el workspace lo exige, la configuración móvil también puede activar SSO, autenticación multifactor o passkey.&lt;/p&gt;
&lt;p&gt;En la práctica, los administradores deberían revisar primero la configuración de remote control en Workspace settings y decidir qué miembros o roles pueden usar estas capacidades.&lt;/p&gt;
&lt;h2 id=&#34;impacto-en-el-uso-empresarial-de-codex&#34;&gt;Impacto en el uso empresarial de Codex
&lt;/h2&gt;&lt;p&gt;Esta actualización empuja Codex en dos direcciones.&lt;/p&gt;
&lt;p&gt;Primero, Codex se vuelve más apto para tareas largas. Antes, el problema era que el usuario debía vigilarlo constantemente. Ahora puede revisar estado y aprobar acciones desde el móvil, lo que hace más natural que Codex trabaje en segundo plano.&lt;/p&gt;
&lt;p&gt;Segundo, Codex se vuelve más apto para automatización empresarial. Access tokens dan a los flujos no interactivos una identidad formal, facilitando integraciones futuras con CI interno, revisión de código, scripts y plataformas de desarrollo.&lt;/p&gt;
&lt;p&gt;Juntas, estas dos direcciones significan que Codex deja de ser solo un asistente de IA junto al desarrollador y se convierte en un agent administrable dentro del flujo de desarrollo empresarial.&lt;/p&gt;
&lt;h2 id=&#34;límites-que-siguen-importando&#34;&gt;Límites que siguen importando
&lt;/h2&gt;&lt;p&gt;La actualización es útil, pero no significa que Codex pueda ejecutarse sin supervisión.&lt;/p&gt;
&lt;p&gt;Las empresas todavía deben considerar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué proyectos permiten control remoto.&lt;/li&gt;
&lt;li&gt;Qué comandos requieren aprobación.&lt;/li&gt;
&lt;li&gt;Cómo crear, rotar y revocar tokens.&lt;/li&gt;
&lt;li&gt;Si mobile remote access encaja con la política de gestión de dispositivos.&lt;/li&gt;
&lt;li&gt;Si terminal output, screenshots y diffs pueden contener información sensible.&lt;/li&gt;
&lt;li&gt;Si los logs de auditoría y vistas de gobernanza cumplen los requisitos internos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Especialmente los access tokens: una vez que entran en flujos de automatización, deben gestionarse como otras credenciales empresariales, con mínimo privilegio, rotación, sin hardcoding y revocación rápida de tokens que ya no se usen.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La actualización de Codex es clara: ChatGPT móvil puede acceder remotamente a tareas largas de Codex, y los espacios Enterprise pueden usar Codex access tokens para automatización controlada.&lt;/p&gt;
&lt;p&gt;Lo primero evita que el desarrollador tenga que estar siempre frente al ordenador. Lo segundo permite a las empresas integrar Codex de forma más formal en flujos internos. Juntas, ambas funciones muestran que Codex avanza desde un asistente interactivo de programación hacia un coding agent empresarial, gestionable, auditable y preparado para automatización.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/10128477-chatgpt-enterprise-edu-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center: ChatGPT Enterprise &amp;amp; Edu - Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>easy-vibe: un mapa de aprendizaje para principiantes de Vibe Coding</title>
        <link>https://knightli.com/es/2026/05/16/easy-vibe-vibe-coding-learning-map/</link>
        <pubDate>Sat, 16 May 2026 22:44:43 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/easy-vibe-vibe-coding-learning-map/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/datawhalechina/easy-vibe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;easy-vibe&lt;/a&gt; es un proyecto open source de Datawhale para aprender Vibe Coding. No está dirigido a desarrolladores que ya dominan herramientas de AI Coding, sino a estudiantes, product managers, diseñadores, equipos de operaciones, indie developers y personas con interés técnico que apenas empiezan con Vibe Coding.&lt;/p&gt;
&lt;p&gt;El valor del proyecto no está en listar otro grupo de herramientas de IA, sino en convertir &amp;ldquo;cómo empezar a construir proyectos con IA&amp;rdquo; en una ruta de aprendizaje más fácil de entender. Para muchos principiantes, lo difícil no es saber que existen Claude Code, Cursor, MCP o los Agents. Lo difícil es saber qué aprender primero, cómo practicar y cuándo pasar a herramientas más avanzadas.&lt;/p&gt;
&lt;h2 id=&#34;lo-que-más-necesitan-los-principiantes-es-una-ruta&#34;&gt;Lo que más necesitan los principiantes es una ruta
&lt;/h2&gt;&lt;p&gt;Vibe Coding se ha vuelto popular en los últimos años, pero no es especialmente amigable para principiantes.&lt;/p&gt;
&lt;p&gt;En apariencia, si sabes describir un requisito, puedes pedir a la IA que escriba código. En la práctica, en cuanto la tarea se vuelve un poco más compleja, aparecen problemas: el requisito no está claro, el modelo modifica el archivo equivocado, la estructura del proyecto no se entiende, los errores no se saben resolver, las dependencias no se instalan, los prompts se vuelven cada vez más confusos y el flujo termina regresando a &amp;ldquo;copiar código en una caja de chat&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por eso aprender Vibe Coding no puede limitarse a &amp;ldquo;cómo escribir prompts&amp;rdquo;. Como mínimo debe resolver varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cómo dividir una idea en tareas ejecutables;&lt;/li&gt;
&lt;li&gt;Cómo hacer que la IA entienda la estructura del proyecto;&lt;/li&gt;
&lt;li&gt;Cómo leer el código generado por el modelo;&lt;/li&gt;
&lt;li&gt;Cómo manejar errores e iterar;&lt;/li&gt;
&lt;li&gt;Cómo usar la terminal y el entorno local de desarrollo;&lt;/li&gt;
&lt;li&gt;Cómo pasar del chat web a herramientas reales de AI Coding.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahí está el sentido de easy-vibe: intenta organizar estos temas en una ruta de aprendizaje, en lugar de dejar que los principiantes se pierdan entre herramientas, tutoriales y términos.&lt;/p&gt;
&lt;h2 id=&#34;no-es-un-tutorial-aislado-sino-una-hoja-de-ruta&#34;&gt;No es un tutorial aislado, sino una hoja de ruta
&lt;/h2&gt;&lt;p&gt;Según la presentación del proyecto, easy-vibe cubre tutoriales básicos, ejercicios interactivos, contenido visual, RAG, herramientas de terminal, herramientas de AI Coding y temas más avanzados como Claude Code, MCP, Skills y Agent Teams.&lt;/p&gt;
&lt;p&gt;Esta forma de organizar el contenido es adecuada para principiantes. AI Coding no es una sola habilidad, sino una combinación de capacidades:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describir requisitos;&lt;/li&gt;
&lt;li&gt;Dividir tareas;&lt;/li&gt;
&lt;li&gt;Leer proyectos;&lt;/li&gt;
&lt;li&gt;Pedir al modelo que modifique código;&lt;/li&gt;
&lt;li&gt;Ejecutar y verificar;&lt;/li&gt;
&lt;li&gt;Iterar según los errores;&lt;/li&gt;
&lt;li&gt;Convertir flujos repetidos en herramientas o skills.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si solo aprendes una herramienta, es fácil quedar limitado por su interfaz. Cambias de modelo, editor o CLI, y el flujo vuelve a no estar claro. La ventaja de una hoja de ruta es construir primero el método de trabajo y luego poner las herramientas en el lugar adecuado.&lt;/p&gt;
&lt;h2 id=&#34;es-especialmente-útil-para-no-programadores&#34;&gt;Es especialmente útil para no programadores
&lt;/h2&gt;&lt;p&gt;El mayor atractivo de Vibe Coding es que permite a personas que no son programadoras profesionales crear prototipos.&lt;/p&gt;
&lt;p&gt;Un product manager puede convertir una idea de producto en un demo interactivo. Un diseñador puede validar lógica de interacción. Un equipo de operaciones puede crear herramientas internas. Un estudiante puede construir proyectos de clase rápidamente. Un fundador puede validar demanda en etapas tempranas. Estas personas no necesariamente necesitan convertirse en ingenieros full-time en el sentido tradicional, pero sí necesitan un método para &amp;ldquo;hacer que la IA me ayude a llevar una idea a algo funcional&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por eso easy-vibe encaja bien con la comunidad china. Muchos usuarios chinos ya saben que la IA puede escribir código, pero aún faltan materiales sistemáticos para empezar: entorno de desarrollo, prompts, estructura de proyecto, depuración y uso de herramientas Agent. Es mejor cuando todo se explica con claridad en chino y se acompaña con ejercicios graduales.&lt;/p&gt;
&lt;p&gt;Para este tipo de usuarios, lo más importante no es aprender un framework complejo desde el primer día, sino completar un ciclo completo: plantear un requisito, generar un proyecto, ejecutarlo, encontrar problemas, seguir modificando y terminar con una versión usable.&lt;/p&gt;
&lt;h2 id=&#34;la-parte-avanzada-se-acerca-a-flujos-reales-de-desarrollo-con-ia&#34;&gt;La parte avanzada se acerca a flujos reales de desarrollo con IA
&lt;/h2&gt;&lt;p&gt;Claude Code, MCP, Skills y Agent Teams, que aparecen en easy-vibe, ya no son solo conceptos introductorios.&lt;/p&gt;
&lt;p&gt;Claude Code representa los Agents de programación en terminal: el modelo puede entrar en un proyecto local, leer archivos, modificar código y ejecutar comandos. MCP resuelve la conexión con herramientas y fuentes de datos, para que el modelo no se quede encerrado en una caja de chat. Skills permite conservar flujos reutilizables, como generación fija de proyectos, organización de documentos, revisión de tests o procesos de producción de contenido. Agent Teams va un paso más allá y divide tareas entre varios agentes.&lt;/p&gt;
&lt;p&gt;Para principiantes, estos temas pueden parecer lejanos, pero vale la pena conocerlos pronto. La dirección de Vibe Coding ya está clara: pasar de &amp;ldquo;hacer que la IA escriba un fragmento de código&amp;rdquo; a &amp;ldquo;hacer que la IA participe en un flujo completo de proyecto&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Si una ruta de aprendizaje se queda solo en prompts, pronto quedará atrás frente a la evolución de las herramientas. Pero si al principio se lanzan todos los conceptos avanzados a la vez, el principiante no sabrá por dónde empezar. El valor razonable de easy-vibe es colocar esos temas en una ruta de actualización gradual.&lt;/p&gt;
&lt;h2 id=&#34;dos-errores-que-conviene-evitar&#34;&gt;Dos errores que conviene evitar
&lt;/h2&gt;&lt;p&gt;El primer error es creer que Vibe Coding significa que, aunque no sepas código, puedes desentenderte por completo del código.&lt;/p&gt;
&lt;p&gt;La IA puede generar muchas cosas, pero el usuario sigue necesitando juzgar si el resultado es correcto. Como mínimo, hay que entender la estructura del proyecto, saber cómo ejecutarlo y ubicar aproximadamente dónde ocurre un error. Aunque no escribas código complejo, necesitas sentido común básico de ingeniería.&lt;/p&gt;
&lt;p&gt;El segundo error es creer que cuanto más avanzada sea la herramienta, mejor.&lt;/p&gt;
&lt;p&gt;Un principiante no necesariamente necesita Claude Code, MCP o múltiples Agents al inicio. Un orden mejor es crear primero un ciclo de feedback con proyectos simples, y luego introducir poco a poco terminal, control de versiones, tests, llamadas a herramientas y flujos automatizados. Las herramientas deben coincidir con la complejidad de la tarea; si no, se convierten en algo que parece potente pero no se sabe para qué usar.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlo&#34;&gt;Cómo usarlo
&lt;/h2&gt;&lt;p&gt;Si apenas empiezas con Vibe Coding, puedes usar easy-vibe como una lista de aprendizaje.&lt;/p&gt;
&lt;p&gt;Empieza con conceptos básicos y ejercicios simples. No hace falta perseguir todas las herramientas. Construye un proyecto pequeño, como una página personal, un dashboard de datos, una herramienta de formularios, un script de automatización o una demo de base de conocimiento. Durante el proceso, observa en qué partes ayuda la IA y en cuáles necesitas confirmar por tu cuenta.&lt;/p&gt;
&lt;p&gt;Cuando puedas completar proyectos pequeños de forma estable, empieza con temas más complejos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar herramientas de terminal para trabajar con proyectos locales;&lt;/li&gt;
&lt;li&gt;Usar Git para gestionar cada cambio;&lt;/li&gt;
&lt;li&gt;Usar RAG para conectar tus propios materiales;&lt;/li&gt;
&lt;li&gt;Usar MCP para conectar herramientas externas;&lt;/li&gt;
&lt;li&gt;Usar Skills para fijar flujos repetidos;&lt;/li&gt;
&lt;li&gt;Usar Agent Teams para dividir tareas complejas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aprender Vibe Coding así no es solo aprender a preguntar a la IA. Es aprender a poner la IA dentro de tu propio flujo de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;easy-vibe puede verse como un mapa de entrada en chino para Vibe Coding. Organiza conceptos, herramientas y ejercicios dispersos de AI Coding en una ruta que ayuda al principiante a pasar de &amp;ldquo;he oído que la IA puede escribir código&amp;rdquo; a &amp;ldquo;puedo construir un proyecto con IA&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El valor real de Vibe Coding no es saltarse todo aprendizaje, sino bajar la barrera entre idea y prototipo. Aún necesitas entender requisitos, organizar tareas, verificar resultados y controlar riesgos. Pero muchos pasos repetitivos, tediosos y fáciles de bloquear pueden hacerse con ayuda de la IA.&lt;/p&gt;
&lt;p&gt;Si quieres una entrada sistemática al AI Coding y no quieres perderte desde el principio entre nombres de herramientas y configuraciones de ingeniería complejas, easy-vibe es un buen punto de partida.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI: convertir DeepSeek V4 en un agente de programación en la terminal</title>
        <link>https://knightli.com/es/2026/05/16/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Sat, 16 May 2026 22:41:41 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI&lt;/a&gt; es un proyecto open source que lleva DeepSeek V4 al flujo de desarrollo en terminal. No es una simple carcasa de chat. Se parece más a un &amp;ldquo;agente de programación de línea de comandos&amp;rdquo;, como Claude Code o Codex CLI: puede leer archivos, modificar código, ejecutar comandos, llamar herramientas y seguir avanzando tareas desde una TUI.&lt;/p&gt;
&lt;p&gt;Si ya estás acostumbrado a alternar entre editor y terminal, el valor de este tipo de herramienta es directo: no tienes que copiar código una y otra vez en una ventana de chat web, ni describir manualmente toda la estructura del proyecto. Le das una tarea, puede leer el contexto del workspace actual, planificar pasos, aplicar cambios y devolverte el resultado para revisión.&lt;/p&gt;
&lt;h2 id=&#34;resuelve-el-problema-de-entrada-para-usar-deepseek&#34;&gt;Resuelve el problema de entrada para usar DeepSeek
&lt;/h2&gt;&lt;p&gt;Los modelos DeepSeek ya ofrecen buenas capacidades de razonamiento y código, pero para llevar esa capacidad a un flujo real de desarrollo hace falta una capa de ingeniería.&lt;/p&gt;
&lt;p&gt;El chat web sirve para hacer preguntas, pero no para editar proyectos durante mucho tiempo. La API sirve para integraciones, pero un desarrollador común tendría que construir por su cuenta llamadas a herramientas, gestión de contexto, operaciones de archivos y control de permisos. DeepSeek-TUI intenta cubrir esa capa: envolver DeepSeek V4 como un Agent que puede trabajar dentro de la terminal.&lt;/p&gt;
&lt;p&gt;Según la presentación del proyecto, sus capacidades principales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interfaz TUI en terminal;&lt;/li&gt;
&lt;li&gt;Conversación y ejecución de tareas para DeepSeek V4;&lt;/li&gt;
&lt;li&gt;Llamadas a herramientas y operaciones de archivos;&lt;/li&gt;
&lt;li&gt;Soporte de contexto de 1M;&lt;/li&gt;
&lt;li&gt;Modo Auto;&lt;/li&gt;
&lt;li&gt;Subagentes;&lt;/li&gt;
&lt;li&gt;Ejecución en sandbox;&lt;/li&gt;
&lt;li&gt;Cola de tareas persistente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El objetivo de combinar estas funciones no es que el modelo responda de forma más humana, sino que pueda entrar con más facilidad en el entorno de desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;una-tui-encaja-mejor-con-tareas-largas-que-una-cli-textual&#34;&gt;Una TUI encaja mejor con tareas largas que una CLI textual
&lt;/h2&gt;&lt;p&gt;Muchas herramientas AI CLI empiezan con interacción de texto puro: escribes un prompt, esperas la salida, copias comandos o añades más contexto. Es simple, pero cuando la tarea se alarga, se vuelve confuso.&lt;/p&gt;
&lt;p&gt;La ventaja de una TUI es que puede colocar conversaciones, archivos, resultados de ejecución y estado de tareas en una interfaz más estable. Para un Agent de programación, eso importa. Una tarea de código rara vez es una sola pregunta y respuesta. Suele incluir:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Entender la estructura del proyecto;&lt;/li&gt;
&lt;li&gt;Encontrar archivos relevantes;&lt;/li&gt;
&lt;li&gt;Modificar código;&lt;/li&gt;
&lt;li&gt;Ejecutar tests o comandos;&lt;/li&gt;
&lt;li&gt;Corregir según los errores;&lt;/li&gt;
&lt;li&gt;Resumir los cambios.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la interfaz solo es una cadena de logs, al usuario le cuesta ver en qué punto está el Agent. Una TUI al menos ofrece un lugar mejor para observar y tomar el control.&lt;/p&gt;
&lt;h2 id=&#34;el-modo-auto-conviene-para-tareas-con-límites-claros&#34;&gt;El modo Auto conviene para tareas con límites claros
&lt;/h2&gt;&lt;p&gt;El modo Auto que menciona DeepSeek-TUI encaja con trabajos de límites claros. Por ejemplo, arreglar un bug pequeño, añadir un script, cambiar una configuración, ordenar documentos o implementar una función local.&lt;/p&gt;
&lt;p&gt;Estas tareas tienen algo en común: el objetivo es claro, la forma de comprobarlo también, y el alcance del impacto es controlable. El Agent puede revisar archivos, editarlos, ejecutar comandos y luego entregar el resultado al usuario para confirmación.&lt;/p&gt;
&lt;p&gt;Pero el modo Auto no debe significar permisos ilimitados. En proyectos reales, borrar archivos, hacer refactors masivos, migrar bases de datos o ejecutar despliegues debería requerir confirmación explícita. La eficiencia de los Agents de programación viene de la automatización, pero el riesgo también. Cuanto más pueda ejecutar comandos una herramienta, más necesita sandbox, límites de permisos y revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;los-subagentes-importan-porque-dividen-tareas&#34;&gt;Los subagentes importan porque dividen tareas
&lt;/h2&gt;&lt;p&gt;Los subagentes no son un concepto nuevo, pero son útiles en escenarios de código.&lt;/p&gt;
&lt;p&gt;Una tarea algo compleja suele requerir varios tipos de trabajo a la vez: alguien lee el código, alguien cambia la implementación, alguien revisa tests y alguien ordena documentación. Los sistemas multi-agent tradicionales a menudo parecen llamativos porque no tienen herramientas reales ni un workspace real; solo discuten dentro de una conversación.&lt;/p&gt;
&lt;p&gt;Si los subagentes se combinan con sistema de archivos, ejecución de comandos y cola de tareas, se parecen más a un mecanismo de descomposición de trabajo. Por ejemplo, un subagente analiza dependencias, otro modifica un módulo concreto y el agente principal integra el resultado. Así se reduce el problema de meter demasiada información no relacionada en un solo contexto.&lt;/p&gt;
&lt;p&gt;Por supuesto, los subagentes también añaden costo: más tokens, estado más complejo y límites de responsabilidad más difíciles de seguir. Por eso encajan mejor con tareas de complejidad media o superior, no necesariamente con cada cambio pequeño.&lt;/p&gt;
&lt;h2 id=&#34;el-contexto-de-1m-no-es-magia-pero-ayuda-a-leer-proyectos&#34;&gt;El contexto de 1M no es magia, pero ayuda a leer proyectos
&lt;/h2&gt;&lt;p&gt;El contexto de 1M suena exagerado, pero en programación no es solo una cifra de marketing.&lt;/p&gt;
&lt;p&gt;El contexto de un repositorio real está fragmentado: README, archivos de configuración, definiciones de tipos, tests, cadenas de llamadas, convenciones históricas y logs de errores pueden influir en un cambio. Un contexto más largo puede reducir el problema de editar tras mirar solo una parte local, y ayudar al modelo a conservar más restricciones del proyecto.&lt;/p&gt;
&lt;p&gt;Aun así, más contexto no significa mejor juicio automáticamente. Las tareas de código siguen necesitando búsqueda, filtrado y verificación. Meter todo el proyecto en el contexto no siempre es mejor que leer con precisión los archivos relevantes. Un buen Agent de programación debería tratar el contexto largo como un buffer, no como un atajo que sustituye el criterio de ingeniería.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es-más-útil&#34;&gt;Para quién es más útil
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI encaja mejor con varios grupos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desarrolladores que quieren usar DeepSeek para tareas de código en la terminal;&lt;/li&gt;
&lt;li&gt;Personas que no quieren construir por su cuenta frameworks de llamadas a herramientas y operaciones de archivos;&lt;/li&gt;
&lt;li&gt;Usuarios que ya conocen Claude Code o Codex CLI y quieren probar una entrada basada en DeepSeek;&lt;/li&gt;
&lt;li&gt;Quienes necesitan contexto de proyecto local, no solo preguntar por fragmentos de código en una web;&lt;/li&gt;
&lt;li&gt;Desarrolladores que quieren llevar el flujo de AI Coding al entorno de línea de comandos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo preguntas de vez en cuando cómo escribir una función, el chat web basta. Si quieres que el modelo participe directamente en cambios del proyecto, un Agent de terminal tiene más sentido.&lt;/p&gt;
&lt;h2 id=&#34;riesgos-a-vigilar&#34;&gt;Riesgos a vigilar
&lt;/h2&gt;&lt;p&gt;Hay tres cosas especialmente importantes en este tipo de herramienta.&lt;/p&gt;
&lt;p&gt;La primera son los permisos. Si una herramienta puede leer y escribir archivos o ejecutar comandos, hay que saber a qué puede acceder por defecto, si puede borrar archivos, si puede conectarse a la red y si los comandos peligrosos requieren confirmación.&lt;/p&gt;
&lt;p&gt;La segunda es la reversibilidad. Antes de usarla, conviene mantener limpio el árbol de trabajo de Git, para que cada cambio del Agent pueda verse claramente con &lt;code&gt;git diff&lt;/code&gt;. No conviene dejar que un Agent edite automáticamente un proyecto con muchos cambios sin commit.&lt;/p&gt;
&lt;p&gt;La tercera es la verificación. Que el Agent escriba código no significa que la tarea esté terminada. Tests, builds, lint y review humana siguen siendo necesarios. Las herramientas de AI Coding pueden acelerar el avance, pero no sustituyen la confirmación final de ingeniería.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;La importancia de DeepSeek-TUI no está en añadir otro cliente de chat, sino en poner DeepSeek V4 dentro de un entorno de terminal más cercano al trabajo real de desarrollo.&lt;/p&gt;
&lt;p&gt;Para los desarrolladores, la capacidad del modelo es solo el primer paso. La experiencia real depende de si puede leer el proyecto, modificar archivos con seguridad, ejecutar comandos de verificación, mantener estado en tareas largas y permitir que el usuario tome el control en cualquier momento.&lt;/p&gt;
&lt;p&gt;Si quieres usar DeepSeek para cambios diarios de código, lectura de proyectos y tareas de desarrollo automatizadas, DeepSeek-TUI merece atención. La dirección también está clara: las herramientas de AI Coding están pasando de &amp;ldquo;responder preguntas de código&amp;rdquo; a &amp;ldquo;participar en la ejecución de proyectos&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Acceso remoto móvil de Codex: sigue tareas de programación en Mac desde la app ChatGPT</title>
        <link>https://knightli.com/es/2026/05/16/codex-mobile-remote-access-chatgpt-app/</link>
        <pubDate>Sat, 16 May 2026 17:42:40 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/codex-mobile-remote-access-chatgpt-app/</guid>
        <description>&lt;p&gt;OpenAI llevó &lt;code&gt;Codex remote access&lt;/code&gt; a la app móvil de ChatGPT a mediados de mayo de 2026. La idea no es programar en el teléfono, sino seguir y dirigir Codex mientras trabaja en un Mac.&lt;/p&gt;
&lt;p&gt;Codex sigue leyendo el proyecto, ejecutando comandos, editando archivos y revisando pruebas en el ordenador. El móvil sirve para revisar progreso, responder preguntas, añadir instrucciones y aprobar acciones.&lt;/p&gt;
&lt;h2 id=&#34;qué-puede-hacer&#34;&gt;Qué puede hacer
&lt;/h2&gt;&lt;p&gt;Según la documentación de OpenAI, desde el móvil puedes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iniciar nuevos threads en proyectos del host o continuar existentes;&lt;/li&gt;
&lt;li&gt;enviar instrucciones, responder preguntas y ajustar la dirección del trabajo;&lt;/li&gt;
&lt;li&gt;aprobar comandos y otras acciones;&lt;/li&gt;
&lt;li&gt;revisar salidas, diffs, resultados de pruebas, terminal y capturas;&lt;/li&gt;
&lt;li&gt;recibir notificaciones cuando Codex termina o necesita atención;&lt;/li&gt;
&lt;li&gt;cambiar entre hosts y threads conectados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es solo una ventana de chat pequeña: conecta con el contexto real de trabajo de Codex en el host.&lt;/p&gt;
&lt;h2 id=&#34;requisitos&#34;&gt;Requisitos
&lt;/h2&gt;&lt;p&gt;Necesitas acceso a Codex en la misma cuenta y workspace de ChatGPT en el móvil y en el Mac. También necesitas la última app móvil de ChatGPT en iOS o Android.&lt;/p&gt;
&lt;p&gt;El host actualmente debe ser un Mac despierto, en línea, ejecutando Codex App y con la misma cuenta y workspace. La configuración móvil y el control del dispositivo requieren por ahora &lt;code&gt;Codex App for macOS&lt;/code&gt;; no se configuran desde Codex CLI ni desde la IDE Extension.&lt;/p&gt;
&lt;p&gt;Si tu cuenta usa MFA, SSO o passkey, debes completar ese flujo. En un workspace de ChatGPT, un administrador puede tener que habilitar Remote Control access.&lt;/p&gt;
&lt;h2 id=&#34;límites&#34;&gt;Límites
&lt;/h2&gt;&lt;p&gt;Primero, requiere un &lt;code&gt;macOS host&lt;/code&gt;. El teléfono se conecta a Codex App en un Mac, no directamente a Codex CLI, a la IDE Extension ni a cualquier equipo Linux / Windows.&lt;/p&gt;
&lt;p&gt;Segundo, el host debe estar en línea. El Mac debe permanecer despierto, conectado y con Codex App abierto. Si duerme, pierde red o cierra Codex, la sesión remota puede desconectarse.&lt;/p&gt;
&lt;p&gt;Tercero, la conexión usa QR. Debes abrir &lt;code&gt;Set up Codex mobile&lt;/code&gt; en el Mac, escanear el código y completar la vinculación en ChatGPT.&lt;/p&gt;
&lt;p&gt;Cuarto, las acciones remotas siguen pasando por aprobaciones. Antes de aprobar desde el móvil, conviene leer qué quiere hacer Codex, sobre todo si implica terminal, cambios de archivos, pruebas o acceso externo.&lt;/p&gt;
&lt;h2 id=&#34;cómo-conectarlo&#34;&gt;Cómo conectarlo
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Abre Codex en el Mac.&lt;/li&gt;
&lt;li&gt;Elige &lt;code&gt;Set up Codex mobile&lt;/code&gt; en la barra lateral.&lt;/li&gt;
&lt;li&gt;Codex activa el acceso remoto para ese host y muestra un QR.&lt;/li&gt;
&lt;li&gt;Escanea el QR con el teléfono para abrir el flujo en ChatGPT.&lt;/li&gt;
&lt;li&gt;Confirma la misma cuenta y workspace.&lt;/li&gt;
&lt;li&gt;Completa MFA, SSO o passkey si hace falta.&lt;/li&gt;
&lt;li&gt;El Mac aparecerá en Codex dentro del móvil.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después puedes gestionar dispositivos en &lt;code&gt;Settings &amp;gt; Connections&lt;/code&gt; desde Codex en el Mac, y revisar opciones como mantener el equipo despierto, Computer Use o Chrome extension.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-el-móvil&#34;&gt;Para qué sirve el móvil
&lt;/h2&gt;&lt;p&gt;El móvil sirve sobre todo para aprobar, corregir dirección y revisar resultados. Puedes aprobar comandos, añadir una instrucción cuando Codex se equivoca o falla una prueba, y mirar diffs, logs de terminal, pruebas y capturas sin volver al escritorio.&lt;/p&gt;
&lt;p&gt;El valor no es escribir código en el móvil, sino convertirlo en una consola ligera para tareas de ingeniería que siguen ejecutándose en el host.&lt;/p&gt;
&lt;h2 id=&#34;problemas-comunes&#34;&gt;Problemas comunes
&lt;/h2&gt;&lt;p&gt;Si el host no aparece, confirma que Codex App sigue abierto en el Mac, que &lt;code&gt;Allow other devices to connect&lt;/code&gt; está activado y que ambos dispositivos usan la misma cuenta y workspace.&lt;/p&gt;
&lt;p&gt;Si no aparece una solicitud de aprobación, abre Codex dentro de la app móvil de ChatGPT, vuelve a escanear el QR o reinicia la configuración desde el host. En equipos, revisa si el administrador habilitó Remote Control access.&lt;/p&gt;
&lt;p&gt;Si la sesión se desconecta, revisa si el Mac se durmió, perdió red o cerró Codex App. Si la autenticación bloquea la configuración, completa MFA, SSO o passkey primero.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-conviene&#34;&gt;Cuándo conviene
&lt;/h2&gt;&lt;p&gt;Encaja bien si ejecutas tareas largas con Codex, necesitas aprobar comandos lejos del escritorio, gestionas varios proyectos o threads y usas Mac como máquina principal.&lt;/p&gt;
&lt;p&gt;Encaja peor si trabajas principalmente en Windows o Linux, solo usas Codex CLI o IDE Extension, esperas un entorno de desarrollo completo en el teléfono o tienes una red inestable.&lt;/p&gt;
&lt;h2 id=&#34;mi-lectura&#34;&gt;Mi lectura
&lt;/h2&gt;&lt;p&gt;El acceso remoto móvil de Codex no mueve el desarrollo al teléfono. Hace más manejables los momentos en los que Codex se detiene por aprobación, preguntas, fallos de pruebas o cambios de dirección.&lt;/p&gt;
&lt;p&gt;Si ya usas Codex intensivamente en Mac, merece la pena activarlo. Si solo haces preguntas de código ocasionales, su valor será menos evidente.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center: ChatGPT Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/remote-connections&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Developers: Codex Remote Connections&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>No subas API Keys a GitHub: guía para evitar fugas de secretos al programar con IA</title>
        <link>https://knightli.com/es/2026/05/16/ai-coding-api-key-leak-github/</link>
        <pubDate>Sat, 16 May 2026 16:26:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/ai-coding-api-key-leak-github/</guid>
        <description>&lt;p&gt;La programación con IA reduce la barrera para crear software, pero también lleva muchos problemas de seguridad de ingeniería a principiantes y usuarios no técnicos.&lt;/p&gt;
&lt;p&gt;Uno de los incidentes más comunes es subir a un repositorio público un &lt;code&gt;API Key&lt;/code&gt;, &lt;code&gt;Secret&lt;/code&gt;, &lt;code&gt;Token&lt;/code&gt;, cadena de conexión a una base de datos o archivo &lt;code&gt;.env&lt;/code&gt;. En local, estos archivos parecen simples configuraciones para que la aplicación funcione. En un repositorio público de GitHub, se convierten en credenciales que pueden ser escaneadas, llamadas y abusadas automáticamente.&lt;/p&gt;
&lt;p&gt;Las fugas de secretos no son raras. El informe 2026 de GitGuardian indica que los commits públicos de GitHub en 2025 contenían unos 28,65 millones de nuevas credenciales hardcodeadas, y que las fugas de credenciales relacionadas con servicios de IA crecieron un 81% interanual. El problema ya no es solo descuido: la programación con IA, los prototipos rápidos y el alojamiento público están amplificando la escala.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-los-principiantes-filtran-claves-con-más-facilidad&#34;&gt;Por qué los principiantes filtran claves con más facilidad
&lt;/h2&gt;&lt;p&gt;Muchos agentes de IA y pequeñas herramientas tienen dos “repositorios”: uno en el disco local y otro visible para todo el mundo en GitHub. El problema es que los principiantes a menudo no distinguen bien esa frontera.&lt;/p&gt;
&lt;p&gt;Durante el desarrollo local, &lt;code&gt;config.json&lt;/code&gt;, &lt;code&gt;.env&lt;/code&gt; y &lt;code&gt;settings.yaml&lt;/code&gt; pueden contener API keys. Después de ejecutar &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt; y &lt;code&gt;git push&lt;/code&gt;, esos archivos pueden subirse completos. Cuando el repositorio es público, los bots de escaneo no necesitan entender tu negocio: solo necesitan detectar un patrón de secreto.&lt;/p&gt;
&lt;p&gt;La programación con IA agrava esto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Los ejemplos generados por IA pueden poner &lt;code&gt;OPENAI_API_KEY = &amp;quot;sk-...&amp;quot;&lt;/code&gt; directamente en el código fuente.&lt;/li&gt;
&lt;li&gt;Para “hacer que funcione”, los principiantes tienden a hardcodear secretos en frontend, scripts o archivos de configuración.&lt;/li&gt;
&lt;li&gt;Muchas plataformas de vibe coding despliegan aplicaciones directamente sin pasar por la protección de push de GitHub.&lt;/li&gt;
&lt;li&gt;El usuario puede no saber qué archivos, APIs o permisos predeterminados existen dentro del proyecto generado por IA.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En resumen, la IA puede ayudarte a crear algo que funciona más rápido. No asume automáticamente la responsabilidad de seguridad.&lt;/p&gt;
&lt;h2 id=&#34;gitignore-no-es-decoración&#34;&gt;&lt;code&gt;.gitignore&lt;/code&gt; no es decoración
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Git&lt;/code&gt; gestiona el historial de versiones, &lt;code&gt;GitHub&lt;/code&gt; aloja el código y &lt;code&gt;.gitignore&lt;/code&gt; le dice a Git qué archivos no deben entrar en ese historial.&lt;/p&gt;
&lt;p&gt;Un proyecto básico de IA debería ignorar al menos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*.key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*.pem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config.local.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;secrets.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;credentials.*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pero &lt;code&gt;.gitignore&lt;/code&gt; no basta. Solo evita que archivos no rastreados se añadan en el futuro. Si un archivo con secretos ya fue committeado, añadirlo después a &lt;code&gt;.gitignore&lt;/code&gt; no lo elimina del historial.&lt;/p&gt;
&lt;p&gt;Un hábito más seguro:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crear &lt;code&gt;.gitignore&lt;/code&gt; al inicio del proyecto.&lt;/li&gt;
&lt;li&gt;Guardar API keys solo en variables de entorno o configuración local.&lt;/li&gt;
&lt;li&gt;Proporcionar &lt;code&gt;.env.example&lt;/code&gt; con placeholders, no secretos reales.&lt;/li&gt;
&lt;li&gt;Ejecutar un escáner de secretos antes de hacer commit, como &lt;code&gt;gitleaks&lt;/code&gt;, &lt;code&gt;trufflehog&lt;/code&gt; o GitHub Secret Scanning.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;borrar-el-archivo-no-basta&#34;&gt;Borrar el archivo no basta
&lt;/h2&gt;&lt;p&gt;Si una clave ya llegó a un repositorio público, la primera reacción no debería ser “borro el archivo y hago otro commit”. Primero revoca o rota la clave.&lt;/p&gt;
&lt;p&gt;Git registra el historial. Aunque el último commit elimine el archivo, los commits antiguos, forks, clones, cachés y sistemas de escaneo pueden conservarlo. La documentación de GitHub también recomienda revocar o rotar contraseñas, tokens y credenciales como primer paso.&lt;/p&gt;
&lt;p&gt;Orden recomendado:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revoca la clave antigua en el panel del proveedor y genera una nueva.&lt;/li&gt;
&lt;li&gt;Revisa facturación, registros de uso, IPs sospechosas y tráfico inusual.&lt;/li&gt;
&lt;li&gt;Elimina secretos hardcodeados y usa variables de entorno o un gestor de secretos.&lt;/li&gt;
&lt;li&gt;Limpia archivos sensibles del historial con &lt;code&gt;git filter-repo&lt;/code&gt; o BFG.&lt;/li&gt;
&lt;li&gt;Activa GitHub Secret Scanning y Push Protection.&lt;/li&gt;
&lt;li&gt;Revisa CI/CD, plataformas de despliegue, funciones cloud y artefactos frontend por si contienen la clave antigua.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En servicios como OpenAI, Anthropic, DeepSeek, proveedores cloud, pagos, correo o bases de datos, una clave filtrada puede provocar algo más que una factura inesperada: lectura de datos, abuso del servicio, contaminación de la cadena de suministro o bloqueo de cuentas.&lt;/p&gt;
&lt;h2 id=&#34;los-secretos-reales-no-van-en-el-frontend&#34;&gt;Los secretos reales no van en el frontend
&lt;/h2&gt;&lt;p&gt;Muchos principiantes ponen API keys en JavaScript del frontend porque la página funciona:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;sk-xxxxxxxx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eso equivale prácticamente a publicarlas. El código del navegador, las peticiones de red, los Source Map y los artefactos de build se pueden inspeccionar. Cualquier clave que deba ser secreta no debe aparecer en el cliente.&lt;/p&gt;
&lt;p&gt;La forma correcta es que el frontend llame a tu propio backend, y que el backend lea variables de entorno y llame a la API externa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// frontend
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/api/chat&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;method&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;JSON&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stringify&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;message&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El servidor usa la variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// server
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;env&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto mantiene el secreto en el entorno del servidor y evita exponerlo a todos los visitantes.&lt;/p&gt;
&lt;h2 id=&#34;vibe-coding-no-elimina-la-responsabilidad-de-seguridad&#34;&gt;Vibe Coding no elimina la responsabilidad de seguridad
&lt;/h2&gt;&lt;p&gt;El problema del vibe coding no se limita a GitHub. Muchas aplicaciones se publican directamente desde plataformas de programación con IA a internet, sin revisión de código, escaneo de repositorio ni pruebas de seguridad tradicionales.&lt;/p&gt;
&lt;p&gt;Investigaciones recientes de RedAccess encontraron una gran cantidad de activos públicos generados o alojados por herramientas de programación con IA, y algunos exponían datos corporativos, información personal o archivos internos. La lección es clara: cuando “se puede desplegar” se vuelve demasiado fácil, se olvida preguntar “¿debería ser público?”, “¿debería ser solo interno?” y “¿tiene control de acceso?”.&lt;/p&gt;
&lt;p&gt;Antes de publicar una app generada por IA, pregunta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Esta aplicación necesita realmente acceso público?&lt;/li&gt;
&lt;li&gt;¿Tiene login, autenticación y separación de permisos?&lt;/li&gt;
&lt;li&gt;¿Expone URLs de bases de datos, API keys, tokens o webhooks en el frontend?&lt;/li&gt;
&lt;li&gt;¿Tiene límites de cuota, dominio, permisos y caducidad para APIs externas?&lt;/li&gt;
&lt;li&gt;¿Puedes desactivar claves y revertir despliegues rápidamente tras un incidente?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El código generado por IA también necesita revisión de seguridad. Cuanto menos código hayas escrito personalmente, menos deberías asumir que es seguro.&lt;/p&gt;
&lt;h2 id=&#34;comprobaciones-para-hacer-ahora&#34;&gt;Comprobaciones para hacer ahora
&lt;/h2&gt;&lt;p&gt;Empieza por tu cuenta de GitHub. Busca tu usuario junto con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SECRET
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TOKEN
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OPENAI_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;DEEPSEEK_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;credentials
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si encuentras una clave real, rota primero y limpia después. Si entró alguna vez en un repositorio público, trátala como filtrada.&lt;/p&gt;
&lt;p&gt;Para futuros proyectos con IA, usa un proceso fijo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribe &lt;code&gt;.gitignore&lt;/code&gt; antes del código de negocio.&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;.env.example&lt;/code&gt; para documentar las variables necesarias.&lt;/li&gt;
&lt;li&gt;Pon todos los secretos en variables de entorno, no en el código fuente.&lt;/li&gt;
&lt;li&gt;Da a las API keys permisos mínimos, cuotas y fechas de caducidad.&lt;/li&gt;
&lt;li&gt;Activa GitHub Secret Scanning y Push Protection.&lt;/li&gt;
&lt;li&gt;Pide a la IA una revisión de seguridad antes de publicar, pero no confíes solo en su conclusión.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El verdadero peligro de la programación con IA no es solo que escriba código incorrecto. Es que da a muchas personas, por primera vez, la capacidad de publicar rápidamente aplicaciones inseguras en internet. Escribir rápido no es el problema. Entregar secretos, datos y permisos sí lo es.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.gitguardian.com/state-of-secrets-sprawl-report-2026&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitGuardian State of Secrets Sprawl 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.github.com/articles/remove-sensitive-data&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Docs: Removing sensitive data from a repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.github.com/code-security/secret-scanning/push-protection-for-repositories-and-organizations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Docs: About push protection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.axios.com/2026/05/07/loveable-replit-vibe-coding-privacy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Axios: AI vibe-coding apps leak sensitive data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Filtraciones de Gemini 3.5 Pro: Google quiere recuperar la entrada de programación AI con Spark Agent</title>
        <link>https://knightli.com/es/2026/05/15/gemini-35-pro-spark-agent-ai-coding-race/</link>
        <pubDate>Fri, 15 May 2026 23:45:34 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/gemini-35-pro-spark-agent-ai-coding-race/</guid>
        <description>&lt;p&gt;Gemini 3.5 Pro todavía no se ha lanzado oficialmente, pero las filtraciones a su alrededor ya están ganando fuerza.&lt;/p&gt;
&lt;p&gt;La información actual gira alrededor de varios términos: Gemini 3.5 Pro, el nombre en clave Cappuccino, Gemini Spark, programación AI e integración de herramientas MCP. Todos apuntan en la misma dirección: Google no solo quiere actualizar otro modelo de chat. Quiere volver a conectar modelos, herramientas, Agents y puntos de entrada del ecosistema Google.&lt;/p&gt;
&lt;p&gt;Antes de un lanzamiento oficial, todo esto debe tratarse como información filtrada. La señal importante no está en una captura concreta ni en un resultado de benchmark, sino en las carencias que Google podría estar intentando cerrar.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-gemini-35-pro-importa&#34;&gt;Por Qué Gemini 3.5 Pro Importa
&lt;/h2&gt;&lt;p&gt;Según la información expuesta, Gemini 3.5 Pro podría representar un salto de nombre.&lt;/p&gt;
&lt;p&gt;Hasta hace poco se hablaba de Gemini 3.2, y luego apareció Gemini 3.5 Pro en filtraciones. Si el nombre es real, Google probablemente quiere contar una historia de versión más grande en la próxima presentación, no solo lanzar una actualización menor.&lt;/p&gt;
&lt;p&gt;Los puntos filtrados se concentran principalmente en tres áreas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mejoras continuas en programación y razonamiento;&lt;/li&gt;
&lt;li&gt;mayor capacidad para generar SVG, páginas interactivas, animaciones y 3D;&lt;/li&gt;
&lt;li&gt;un nuevo producto Agent, Gemini Spark, que podría pasar al primer plano.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ninguna de estas direcciones sorprende. Gemini siempre ha enfatizado la multimodalidad, y Google tiene canales de distribución muy fuertes. La verdadera pregunta es si puede alcanzar el ritmo de OpenAI y Anthropic en herramientas para desarrolladores y flujos de trabajo tipo Agent.&lt;/p&gt;
&lt;h2 id=&#34;la-programación-es-la-asignatura-que-google-más-necesita-recuperar&#34;&gt;La Programación Es La Asignatura Que Google Más Necesita Recuperar
&lt;/h2&gt;&lt;p&gt;En 2026, la programación ya no es solo un punto de evaluación de modelos. Se ha convertido en uno de los puntos de entrada de producto más directos.&lt;/p&gt;
&lt;p&gt;La razón es simple: las herramientas de programación AI tienen uso frecuente y generan muchos datos de retroalimentación. Los desarrolladores piden a los modelos leer código, modificar código, ejecutar pruebas y corregir errores todos los días. Estas interacciones empujan de forma natural la siguiente generación de modelos y herramientas.&lt;/p&gt;
&lt;p&gt;Durante el último año, Claude Code ha ganado mucha presencia entre desarrolladores, mientras OpenAI ha seguido reforzando la colaboración entre Codex y ChatGPT. Google tiene productos como Antigravity, pero su presencia externa no ha sido tan fuerte.&lt;/p&gt;
&lt;p&gt;Por eso Gemini 3.5 Pro está bajo observación. Si solo chatea mejor o responde más rápido, el impacto será limitado. Si realmente mejora la comprensión de código, la edición entre varios archivos, las llamadas a herramientas y la ejecución de tareas largas, entonces sí puede cambiar flujos de trabajo de desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;gemini-spark-puede-ser-la-variable-más-grande&#34;&gt;Gemini Spark Puede Ser La Variable Más Grande
&lt;/h2&gt;&lt;p&gt;Más agresivo que el modelo en sí es el rumoreado Gemini Spark.&lt;/p&gt;
&lt;p&gt;Según las filtraciones, Spark no se posiciona como un asistente de chat normal, sino como un AI Agent siempre activo. Podría conectarse a correo, calendario, páginas web, tareas, estado de cuenta y contexto personal para ayudar al usuario a manejar flujos de varios pasos.&lt;/p&gt;
&lt;p&gt;Este tipo de producto abre mucho espacio de imaginación. Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;organizar automáticamente la bandeja de entrada;&lt;/li&gt;
&lt;li&gt;hacer seguimiento de tareas para el usuario;&lt;/li&gt;
&lt;li&gt;ejecutar acciones en páginas web;&lt;/li&gt;
&lt;li&gt;manejar procesos entre aplicaciones;&lt;/li&gt;
&lt;li&gt;organizar asuntos diarios según preferencias personales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero los riesgos son igual de evidentes. Si un Agent siempre activo puede acceder al estado de sesión, datos del navegador, archivos, ubicación y servicios de terceros, debe responder varias preguntas: ¿cuándo debe confirmar el usuario una acción? ¿qué operaciones deben quedar prohibidas para la automatización? ¿se compartirán datos con terceros? ¿cómo se aíslan el navegador remoto y las credenciales?&lt;/p&gt;
&lt;p&gt;Así que el punto clave de Spark no es solo si puede hacer trabajo por ti. Es si Google puede dejar suficientemente claros los permisos, la auditoría, los flujos de confirmación y el control del usuario.&lt;/p&gt;
&lt;h2 id=&#34;qué-sugiere-la-integración-de-herramientas-mcp&#34;&gt;Qué Sugiere La Integración De Herramientas MCP
&lt;/h2&gt;&lt;p&gt;Las filtraciones también mencionan que el nuevo selector de Gemini podría incluir modelos o entradas de prueba relacionadas con MCP.&lt;/p&gt;
&lt;p&gt;Si esto llega al producto, sugiere que Google también está empujando los modelos desde un sistema de preguntas y respuestas hacia un sistema operativo de herramientas. El modelo ya no solo genera texto. Debe llamar herramientas externas, acceder a sistemas de negocio, leer y escribir archivos, ejecutar comandos y mantener estado de tarea entre varios pasos.&lt;/p&gt;
&lt;p&gt;Es la misma dirección que siguen OpenAI y Anthropic. Quien logre llamadas a herramientas más estables tendrá más facilidad para insertar AI en flujos reales.&lt;/p&gt;
&lt;p&gt;Pero la integración MCP no es el final. Lo difícil es la estabilidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si el modelo puede elegir la herramienta correcta;&lt;/li&gt;
&lt;li&gt;si los parámetros son fiables;&lt;/li&gt;
&lt;li&gt;si puede recuperarse tras un fallo;&lt;/li&gt;
&lt;li&gt;si los límites de permisos están claros;&lt;/li&gt;
&lt;li&gt;si el usuario puede rastrear cada paso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estas preguntas no se resuelven, más herramientas también significan más superficie de error.&lt;/p&gt;
&lt;h2 id=&#34;la-multimodalidad-sigue-siendo-una-carta-fuerte-para-google&#34;&gt;La Multimodalidad Sigue Siendo Una Carta Fuerte Para Google
&lt;/h2&gt;&lt;p&gt;El área donde Google tiene más opciones de diferenciarse sigue siendo la multimodalidad.&lt;/p&gt;
&lt;p&gt;Según los ejemplos filtrados de SVG, páginas interactivas, animaciones y generación visual, Gemini podría seguir reforzando la capacidad de generar contenido interactivo a partir de prompts. Frente a escribir solo un fragmento de código, esto se acerca más al prototipado de producto: el usuario describe una idea y el modelo entrega directamente una interfaz operable, ajustable y previsualizable.&lt;/p&gt;
&lt;p&gt;Esta ruta encaja bien con Google. Aprovecha las fortalezas multimodales de Gemini y también puede conectarse con Android, Chrome, Workspace, Search, Ads y Cloud.&lt;/p&gt;
&lt;p&gt;Si Google quiere evitar competir solo en &amp;ldquo;qué modelo programa mejor&amp;rdquo;, probablemente pondrá más peso en un sistema Agent multimodal más completo.&lt;/p&gt;
&lt;h2 id=&#34;las-tres-compañías-empiezan-a-diferenciar-sus-jugadas&#34;&gt;Las Tres Compañías Empiezan A Diferenciar Sus Jugadas
&lt;/h2&gt;&lt;p&gt;La competencia actual de grandes modelos ya no es solo una competencia de rankings.&lt;/p&gt;
&lt;p&gt;La ventaja de OpenAI está en la velocidad de iteración de producto y distribución. Codex, ChatGPT, herramientas empresariales y APIs están cada vez más conectados.&lt;/p&gt;
&lt;p&gt;La ventaja de Anthropic está en la mente de los desarrolladores y en la calidad de sus modelos de código. Claude Code ya se ha convertido en el punto de entrada de programación AI por defecto para muchas personas.&lt;/p&gt;
&lt;p&gt;La ventaja de Google es el acceso al ecosistema. Gmail, Docs, Chrome, Android, Search, YouTube, Maps y servicios cloud forman una enorme red de datos personales y empresariales. Si los Agents pueden conectarse a estos puntos de entrada de forma segura, Google puede pasar de ser un &amp;ldquo;perseguidor de modelos&amp;rdquo; a controlar entradas de flujo de trabajo.&lt;/p&gt;
&lt;p&gt;Por eso Gemini Spark merece atención. No necesita quedar primero en todos los benchmarks. Si logra entrar en los flujos diarios, puede construir su propio foso.&lt;/p&gt;
&lt;h2 id=&#34;cómo-deberían-leer-esto-los-usuarios-comunes&#34;&gt;Cómo Deberían Leer Esto Los Usuarios Comunes
&lt;/h2&gt;&lt;p&gt;Para usuarios comunes, no hace falta dejarse arrastrar por cada filtración a corto plazo.&lt;/p&gt;
&lt;p&gt;Los puntos prácticos a observar son tres:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si la capacidad de programación de Gemini 3.5 Pro mejora de verdad, especialmente en repositorios complejos, contexto largo y llamadas a herramientas.&lt;/li&gt;
&lt;li&gt;Si Gemini Spark es seguro por defecto, con confirmación clara y registros rastreables antes de operaciones sensibles.&lt;/li&gt;
&lt;li&gt;Si Google ofrece precios, cuotas y gestión de permisos empresariales claros, no solo demos llamativas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Generar unas cuantas capturas bonitas tiene valor limitado. Poder conectarse de forma estable a flujos reales es la línea divisoria de esta generación de productos AI Agent.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-desarrolladores&#34;&gt;Qué Significa Para Desarrolladores
&lt;/h2&gt;&lt;p&gt;Los desarrolladores deberían preocuparse menos por &amp;ldquo;qué modelo ganó&amp;rdquo; y más por si su flujo de trabajo es portable.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Gemini, Antigravity, Cursor, Windsurf y muchas otras herramientas compiten por el punto de entrada. Si todos los procesos quedan atados a una sola plataforma, cualquier cambio futuro de coste, cuota, política de modelo o regla de permisos hará dolorosa la migración.&lt;/p&gt;
&lt;p&gt;Una postura más segura es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mantener flujos Git estándar en proyectos importantes;&lt;/li&gt;
&lt;li&gt;revisar siempre el diff después de ediciones automáticas;&lt;/li&gt;
&lt;li&gt;usar pruebas y CI como respaldo para tareas clave;&lt;/li&gt;
&lt;li&gt;no entregar credenciales de producción a Agents opacos;&lt;/li&gt;
&lt;li&gt;cuando se puedan conectar herramientas con protocolos abiertos, preferir opciones reemplazables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los modelos seguirán mejorando, pero la disciplina de ingeniería no quedará obsoleta.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Las filtraciones de Gemini 3.5 Pro sugieren que Google está acelerando para cerrar brechas en programación AI y puntos de entrada tipo Agent. La mejora del modelo es solo una parte; Agents siempre activos como Gemini Spark podrían ser el movimiento estratégico más grande.&lt;/p&gt;
&lt;p&gt;Pero cuanto más puede un sistema &amp;ldquo;hacer cosas automáticamente&amp;rdquo; por el usuario, más necesita límites estrictos de permisos y flujos verificables. Para Google, el reto real no es solo alcanzar a GPT-5.5 o Claude. Es combinar modelos fuertes, mecanismos de seguridad y entradas de ecosistema en un flujo diario confiable.&lt;/p&gt;
&lt;p&gt;Si lo consigue, Gemini no necesitará liderar todos los rankings para recuperar parte de la iniciativa en los puntos de entrada de AI.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guía de despliegue local de Claude Code &#43; Ollama: crear un asistente de programación AI gratuito con CC Switch</title>
        <link>https://knightli.com/es/2026/05/15/claude-code-ollama-cc-switch-local-agent/</link>
        <pubDate>Fri, 15 May 2026 23:27:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/claude-code-ollama-cc-switch-local-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; se ha vuelto un asistente de programación AI muy popular. Su atractivo no está solo en conversar sobre código, sino en leer un proyecto, modificar archivos, ejecutar comandos, instalar dependencias y seguir corrigiendo errores como un Agent operativo.&lt;/p&gt;
&lt;p&gt;El problema es el coste. Cuando el proyecto crece, el contexto se alarga y varias rondas de trabajo tipo Agent pueden consumir cuota de API muy rápido. Si solo quieres experimentar, modificar herramientas pequeñas, escribir scripts o trabajar con proyectos privados locales, surge una pregunta natural: ¿se puede mantener la experiencia de Claude Code, pero ejecutar el modelo en local?&lt;/p&gt;
&lt;p&gt;La herramienta clave de esta configuración es &lt;code&gt;CC Switch&lt;/code&gt;. Permite que Claude Code se conecte al servicio local de &lt;code&gt;Ollama&lt;/code&gt; mediante una API compatible con OpenAI, de modo que las solicitudes se reenvían al modelo local en lugar de ir directamente a la API oficial de Claude.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-esta-configuración&#34;&gt;Qué Problema Resuelve Esta Configuración
&lt;/h2&gt;&lt;p&gt;Puedes entender el flujo completo así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Claude Code desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ CC Switch API forwarding layer
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Ollama local model
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code sigue encargándose del flujo de programación y de las operaciones sobre el proyecto. CC Switch gestiona la configuración del proveedor de modelos y la compatibilidad de API. Ollama ejecuta el modelo en la máquina local.&lt;/p&gt;
&lt;p&gt;Esto no significa que un modelo local se convierta de pronto en Claude. Su valor real está en poder usar el flujo tipo Agent de Claude Code en escenarios locales, privados, sin conexión o de menor coste.&lt;/p&gt;
&lt;h2 id=&#34;preparación-básica&#34;&gt;Preparación Básica
&lt;/h2&gt;&lt;p&gt;Antes de empezar, prepara estos componentes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instala &lt;code&gt;Git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Instala &lt;code&gt;Ollama&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Descarga un modelo local adecuado para programación.&lt;/li&gt;
&lt;li&gt;Instala &lt;code&gt;CC Switch&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ten Claude Code disponible en tu máquina.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para el modelo, puedes empezar con opciones orientadas a código, como Qwen Coder, DeepSeek Coder u otros modelos con buen comportamiento en generación de código y llamadas a herramientas. Cuanto más grande sea el modelo, mejores pueden ser los resultados, pero también aumentará la presión sobre la memoria y la GPU.&lt;/p&gt;
&lt;p&gt;Si tu equipo tiene memoria limitada, empieza con un modelo más pequeño. Primero confirma que el flujo funciona bien y luego prueba modelos más grandes.&lt;/p&gt;
&lt;h2 id=&#34;configuración-clave-de-cc-switch&#34;&gt;Configuración Clave De CC Switch
&lt;/h2&gt;&lt;p&gt;Después de iniciar Ollama, su dirección local de API suele ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:11434/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En CC Switch, elige un tipo de proveedor compatible con OpenAI. Una opción habitual es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OpenAI Chat Completions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después apunta el base URL a la dirección local de Ollama.&lt;/p&gt;
&lt;p&gt;Para el campo de API key, Ollama local normalmente no necesita una clave real, pero muchas herramientas siguen exigiendo una variable de entorno o un valor de relleno. Puedes usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;o cualquier otra variable de relleno aceptada por tu configuración local.&lt;/p&gt;
&lt;p&gt;Hay un punto de configuración que merece especial atención:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;inferenceModels&amp;#34;=&amp;#34;[\&amp;#34;haiku\&amp;#34;,\&amp;#34;sonnet\&amp;#34;,\&amp;#34;opus\&amp;#34;]&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto mapea los roles de modelo que Claude Code espera hacia el proveedor local. En la práctica, debes vincular &lt;code&gt;haiku&lt;/code&gt;, &lt;code&gt;sonnet&lt;/code&gt; y &lt;code&gt;opus&lt;/code&gt; con los nombres de modelo expuestos por Ollama o CC Switch. Si este mapeo es incorrecto, Claude Code puede fallar al llamar al modelo o volver a una configuración inesperada.&lt;/p&gt;
&lt;h2 id=&#34;dónde-destaca-claude-code&#34;&gt;Dónde Destaca Claude Code
&lt;/h2&gt;&lt;p&gt;La mayor ventaja de Claude Code no es una finalización aislada, sino el flujo completo de desarrollo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;leer y entender la estructura del proyecto;&lt;/li&gt;
&lt;li&gt;localizar archivos relacionados con una tarea;&lt;/li&gt;
&lt;li&gt;editar código directamente;&lt;/li&gt;
&lt;li&gt;ejecutar comandos y pruebas;&lt;/li&gt;
&lt;li&gt;observar errores e iterar;&lt;/li&gt;
&lt;li&gt;completar tareas de varios pasos en una sola sesión.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso muchas personas quieren conservar Claude Code aunque cambien a un modelo local. Una interfaz de chat normal puede generar fragmentos de código, pero no trabaja de forma natural dentro de un repositorio. Claude Code se parece más a un asistente de desarrollo capaz de actuar.&lt;/p&gt;
&lt;h2 id=&#34;qué-papel-cumple-ollama&#34;&gt;Qué Papel Cumple Ollama
&lt;/h2&gt;&lt;p&gt;Ollama se encarga de ejecutar y gestionar los modelos locales. Gestiona la descarga, la carga y la inferencia local.&lt;/p&gt;
&lt;p&gt;La ventaja es clara: las solicitudes permanecen en tu máquina, el uso repetido no genera facturas de API y también puedes trabajar cuando la red está limitada. Para código privado, también resulta más aceptable que enviar cada ventana de contexto a un modelo en la nube.&lt;/p&gt;
&lt;p&gt;La contrapartida también es clara. Los modelos locales dependen mucho del hardware y de la calidad del modelo. Un modelo pequeño puede manejar ediciones simples, explicaciones y generación de scripts, pero puede sufrir con refactorizaciones grandes entre varios archivos o decisiones de arquitectura delicadas.&lt;/p&gt;
&lt;h2 id=&#34;dónde-están-los-límites-de-la-experiencia&#34;&gt;Dónde Están Los Límites De La Experiencia
&lt;/h2&gt;&lt;p&gt;Esta configuración no debe verse como un reemplazo completo de los modelos cloud más potentes de Claude.&lt;/p&gt;
&lt;p&gt;Puedes encontrarte con estos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comprensión más débil de contextos largos;&lt;/li&gt;
&lt;li&gt;llamadas a herramientas inestables en tareas complejas;&lt;/li&gt;
&lt;li&gt;inferencia lenta en máquinas solo con CPU;&lt;/li&gt;
&lt;li&gt;más alucinaciones de rutas de archivo o APIs inexistentes;&lt;/li&gt;
&lt;li&gt;planificación menos fiable en varias rondas;&lt;/li&gt;
&lt;li&gt;menor tasa de éxito en refactorizaciones de repositorios grandes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La expectativa más razonable es usarlo como un asistente de desarrollo local gratuito, no como un sustituto perfecto de un modelo cloud de primera línea.&lt;/p&gt;
&lt;h2 id=&#34;la-compatibilidad-multimodal-sigue-siendo-inestable&#34;&gt;La Compatibilidad Multimodal Sigue Siendo Inestable
&lt;/h2&gt;&lt;p&gt;Algunos usuarios quieren que Claude Code maneje capturas de pantalla, imágenes de UI, diagramas u otras entradas multimodales. Esta parte depende del modelo local y de la capa de reenvío.&lt;/p&gt;
&lt;p&gt;Si el modelo de Ollama seleccionado no admite visión, o si CC Switch no traduce correctamente el formato de solicitud, las funciones multimodales pueden fallar. Incluso con un modelo de visión, el comportamiento puede diferir de la API oficial de Claude.&lt;/p&gt;
&lt;p&gt;Por ahora, esta configuración es más adecuada para flujos de texto y código. Conviene tratar el soporte multimodal como algo experimental.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-tiene-sentido-probarlo&#34;&gt;Para Quién Tiene Sentido Probarlo
&lt;/h2&gt;&lt;p&gt;Esta configuración es adecuada para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;desarrolladores que quieren probar el flujo de Claude Code a bajo coste;&lt;/li&gt;
&lt;li&gt;usuarios que escriben scripts, herramientas pequeñas y automatizaciones con frecuencia;&lt;/li&gt;
&lt;li&gt;equipos que prefieren mantener el código en máquinas locales;&lt;/li&gt;
&lt;li&gt;principiantes que quieren un asistente de programación AI sin gasto continuo de API;&lt;/li&gt;
&lt;li&gt;personas que evalúan distintos modelos locales para código.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es menos adecuada si dependes mucho de contexto largo, monorepos grandes, calidad estricta de revisión de código o refactorizaciones complejas de proyectos completos.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-uso&#34;&gt;Recomendaciones De Uso
&lt;/h2&gt;&lt;p&gt;Empieza con tareas pequeñas.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;explicar un solo archivo;&lt;/li&gt;
&lt;li&gt;refactorizar una función pequeña;&lt;/li&gt;
&lt;li&gt;generar un script de shell;&lt;/li&gt;
&lt;li&gt;corregir un error simple;&lt;/li&gt;
&lt;li&gt;añadir una función pequeña;&lt;/li&gt;
&lt;li&gt;escribir pruebas unitarias para un módulo acotado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después de cada cambio, ejecuta pruebas o al menos revisa el diff. Un modelo local puede ser útil, pero no conviene aceptar a ciegas todas sus ediciones.&lt;/p&gt;
&lt;p&gt;Si el modelo pierde el contexto con frecuencia, reduce el alcance de la tarea. En lugar de pedirle &amp;ldquo;refactoriza todo el proyecto&amp;rdquo;, pídele &amp;ldquo;refactoriza esta función&amp;rdquo; o &amp;ldquo;añade validación en este archivo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Code + CC Switch + Ollama&lt;/code&gt; es una combinación interesante. Mantiene el flujo de desarrollo tipo Agent de Claude Code y mueve la inferencia a un modelo local.&lt;/p&gt;
&lt;p&gt;Sus mayores ventajas son el menor coste, la privacidad local y un flujo de desarrollo cómodo. Sus límites también son evidentes: la calidad del modelo, el rendimiento del hardware, el contexto largo y la estabilidad de las llamadas a herramientas afectan directamente la experiencia final.&lt;/p&gt;
&lt;p&gt;Si ya usas Ollama y quieres un flujo de programación AI local más práctico, vale la pena probar esta configuración. Solo recuerda empezar con tareas pequeñas, verificar cada cambio y tratar el modelo local como un asistente, no como un ingeniero automático.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Prompt-Vault: una biblioteca de especificaciones de prompt para probar AI Coding</title>
        <link>https://knightli.com/es/2026/05/15/prompt-vault-coding-prompt-benchmark/</link>
        <pubDate>Fri, 15 May 2026 09:00:52 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/prompt-vault-coding-prompt-benchmark/</guid>
        <description>&lt;p&gt;&lt;code&gt;w512/Prompt-Vault&lt;/code&gt; es un repositorio pequeño pero útil. No colecciona prompts mágicos; organiza prompts ejecutables de programación por dificultad para probar LLMs y coding agents.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/w512/Prompt-Vault&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/w512/Prompt-Vault&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La estructura es clara: &lt;code&gt;Easy&lt;/code&gt;, &lt;code&gt;Medium&lt;/code&gt; y &lt;code&gt;Hard&lt;/code&gt;. Cada archivo Markdown es una tarea independiente. El README también los presenta como prompts para probar modelos o practicar pequeños proyectos.&lt;/p&gt;
&lt;h2 id=&#34;no-es-una-colección-de-ocurrencias&#34;&gt;No es una colección de ocurrencias
&lt;/h2&gt;&lt;p&gt;Muchos repositorios de prompts parecen grandes, pero cuesta evaluar su calidad. Los títulos atraen, pero faltan criterios de aceptación.&lt;/p&gt;
&lt;p&gt;Prompt-Vault se parece más a una biblioteca de especificaciones. Cada tarea intenta dejar claro qué app construir, qué funciones son obligatorias, qué estilo de UI se espera, qué restricciones técnicas existen, si debe ser un solo archivo, si se permiten dependencias y si hay persistencia.&lt;/p&gt;
&lt;p&gt;Eso prueba mejor a un modelo que pedir “haz un Kanban bonito”.&lt;/p&gt;
&lt;h2 id=&#34;easy-interacción-básica&#34;&gt;Easy: interacción básica
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Bubble_Sort_Visualizer.md&lt;/code&gt; pide un &lt;code&gt;index.html&lt;/code&gt; único que visualice Bubble Sort con barras, botones start/reset, slider de velocidad, contador de comparaciones y tema oscuro.&lt;/p&gt;
&lt;p&gt;Sirve para probar si el modelo conecta estado algorítmico con UI, controla animación, maneja reset y mantiene el código simple.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ToDo_List.md&lt;/code&gt; parte de HTML estático y añade tareas, estado completado, borrar, contadores, estadísticas Active / Completed y &lt;code&gt;localStorage&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es simple, pero revela si el modelo evoluciona el código paso a paso o lo mezcla todo.&lt;/p&gt;
&lt;h2 id=&#34;medium-estado-y-animación&#34;&gt;Medium: estado y animación
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Sorting_Visualization.md&lt;/code&gt; exige seis algoritmos en la misma página: Bubble, Insertion, Selection, Merge, Quick y Heap Sort.&lt;/p&gt;
&lt;p&gt;También requiere selector de algoritmo, sliders de velocidad y tamaño, reset, start / pause y panel de estadísticas.&lt;/p&gt;
&lt;p&gt;Muchos modelos logran una animación de Bubble Sort, pero fallan al combinar varios algoritmos, pausa, reanudación y estadísticas.&lt;/p&gt;
&lt;h2 id=&#34;hard-sensación-de-producto-completo&#34;&gt;Hard: sensación de producto completo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Kanban_Board.md&lt;/code&gt; pide un tablero completo: columnas por defecto, columnas nuevas, renombrado con doble clic, borrar columnas vacías, tarjetas con título y descripción, prioridad, fecha límite, drag-and-drop, búsqueda, filtro, &lt;code&gt;localStorage&lt;/code&gt;, estadísticas, tema oscuro glassmorphism y scroll horizontal responsive.&lt;/p&gt;
&lt;p&gt;Esto evalúa producto, no solo una función.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Markdown_Editor_Desktop.md&lt;/code&gt; pide un editor Markdown de escritorio con Tauri 2: edición y vista previa, scroll sincronizado, render en vivo, modos, abrir/guardar/guardar como, indicador de no guardado, toolbar, atajos, temas, fuentes, Vue 3, Pinia, &lt;code&gt;marked.js&lt;/code&gt;, &lt;code&gt;prism.js&lt;/code&gt; y plugins de Tauri.&lt;/p&gt;
&lt;p&gt;Ya no es un prompt web simple; prueba estado frontend, permisos de filesystem, IPC y empaquetado.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-vale-la-pena&#34;&gt;Por qué vale la pena
&lt;/h2&gt;&lt;p&gt;Su valor no es la cantidad, sino ofrecer muestras reutilizables de evaluación.&lt;/p&gt;
&lt;p&gt;Con el mismo prompt puedes comparar modelos o agents: cuál respeta restricciones, cuál omite menos funciones, cuál maneja bordes, cuál deja código mantenible, cuál cuida mejor la UI.&lt;/p&gt;
&lt;p&gt;Es más fiable que “me parece más inteligente”.&lt;/p&gt;
&lt;p&gt;En frontend, muchos fallos no son sintaxis: faltan estados de botón, animaciones se atascan, no persiste el dato, el drag no marca el destino o las estadísticas no se actualizan.&lt;/p&gt;
&lt;h2 id=&#34;cómo-ampliarlo&#34;&gt;Cómo ampliarlo
&lt;/h2&gt;&lt;p&gt;Podría mejorar con checklists de aceptación, casos de fallo, criterios de puntuación, implementaciones de referencia y registros por modelo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, en sorting: “pulsar Start / Reset rápido no debe crear múltiples bucles de animación”. En Kanban: aclarar qué ocurre al borrar una columna con tarjetas.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlo&#34;&gt;Cómo usarlo
&lt;/h2&gt;&lt;p&gt;Para probar una herramienta de AI Coding:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Entrega el prompt sin cambios.&lt;/li&gt;
&lt;li&gt;No des pistas adicionales.&lt;/li&gt;
&lt;li&gt;Ejecuta el resultado.&lt;/li&gt;
&lt;li&gt;Verifica función por función.&lt;/li&gt;
&lt;li&gt;Registra omisiones y bugs.&lt;/li&gt;
&lt;li&gt;Da una ronda de reparación.&lt;/li&gt;
&lt;li&gt;Compara tiempo, coste de tokens y calidad final.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Prompt-Vault es una biblioteca ligera de especificaciones. Sirve para evaluar AI Coding y para practicar frontend.&lt;/p&gt;
&lt;p&gt;Recuerda que un buen prompt no es un deseo: debe definir requisitos, restricciones, interacción, estado, aceptación y modo de ejecución.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es Token Efficiency: DeepSeek V4, planificación con modelos grandes y ejecución con modelos pequeños</title>
        <link>https://knightli.com/es/2026/05/15/token-efficiency-agent-orchestration/</link>
        <pubDate>Fri, 15 May 2026 08:59:33 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/token-efficiency-agent-orchestration/</guid>
        <description>&lt;p&gt;La próxima métrica importante en AI Coding quizá no sea quién tiene el modelo más fuerte, sino quién completa más trabajo verificable con menos tokens, menor coste y un proceso más estable.&lt;/p&gt;
&lt;p&gt;Ese es el valor de Token Efficiency.&lt;/p&gt;
&lt;p&gt;Muchos lo entienden como modelos baratos, contexto largo o cache hits más económicos. Eso es solo la base. Lo que lo convierte en productividad es la división de trabajo entre modelos, la orquestación de tareas, el presupuesto de contexto y la evaluación.&lt;/p&gt;
&lt;p&gt;Token Efficiency no es un truco para ahorrar dinero. Es un método de ingeniería para convertir tokens en producción.&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-separar-planificación-y-ejecución&#34;&gt;DeepSeek V4: separar planificación y ejecución
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 no es solo otro modelo más fuerte. Divide las dos capacidades necesarias para Token Efficiency en &lt;code&gt;V4 Pro&lt;/code&gt; y &lt;code&gt;V4 Flash&lt;/code&gt;: &lt;code&gt;V4 Pro&lt;/code&gt; encaja mejor con planificación, razonamiento, juicio arquitectónico y revisión crítica; &lt;code&gt;V4 Flash&lt;/code&gt; encaja con ejecución frecuente, reescritura en lote, completado de código, organización de información y nodos normales de un agente.&lt;/p&gt;
&lt;p&gt;En AI Coding esto se traduce así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4 Pro&lt;/code&gt;: planner / consultant para requisitos, diseño técnico, bugs complejos, revisión de arquitectura y aceptación final.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4 Flash&lt;/code&gt;: executor para escanear archivos, implementar cambios simples, completar tests, ordenar documentación, generar candidatos y repetir tareas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La documentación API de DeepSeek indica que ambos soportan &lt;code&gt;1M&lt;/code&gt; de contexto, JSON Output, Tool Calls, Chat Prefix Completion y FIM Completion. La página de precios también separa input con cache hit y señala una bajada fuerte de ese precio.&lt;/p&gt;
&lt;p&gt;La combinación es lo importante: &lt;code&gt;1M&lt;/code&gt; de contexto reduce compresión en tareas agent complejas; el cache hit barato reduce el coste de volver a cargar prompts, docs, código e historial; la separación &lt;code&gt;Flash / Pro&lt;/code&gt; evita usar un modelo flagship para cada paso o depender solo de un modelo pequeño inestable.&lt;/p&gt;
&lt;p&gt;Así, DeepSeek V4 ofrece una estructura de coste realista para el patrón “modelo consultor + modelo ejecutor + harness de orquestación”.&lt;/p&gt;
&lt;h2 id=&#34;no-hacer-que-el-modelo-más-fuerte-lo-haga-todo&#34;&gt;No hacer que el modelo más fuerte lo haga todo
&lt;/h2&gt;&lt;p&gt;Antes era común elegir el modelo más inteligente y dejarle requisitos, código, tests y resumen de punta a punta.&lt;/p&gt;
&lt;p&gt;Es sencillo, pero no siempre eficiente. Muchas tareas no necesitan razonamiento de frontera. Los modelos caros deberían actuar como consultores, arquitectos o planificadores que intervienen en puntos clave.&lt;/p&gt;
&lt;p&gt;Una estructura mejor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modelos grandes para descomponer problemas y tomar decisiones clave.&lt;/li&gt;
&lt;li&gt;Modelos pequeños para ejecutar, procesar en lote y repetir cambios.&lt;/li&gt;
&lt;li&gt;Herramientas y harness para proceso, estado, contexto y validación.&lt;/li&gt;
&lt;li&gt;Personas para definir producto, aceptar resultados y decidir tradeoffs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así el razonamiento caro no se desperdicia en ejecución mecánica.&lt;/p&gt;
&lt;h2 id=&#34;más-contexto-no-siempre-es-mejor&#34;&gt;Más contexto no siempre es mejor
&lt;/h2&gt;&lt;p&gt;El contexto largo importa en coding agents porque código, documentos, historial, salida de tests y logs consumen ventana. Cuando se llena, aparecen compresión, olvido y errores de juicio.&lt;/p&gt;
&lt;p&gt;Pero contexto largo no significa meterlo todo.&lt;/p&gt;
&lt;p&gt;Token Efficiency exige que cada tarea quepa en una ventana clara y controlada: archivos necesarios, documentos relevantes para la decisión, estado actual, entradas y salidas claras, y resumen estructurado para el siguiente nodo.&lt;/p&gt;
&lt;p&gt;Si el contexto es barato, la tentación es meter ruido. El ruido no hace al modelo más inteligente.&lt;/p&gt;
&lt;h2 id=&#34;el-harness-importa-más-que-un-modelo-aislado&#34;&gt;El harness importa más que un modelo aislado
&lt;/h2&gt;&lt;p&gt;Conectar Claude Code, Codex u otro agent a un modelo barato no basta. Los modelos pequeños se desvían en cadenas largas si no hay control de proceso.&lt;/p&gt;
&lt;p&gt;Un harness decide cómo dividir tareas, correr nodos, escoger modelos, validar resultados, reintentar fallos y pasar contexto.&lt;/p&gt;
&lt;p&gt;Sin esa capa, un modelo pequeño solo es barato. Con esa capa, puede convertirse en palanca.&lt;/p&gt;
&lt;h2 id=&#34;dividir-tareas-con-dag&#34;&gt;Dividir tareas con DAG
&lt;/h2&gt;&lt;p&gt;Una tarea compleja puede convertirse en un DAG. Por ejemplo: aclarar requisitos, diseñar solución, dividir tareas, implementar, completar tests, hacer Code Review, corregir y enviar PR.&lt;/p&gt;
&lt;p&gt;Cada nodo puede ser un agente independiente con rol, prompt, permisos de herramientas y formato de salida. Los nodos deberían intercambiar resultados estructurados, no conversaciones largas.&lt;/p&gt;
&lt;p&gt;Esto hace cada nodo más corto, más fácil para modelos pequeños y más medible.&lt;/p&gt;
&lt;h2 id=&#34;ejecutar-varias-réplicas-de-una-tarea&#34;&gt;Ejecutar varias réplicas de una tarea
&lt;/h2&gt;&lt;p&gt;Cuando los tokens son suficientemente baratos, una tarea no tiene por qué ejecutarse una sola vez. Puedes correrla con distintos modelos, prompts u orquestaciones, luego elegir el mejor resultado o combinar partes útiles.&lt;/p&gt;
&lt;p&gt;Sirve para diseños, copy, casos de prueba, hipótesis de bug, alternativas de refactor y Code Review. No sirve para tareas con efectos externos, estado compartido o criterios de aceptación borrosos.&lt;/p&gt;
&lt;p&gt;El objetivo no es apostar, sino obtener muestras comparables para mejorar la orquestación y la elección de modelos.&lt;/p&gt;
&lt;h2 id=&#34;construir-evaluación&#34;&gt;Construir evaluación
&lt;/h2&gt;&lt;p&gt;Token Efficiency no se mide solo por precio. Un modelo barato con alta tasa de fallo consume tiempo humano y puede salir más caro.&lt;/p&gt;
&lt;p&gt;Conviene registrar tasa de finalización, intervenciones humanas, fallos de tool calls, tests que pasan, hallazgos de review, coste por tarea, tiempo, retrabajo y diferencias entre combinaciones de modelos.&lt;/p&gt;
&lt;p&gt;Con esos datos se sabe qué tareas van bien con modelos pequeños, cuáles requieren modelos grandes y cuáles deben quedarse en manos humanas.&lt;/p&gt;
&lt;h2 id=&#34;hacer-atómicos-los-workflows&#34;&gt;Hacer atómicos los workflows
&lt;/h2&gt;&lt;p&gt;No todo el mundo tiene que construir un harness completo. Pero sí puede dividir sus procesos en nodos atómicos.&lt;/p&gt;
&lt;p&gt;Producción de contenido: tema, investigación, esquema, borrador, fact-check, estilo, título SEO, traducción y revisión de publicación.&lt;/p&gt;
&lt;p&gt;Desarrollo de software: requisitos, diseño técnico, estructura de datos, cambios de API, unit tests, implementación, migraciones, documentación y review.&lt;/p&gt;
&lt;p&gt;Cada nodo debe tener entrada, salida, aceptación y contexto claros. Cuando maduren las herramientas de harness, esos procesos podrán conectarse directamente.&lt;/p&gt;
&lt;h2 id=&#34;el-hardware-no-es-lo-primero&#34;&gt;El hardware no es lo primero
&lt;/h2&gt;&lt;p&gt;Muchas conversaciones sobre Token Efficiency saltan a despliegue local y GPU. Para la mayoría, la API debería ser la primera opción.&lt;/p&gt;
&lt;p&gt;Antes de validar el modelo económico, el hardware local es coste adelantado. Mejor: validar el workflow con API, medir coste y calidad, detectar nodos frecuentes y estables, y solo después estudiar qué merece localizar.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Token Efficiency no consiste en sustituir modelos caros por baratos, sino en rediseñar el workflow de IA.&lt;/p&gt;
&lt;p&gt;Modelos grandes juzgan, modelos pequeños ejecutan, el harness orquesta y valida, y las personas definen objetivos y aceptación. Solo juntas estas capas convierten tokens en productividad.&lt;/p&gt;
&lt;p&gt;La diferencia futura quizá no esté en quién llama al modelo más fuerte, sino en quién convierte los mismos tokens en más resultados reales.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Superpowers: un framework de skills que devuelve los coding agents al proceso de ingeniería</title>
        <link>https://knightli.com/es/2026/05/15/obra-superpowers-agentic-skills-framework/</link>
        <pubDate>Fri, 15 May 2026 08:53:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/obra-superpowers-agentic-skills-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;obra/superpowers&lt;/code&gt; es un framework de skills para coding agents y también una metodología de desarrollo de software. Su objetivo no es crear otro prompt universal, sino hacer que el agente siga un proceso: aclarar objetivos, producir diseño, escribir un plan, implementar con TDD, revisar y cerrar.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/obra/superpowers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir, la API de GitHub muestra más de 190.000 stars, licencia MIT y actividad reciente. El README lo describe como &lt;code&gt;An agentic skills framework &amp;amp; software development methodology that works.&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Muchas herramientas de AI Coding no fallan por no saber escribir código, sino por escribirlo demasiado pronto.&lt;/p&gt;
&lt;p&gt;El usuario da una petición vaga, el agente edita archivos y el resultado parece terminado, aunque los límites, tests y arquitectura sigan sin estar claros. En tareas pequeñas puede pasar; en proyectos complejos se convierte en retrabajo y deuda técnica.&lt;/p&gt;
&lt;p&gt;Superpowers hace que el agente entre en un workflow antes de tocar código:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si detecta que el usuario quiere construir algo, pregunta primero por el objetivo.&lt;/li&gt;
&lt;li&gt;Convierte la conversación en una especificación y la confirma por partes.&lt;/li&gt;
&lt;li&gt;Tras aprobar el diseño, genera un plan de implementación.&lt;/li&gt;
&lt;li&gt;Solo cuando el usuario dice “go” empieza a implementar.&lt;/li&gt;
&lt;li&gt;Durante la implementación enfatiza TDD, YAGNI, DRY y revisión.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No es ingeniería nueva, pero los agentes rápidos necesitan barandillas más fuertes.&lt;/p&gt;
&lt;h2 id=&#34;herramientas-soportadas&#34;&gt;Herramientas soportadas
&lt;/h2&gt;&lt;p&gt;Superpowers no está ligado a un único agente. El README lista Claude Code, Codex CLI, Codex App, Factory Droid, Gemini CLI, OpenCode, Cursor y GitHub Copilot CLI.&lt;/p&gt;
&lt;p&gt;Su papel se parece más a una capa de workflow entre harnesses que a un truco para un modelo concreto.&lt;/p&gt;
&lt;h2 id=&#34;workflow-base&#34;&gt;Workflow base
&lt;/h2&gt;&lt;p&gt;Primero está &lt;code&gt;brainstorming&lt;/code&gt;: antes de implementar, el agente convierte ideas vagas en diseño ejecutable y lo confirma.&lt;/p&gt;
&lt;p&gt;Después &lt;code&gt;using-git-worktrees&lt;/code&gt;: crea un worktree y una rama aislados, y comprueba que instalación y tests parten de una base limpia.&lt;/p&gt;
&lt;p&gt;Luego &lt;code&gt;writing-plans&lt;/code&gt;: divide el diseño en tareas pequeñas con rutas, alcance de código y pasos de validación.&lt;/p&gt;
&lt;p&gt;En ejecución puede usar &lt;code&gt;subagent-driven-development&lt;/code&gt; para delegar o &lt;code&gt;executing-plans&lt;/code&gt; para avanzar por lotes. Cada tarea debe poder revisarse y verificarse.&lt;/p&gt;
&lt;p&gt;Después llega &lt;code&gt;test-driven-development&lt;/code&gt;: RED-GREEN-REFACTOR real. Escribir un test que falla, confirmar el fallo, implementar lo mínimo, confirmar el paso y refactorizar.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;requesting-code-review&lt;/code&gt; introduce revisión entre tareas, y los hallazgos críticos bloquean el avance.&lt;/p&gt;
&lt;p&gt;Finalmente &lt;code&gt;finishing-a-development-branch&lt;/code&gt; valida tests y ofrece opciones como merge, PR, conservar o descartar el worktree.&lt;/p&gt;
&lt;h2 id=&#34;qué-hay-en-la-skills-library&#34;&gt;Qué hay en la Skills Library
&lt;/h2&gt;&lt;p&gt;La parte de testing gira alrededor de &lt;code&gt;test-driven-development&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La parte de debugging incluye &lt;code&gt;systematic-debugging&lt;/code&gt; y &lt;code&gt;verification-before-completion&lt;/code&gt;: reproducir, minimizar, formular hipótesis, validar y no declarar completado sin verificar.&lt;/p&gt;
&lt;p&gt;Las skills de colaboración incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;brainstorming&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;writing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;executing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dispatching-parallel-agents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;requesting-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;receiving-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;using-git-worktrees&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;finishing-a-development-branch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subagent-driven-development&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También hay skills meta como &lt;code&gt;writing-skills&lt;/code&gt; y &lt;code&gt;using-superpowers&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Juntas dan al agente hábitos de ingeniería: cuándo preguntar, planificar, testear y detenerse para review.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-un-prompt-normal&#34;&gt;Diferencia frente a un prompt normal
&lt;/h2&gt;&lt;p&gt;Un prompt normal suele apilar reglas en un system prompt: no cambies de más, piensa primero, prueba, explica, sé breve. Cuantas más reglas, más fácil es que el modelo olvide algunas en tareas complejas.&lt;/p&gt;
&lt;p&gt;Superpowers divide las reglas en módulos de workflow activables. Cada skill es más corta y enfocada. El agente sabe en qué fase está, el proceso se vuelve revisable y el equipo puede codificar sus propias prácticas.&lt;/p&gt;
&lt;p&gt;La lección no es solo usar un modelo más inteligente, sino darle una forma repetible de trabajar.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-sirve&#34;&gt;Para quién sirve
&lt;/h2&gt;&lt;p&gt;Superpowers encaja mejor con desarrolladores que ya usan coding agents en proyectos reales: tareas de varios archivos, diseño antes de implementación, TDD o validación, ramas o worktrees paralelos, subagents para implementación o review, y equipos que quieren convertir su flujo en skills reutilizables.&lt;/p&gt;
&lt;p&gt;Para cambiar una línea de configuración puede ser pesado. Para trabajos de varias fases, sus restricciones aportan valor.&lt;/p&gt;
&lt;h2 id=&#34;precauciones&#34;&gt;Precauciones
&lt;/h2&gt;&lt;p&gt;No es piloto automático. Da proceso al agente, pero requisitos, límites y aceptación final siguen siendo humanos.&lt;/p&gt;
&lt;p&gt;TDD y review añaden coste inicial. En tareas pequeñas pueden parecer lentos; en tareas complejas reducen retrabajo.&lt;/p&gt;
&lt;p&gt;Los subagents en paralelo no siempre ayudan. Funcionan si los límites y el alcance de escritura son claros. Si el requisito es borroso, el paralelismo multiplica la confusión.&lt;/p&gt;
&lt;p&gt;También hay que mantener la calidad de las skills. Procesos obsoletos, instrucciones vagas y reglas conflictivas perjudican al agente.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Superpowers vale porque aleja al coding agent de “recibir petición y editar código” y lo devuelve al proceso de ingeniería de software.&lt;/p&gt;
&lt;p&gt;Lo que falta en AI Coding no suele ser velocidad de generación, sino aclaración, planificación, verificación, review y cierre. Cuanto más fuerte sea el modelo, menos conviene saltarse esos pasos.&lt;/p&gt;
&lt;p&gt;Si usas Codex, Claude Code, Cursor o Gemini CLI en proyectos reales, Superpowers merece una lectura. Aunque no lo instales, su forma de dividir skills sirve como referencia para diseñar tu propio workflow de agentes.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Rechazar el Vibe Coding: el repositorio skills de Matt Pocock añade restricciones de ingeniería a la programación con IA</title>
        <link>https://knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</link>
        <pubDate>Fri, 15 May 2026 08:46:23 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</guid>
        <description>&lt;p&gt;Cuanto más rápido escribe código la IA, más rápido puede perder el control un proyecto. La cuestión real no es si un modelo puede generar funciones, sino si entiende el requisito, respeta el lenguaje del equipo y avanza con cambios pequeños dentro de la arquitectura existente.&lt;/p&gt;
&lt;p&gt;El repositorio &lt;code&gt;mattpocock/skills&lt;/code&gt; de Matt Pocock apunta en la dirección opuesta al vibe coding: no dejar que la IA tome todo el proceso de desarrollo, sino ponerla dentro de restricciones maduras de ingeniería de software.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/mattpocock/skills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No se trata de un prompt mágico. Es un conjunto de agent skills que convierten aclaración de requisitos, modelado de dominio, TDD, diagnóstico y revisión arquitectónica en workflows adecuados para herramientas de AI Coding.&lt;/p&gt;
&lt;h2 id=&#34;primero-resolver-la-falta-de-alineación&#34;&gt;Primero resolver la falta de alineación
&lt;/h2&gt;&lt;p&gt;El fallo más común en AI Coding es creer que el modelo entendió cuando en realidad solo adivinó a partir de una descripción vaga.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-me&lt;/code&gt; invierte la interacción. Antes de escribir código, el agente actúa como un revisor exigente y pregunta por ramas, límites y decisiones pendientes.&lt;/p&gt;
&lt;p&gt;Si pides una página de login, debería preguntar primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cómo funcionará recuperar contraseña.&lt;/li&gt;
&lt;li&gt;Si habrá login de terceros.&lt;/li&gt;
&lt;li&gt;Qué error mostrar cuando falle el login.&lt;/li&gt;
&lt;li&gt;Si bloqueo de cuenta, CAPTCHA o control de riesgo están dentro del alcance.&lt;/li&gt;
&lt;li&gt;A dónde redirigir tras el éxito.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Parece más lento, pero reduce retrabajo. Cuanto más barato es generar código, más caro se vuelve no haber aclarado el requisito.&lt;/p&gt;
&lt;h2 id=&#34;escribir-el-lenguaje-de-dominio-en-el-contexto&#34;&gt;Escribir el lenguaje de dominio en el contexto
&lt;/h2&gt;&lt;p&gt;Otro problema es el vocabulario genérico. El modelo no conoce los términos internos del equipo, así que los nombres de variables, funciones y documentos empiezan a desviarse.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-with-docs&lt;/code&gt; pregunta mientras revisa &lt;code&gt;CONTEXT.md&lt;/code&gt;, ADRs o documentos de dominio. Los términos y decisiones confirmados pueden volver a esos documentos.&lt;/p&gt;
&lt;p&gt;Esto se parece al lenguaje ubicuo de DDD. Si el equipo dice customer en lugar de user, o transaction en lugar de order, la IA debe heredar esa terminología.&lt;/p&gt;
&lt;p&gt;El valor del contexto no está en acumular datos, sino en reducir la necesidad de adivinar.&lt;/p&gt;
&lt;h2 id=&#34;usar-tdd-para-limitar-la-velocidad&#34;&gt;Usar TDD para limitar la velocidad
&lt;/h2&gt;&lt;p&gt;La IA es peligrosa porque es rápida. Antes, escribir mucho mal código tomaba tiempo; ahora aparecen cientos de líneas en segundos. El problema no es la velocidad, sino la falta de ciclos de feedback.&lt;/p&gt;
&lt;p&gt;El skill &lt;code&gt;tdd&lt;/code&gt; devuelve el ciclo rojo-verde-refactor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribir un test fallido para un comportamiento.&lt;/li&gt;
&lt;li&gt;Implementar lo mínimo para pasarlo.&lt;/li&gt;
&lt;li&gt;Refactorizar.&lt;/li&gt;
&lt;li&gt;Continuar con el siguiente corte vertical.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La clave es avanzar comportamiento por comportamiento. La IA ejecuta; la persona controla dirección y límites.&lt;/p&gt;
&lt;h2 id=&#34;diagnosticar-con-un-ciclo&#34;&gt;Diagnosticar con un ciclo
&lt;/h2&gt;&lt;p&gt;Ante un bug, muchos agentes adivinan y parchean varias veces hasta empeorar el código.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;diagnose&lt;/code&gt; exige crear primero un ciclo de feedback:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reproducir el problema&lt;/li&gt;
&lt;li&gt;Minimizar el caso&lt;/li&gt;
&lt;li&gt;Formular una hipótesis&lt;/li&gt;
&lt;li&gt;Añadir observación o logs&lt;/li&gt;
&lt;li&gt;Corregir&lt;/li&gt;
&lt;li&gt;Añadir una prueba de regresión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es un proceso clásico, pero en AI Coding es aún más importante. La IA prueba rápido; el proceso la mantiene cerca de la causa raíz.&lt;/p&gt;
&lt;h2 id=&#34;revisar-la-arquitectura-con-regularidad&#34;&gt;Revisar la arquitectura con regularidad
&lt;/h2&gt;&lt;p&gt;Que una tarea pase no significa que el código esté mejor. Muchas pequeñas modificaciones de IA pueden difuminar límites de módulos, complicar interfaces y hacer más difíciles los tests.&lt;/p&gt;
&lt;p&gt;Skills como &lt;code&gt;improve-codebase-architecture&lt;/code&gt; hacen que el agente mire el código desde más arriba:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué módulos mezclan responsabilidades.&lt;/li&gt;
&lt;li&gt;Qué interfaces son demasiado complejas.&lt;/li&gt;
&lt;li&gt;Qué rutas son difíciles de probar.&lt;/li&gt;
&lt;li&gt;Qué nombres no encajan con el lenguaje de dominio.&lt;/li&gt;
&lt;li&gt;Qué duplicaciones conviene consolidar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es una gran refactorización automática. Es observación estructurada y dirección de mejora; la decisión sigue siendo humana.&lt;/p&gt;
&lt;h2 id=&#34;lo-que-hay-que-limitar-es-la-libertad&#34;&gt;Lo que hay que limitar es la libertad
&lt;/h2&gt;&lt;p&gt;La idea central es sencilla: programar con IA no consiste en dejar improvisar al modelo, sino en darle objetivos, contexto, tests y condiciones de parada.&lt;/p&gt;
&lt;p&gt;Las personas definen el problema, los límites de arquitectura, las decisiones de negocio y los criterios de aceptación. La IA genera código, completa tests, repite cambios y hace refactors locales.&lt;/p&gt;
&lt;p&gt;Los fundamentos de ingeniería de software no quedaron obsoletos porque la IA mejoró. Aclarar requisitos, usar lenguaje de dominio, TDD, diagnóstico y revisión de arquitectura es cada vez más importante.&lt;/p&gt;
&lt;p&gt;Cada vez más personas podrán escribir código. La diferencia estará en quién puede insertar la IA en un sistema de ingeniería mantenible, verificable y capaz de evolucionar.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es cc-haha: un proyecto que convierte Claude Code en un banco de trabajo de escritorio</title>
        <link>https://knightli.com/es/2026/05/14/cc-haha-claude-code-desktop-workbench/</link>
        <pubDate>Thu, 14 May 2026 22:38:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/14/cc-haha-claude-code-desktop-workbench/</guid>
        <description>&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; es un proyecto construido alrededor de un flujo de trabajo modificado de Claude Code. Su repositorio completo es &lt;code&gt;NanmiCoder/cc-haha&lt;/code&gt;. La página del proyecto lo dice de forma directa: está basado en el código fuente de Claude Code filtrado desde el Anthropic npm registry el &lt;code&gt;2026-03-31&lt;/code&gt;, y su forma principal actual es un banco de trabajo de escritorio para Claude Code.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hay dos puntos importantes en esa descripción.&lt;/p&gt;
&lt;p&gt;Primero, no es Claude Code oficial de Anthropic. El README también indica que el copyright del código fuente original pertenece a Anthropic y que el proyecto es solo para aprendizaje e investigación.&lt;/p&gt;
&lt;p&gt;Segundo, su foco ya no es simplemente &amp;ldquo;ejecutar un Claude Code CLI local&amp;rdquo;. Por lo que muestran el README y el release más reciente, &lt;code&gt;cc-haha&lt;/code&gt; se parece más a una app de escritorio que reúne sesiones de Claude Code, proyectos, permisos, diffs, Computer Use, acceso remoto y configuración de proveedores de modelos.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-intenta-resolver&#34;&gt;Qué problema intenta resolver
&lt;/h2&gt;&lt;p&gt;Claude Code nació como una herramienta orientada a la terminal. Las sesiones, la ejecución de comandos, las confirmaciones de permisos, las ediciones de archivos y el cambio de contexto ocurren en la terminal. Para quien está cómodo con CLI, eso funciona. Pero en uso prolongado aparecen varias incomodidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Varios proyectos y sesiones son difíciles de gestionar a la vez.&lt;/li&gt;
&lt;li&gt;Para ver qué archivos modificó la IA, hay que cambiar a Git o al editor.&lt;/li&gt;
&lt;li&gt;Las aprobaciones, la ejecución de comandos y los diffs quedan repartidos en varias superficies.&lt;/li&gt;
&lt;li&gt;Ver la sesión actual desde un teléfono u otro dispositivo requiere una solución adicional.&lt;/li&gt;
&lt;li&gt;Conectar modelos que no sean de Anthropic exige manejar compatibilidad de protocolos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La dirección de &lt;code&gt;cc-haha&lt;/code&gt; es empaquetar todo eso en un banco de trabajo gráfico. No es solo una capa visual para Claude Code; mueve la gestión de sesiones y el control del flujo de desarrollo local a la app de escritorio.&lt;/p&gt;
&lt;h2 id=&#34;banco-de-trabajo-de-escritorio-de-terminal-a-centro-de-control&#34;&gt;Banco de trabajo de escritorio: de terminal a centro de control
&lt;/h2&gt;&lt;p&gt;Según el README, la app de escritorio de &lt;code&gt;cc-haha&lt;/code&gt; reúne estas capacidades en macOS / Windows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Banco de trabajo multisesión: pestañas, cambio de proyecto, entrada a terminal e historial de sesiones.&lt;/li&gt;
&lt;li&gt;Arranque por branch / Worktree: una nueva sesión puede elegir rama del repositorio y decidir entre el árbol actual o un Worktree aislado.&lt;/li&gt;
&lt;li&gt;Panel derecho de cambios de código: ver archivos modificados, líneas añadidas/eliminadas y estado del workspace mientras se chatea.&lt;/li&gt;
&lt;li&gt;Visualización de cambios: inspeccionar ediciones de la IA, diffs y proceso de ejecución.&lt;/li&gt;
&lt;li&gt;Flujo de permisos y confirmaciones: aprobar comandos peligrosos, tool calls y preguntas de la IA desde el escritorio.&lt;/li&gt;
&lt;li&gt;Varios proveedores de modelos: API compatibles con Anthropic, modelos de terceros, WebSearch fallback y configuración local.&lt;/li&gt;
&lt;li&gt;Acceso remoto H5: usar un token de un solo uso para entrar a la sesión de escritorio desde un teléfono u otro dispositivo.&lt;/li&gt;
&lt;li&gt;Integración con IM: conversar, cambiar proyectos y aprobar permisos desde Telegram, Feishu, WeChat o DingTalk.&lt;/li&gt;
&lt;li&gt;Tareas programadas y uso de tokens: crear tareas planificadas y ver tendencias de consumo local de tokens.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas funciones lo acercan más a un &amp;ldquo;banco de trabajo de programación con IA&amp;rdquo; que a un simple sustituto de la línea de comandos. Intenta poner en un solo lugar las superficies más comunes al programar con IA: chat, cambios de archivos, permisos, proyectos, entrada remota y configuración de modelos.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-arranque&#34;&gt;Instalación y arranque
&lt;/h2&gt;&lt;p&gt;Para usuarios normales, lo más razonable es descargar el instalador de escritorio desde Releases.&lt;/p&gt;
&lt;p&gt;El flujo indicado en el README es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ir a GitHub Releases y descargar el instalador de macOS o Windows.&lt;/li&gt;
&lt;li&gt;En el primer arranque, configurar proveedor de modelo, API Key y modelo por defecto en los ajustes de escritorio.&lt;/li&gt;
&lt;li&gt;Si macOS indica que la app no se puede abrir, seguir la guía de instalación para resolver permisos de Gatekeeper.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La página del release más reciente muestra que &lt;code&gt;v0.2.6&lt;/code&gt; se publicó el &lt;code&gt;2026-05-13&lt;/code&gt;. Esa versión se centra en recuperar de forma segura el acceso móvil H5, mejorar la gestión de sesiones de escritorio, la búsqueda de menciones de archivos y detalles de experiencia de escritorio.&lt;/p&gt;
&lt;p&gt;Si quieres arrancar el CLI desde código fuente, el README da estos comandos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./bin/claude-haha
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ese camino es más adecuado para quien quiera depurar el CLI inferior, el servidor o desarrollar cambios propios. Para uso normal, la app de escritorio es más directa.&lt;/p&gt;
&lt;h2 id=&#34;qué-cambió-en-v026&#34;&gt;Qué cambió en v0.2.6
&lt;/h2&gt;&lt;p&gt;El punto principal de &lt;code&gt;v0.2.6&lt;/code&gt; es que el acceso H5/LAN volvió de una apertura temporal a un modelo de activación explícita y emparejamiento por token.&lt;/p&gt;
&lt;p&gt;Cambios destacados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El acceso H5/LAN debe activarse explícitamente en local.&lt;/li&gt;
&lt;li&gt;Los enlaces QR llevan un token visible una sola vez.&lt;/li&gt;
&lt;li&gt;Las API remotas, proxy y WebSocket ya no quedan expuestos sin protección.&lt;/li&gt;
&lt;li&gt;Settings añadió una página independiente de H5 Access.&lt;/li&gt;
&lt;li&gt;La barra lateral de escritorio añadió modo de gestión masiva, con selección múltiple y borrado de sesiones.&lt;/li&gt;
&lt;li&gt;La búsqueda de menciones de archivos ahora es git-first, respeta reglas ignore y reduce ruido de &lt;code&gt;node_modules&lt;/code&gt; y artefactos de build.&lt;/li&gt;
&lt;li&gt;Se añadió un tema blanco puro y se corrigieron problemas como URLs largas rompiendo el layout del chat o borradores cruzados entre tabs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que el proyecto ya no está solo en la fase de &amp;ldquo;funciona&amp;rdquo;, sino que empieza a cubrir límites de seguridad y detalles diarios propios de un producto de escritorio.&lt;/p&gt;
&lt;p&gt;La parte de H5 merece especial cuidado. El autor avisa en el release que H5 es una entrada de navegador para individuos o equipos confiables, no un sistema público de login multi-tenant. En la práctica, no debería tratarse como un panel SaaS expuesto a internet.&lt;/p&gt;
&lt;h2 id=&#34;computer-use-dejar-que-el-agent-opere-el-escritorio&#34;&gt;Computer Use: dejar que el Agent opere el escritorio
&lt;/h2&gt;&lt;p&gt;Otro punto importante de &lt;code&gt;cc-haha&lt;/code&gt; es Computer Use.&lt;/p&gt;
&lt;p&gt;La documentación del proyecto explica que esta función parte de una versión muy modificada del Computer Use interno del código filtrado de Claude Code. La implementación oficial depende de módulos nativos privados de Anthropic, como &lt;code&gt;@ant/computer-use-swift&lt;/code&gt; y &lt;code&gt;@ant/computer-use-input&lt;/code&gt;, que no están disponibles públicamente. &lt;code&gt;cc-haha&lt;/code&gt; reemplaza la capa inferior por un Python bridge basado en bibliotecas públicas como &lt;code&gt;pyautogui&lt;/code&gt;, &lt;code&gt;mss&lt;/code&gt; y &lt;code&gt;pyobjc&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Computer Use soporta operaciones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Captura de pantalla: &lt;code&gt;screenshot&lt;/code&gt;, &lt;code&gt;zoom&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Ratón: clic, arrastre, movimiento, scroll y lectura de posición del cursor&lt;/li&gt;
&lt;li&gt;Teclado: escribir texto, pulsar teclas, mantener teclas&lt;/li&gt;
&lt;li&gt;Aplicaciones: abrir apps, cambiar pantalla&lt;/li&gt;
&lt;li&gt;Permisos: solicitar acceso a apps, listar aplicaciones autorizadas&lt;/li&gt;
&lt;li&gt;Portapapeles: leer y escribir contenido&lt;/li&gt;
&lt;li&gt;Otros: esperar, operaciones por lote&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su flujo es un ciclo de &amp;ldquo;captura - análisis - acción&amp;rdquo;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El modelo recibe la solicitud del usuario.&lt;/li&gt;
&lt;li&gt;Llama a &lt;code&gt;screenshot&lt;/code&gt; para capturar la pantalla.&lt;/li&gt;
&lt;li&gt;El modelo usa visión para identificar botones, campos y coordenadas.&lt;/li&gt;
&lt;li&gt;Llama a herramientas de clic, escritura u operación de apps.&lt;/li&gt;
&lt;li&gt;Vuelve a capturar pantalla para confirmar el resultado y continúa.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Según la documentación, la plataforma con soporte completo es principalmente macOS, tanto Apple Silicon como Intel. Windows / Linux son teóricamente posibles, pero las partes de gestión de aplicaciones basadas en &lt;code&gt;pyobjc&lt;/code&gt; deben reemplazarse por soluciones de cada plataforma, y hoy no están completamente adaptadas.&lt;/p&gt;
&lt;p&gt;Los requisitos de ejecución incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Bun &amp;gt;= 1.1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Python &amp;gt;= 3.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;permiso de Accessibility en macOS&lt;/li&gt;
&lt;li&gt;permiso de Screen Recording en macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta función es potente, pero también aumenta el riesgo de permisos. Al dejar que la IA opere apps de escritorio, conviene autorizar solo las aplicaciones realmente necesarias y no dejar contenido sensible abierto en ventanas no relacionadas.&lt;/p&gt;
&lt;h2 id=&#34;varios-modelos-mediante-una-capa-compatible-con-anthropic&#34;&gt;Varios modelos mediante una capa compatible con Anthropic
&lt;/h2&gt;&lt;p&gt;La comunicación base de &lt;code&gt;cc-haha&lt;/code&gt; sigue siendo el protocolo Anthropic Messages API. La documentación recomienda usar LiteLLM como proxy de conversión de protocolo.&lt;/p&gt;
&lt;p&gt;La estructura básica es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-code-haha ──Anthropic协议──▶ LiteLLM Proxy ──OpenAI协议──▶ 目标模型 API
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es decir, &lt;code&gt;cc-haha&lt;/code&gt; envía solicitudes Anthropic Messages API, LiteLLM las convierte a formatos como OpenAI Chat Completions y las reenvía a OpenAI, DeepSeek, Ollama u otros servicios de modelos.&lt;/p&gt;
&lt;p&gt;La instalación de LiteLLM indicada en la documentación es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s1&#34;&gt;&amp;#39;litellm[proxy]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después se pueden configurar OpenAI, DeepSeek, Ollama y otros modelos en &lt;code&gt;litellm_config.yaml&lt;/code&gt;. Una vez iniciado el proxy, se configuran estas variables en &lt;code&gt;.env&lt;/code&gt; o &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sk-anything
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:4000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_SONNET_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_HAIKU_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_OPUS_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;API_TIMEOUT_MS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;DISABLE_TELEMETRY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Hay varios detalles prácticos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;drop_params: true&lt;/code&gt; es importante, porque parámetros de Anthropic como &lt;code&gt;thinking&lt;/code&gt; o &lt;code&gt;cache_control&lt;/code&gt; no existen en la API de OpenAI.&lt;/li&gt;
&lt;li&gt;Extended Thinking es una función propia de Anthropic y no está disponible con modelos de terceros.&lt;/li&gt;
&lt;li&gt;Prompt Caching tampoco funciona en la forma nativa de Anthropic.&lt;/li&gt;
&lt;li&gt;Los tool calls pasan de Anthropic &lt;code&gt;tool_use&lt;/code&gt; a OpenAI function calling, así que algunos tool calls complejos pueden tener problemas de compatibilidad.&lt;/li&gt;
&lt;li&gt;Modelos locales pequeños en Ollama pueden no manejar de forma estable este flujo intensivo en herramientas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que conectar varios modelos puede funcionar, pero no significa que todos ofrezcan la misma experiencia. &lt;code&gt;cc-haha&lt;/code&gt; sigue exigiendo al modelo buena capacidad de tool use, comprensión de código y contexto largo.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-tiene-sentido&#34;&gt;Para quién tiene sentido
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; encaja mejor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios que ya conocen Claude Code y quieren gestión de sesiones en escritorio.&lt;/li&gt;
&lt;li&gt;Personas que trabajan con varios repositorios, ramas y sesiones de IA al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Quienes quieren ver cambios de archivos, diffs y estado del workspace en un panel lateral.&lt;/li&gt;
&lt;li&gt;Usuarios que quieren probar Computer Use y dejar que un Agent opere apps de escritorio.&lt;/li&gt;
&lt;li&gt;Personas que quieren conectar OpenAI, DeepSeek, Ollama u otros modelos mediante un protocolo compatible con Anthropic.&lt;/li&gt;
&lt;li&gt;Usuarios que necesitan ver sesiones o aprobar permisos desde móvil o IM.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Encaja peor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios que solo quieren la experiencia oficial y estable de Claude Code.&lt;/li&gt;
&lt;li&gt;Personas que no aceptan el origen en código filtrado y la incertidumbre de copyright.&lt;/li&gt;
&lt;li&gt;Usuarios que no quieren conceder permisos altos del sistema a herramientas locales.&lt;/li&gt;
&lt;li&gt;Equipos que necesitan cumplimiento empresarial, auditoría y soporte oficial.&lt;/li&gt;
&lt;li&gt;Personas que no están cómodas con API keys, proxies, compatibilidad de modelos y servicios locales.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;riesgos-y-límites&#34;&gt;Riesgos y límites
&lt;/h2&gt;&lt;p&gt;Este artículo no puede hablar solo de funciones; también debe hablar de riesgos.&lt;/p&gt;
&lt;p&gt;El origen de &lt;code&gt;cc-haha&lt;/code&gt; hace que no sea una reimplementación comunitaria normal. El README indica claramente que está basado en código fuente filtrado de Claude Code, y que el código original pertenece a Anthropic. Eso crea incertidumbre de copyright, cumplimiento y mantenimiento a largo plazo.&lt;/p&gt;
&lt;p&gt;Además, Computer Use, acceso remoto H5, integración IM y aprobación local de permisos son capacidades de alto privilegio. Cuanto más cómodas son, más claros deben ser sus límites:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No abrir H5 access en redes no confiables.&lt;/li&gt;
&lt;li&gt;No tratar el token como una credencial pública de login a largo plazo.&lt;/li&gt;
&lt;li&gt;No permitir que el Agent opere aplicaciones sensibles no relacionadas.&lt;/li&gt;
&lt;li&gt;No integrarlo casualmente en producción o entornos corporativos regulados.&lt;/li&gt;
&lt;li&gt;No exponer configuración de proxies de modelos ni API keys en repositorios públicos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el objetivo es estudiar arquitectura de herramientas de programación con IA, flujos de escritorio e implementación de Computer Use, es una referencia útil. Si se quiere usar en un flujo de producción a largo plazo, hay que evaluar primero riesgos legales, de permisos, seguridad y mantenimiento.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo más interesante de &lt;code&gt;cc-haha&lt;/code&gt; no es si puede replicar Claude Code, sino que empuja las herramientas de programación con IA tipo Claude Code hacia una forma de banco de trabajo de escritorio.&lt;/p&gt;
&lt;p&gt;Sesiones, proyectos, Worktree, diffs, permisos, acceso remoto, Computer Use, proveedores de modelos, tareas programadas y estadísticas de tokens se reúnen en una sola experiencia de escritorio. Esto muestra que el siguiente paso de las herramientas de programación con IA no es solo tener modelos más fuertes, sino también interfaces de flujo de trabajo más completas.&lt;/p&gt;
&lt;p&gt;Pero sus límites también son claros: no es un producto oficial de Anthropic, tiene un origen sensible y sus funciones de alto permiso requieren cuidado. La actitud más razonable es verlo como un proyecto para observar la evolución de las herramientas de programación con IA, no como un reemplazo despreocupado de Claude Code oficial.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Repositorio de GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Último release: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación de Computer Use: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación de modelos de terceros: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex /goal vs Claude Code /goal: ejecutar tareas largas hasta terminarlas</title>
        <link>https://knightli.com/es/2026/05/14/codex-goal-vs-claude-code-goal/</link>
        <pubDate>Thu, 14 May 2026 22:25:31 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/14/codex-goal-vs-claude-code-goal/</guid>
        <description>&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; se está convirtiendo en un comando importante dentro de las herramientas de programación con IA.&lt;/p&gt;
&lt;p&gt;No se trata de hacer que el modelo escriba unas cuantas líneas más de código. Resuelve un problema más práctico: cuando una tarea tiene condiciones claras de finalización, ¿puede el Agent seguir avanzando hasta cumplirlas, en lugar de detenerse después de cada turno y esperar a que el usuario escriba &amp;ldquo;continúa&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;Codex CLI ya añadió un &lt;code&gt;/goal&lt;/code&gt; experimental en su documentación oficial. Claude Code también publicó su propia documentación de &lt;code&gt;/goal&lt;/code&gt;, y lo describe como una capacidad de automatización que puede seguir trabajando durante varios turnos. El nombre es el mismo, pero la orientación del producto no es exactamente igual.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-goal&#34;&gt;Qué problema resuelve &lt;code&gt;/goal&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Una conversación normal de programación con IA suele funcionar turno por turno:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El usuario plantea una tarea.&lt;/li&gt;
&lt;li&gt;El Agent analiza, modifica código y ejecuta pruebas.&lt;/li&gt;
&lt;li&gt;El Agent informa el resultado.&lt;/li&gt;
&lt;li&gt;El usuario decide el siguiente paso.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ese flujo funciona bien para tareas cortas. Pero cuando se trata de migraciones, refactors, correcciones de pruebas o limpieza de un issue backlog, se vuelve fragmentado. El Agent puede avanzar solo un poco y luego detenerse hasta que escribas &amp;ldquo;continúa&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La idea de &lt;code&gt;/goal&lt;/code&gt; es cambiar la pregunta de &amp;ldquo;qué hago ahora&amp;rdquo; a &amp;ldquo;qué estado final cuenta como terminado&amp;rdquo;. Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 完成登录模块迁移，所有 auth 测试通过，lint 无报错
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este tipo de objetivo encaja de forma natural con tareas largas, porque tiene un punto final claro: las pruebas pasan, la compilación funciona, los archivos se han dividido, una cola queda vacía o se cumplen los criterios de aceptación.&lt;/p&gt;
&lt;h2 id=&#34;goal-en-codex-experimental-y-ligado-al-hilo-actual&#34;&gt;&lt;code&gt;/goal&lt;/code&gt; en Codex: experimental y ligado al hilo actual
&lt;/h2&gt;&lt;p&gt;La documentación de Codex CLI de OpenAI marca &lt;code&gt;/goal&lt;/code&gt; como experimental. No es una capacidad estable activada por defecto; primero hay que habilitar &lt;code&gt;features.goals&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Hay dos formas de hacerlo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/experimental
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O añadir esto a &lt;code&gt;config.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;features&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;goals&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Una vez habilitado, se puede usar así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal Finish the migration and keep tests green
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los comandos habituales incluyen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal pause
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal resume
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Según la documentación de OpenAI, Codex adjunta el goal al active thread actual y sigue ese objetivo mientras avanza una tarea más grande.&lt;/p&gt;
&lt;p&gt;Aquí hay un detalle importante: el lenguaje oficial sobre Codex &lt;code&gt;/goal&lt;/code&gt; es prudente. Enfatiza configurar un objetivo experimental para trabajo de larga duración y adjuntar ese objetivo al hilo actual, pero no describe con el mismo detalle que la documentación de Claude Code un evaluator independiente que revise cada turno y arranque automáticamente el siguiente. Por eso, de momento conviene tratar Codex &lt;code&gt;/goal&lt;/code&gt; como un mecanismo experimental para objetivos de tareas largas, no como un modo de ejecución desatendida plenamente estable.&lt;/p&gt;
&lt;h2 id=&#34;goal-en-claude-code-ejecución-por-varias-rondas-guiada-por-condiciones-de-finalización&#34;&gt;&lt;code&gt;/goal&lt;/code&gt; en Claude Code: ejecución por varias rondas guiada por condiciones de finalización
&lt;/h2&gt;&lt;p&gt;La documentación de &lt;code&gt;/goal&lt;/code&gt; en Claude Code es más explícita: después de que el usuario define una completion condition, Claude sigue trabajando entre turnos hasta cumplirla.&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal all tests in test/auth pass and the lint step is clean
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El mecanismo de Claude Code, a grandes rasgos, es este:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuando termina el turno actual, el control no vuelve inmediatamente al usuario.&lt;/li&gt;
&lt;li&gt;Un modelo pequeño y rápido revisa si la condición del objetivo ya se cumplió.&lt;/li&gt;
&lt;li&gt;Si no se cumplió, Claude empieza automáticamente el siguiente turno.&lt;/li&gt;
&lt;li&gt;Si se cumplió, el goal se borra automáticamente y el estado de finalización queda registrado en el transcript.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto hace que &lt;code&gt;/goal&lt;/code&gt; en Claude Code se parezca más a &amp;ldquo;continuar automáticamente hasta satisfacer la condición de finalización&amp;rdquo;. No solo fija un objetivo en la conversación; delega en un paso de evaluación independiente la decisión de si debe continuar.&lt;/p&gt;
&lt;p&gt;Claude Code también permite ver el estado directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El estado muestra la condición del objetivo, el tiempo transcurrido, la cantidad de turnos evaluados, el consumo de tokens y la razón más reciente del evaluator.&lt;/p&gt;
&lt;p&gt;Para detenerlo antes de tiempo, se puede usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;stop&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt;, &lt;code&gt;reset&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt; y &lt;code&gt;cancel&lt;/code&gt; también funcionan como alias de limpieza. Después de activar un objetivo, si la sesión se interrumpe y más tarde se reanuda con &lt;code&gt;--resume&lt;/code&gt; o &lt;code&gt;--continue&lt;/code&gt;, un goal activo puede recuperarse. Sin embargo, el tiempo, el número de turnos y la línea base de tokens se recalculan.&lt;/p&gt;
&lt;h2 id=&#34;la-diferencia-principal&#34;&gt;La diferencia principal
&lt;/h2&gt;&lt;p&gt;Codex y Claude Code están empujando la programación con IA desde respuestas de un solo turno hacia la ejecución de tareas largas, pero la posición de &lt;code&gt;/goal&lt;/code&gt; no es la misma.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Comparación&lt;/th&gt;
          &lt;th&gt;Codex CLI &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;Claude Code &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Estado&lt;/td&gt;
          &lt;td&gt;experimental&lt;/td&gt;
          &lt;td&gt;documentado en una página oficial dedicada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Activación&lt;/td&gt;
          &lt;td&gt;requiere &lt;code&gt;features.goals&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;usable directamente en un workspace confiable&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Alcance del objetivo&lt;/td&gt;
          &lt;td&gt;active thread actual&lt;/td&gt;
          &lt;td&gt;session actual&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Operaciones habituales&lt;/td&gt;
          &lt;td&gt;set / view / pause / resume / clear&lt;/td&gt;
          &lt;td&gt;set / view / clear&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Evaluación automática&lt;/td&gt;
          &lt;td&gt;la documentación enfatiza adjuntar y seguir el objetivo&lt;/td&gt;
          &lt;td&gt;la documentación describe checks del evaluator después de cada turno&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Continuación automática&lt;/td&gt;
          &lt;td&gt;el lenguaje oficial es prudente&lt;/td&gt;
          &lt;td&gt;empieza el siguiente turno automáticamente si las condiciones no se cumplen&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mejor caso de uso&lt;/td&gt;
          &lt;td&gt;mantener un objetivo de largo plazo en una tarea de Codex&lt;/td&gt;
          &lt;td&gt;dejar que Claude Code avance según condiciones de finalización&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En resumen, &lt;code&gt;/goal&lt;/code&gt; en Codex se parece más a &amp;ldquo;adjuntar un objetivo experimental de largo plazo al hilo actual&amp;rdquo;. &lt;code&gt;/goal&lt;/code&gt; en Claude Code se parece más a &amp;ldquo;definir una condición verificable de parada para la sesión actual y dejar que siga trabajando hasta satisfacerla&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-escribir-un-buen-goal&#34;&gt;Cómo escribir un buen &lt;code&gt;/goal&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Uses la herramienta que uses, &lt;code&gt;/goal&lt;/code&gt; no es un buen lugar para deseos vagos.&lt;/p&gt;
&lt;p&gt;Un mal ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 把项目优化一下
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un mejor ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 将 payment 模块迁移到新 API，npm test -- payment 退出码为 0，git diff 只包含 payment 相关文件
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un buen objetivo suele incluir tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Un estado final claro.&lt;/li&gt;
&lt;li&gt;Un método de validación ejecutable.&lt;/li&gt;
&lt;li&gt;Límites que deben respetarse.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si el objetivo es grande, conviene añadir una condición de parada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 修复 eslint 报错，npm run lint 退出码为 0；如果超过 20 轮仍未完成，停止并总结剩余问题
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto importa. Cuanto más potente sea &lt;code&gt;/goal&lt;/code&gt;, más necesita límites. Si no, el Agent puede modificar demasiados archivos, ejecutarse durante demasiado tiempo, consumir demasiados tokens o seguir adelante con una cuestión que debería haberse detenido para pedir criterio humano.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-conviene-usar-goal&#34;&gt;Cuándo conviene usar &lt;code&gt;/goal&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Encaja bien con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Corrección de pruebas: hasta que pasen pruebas específicas.&lt;/li&gt;
&lt;li&gt;Migraciones de código: hasta que todos los puntos de llamada estén actualizados y la compilación funcione.&lt;/li&gt;
&lt;li&gt;Limpieza por lotes: hasta eliminar una clase de errores de lint o tipos.&lt;/li&gt;
&lt;li&gt;Documentación: hasta que todos los módulos especificados tengan explicación.&lt;/li&gt;
&lt;li&gt;Gestión de issues: hasta que todos los issues bajo una etiqueta estén tratados o clasificados con claridad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No encaja bien con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requisitos que todavía no están claros.&lt;/li&gt;
&lt;li&gt;Tareas que requieren juicio de producto frecuente.&lt;/li&gt;
&lt;li&gt;Eliminaciones de alto riesgo, migraciones de datos o cambios de permisos.&lt;/li&gt;
&lt;li&gt;Criterios de aceptación puramente subjetivos.&lt;/li&gt;
&lt;li&gt;Tareas que cruzan muchos módulos no relacionados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una regla práctica: si puedes escribir &amp;ldquo;qué comando ejecutar, qué resultado esperar y qué archivos no se deben tocar&amp;rdquo;, es buen candidato para &lt;code&gt;/goal&lt;/code&gt;. Si solo puedes escribir &amp;ldquo;hazlo mejor&amp;rdquo;, sigue siendo más seguro usar conversación normal, plan mode o revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-esto-para-las-herramientas-de-programación-con-ia&#34;&gt;Qué significa esto para las herramientas de programación con IA
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; apunta a una dirección clara: las herramientas de programación con IA están pasando de asistentes interactivos a unidades de trabajo que pueden ejecutarse de forma continua.&lt;/p&gt;
&lt;p&gt;Antes, usar un Agent solía implicar quedarse cerca. Si se atascaba, lo guiabas. Si terminaba las pruebas, le decías que continuara. Si aparecía un error, dabas otra orden. &lt;code&gt;/goal&lt;/code&gt; comprime esa interacción en una condición de finalización y deja que el Agent decida qué debe hacer el siguiente turno.&lt;/p&gt;
&lt;p&gt;Pero esto también sube el listón para los usuarios. Escribir prompts ya no consiste solo en describir una tarea; también implica definir criterios de aceptación, comandos de validación, límites de modificación y reglas de parada. Dicho de otro modo, el trabajo del usuario pasa de &amp;ldquo;pedirle que continúe&amp;rdquo; a &amp;ldquo;definir qué significa terminado&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Que Codex y Claude Code hayan llegado a &lt;code&gt;/goal&lt;/code&gt; muestra que los Agents de tareas largas ya no pertenecen solo a tareas en segundo plano o colas en la nube. Las herramientas locales de programación en terminal también empiezan a necesitar una capacidad más fuerte de avance autónomo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Codex CLI y Claude Code tienen &lt;code&gt;/goal&lt;/code&gt;, pero por ahora no conviene tratarlos como la misma función.&lt;/p&gt;
&lt;p&gt;El &lt;code&gt;/goal&lt;/code&gt; de Codex sigue siendo experimental, requiere &lt;code&gt;features.goals&lt;/code&gt; y encaja mejor como una forma de mantener un objetivo de largo plazo en el hilo actual de Codex. El &lt;code&gt;/goal&lt;/code&gt; de Claude Code conecta de forma más explícita las condiciones de finalización con la continuación automática, usando un evaluator independiente para decidir si debe seguir.&lt;/p&gt;
&lt;p&gt;Para el desarrollo diario, este tipo de comando funciona mejor en tareas de ingeniería con criterios de aceptación claros. No reemplaza el juicio de producto ni la revisión de código, pero puede reducir mucho el ciclo repetitivo de &amp;ldquo;continúa&amp;rdquo;, &amp;ldquo;ejecútalo otra vez&amp;rdquo; y &amp;ldquo;corrige hasta que pasen las pruebas&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La habilidad importante no es memorizar el comando, sino aprender a escribir tareas como objetivos claros, verificables y detenibles.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OpenAI Codex CLI Slash Commands: &lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/cli/slash-commands&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://developers.openai.com/codex/cli/slash-commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación de Claude Code Goal: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/goal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/goal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Por qué DeepSeek se volvió la clave para ahorrar en esta ola de herramientas de AI Coding</title>
        <link>https://knightli.com/es/2026/05/11/deepseek-ai-coding-cost-saving/</link>
        <pubDate>Mon, 11 May 2026 04:59:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/11/deepseek-ai-coding-cost-saving/</guid>
        <description>&lt;p&gt;En esta ola de herramientas de AI Coding, la competencia parece girar en torno a capacidad del modelo, ecosistema de plugins y automatización con agentes. Pero cuando se usan de verdad, el primer muro que aparece es el coste.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, OpenClaw y Superpowers son herramientas muy útiles, pero comparten una característica: cuando una tarea se vuelve compleja, consumen muchísimos tokens. Tienen que leer el proyecto, crear planes, llamar herramientas, resumir contexto, revisar resultados una y otra vez, e incluso lanzar subtareas. Cuanto más inteligente es el modelo y más automatizado es el workflow, más fácil es que la factura crezca en silencio.&lt;/p&gt;
&lt;p&gt;Por eso DeepSeek se volvió importante en esta ronda. No solo porque pueda escribir código, sino porque su contexto largo y su coste de caché atacan justo la parte más cara de las herramientas de AI Coding.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-las-herramientas-agent-consumen-tantos-tokens&#34;&gt;Por qué las herramientas agent consumen tantos tokens
&lt;/h2&gt;&lt;p&gt;Los asistentes de programación tradicionales en modo chat suelen funcionar con preguntas y respuestas. Preguntas cómo escribir una función y el modelo responde con un fragmento de código. Ese modo también consume tokens, pero sigue siendo relativamente controlable.&lt;/p&gt;
&lt;p&gt;Las herramientas agent son distintas. No solo responden preguntas, sino que entran al proyecto como un ingeniero temporal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;escanean directorios y archivos clave;&lt;/li&gt;
&lt;li&gt;entienden el requisito y la arquitectura existente;&lt;/li&gt;
&lt;li&gt;crean un plan;&lt;/li&gt;
&lt;li&gt;modifican archivos;&lt;/li&gt;
&lt;li&gt;ejecutan comandos o tests;&lt;/li&gt;
&lt;li&gt;siguen corrigiendo según los errores;&lt;/li&gt;
&lt;li&gt;resumen al final qué cambió.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Durante este proceso, el modelo lee repetidamente el mismo contexto. Descripciones del proyecto, fragmentos de código, resultados de herramientas, historial de conversación, planes y logs de error vuelven una y otra vez al contexto. Cuando la tarea es un poco compleja, cientos de miles de tokens desaparecen rápido.&lt;/p&gt;
&lt;p&gt;Si además instalas plugins más agresivos, el coste se nota todavía más. Algunas extensiones de OpenCode o Claude Code pueden organizar por defecto todo un equipo de agentes. Tú solo querías cambiar una pequeña función, pero la herramienta puede iniciar planificación, revisión, ejecución y retrospectiva. La tarea parece más “inteligente”, pero los tokens suben sin parar.&lt;/p&gt;
&lt;h2 id=&#34;la-ventaja-de-superpowers-es-activarse-bajo-demanda&#34;&gt;La ventaja de Superpowers es activarse bajo demanda
&lt;/h2&gt;&lt;p&gt;Una ventaja de herramientas como Superpowers es que no fuerzan un flujo agent completo en todas las tareas.&lt;/p&gt;
&lt;p&gt;Normalmente puedes seguir usando Claude Code, OpenCode o Codex de la forma habitual. Solo cuando llamas explícitamente a una skill, como brainstorming, planificación, ejecución de plan o retrospectiva, entra en un flujo de automatización más pesado.&lt;/p&gt;
&lt;p&gt;Esto importa mucho para el coste.&lt;/p&gt;
&lt;p&gt;AI Coding no debería usar artillería pesada para todo. Cambiar una línea de configuración, revisar un error o escribir un script pequeño se puede resolver con una conversación normal. Solo refactors complejos, cambios en varios archivos, procesamiento de documentos largos y validación por varias rondas justifican un flujo agent completo.&lt;/p&gt;
&lt;p&gt;Cuanto más poderosa es la herramienta, más importante es controlar cuándo se activa. Si no, más automatización solo significa más desperdicio.&lt;/p&gt;
&lt;h2 id=&#34;la-ventaja-clave-de-deepseek-es-una-caché-barata&#34;&gt;La ventaja clave de DeepSeek es una caché barata
&lt;/h2&gt;&lt;p&gt;Una razón importante por la que DeepSeek encaja con estas herramientas agent es su bajo coste cuando hay cache hit.&lt;/p&gt;
&lt;p&gt;Las tareas de AI Coding tienen muchos prefijos repetidos: contexto del proyecto, prompts de sistema, instrucciones de herramientas, contenido de archivos y turnos anteriores aparecen muchas veces en solicitudes posteriores. Si el servicio del modelo soporta prompt cache, esas partes repetidas cuestan mucho menos después de un acierto de caché.&lt;/p&gt;
&lt;p&gt;En muchos modelos, un cache hit solo es algo más barato que un miss, quizá alrededor de un tercio del precio original. La ventaja de DeepSeek es que la diferencia después de un hit puede ser mucho mayor. En workflows agent con contexto largo, muchas rondas y lectura repetida del proyecto, esa diferencia se ve directamente en la factura.&lt;/p&gt;
&lt;p&gt;Es decir, DeepSeek no tiene por qué dar la mejor respuesta en cada turno. Pero en escenarios con tareas largas, muchas rondas y lectura repetida de contexto, su estructura de costes encaja especialmente bien con AI Coding.&lt;/p&gt;
&lt;h2 id=&#34;el-contexto-largo-hace-más-útil-a-claude-code&#34;&gt;El contexto largo hace más útil a Claude Code
&lt;/h2&gt;&lt;p&gt;Al conectar Claude Code o herramientas similares a DeepSeek V4, otra ventaja clara es el contexto largo.&lt;/p&gt;
&lt;p&gt;Lo que más temen las herramientas de AI Coding es quedarse sin contexto. Cuando el contexto no alcanza, hay que comprimir con frecuencia. Cuando se comprime mucho, se pueden perder detalles ya leídos. El modelo empieza a olvidar la estructura del proyecto, las restricciones o por qué se modificó cierto archivo, y la calidad baja después.&lt;/p&gt;
&lt;p&gt;La capacidad de contexto largo de DeepSeek V4 lo hace más adecuado para repositorios de código, procesamiento por lotes de documentos, traducción de subtítulos y limpieza de artículos de sitio. Especialmente al conectarlo a Claude Code u OpenClaw, una buena configuración puede retrasar la compresión de contexto y conservar más detalles del proyecto.&lt;/p&gt;
&lt;p&gt;Por eso algunas tareas se sienten “resistentes” con DeepSeek: no necesariamente impresiona en cada paso, pero aguanta llamadas largas, baratas y repetidas.&lt;/p&gt;
&lt;h2 id=&#34;cómo-repartir-trabajo-entre-v4-pro-y-v4-flash&#34;&gt;Cómo repartir trabajo entre V4 Pro y V4 Flash
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro y V4 Flash no deberían usarse sin distinción.&lt;/p&gt;
&lt;p&gt;Para tareas simples, &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; suele ser mejor. Es rápido, barato y normalmente suficiente para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;traducir subtítulos;&lt;/li&gt;
&lt;li&gt;ordenar documentos;&lt;/li&gt;
&lt;li&gt;generar scripts comunes;&lt;/li&gt;
&lt;li&gt;modificar pequeñas zonas de código;&lt;/li&gt;
&lt;li&gt;ejecutar tareas ligeras en OpenClaw;&lt;/li&gt;
&lt;li&gt;procesar contenido simple de un sitio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para tareas complejas, conviene considerar &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;refactors de gran escala;&lt;/li&gt;
&lt;li&gt;comprensión de código con varios módulos;&lt;/li&gt;
&lt;li&gt;razonamiento complejo;&lt;/li&gt;
&lt;li&gt;tareas agent de cadena larga;&lt;/li&gt;
&lt;li&gt;cambios de código de alto riesgo;&lt;/li&gt;
&lt;li&gt;tareas de ingeniería que requieren planificación más fuerte.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mucha gente quiere conectar siempre el modelo más fuerte, pero eso suele ser poco rentable. La forma práctica de usar herramientas de AI Coding es dividir las tareas por capas: que el modelo barato procese mucho trabajo rutinario, y reservar el modelo caro para los puntos críticos.&lt;/p&gt;
&lt;h2 id=&#34;minimax-doubao-y-deepseek-ocupan-posiciones-distintas&#34;&gt;MiniMax, Doubao y DeepSeek ocupan posiciones distintas
&lt;/h2&gt;&lt;p&gt;Entre modelos y planes chinos, MiniMax, Doubao, Kimi y DeepSeek tienen posiciones diferentes.&lt;/p&gt;
&lt;p&gt;MiniMax destaca por dar mucho volumen, bajo precio y funciones amplias. Quizá no sea el modelo de programación más inteligente, pero sirve muy bien para traducción, limpieza ligera y procesamiento por lotes. Procesar subtítulos, cambiar formatos o hacer revisión simple son buenos casos para planes tipo MiniMax.&lt;/p&gt;
&lt;p&gt;Doubao destaca por un ecosistema de herramientas más completo: imagen, video, búsqueda, TTS, posible STT y embedding pueden conectarse dentro de la misma caja. Se parece más a una caja de herramientas general.&lt;/p&gt;
&lt;p&gt;DeepSeek tiene una posición más clara: texto, código, contexto largo y caché barata. No tiene un ecosistema completo de generación de imagen, voz y video, y sus debilidades son evidentes. Pero en AI Coding y workflows agent de texto largo, sus fortalezas son suficientemente fuertes.&lt;/p&gt;
&lt;p&gt;No se trata de que uno sustituya a otro. Se trata de dividir la tarea y usar cada herramienta donde encaja.&lt;/p&gt;
&lt;h2 id=&#34;ahorrar-no-es-solo-elegir-un-modelo-barato&#34;&gt;Ahorrar no es solo elegir un modelo barato
&lt;/h2&gt;&lt;p&gt;Ahorrar en AI Coding no significa cambiar todas las solicitudes al modelo más barato.&lt;/p&gt;
&lt;p&gt;Las formas realmente efectivas son:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No iniciar un agent pesado para tareas simples.&lt;/li&gt;
&lt;li&gt;No usar Pro cuando Flash basta.&lt;/li&gt;
&lt;li&gt;Aprovechar la caché en tareas largas.&lt;/li&gt;
&lt;li&gt;Mantener estable el contexto repetido para no romper cache hits con cambios inútiles.&lt;/li&gt;
&lt;li&gt;Dejar que un modelo barato haga borradores y batch processing, y usar un modelo fuerte para revisiones clave.&lt;/li&gt;
&lt;li&gt;Decirle claramente al agent que no repita hechos ni resuma el mismo punto una y otra vez.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El último punto es especialmente importante. Las herramientas de AI tienden a ser verbosas, y la verbosidad no es solo un problema de lectura; también es un problema de coste. Incluir en el prompt “describe cada hecho una sola vez y expresa cada opinión una sola vez” puede mejorar tanto la calidad del texto como el consumo de tokens.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-workflows-de-ai-coding-encaja-deepseek&#34;&gt;Para qué workflows de AI Coding encaja DeepSeek
&lt;/h2&gt;&lt;p&gt;DeepSeek encaja mejor en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lectura de repositorios largos;&lt;/li&gt;
&lt;li&gt;cambios ligeros en varios archivos;&lt;/li&gt;
&lt;li&gt;limpieza de documentos por lotes;&lt;/li&gt;
&lt;li&gt;traducción masiva de subtítulos;&lt;/li&gt;
&lt;li&gt;limpieza de artículos Hugo;&lt;/li&gt;
&lt;li&gt;ejecución de planes agent;&lt;/li&gt;
&lt;li&gt;automatización barata con mucho contexto repetido.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No sirve para todo. Si necesitas gusto frontend especialmente fuerte, juicio de producto complejo o creación multimodal, quizá necesites combinarlo con Claude, GPT, Gemini, Doubao u otras herramientas.&lt;/p&gt;
&lt;p&gt;Pero cuando la tarea es de texto largo, contexto largo, llamadas repetidas y sensibilidad al coste, DeepSeek se vuelve fácilmente la primera opción.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;En esta ola de herramientas de AI Coding, el valor de DeepSeek no es solo que un modelo chino pueda escribir código. Su valor real es resolver el dolor más práctico de las herramientas agent: las tareas largas cuestan demasiado.&lt;/p&gt;
&lt;p&gt;Herramientas como Claude Code, OpenClaw y Superpowers automatizan cada vez más el proceso de desarrollo, pero detrás de esa automatización hay lecturas masivas de contexto y llamadas en múltiples rondas. Quien consiga bajar ese coste puede convertir AI Coding de algo “agradable de vez en cuando” en algo “usable todos los días”.&lt;/p&gt;
&lt;p&gt;El contexto largo de DeepSeek, su bajo coste de caché y el uso por capas de V4 Flash / V4 Pro lo colocan justo en esa posición.&lt;/p&gt;
&lt;p&gt;La verdadera clave de ahorro en esta ronda no es dejar de usar buenos modelos. Es combinar bien modelos buenos, modelos baratos, caché y workflows agent. Cuando entiendes esa factura, las herramientas de AI Coding se convierten en productividad real, no en un juguete bonito pero caro.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Datos originales de ProgramBench: puntuaciones, costes y 200 registros de tareas</title>
        <link>https://knightli.com/es/2026/05/10/programbench-original-results/</link>
        <pubDate>Sun, 10 May 2026 12:42:41 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/10/programbench-original-results/</guid>
        <description>&lt;p&gt;ProgramBench es un nuevo benchmark para evaluar la capacidad de programación con IA. No pide al modelo que arregle un bug dentro de un repositorio existente, sino que reconstruya desde cero un programa con comportamiento equivalente a partir de un ejecutable compilado y su documentación de uso.&lt;/p&gt;
&lt;p&gt;Este artículo funciona como referencia de datos, con una explicación mínima. Las tablas siguientes conservan los registros originales publicados en el sitio de ProgramBench para facilitar citas y comparaciones posteriores. Las fuentes son &lt;a class=&#34;link&#34; href=&#34;https://programbench.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ProgramBench homepage&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://programbench.com/extended/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Extended Results&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://programbench.com/tasks/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Task Instances&lt;/a&gt;. Los datos se obtuvieron en &lt;code&gt;2026-05-10T12:42:41+08:00&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;criterios-de-los-datos&#34;&gt;Criterios de los datos
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Resolved&lt;/code&gt;: proporción de tareas que pasan por completo las pruebas de comportamiento ocultas.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Almost resolved&lt;/code&gt;: proporción de tareas que pasan al menos el 95% de las pruebas de comportamiento.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Cost&lt;/code&gt;: coste medio de API por instancia de tarea, en dólares estadounidenses.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Calls&lt;/code&gt;: número medio de llamadas al LLM por instancia de tarea.&lt;/li&gt;
&lt;li&gt;Todos los modelos se evaluaron con &lt;code&gt;mini-SWE-agent&lt;/code&gt; sobre 200 tareas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;leaderboard-principal&#34;&gt;Leaderboard principal
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;#&lt;/th&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Provider&lt;/th&gt;
          &lt;th&gt;Agent&lt;/th&gt;
          &lt;th&gt;Resolved&lt;/th&gt;
          &lt;th&gt;Almost resolved&lt;/th&gt;
          &lt;th&gt;Run&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;3.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-opus-4-7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-opus-4-7/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;Claude Opus 4.6&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;2.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-opus-4-6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-opus-4-6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;1.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-sonnet-4-6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-sonnet-4-6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;GPT 5.4&lt;/td&gt;
          &lt;td&gt;OpenAI&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gpt-5-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gpt-5-4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5&lt;/td&gt;
          &lt;td&gt;Gemini 3.1 Pro&lt;/td&gt;
          &lt;td&gt;Google&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gemini-3-1-pro/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gemini-3-1-pro/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6&lt;/td&gt;
          &lt;td&gt;Gemini 3 Flash&lt;/td&gt;
          &lt;td&gt;Google&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gemini-3-flash/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gemini-3-flash/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;7&lt;/td&gt;
          &lt;td&gt;Claude Haiku 4.5&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-haiku-4-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-haiku-4-5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;GPT 5.4 mini&lt;/td&gt;
          &lt;td&gt;OpenAI&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gpt-5-4-mini/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gpt-5-4-mini/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9&lt;/td&gt;
          &lt;td&gt;GPT 5 mini&lt;/td&gt;
          &lt;td&gt;OpenAI&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gpt-5-mini/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gpt-5-mini/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;resultados-extendidos&#34;&gt;Resultados extendidos
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;#&lt;/th&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Provider&lt;/th&gt;
          &lt;th&gt;Agent&lt;/th&gt;
          &lt;th&gt;Resolved&lt;/th&gt;
          &lt;th&gt;Almost resolved&lt;/th&gt;
          &lt;th&gt;Cost&lt;/th&gt;
          &lt;th&gt;Calls&lt;/th&gt;
          &lt;th&gt;Run&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;3.0%&lt;/td&gt;
          &lt;td&gt;$3.81&lt;/td&gt;
          &lt;td&gt;93&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-opus-4-7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-opus-4-7/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;Claude Opus 4.6&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;2.5%&lt;/td&gt;
          &lt;td&gt;$11.38&lt;/td&gt;
          &lt;td&gt;260&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-opus-4-6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-opus-4-6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;1.0%&lt;/td&gt;
          &lt;td&gt;$26.73&lt;/td&gt;
          &lt;td&gt;472&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-sonnet-4-6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-sonnet-4-6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;GPT 5.4&lt;/td&gt;
          &lt;td&gt;OpenAI&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;$0.33&lt;/td&gt;
          &lt;td&gt;16&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gpt-5-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gpt-5-4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5&lt;/td&gt;
          &lt;td&gt;Gemini 3.1 Pro&lt;/td&gt;
          &lt;td&gt;Google&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;$1.51&lt;/td&gt;
          &lt;td&gt;94&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gemini-3-1-pro/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gemini-3-1-pro/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6&lt;/td&gt;
          &lt;td&gt;Gemini 3 Flash&lt;/td&gt;
          &lt;td&gt;Google&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;$0.30&lt;/td&gt;
          &lt;td&gt;85&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gemini-3-flash/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gemini-3-flash/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;7&lt;/td&gt;
          &lt;td&gt;Claude Haiku 4.5&lt;/td&gt;
          &lt;td&gt;Anthropic&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;$0.80&lt;/td&gt;
          &lt;td&gt;124&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/claude-haiku-4-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/claude-haiku-4-5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;GPT 5.4 mini&lt;/td&gt;
          &lt;td&gt;OpenAI&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;$0.04&lt;/td&gt;
          &lt;td&gt;18&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gpt-5-4-mini/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gpt-5-4-mini/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9&lt;/td&gt;
          &lt;td&gt;GPT 5 mini&lt;/td&gt;
          &lt;td&gt;OpenAI&lt;/td&gt;
          &lt;td&gt;mini-SWE-agent&lt;/td&gt;
          &lt;td&gt;0%&lt;/td&gt;
          &lt;td&gt;0.0%&lt;/td&gt;
          &lt;td&gt;$0.03&lt;/td&gt;
          &lt;td&gt;15&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/run/gpt-5-mini/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/run/gpt-5-mini/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;registros-originales-de-las-200-instancias-de-tareas&#34;&gt;Registros originales de las 200 instancias de tareas
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;#&lt;/th&gt;
          &lt;th&gt;Repository&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Lang&lt;/th&gt;
          &lt;th&gt;Stars&lt;/th&gt;
          &lt;th&gt;Tests&lt;/th&gt;
          &lt;th&gt;Best Score&lt;/th&gt;
          &lt;th&gt;Task&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;junegunn/fzf&lt;/td&gt;
          &lt;td&gt;:cherry_blossom: A command-line fuzzy finder&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;79,721&lt;/td&gt;
          &lt;td&gt;1,874&lt;/td&gt;
          &lt;td&gt;81.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/junegunn__fzf.b56d614/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/junegunn__fzf.b56d614/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;jesseduffield/lazygit&lt;/td&gt;
          &lt;td&gt;simple terminal UI for git commands&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;76,901&lt;/td&gt;
          &lt;td&gt;855&lt;/td&gt;
          &lt;td&gt;56.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/jesseduffield__lazygit.1d0db51/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/jesseduffield__lazygit.1d0db51/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;BurntSushi/ripgrep&lt;/td&gt;
          &lt;td&gt;ripgrep recursively searches directories for a regex pattern while respecting your gitignore&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;62,855&lt;/td&gt;
          &lt;td&gt;1,994&lt;/td&gt;
          &lt;td&gt;79.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/burntsushi__ripgrep.3b7fd44/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/burntsushi__ripgrep.3b7fd44/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;FFmpeg/FFmpeg&lt;/td&gt;
          &lt;td&gt;Mirror of &lt;a class=&#34;link&#34; href=&#34;https://git.ffmpeg.org/ffmpeg.git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://git.ffmpeg.org/ffmpeg.git&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;59,217&lt;/td&gt;
          &lt;td&gt;3,050&lt;/td&gt;
          &lt;td&gt;5.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ffmpeg__ffmpeg.360a402/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ffmpeg__ffmpeg.360a402/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5&lt;/td&gt;
          &lt;td&gt;sharkdp/bat&lt;/td&gt;
          &lt;td&gt;A cat(1) clone with wings.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;58,487&lt;/td&gt;
          &lt;td&gt;801&lt;/td&gt;
          &lt;td&gt;33.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sharkdp__bat.f822bd0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sharkdp__bat.f822bd0/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6&lt;/td&gt;
          &lt;td&gt;typst/typst&lt;/td&gt;
          &lt;td&gt;A markup-based typesetting system that is powerful and easy to learn.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;52,957&lt;/td&gt;
          &lt;td&gt;1,724&lt;/td&gt;
          &lt;td&gt;28.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/typst__typst.88356d0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/typst__typst.88356d0/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;7&lt;/td&gt;
          &lt;td&gt;jgm/pandoc&lt;/td&gt;
          &lt;td&gt;Universal markup converter&lt;/td&gt;
          &lt;td&gt;hs&lt;/td&gt;
          &lt;td&gt;43,632&lt;/td&gt;
          &lt;td&gt;5,228&lt;/td&gt;
          &lt;td&gt;14.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/jgm__pandoc.5caad90/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/jgm__pandoc.5caad90/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;sharkdp/fd&lt;/td&gt;
          &lt;td&gt;A simple, fast and user-friendly alternative to &amp;lsquo;find&amp;rsquo;&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;42,668&lt;/td&gt;
          &lt;td&gt;1,235&lt;/td&gt;
          &lt;td&gt;78.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sharkdp__fd.40d8eb3/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sharkdp__fd.40d8eb3/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9&lt;/td&gt;
          &lt;td&gt;php/php-src&lt;/td&gt;
          &lt;td&gt;The PHP Interpreter&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;40,030&lt;/td&gt;
          &lt;td&gt;14,288&lt;/td&gt;
          &lt;td&gt;4.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/php__php-src.c891263/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/php__php-src.c891263/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;10&lt;/td&gt;
          &lt;td&gt;duckdb/duckdb&lt;/td&gt;
          &lt;td&gt;DuckDB is an analytical in-process SQL database management system&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;37,657&lt;/td&gt;
          &lt;td&gt;5,650&lt;/td&gt;
          &lt;td&gt;12.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/duckdb__duckdb.bdb65ec/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/duckdb__duckdb.bdb65ec/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;11&lt;/td&gt;
          &lt;td&gt;ajeetdsouza/zoxide&lt;/td&gt;
          &lt;td&gt;A smarter cd command. Supports all major shells.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;35,994&lt;/td&gt;
          &lt;td&gt;531&lt;/td&gt;
          &lt;td&gt;76.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ajeetdsouza__zoxide.67ca1bc/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ajeetdsouza__zoxide.67ca1bc/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;12&lt;/td&gt;
          &lt;td&gt;jqlang/jq&lt;/td&gt;
          &lt;td&gt;Command-line JSON processor&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;34,541&lt;/td&gt;
          &lt;td&gt;6,072&lt;/td&gt;
          &lt;td&gt;89.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/jqlang__jq.b33a763/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/jqlang__jq.b33a763/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;13&lt;/td&gt;
          &lt;td&gt;dandavison/delta&lt;/td&gt;
          &lt;td&gt;A syntax-highlighting pager for git, diff, grep, rg &amp;ndash;json, and blame output&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;30,445&lt;/td&gt;
          &lt;td&gt;950&lt;/td&gt;
          &lt;td&gt;37.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/dandavison__delta.acd758f/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/dandavison__delta.acd758f/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;14&lt;/td&gt;
          &lt;td&gt;sharkdp/hyperfine&lt;/td&gt;
          &lt;td&gt;A command-line benchmarking tool&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;27,960&lt;/td&gt;
          &lt;td&gt;291&lt;/td&gt;
          &lt;td&gt;54.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sharkdp__hyperfine.327d5f4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sharkdp__hyperfine.327d5f4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;15&lt;/td&gt;
          &lt;td&gt;ggreer/the_silver_searcher&lt;/td&gt;
          &lt;td&gt;A code-searching tool similar to ack, but faster.&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;27,080&lt;/td&gt;
          &lt;td&gt;1,006&lt;/td&gt;
          &lt;td&gt;59.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ggreer__the_silver_searcher.a61f178/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ggreer__the_silver_searcher.a61f178/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16&lt;/td&gt;
          &lt;td&gt;facebook/zstd&lt;/td&gt;
          &lt;td&gt;Zstandard - Fast real-time compression algorithm&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;27,013&lt;/td&gt;
          &lt;td&gt;2,038&lt;/td&gt;
          &lt;td&gt;68.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/facebook__zstd.1168da0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/facebook__zstd.1168da0/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;17&lt;/td&gt;
          &lt;td&gt;facebookresearch/fastText&lt;/td&gt;
          &lt;td&gt;Library for fast text representation and classification.&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;26,511&lt;/td&gt;
          &lt;td&gt;312&lt;/td&gt;
          &lt;td&gt;75.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/facebookresearch__fasttext.1142dc4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/facebookresearch__fasttext.1142dc4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;18&lt;/td&gt;
          &lt;td&gt;robertdavidgraham/masscan&lt;/td&gt;
          &lt;td&gt;TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;25,544&lt;/td&gt;
          &lt;td&gt;2,549&lt;/td&gt;
          &lt;td&gt;57.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/robertdavidgraham__masscan.b99d433/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/robertdavidgraham__masscan.b99d433/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;19&lt;/td&gt;
          &lt;td&gt;tree-sitter/tree-sitter&lt;/td&gt;
          &lt;td&gt;An incremental parsing system for programming tools&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;24,953&lt;/td&gt;
          &lt;td&gt;1,232&lt;/td&gt;
          &lt;td&gt;37.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/tree-sitter__tree-sitter.5e23cca/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/tree-sitter__tree-sitter.5e23cca/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;20&lt;/td&gt;
          &lt;td&gt;FiloSottile/age&lt;/td&gt;
          &lt;td&gt;A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;22,077&lt;/td&gt;
          &lt;td&gt;676&lt;/td&gt;
          &lt;td&gt;63.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/filosottile__age.706dfc1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/filosottile__age.706dfc1/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;21&lt;/td&gt;
          &lt;td&gt;rust-lang/mdBook&lt;/td&gt;
          &lt;td&gt;Create book from markdown files. Like Gitbook but implemented in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;21,541&lt;/td&gt;
          &lt;td&gt;1,114&lt;/td&gt;
          &lt;td&gt;55.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rust-lang__mdbook.37273ba/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rust-lang__mdbook.37273ba/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;22&lt;/td&gt;
          &lt;td&gt;jarun/nnn&lt;/td&gt;
          &lt;td&gt;n³ The unorthodox terminal file manager&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;21,506&lt;/td&gt;
          &lt;td&gt;477&lt;/td&gt;
          &lt;td&gt;98.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/jarun__nnn.cb2c535/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/jarun__nnn.cb2c535/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;23&lt;/td&gt;
          &lt;td&gt;antonmedv/fx&lt;/td&gt;
          &lt;td&gt;Terminal JSON viewer &amp;amp; processor&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;20,433&lt;/td&gt;
          &lt;td&gt;2,047&lt;/td&gt;
          &lt;td&gt;75.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/antonmedv__fx.86d0d34/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/antonmedv__fx.86d0d34/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;24&lt;/td&gt;
          &lt;td&gt;mikefarah/yq&lt;/td&gt;
          &lt;td&gt;yq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;15,281&lt;/td&gt;
          &lt;td&gt;2,000&lt;/td&gt;
          &lt;td&gt;39.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/mikefarah__yq.602586d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/mikefarah__yq.602586d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;25&lt;/td&gt;
          &lt;td&gt;Y2Z/monolith&lt;/td&gt;
          &lt;td&gt;⬛️ CLI tool and library for saving complete web pages as a single HTML file&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;15,024&lt;/td&gt;
          &lt;td&gt;713&lt;/td&gt;
          &lt;td&gt;51.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/y2z__monolith.8702e66/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/y2z__monolith.8702e66/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;26&lt;/td&gt;
          &lt;td&gt;direnv/direnv&lt;/td&gt;
          &lt;td&gt;unclutter your .profile&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;14,998&lt;/td&gt;
          &lt;td&gt;849&lt;/td&gt;
          &lt;td&gt;62.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/direnv__direnv.02040c7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/direnv__direnv.02040c7/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;27&lt;/td&gt;
          &lt;td&gt;google/brotli&lt;/td&gt;
          &lt;td&gt;Brotli compression format&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;14,673&lt;/td&gt;
          &lt;td&gt;441&lt;/td&gt;
          &lt;td&gt;90.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/google__brotli.b3dc9cc/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/google__brotli.b3dc9cc/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;28&lt;/td&gt;
          &lt;td&gt;tomnomnom/gron&lt;/td&gt;
          &lt;td&gt;Make JSON greppable!&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;14,424&lt;/td&gt;
          &lt;td&gt;224&lt;/td&gt;
          &lt;td&gt;90.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/tomnomnom__gron.88a6234/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/tomnomnom__gron.88a6234/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;29&lt;/td&gt;
          &lt;td&gt;XAMPPRocky/tokei&lt;/td&gt;
          &lt;td&gt;Count your code, quickly.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;14,300&lt;/td&gt;
          &lt;td&gt;732&lt;/td&gt;
          &lt;td&gt;69.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/xampprocky__tokei.505d648/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/xampprocky__tokei.505d648/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;30&lt;/td&gt;
          &lt;td&gt;ast-grep/ast-grep&lt;/td&gt;
          &lt;td&gt;⚡A CLI tool for code structural search, lint and rewriting. Written in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;13,541&lt;/td&gt;
          &lt;td&gt;882&lt;/td&gt;
          &lt;td&gt;11.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ast-grep__ast-grep.dde0fe0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ast-grep__ast-grep.dde0fe0/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;31&lt;/td&gt;
          &lt;td&gt;cheat/cheat&lt;/td&gt;
          &lt;td&gt;cheat allows you to create and view interactive cheatsheets on the command-line. It was designed to help remind *nix system administrators of options for commands that they use frequently, but not frequently enough to remember.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;13,278&lt;/td&gt;
          &lt;td&gt;297&lt;/td&gt;
          &lt;td&gt;59.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/cheat__cheat.b8098dc/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/cheat__cheat.b8098dc/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32&lt;/td&gt;
          &lt;td&gt;jonas/tig&lt;/td&gt;
          &lt;td&gt;Text-mode interface for git&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;13,200&lt;/td&gt;
          &lt;td&gt;1,586&lt;/td&gt;
          &lt;td&gt;83.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/jonas__tig.8334123/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/jonas__tig.8334123/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;33&lt;/td&gt;
          &lt;td&gt;ninja-build/ninja&lt;/td&gt;
          &lt;td&gt;a small build system with a focus on speed&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;12,895&lt;/td&gt;
          &lt;td&gt;1,438&lt;/td&gt;
          &lt;td&gt;72.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ninja-build__ninja.cc60300/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ninja-build__ninja.cc60300/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;34&lt;/td&gt;
          &lt;td&gt;Canop/broot&lt;/td&gt;
          &lt;td&gt;A new way to see and navigate directory trees : &lt;a class=&#34;link&#34; href=&#34;https://dystroy.org/broot&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://dystroy.org/broot&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;12,619&lt;/td&gt;
          &lt;td&gt;539&lt;/td&gt;
          &lt;td&gt;67.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/canop__broot.d6c798e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/canop__broot.d6c798e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;35&lt;/td&gt;
          &lt;td&gt;orf/gping&lt;/td&gt;
          &lt;td&gt;Ping, but with a graph&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;12,433&lt;/td&gt;
          &lt;td&gt;339&lt;/td&gt;
          &lt;td&gt;78.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/orf__gping.26eb5b9/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/orf__gping.26eb5b9/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;36&lt;/td&gt;
          &lt;td&gt;svenstaro/genact&lt;/td&gt;
          &lt;td&gt;🌀 A nonsense activity generator&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;11,995&lt;/td&gt;
          &lt;td&gt;232&lt;/td&gt;
          &lt;td&gt;59.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/svenstaro__genact.16f96e3/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/svenstaro__genact.16f96e3/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;37&lt;/td&gt;
          &lt;td&gt;lz4/lz4&lt;/td&gt;
          &lt;td&gt;Extremely Fast Compression algorithm&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;11,781&lt;/td&gt;
          &lt;td&gt;1,496&lt;/td&gt;
          &lt;td&gt;82.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/lz4__lz4.1519f46/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/lz4__lz4.1519f46/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;38&lt;/td&gt;
          &lt;td&gt;o2sh/onefetch&lt;/td&gt;
          &lt;td&gt;Command-line Git information tool&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;11,745&lt;/td&gt;
          &lt;td&gt;1,166&lt;/td&gt;
          &lt;td&gt;81.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/o2sh__onefetch.e5958ce/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/o2sh__onefetch.e5958ce/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;39&lt;/td&gt;
          &lt;td&gt;bootandy/dust&lt;/td&gt;
          &lt;td&gt;A more intuitive version of du in rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;11,609&lt;/td&gt;
          &lt;td&gt;584&lt;/td&gt;
          &lt;td&gt;70.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/bootandy__dust.62bf1e1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/bootandy__dust.62bf1e1/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;40&lt;/td&gt;
          &lt;td&gt;ekzhang/bore&lt;/td&gt;
          &lt;td&gt;🕳 bore is a simple CLI tool for making tunnels to localhost&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;11,075&lt;/td&gt;
          &lt;td&gt;406&lt;/td&gt;
          &lt;td&gt;68.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ekzhang__bore.8e059cd/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ekzhang__bore.8e059cd/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;41&lt;/td&gt;
          &lt;td&gt;BurntSushi/xsv&lt;/td&gt;
          &lt;td&gt;A fast CSV command line toolkit written in Rust.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;10,757&lt;/td&gt;
          &lt;td&gt;1,182&lt;/td&gt;
          &lt;td&gt;82.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/burntsushi__xsv.f430466/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/burntsushi__xsv.f430466/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;42&lt;/td&gt;
          &lt;td&gt;bellard/quickjs&lt;/td&gt;
          &lt;td&gt;Public repository of the QuickJS Javascript Engine.&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;10,565&lt;/td&gt;
          &lt;td&gt;3,034&lt;/td&gt;
          &lt;td&gt;3.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/bellard__quickjs.d7ae12a/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/bellard__quickjs.d7ae12a/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;43&lt;/td&gt;
          &lt;td&gt;hatoo/oha&lt;/td&gt;
          &lt;td&gt;Ohayou(おはよう), HTTP load generator, inspired by rakyll/hey with tui animation.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;10,201&lt;/td&gt;
          &lt;td&gt;899&lt;/td&gt;
          &lt;td&gt;72.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/hatoo__oha.8dc6349/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/hatoo__oha.8dc6349/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;44&lt;/td&gt;
          &lt;td&gt;tstack/lnav&lt;/td&gt;
          &lt;td&gt;Log file navigator&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;10,200&lt;/td&gt;
          &lt;td&gt;990&lt;/td&gt;
          &lt;td&gt;13.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/tstack__lnav.ee34494/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/tstack__lnav.ee34494/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;45&lt;/td&gt;
          &lt;td&gt;sharkdp/hexyl&lt;/td&gt;
          &lt;td&gt;A command-line hex viewer&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;10,086&lt;/td&gt;
          &lt;td&gt;906&lt;/td&gt;
          &lt;td&gt;82.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sharkdp__hexyl.2e26437/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sharkdp__hexyl.2e26437/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;46&lt;/td&gt;
          &lt;td&gt;lua/lua&lt;/td&gt;
          &lt;td&gt;A copy of the Lua development repository, as seen by the Lua team. Mirrored irregularly. All communication should be through the Lua mailing list &lt;a class=&#34;link&#34; href=&#34;https://www.lua.org/lua-l.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.lua.org/lua-l.html&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;9,908&lt;/td&gt;
          &lt;td&gt;1,338&lt;/td&gt;
          &lt;td&gt;43.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/lua__lua.c6b4848/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/lua__lua.c6b4848/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;47&lt;/td&gt;
          &lt;td&gt;johnkerl/miller&lt;/td&gt;
          &lt;td&gt;Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;9,842&lt;/td&gt;
          &lt;td&gt;14,637&lt;/td&gt;
          &lt;td&gt;22.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/johnkerl__miller.8d85b46/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/johnkerl__miller.8d85b46/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;48&lt;/td&gt;
          &lt;td&gt;sqlite/sqlite&lt;/td&gt;
          &lt;td&gt;Official Git mirror of the SQLite source tree&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;9,434&lt;/td&gt;
          &lt;td&gt;13,514&lt;/td&gt;
          &lt;td&gt;67.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sqlite__sqlite.839433d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sqlite__sqlite.839433d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;49&lt;/td&gt;
          &lt;td&gt;boyter/scc&lt;/td&gt;
          &lt;td&gt;Sloc, Cloc and Code: scc is a very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;8,320&lt;/td&gt;
          &lt;td&gt;464&lt;/td&gt;
          &lt;td&gt;37.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/boyter__scc.515f91c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/boyter__scc.515f91c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50&lt;/td&gt;
          &lt;td&gt;ariga/atlas&lt;/td&gt;
          &lt;td&gt;Declarative schema migrations with schema-as-code workflows&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;8,311&lt;/td&gt;
          &lt;td&gt;1,318&lt;/td&gt;
          &lt;td&gt;54.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ariga__atlas.6d81150/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ariga__atlas.6d81150/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;51&lt;/td&gt;
          &lt;td&gt;pemistahl/grex&lt;/td&gt;
          &lt;td&gt;A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;8,103&lt;/td&gt;
          &lt;td&gt;1,312&lt;/td&gt;
          &lt;td&gt;73.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/pemistahl__grex.fa3e8ed/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/pemistahl__grex.fa3e8ed/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;52&lt;/td&gt;
          &lt;td&gt;htop-dev/htop&lt;/td&gt;
          &lt;td&gt;htop - an interactive process viewer&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;8,021&lt;/td&gt;
          &lt;td&gt;693&lt;/td&gt;
          &lt;td&gt;85.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/htop-dev__htop.523600b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/htop-dev__htop.523600b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;53&lt;/td&gt;
          &lt;td&gt;peco/peco&lt;/td&gt;
          &lt;td&gt;Simplistic interactive filtering tool&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;7,881&lt;/td&gt;
          &lt;td&gt;1,224&lt;/td&gt;
          &lt;td&gt;76.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/peco__peco.4e58dad/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/peco__peco.4e58dad/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;54&lt;/td&gt;
          &lt;td&gt;bensadeh/tailspin&lt;/td&gt;
          &lt;td&gt;🌀 A log file highlighter&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;7,793&lt;/td&gt;
          &lt;td&gt;615&lt;/td&gt;
          &lt;td&gt;75.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/bensadeh__tailspin.6278437/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/bensadeh__tailspin.6278437/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;55&lt;/td&gt;
          &lt;td&gt;ducaale/xh&lt;/td&gt;
          &lt;td&gt;Friendly and fast tool for sending HTTP requests&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;7,754&lt;/td&gt;
          &lt;td&gt;1,171&lt;/td&gt;
          &lt;td&gt;50.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ducaale__xh.4a6e44f/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ducaale__xh.4a6e44f/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;56&lt;/td&gt;
          &lt;td&gt;svenstaro/miniserve&lt;/td&gt;
          &lt;td&gt;🌟 For when you really just want to serve some files over HTTP right now!&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;7,561&lt;/td&gt;
          &lt;td&gt;304&lt;/td&gt;
          &lt;td&gt;78.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/svenstaro__miniserve.8449e8b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/svenstaro__miniserve.8449e8b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;57&lt;/td&gt;
          &lt;td&gt;mgdm/htmlq&lt;/td&gt;
          &lt;td&gt;Like jq, but for HTML.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;7,520&lt;/td&gt;
          &lt;td&gt;1,455&lt;/td&gt;
          &lt;td&gt;93.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/mgdm__htmlq.6e31bc8/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/mgdm__htmlq.6e31bc8/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;58&lt;/td&gt;
          &lt;td&gt;parcel-bundler/lightningcss&lt;/td&gt;
          &lt;td&gt;An extremely fast CSS parser, transformer, bundler, and minifier written in Rust.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;7,515&lt;/td&gt;
          &lt;td&gt;2,828&lt;/td&gt;
          &lt;td&gt;53.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/parcel-bundler__lightningcss.aa2ed1e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/parcel-bundler__lightningcss.aa2ed1e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;59&lt;/td&gt;
          &lt;td&gt;universal-ctags/ctags&lt;/td&gt;
          &lt;td&gt;A maintained ctags implementation&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;7,149&lt;/td&gt;
          &lt;td&gt;2,258&lt;/td&gt;
          &lt;td&gt;13.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/universal-ctags__ctags.243595e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/universal-ctags__ctags.243595e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;60&lt;/td&gt;
          &lt;td&gt;chmln/sd&lt;/td&gt;
          &lt;td&gt;Intuitive find &amp;amp; replace CLI (sed alternative)&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;7,072&lt;/td&gt;
          &lt;td&gt;810&lt;/td&gt;
          &lt;td&gt;90.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/chmln__sd.87d1ba5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/chmln__sd.87d1ba5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;61&lt;/td&gt;
          &lt;td&gt;ogham/dog&lt;/td&gt;
          &lt;td&gt;A command-line DNS client.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;6,640&lt;/td&gt;
          &lt;td&gt;1,300&lt;/td&gt;
          &lt;td&gt;84.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ogham__dog.721440b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ogham__dog.721440b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;62&lt;/td&gt;
          &lt;td&gt;danmar/cppcheck&lt;/td&gt;
          &lt;td&gt;static analysis of C/C++ code&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;6,599&lt;/td&gt;
          &lt;td&gt;2,126&lt;/td&gt;
          &lt;td&gt;14.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/danmar__cppcheck.0a5b103/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/danmar__cppcheck.0a5b103/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;63&lt;/td&gt;
          &lt;td&gt;doxygen/doxygen&lt;/td&gt;
          &lt;td&gt;Official doxygen git repository&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;6,422&lt;/td&gt;
          &lt;td&gt;229&lt;/td&gt;
          &lt;td&gt;34.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/doxygen__doxygen.966d98e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/doxygen__doxygen.966d98e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;64&lt;/td&gt;
          &lt;td&gt;sharkdp/pastel&lt;/td&gt;
          &lt;td&gt;A command-line tool to generate, analyze, convert and manipulate colors&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;6,334&lt;/td&gt;
          &lt;td&gt;1,114&lt;/td&gt;
          &lt;td&gt;77.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sharkdp__pastel.b60e899/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sharkdp__pastel.b60e899/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;65&lt;/td&gt;
          &lt;td&gt;BLAKE3-team/BLAKE3&lt;/td&gt;
          &lt;td&gt;the official Rust and C implementations of the BLAKE3 cryptographic hash function&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;6,178&lt;/td&gt;
          &lt;td&gt;647&lt;/td&gt;
          &lt;td&gt;97.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/blake3-team__blake3.15e83a5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/blake3-team__blake3.15e83a5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;66&lt;/td&gt;
          &lt;td&gt;Nukesor/pueue&lt;/td&gt;
          &lt;td&gt;:stars: Manage your shell commands.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;6,154&lt;/td&gt;
          &lt;td&gt;638&lt;/td&gt;
          &lt;td&gt;15.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/nukesor__pueue.8b9d6fe/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/nukesor__pueue.8b9d6fe/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;67&lt;/td&gt;
          &lt;td&gt;OSGeo/gdal&lt;/td&gt;
          &lt;td&gt;GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats.&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;5,875&lt;/td&gt;
          &lt;td&gt;657&lt;/td&gt;
          &lt;td&gt;25.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/osgeo__gdal.0847f12/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/osgeo__gdal.0847f12/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;68&lt;/td&gt;
          &lt;td&gt;Byron/dua-cli&lt;/td&gt;
          &lt;td&gt;View disk space usage and delete unwanted data, fast.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;5,794&lt;/td&gt;
          &lt;td&gt;709&lt;/td&gt;
          &lt;td&gt;86.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/byron__dua-cli.8570c15/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/byron__dua-cli.8570c15/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;69&lt;/td&gt;
          &lt;td&gt;dundee/gdu&lt;/td&gt;
          &lt;td&gt;Fast disk usage analyzer with console interface written in Go&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;5,578&lt;/td&gt;
          &lt;td&gt;1,161&lt;/td&gt;
          &lt;td&gt;70.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/dundee__gdu.ede21d2/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/dundee__gdu.ede21d2/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;70&lt;/td&gt;
          &lt;td&gt;eradman/entr&lt;/td&gt;
          &lt;td&gt;Run arbitrary commands when files change&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;5,551&lt;/td&gt;
          &lt;td&gt;586&lt;/td&gt;
          &lt;td&gt;88.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/eradman__entr.8e2e8b4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/eradman__entr.8e2e8b4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;71&lt;/td&gt;
          &lt;td&gt;LuaJIT/LuaJIT&lt;/td&gt;
          &lt;td&gt;Mirror of the LuaJIT git repository&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;5,518&lt;/td&gt;
          &lt;td&gt;2,967&lt;/td&gt;
          &lt;td&gt;71.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/luajit__luajit.a553b3d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/luajit__luajit.a553b3d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;72&lt;/td&gt;
          &lt;td&gt;mgechev/revive&lt;/td&gt;
          &lt;td&gt;🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;5,486&lt;/td&gt;
          &lt;td&gt;727&lt;/td&gt;
          &lt;td&gt;46.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/mgechev__revive.201451e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/mgechev__revive.201451e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;73&lt;/td&gt;
          &lt;td&gt;cweill/gotests&lt;/td&gt;
          &lt;td&gt;Automatically generate Go test boilerplate from your source code.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;5,294&lt;/td&gt;
          &lt;td&gt;603&lt;/td&gt;
          &lt;td&gt;61.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/cweill__gotests.2a672c5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/cweill__gotests.2a672c5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;74&lt;/td&gt;
          &lt;td&gt;cordx56/rustowl&lt;/td&gt;
          &lt;td&gt;Visualize Ownership and Lifetimes in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;5,113&lt;/td&gt;
          &lt;td&gt;589&lt;/td&gt;
          &lt;td&gt;75.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/cordx56__rustowl.655bc5c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/cordx56__rustowl.655bc5c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;75&lt;/td&gt;
          &lt;td&gt;abishekvashok/cmatrix&lt;/td&gt;
          &lt;td&gt;Terminal based &amp;ldquo;The Matrix&amp;rdquo; like implementation&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;5,042&lt;/td&gt;
          &lt;td&gt;508&lt;/td&gt;
          &lt;td&gt;97.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/abishekvashok__cmatrix.5c082c6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/abishekvashok__cmatrix.5c082c6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;76&lt;/td&gt;
          &lt;td&gt;quinn-rs/quinn&lt;/td&gt;
          &lt;td&gt;Async-friendly QUIC implementation in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;5,041&lt;/td&gt;
          &lt;td&gt;522&lt;/td&gt;
          &lt;td&gt;61.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/quinn-rs__quinn.bb359cc/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/quinn-rs__quinn.bb359cc/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;77&lt;/td&gt;
          &lt;td&gt;alecthomas/chroma&lt;/td&gt;
          &lt;td&gt;A general purpose syntax highlighter in pure Go&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;4,910&lt;/td&gt;
          &lt;td&gt;515&lt;/td&gt;
          &lt;td&gt;15.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/alecthomas__chroma.8d04def/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/alecthomas__chroma.8d04def/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;78&lt;/td&gt;
          &lt;td&gt;anordal/shellharden&lt;/td&gt;
          &lt;td&gt;The corrective bash syntax highlighter&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;4,778&lt;/td&gt;
          &lt;td&gt;1,095&lt;/td&gt;
          &lt;td&gt;81.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/anordal__shellharden.6a6ffd4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/anordal__shellharden.6a6ffd4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;79&lt;/td&gt;
          &lt;td&gt;yoav-lavi/melody&lt;/td&gt;
          &lt;td&gt;Melody is a language that compiles to regular expressions and aims to be more readable and maintainable&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;4,748&lt;/td&gt;
          &lt;td&gt;1,205&lt;/td&gt;
          &lt;td&gt;78.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/yoav-lavi__melody.f4af9b4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/yoav-lavi__melody.f4af9b4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;80&lt;/td&gt;
          &lt;td&gt;sayanarijit/xplr&lt;/td&gt;
          &lt;td&gt;A hackable, minimal, fast TUI file explorer&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;4,735&lt;/td&gt;
          &lt;td&gt;463&lt;/td&gt;
          &lt;td&gt;60.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sayanarijit__xplr.1751065/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sayanarijit__xplr.1751065/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;81&lt;/td&gt;
          &lt;td&gt;hpjansson/chafa&lt;/td&gt;
          &lt;td&gt;📺🗿 Terminal graphics for the 21st century.&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;4,648&lt;/td&gt;
          &lt;td&gt;1,931&lt;/td&gt;
          &lt;td&gt;58.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/hpjansson__chafa.dd4d4c1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/hpjansson__chafa.dd4d4c1/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;82&lt;/td&gt;
          &lt;td&gt;jhspetersson/fselect&lt;/td&gt;
          &lt;td&gt;Find files with SQL-like queries&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;4,420&lt;/td&gt;
          &lt;td&gt;3,115&lt;/td&gt;
          &lt;td&gt;44.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/jhspetersson__fselect.c3559ca/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/jhspetersson__fselect.c3559ca/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;83&lt;/td&gt;
          &lt;td&gt;ivanceras/svgbob&lt;/td&gt;
          &lt;td&gt;Convert your ascii diagram scribbles into happy little SVG&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;4,182&lt;/td&gt;
          &lt;td&gt;472&lt;/td&gt;
          &lt;td&gt;41.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ivanceras__svgbob.6d00ad9/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ivanceras__svgbob.6d00ad9/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;84&lt;/td&gt;
          &lt;td&gt;multiprocessio/dsq&lt;/td&gt;
          &lt;td&gt;Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;3,867&lt;/td&gt;
          &lt;td&gt;542&lt;/td&gt;
          &lt;td&gt;80.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/multiprocessio__dsq.c3ae0ba/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/multiprocessio__dsq.c3ae0ba/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;85&lt;/td&gt;
          &lt;td&gt;rcoh/angle-grinder&lt;/td&gt;
          &lt;td&gt;Slice and dice logs on the command line&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;3,727&lt;/td&gt;
          &lt;td&gt;1,130&lt;/td&gt;
          &lt;td&gt;38.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rcoh__angle-grinder.9c2fc88/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rcoh__angle-grinder.9c2fc88/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;86&lt;/td&gt;
          &lt;td&gt;rs/curlie&lt;/td&gt;
          &lt;td&gt;The power of curl, the ease of use of httpie.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;3,637&lt;/td&gt;
          &lt;td&gt;701&lt;/td&gt;
          &lt;td&gt;89.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rs__curlie.5dfcbb1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rs__curlie.5dfcbb1/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;87&lt;/td&gt;
          &lt;td&gt;antonmedv/walk&lt;/td&gt;
          &lt;td&gt;Terminal file manager&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;3,598&lt;/td&gt;
          &lt;td&gt;470&lt;/td&gt;
          &lt;td&gt;74.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/antonmedv__walk.bf802ef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/antonmedv__walk.bf802ef/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;88&lt;/td&gt;
          &lt;td&gt;JohannesKaufmann/html-to-markdown&lt;/td&gt;
          &lt;td&gt;⚙️ Convert HTML to Markdown. Even works with entire websites and can be extended through rules.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;3,586&lt;/td&gt;
          &lt;td&gt;885&lt;/td&gt;
          &lt;td&gt;85.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/johanneskaufmann__html-to-markdown.3006818/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/johanneskaufmann__html-to-markdown.3006818/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;89&lt;/td&gt;
          &lt;td&gt;TheZoraiz/ascii-image-converter&lt;/td&gt;
          &lt;td&gt;A cross-platform command-line tool to convert images into ascii art and print them on the console. Now supports braille art!&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;3,284&lt;/td&gt;
          &lt;td&gt;465&lt;/td&gt;
          &lt;td&gt;64.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/thezoraiz__ascii-image-converter.d05a757/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/thezoraiz__ascii-image-converter.d05a757/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;90&lt;/td&gt;
          &lt;td&gt;hairyhenderson/gomplate&lt;/td&gt;
          &lt;td&gt;A flexible commandline tool for template rendering. Supports lots of local and remote datasources.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;3,135&lt;/td&gt;
          &lt;td&gt;2,926&lt;/td&gt;
          &lt;td&gt;74.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/hairyhenderson__gomplate.05eb3aa/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/hairyhenderson__gomplate.05eb3aa/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;91&lt;/td&gt;
          &lt;td&gt;ip7z/7zip&lt;/td&gt;
          &lt;td&gt;7-Zip&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;2,967&lt;/td&gt;
          &lt;td&gt;1,043&lt;/td&gt;
          &lt;td&gt;33.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ip7z__7zip.839151e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ip7z__7zip.839151e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;92&lt;/td&gt;
          &lt;td&gt;madler/pigz&lt;/td&gt;
          &lt;td&gt;A parallel implementation of gzip for modern multi-processor, multi-core machines.&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;2,924&lt;/td&gt;
          &lt;td&gt;831&lt;/td&gt;
          &lt;td&gt;83.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/madler__pigz.fe4894f/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/madler__pigz.fe4894f/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;93&lt;/td&gt;
          &lt;td&gt;tinycc/tinycc&lt;/td&gt;
          &lt;td&gt;Unofficial mirror of mob development branch&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;2,843&lt;/td&gt;
          &lt;td&gt;1,978&lt;/td&gt;
          &lt;td&gt;12.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/tinycc__tinycc.9b8765d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/tinycc__tinycc.9b8765d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;94&lt;/td&gt;
          &lt;td&gt;raviqqe/muffet&lt;/td&gt;
          &lt;td&gt;Fast website link checker in Go&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,597&lt;/td&gt;
          &lt;td&gt;293&lt;/td&gt;
          &lt;td&gt;88.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/raviqqe__muffet.a882908/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/raviqqe__muffet.a882908/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;95&lt;/td&gt;
          &lt;td&gt;segmentio/chamber&lt;/td&gt;
          &lt;td&gt;CLI for managing secrets&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,588&lt;/td&gt;
          &lt;td&gt;1,748&lt;/td&gt;
          &lt;td&gt;82.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/segmentio__chamber.5f93f5f/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/segmentio__chamber.5f93f5f/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;96&lt;/td&gt;
          &lt;td&gt;astaxie/bat&lt;/td&gt;
          &lt;td&gt;Go implement CLI, cURL-like tool for humans&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,563&lt;/td&gt;
          &lt;td&gt;1,091&lt;/td&gt;
          &lt;td&gt;71.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/astaxie__bat.17d1080/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/astaxie__bat.17d1080/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;97&lt;/td&gt;
          &lt;td&gt;zk-org/zk&lt;/td&gt;
          &lt;td&gt;Plain text note-taking assistant&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,542&lt;/td&gt;
          &lt;td&gt;1,108&lt;/td&gt;
          &lt;td&gt;43.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/zk-org__zk.10d93d5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/zk-org__zk.10d93d5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;98&lt;/td&gt;
          &lt;td&gt;kisielk/errcheck&lt;/td&gt;
          &lt;td&gt;errcheck checks that you checked errors.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,480&lt;/td&gt;
          &lt;td&gt;341&lt;/td&gt;
          &lt;td&gt;80.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/kisielk__errcheck.dacab89/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/kisielk__errcheck.dacab89/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;99&lt;/td&gt;
          &lt;td&gt;mkj/dropbear&lt;/td&gt;
          &lt;td&gt;Dropbear SSH&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;2,231&lt;/td&gt;
          &lt;td&gt;682&lt;/td&gt;
          &lt;td&gt;58.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/mkj__dropbear.75f699b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/mkj__dropbear.75f699b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;100&lt;/td&gt;
          &lt;td&gt;noborus/trdsql&lt;/td&gt;
          &lt;td&gt;CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,159&lt;/td&gt;
          &lt;td&gt;1,312&lt;/td&gt;
          &lt;td&gt;66.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/noborus__trdsql.d8c5ff6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/noborus__trdsql.d8c5ff6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;101&lt;/td&gt;
          &lt;td&gt;sheepla/pingu&lt;/td&gt;
          &lt;td&gt;🐧ping command but with pingu&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,087&lt;/td&gt;
          &lt;td&gt;383&lt;/td&gt;
          &lt;td&gt;96.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sheepla__pingu.926d475/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sheepla__pingu.926d475/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;102&lt;/td&gt;
          &lt;td&gt;go-critic/go-critic&lt;/td&gt;
          &lt;td&gt;The most opinionated Go source code linter for code audit.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;2,041&lt;/td&gt;
          &lt;td&gt;493&lt;/td&gt;
          &lt;td&gt;41.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/go-critic__go-critic.9aea378/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/go-critic__go-critic.9aea378/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;103&lt;/td&gt;
          &lt;td&gt;OSGeo/PROJ&lt;/td&gt;
          &lt;td&gt;PROJ - Cartographic Projections and Coordinate Transformations Library&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;1,974&lt;/td&gt;
          &lt;td&gt;5,319&lt;/td&gt;
          &lt;td&gt;73.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/osgeo__proj.75d455c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/osgeo__proj.75d455c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;104&lt;/td&gt;
          &lt;td&gt;noborus/ov&lt;/td&gt;
          &lt;td&gt;🎑Feature-rich terminal-based text viewer. It is a so-called terminal pager.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,935&lt;/td&gt;
          &lt;td&gt;1,854&lt;/td&gt;
          &lt;td&gt;87.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/noborus__ov.b96c2ba/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/noborus__ov.b96c2ba/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;105&lt;/td&gt;
          &lt;td&gt;samtools/samtools&lt;/td&gt;
          &lt;td&gt;Tools (written in C using htslib) for manipulating next-generation sequencing data&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,886&lt;/td&gt;
          &lt;td&gt;1,425&lt;/td&gt;
          &lt;td&gt;14.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/samtools__samtools.aa823b5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/samtools__samtools.aa823b5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;106&lt;/td&gt;
          &lt;td&gt;gabotechs/dep-tree&lt;/td&gt;
          &lt;td&gt;Tool for helping developers keep their code bases clean and decoupled. It allows visualising a code base complexity using a 3d force-directed graph of files and the dependencies between them.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,706&lt;/td&gt;
          &lt;td&gt;865&lt;/td&gt;
          &lt;td&gt;65.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/gabotechs__dep-tree.60a95a2/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/gabotechs__dep-tree.60a95a2/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;107&lt;/td&gt;
          &lt;td&gt;cmatsuoka/figlet&lt;/td&gt;
          &lt;td&gt;Claudio&amp;rsquo;s FIGlet tree&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,606&lt;/td&gt;
          &lt;td&gt;872&lt;/td&gt;
          &lt;td&gt;77.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/cmatsuoka__figlet.202a0a8/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/cmatsuoka__figlet.202a0a8/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;108&lt;/td&gt;
          &lt;td&gt;lh3/seqtk&lt;/td&gt;
          &lt;td&gt;Toolkit for processing sequences in FASTA/Q formats&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,537&lt;/td&gt;
          &lt;td&gt;429&lt;/td&gt;
          &lt;td&gt;67.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/lh3__seqtk.94e7070/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/lh3__seqtk.94e7070/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;109&lt;/td&gt;
          &lt;td&gt;tukaani-project/xz&lt;/td&gt;
          &lt;td&gt;XZ Utils&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,522&lt;/td&gt;
          &lt;td&gt;1,410&lt;/td&gt;
          &lt;td&gt;36.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/tukaani-project__xz.1007bf0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/tukaani-project__xz.1007bf0/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;110&lt;/td&gt;
          &lt;td&gt;skeema/skeema&lt;/td&gt;
          &lt;td&gt;Declarative pure-SQL schema management for MySQL and MariaDB&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,361&lt;/td&gt;
          &lt;td&gt;1,708&lt;/td&gt;
          &lt;td&gt;76.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/skeema__skeema.6a76243/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/skeema__skeema.6a76243/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;111&lt;/td&gt;
          &lt;td&gt;mfridman/tparse&lt;/td&gt;
          &lt;td&gt;CLI tool for summarizing go test output. Pipe friendly. CI/CD friendly.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,246&lt;/td&gt;
          &lt;td&gt;425&lt;/td&gt;
          &lt;td&gt;77.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/mfridman__tparse.2416b4b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/mfridman__tparse.2416b4b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;112&lt;/td&gt;
          &lt;td&gt;lfos/calcurse&lt;/td&gt;
          &lt;td&gt;A text-based calendar and scheduling application&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,243&lt;/td&gt;
          &lt;td&gt;666&lt;/td&gt;
          &lt;td&gt;53.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/lfos__calcurse.49180d5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/lfos__calcurse.49180d5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;113&lt;/td&gt;
          &lt;td&gt;hooklift/gowsdl&lt;/td&gt;
          &lt;td&gt;WSDL2Go code generation as well as its SOAP proxy&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,219&lt;/td&gt;
          &lt;td&gt;391&lt;/td&gt;
          &lt;td&gt;86.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/hooklift__gowsdl.2a06cec/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/hooklift__gowsdl.2a06cec/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;114&lt;/td&gt;
          &lt;td&gt;guumaster/hostctl&lt;/td&gt;
          &lt;td&gt;Your dev tool to manage /etc/hosts like a pro!&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,216&lt;/td&gt;
          &lt;td&gt;1,051&lt;/td&gt;
          &lt;td&gt;82.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/guumaster__hostctl.d6d9699/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/guumaster__hostctl.d6d9699/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;115&lt;/td&gt;
          &lt;td&gt;rs/jplot&lt;/td&gt;
          &lt;td&gt;iTerm2 expvar/JSON monitoring tool&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,178&lt;/td&gt;
          &lt;td&gt;583&lt;/td&gt;
          &lt;td&gt;89.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rs__jplot.2a54bcc/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rs__jplot.2a54bcc/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;116&lt;/td&gt;
          &lt;td&gt;naggie/dstask&lt;/td&gt;
          &lt;td&gt;Git powered terminal-based todo/note manager &amp;ndash; markdown note page per task. Single binary!&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,157&lt;/td&gt;
          &lt;td&gt;1,278&lt;/td&gt;
          &lt;td&gt;58.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/naggie__dstask.ff57396/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/naggie__dstask.ff57396/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;117&lt;/td&gt;
          &lt;td&gt;sigoden/argc&lt;/td&gt;
          &lt;td&gt;A Bash CLI framework, also a Bash command runner.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;1,135&lt;/td&gt;
          &lt;td&gt;995&lt;/td&gt;
          &lt;td&gt;44.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sigoden__argc.04a08f1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sigoden__argc.04a08f1/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;118&lt;/td&gt;
          &lt;td&gt;sibprogrammer/xq&lt;/td&gt;
          &lt;td&gt;Command-line XML and HTML beautifier and content extractor&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,109&lt;/td&gt;
          &lt;td&gt;792&lt;/td&gt;
          &lt;td&gt;75.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sibprogrammer__xq.b89f681/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sibprogrammer__xq.b89f681/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;119&lt;/td&gt;
          &lt;td&gt;xorg62/tty-clock&lt;/td&gt;
          &lt;td&gt;Clock using lib ncurses&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,105&lt;/td&gt;
          &lt;td&gt;281&lt;/td&gt;
          &lt;td&gt;84.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/xorg62__tty-clock.f2f847c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/xorg62__tty-clock.f2f847c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;120&lt;/td&gt;
          &lt;td&gt;unhappychoice/gittype&lt;/td&gt;
          &lt;td&gt;A CLI code-typing game that turns your source code into typing challenges&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;1,075&lt;/td&gt;
          &lt;td&gt;741&lt;/td&gt;
          &lt;td&gt;91.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/unhappychoice__gittype.34b72d0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/unhappychoice__gittype.34b72d0/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;121&lt;/td&gt;
          &lt;td&gt;eudoxia0/hashcards&lt;/td&gt;
          &lt;td&gt;A plain text-based spaced repetition system.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;1,071&lt;/td&gt;
          &lt;td&gt;1,151&lt;/td&gt;
          &lt;td&gt;56.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/eudoxia0__hashcards.48aa136/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/eudoxia0__hashcards.48aa136/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;122&lt;/td&gt;
          &lt;td&gt;rvben/rumdl&lt;/td&gt;
          &lt;td&gt;Fast Markdown linter and formatter written in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;1,051&lt;/td&gt;
          &lt;td&gt;3,322&lt;/td&gt;
          &lt;td&gt;40.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rvben__rumdl.2d75c4d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rvben__rumdl.2d75c4d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;123&lt;/td&gt;
          &lt;td&gt;sclevine/yj&lt;/td&gt;
          &lt;td&gt;CLI - Convert between YAML, TOML, JSON, and HCL. Preserves map order.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,041&lt;/td&gt;
          &lt;td&gt;767&lt;/td&gt;
          &lt;td&gt;74.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sclevine__yj.8016400/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sclevine__yj.8016400/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;124&lt;/td&gt;
          &lt;td&gt;arq5x/bedtools2&lt;/td&gt;
          &lt;td&gt;bedtools - the swiss army knife for genome arithmetic&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,029&lt;/td&gt;
          &lt;td&gt;1,053&lt;/td&gt;
          &lt;td&gt;38.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/arq5x__bedtools2.dd57059/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/arq5x__bedtools2.dd57059/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;125&lt;/td&gt;
          &lt;td&gt;cslarsen/jp2a&lt;/td&gt;
          &lt;td&gt;Converts jpg images to ASCII&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;1,021&lt;/td&gt;
          &lt;td&gt;631&lt;/td&gt;
          &lt;td&gt;56.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/cslarsen__jp2a.61d205f/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/cslarsen__jp2a.61d205f/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;126&lt;/td&gt;
          &lt;td&gt;blacknon/hwatch&lt;/td&gt;
          &lt;td&gt;A modern alternative to the watch command, records the differences in execution results and can check this differences at after.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;1,016&lt;/td&gt;
          &lt;td&gt;1,016&lt;/td&gt;
          &lt;td&gt;81.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/blacknon__hwatch.edfcb62/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/blacknon__hwatch.edfcb62/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;127&lt;/td&gt;
          &lt;td&gt;eliukblau/pixterm&lt;/td&gt;
          &lt;td&gt;Draw images in your ANSI terminal with true color&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;1,014&lt;/td&gt;
          &lt;td&gt;430&lt;/td&gt;
          &lt;td&gt;74.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/eliukblau__pixterm.1a93fd5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/eliukblau__pixterm.1a93fd5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;128&lt;/td&gt;
          &lt;td&gt;Canop/rhit&lt;/td&gt;
          &lt;td&gt;A nginx log explorer&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;1,006&lt;/td&gt;
          &lt;td&gt;817&lt;/td&gt;
          &lt;td&gt;53.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/canop__rhit.ae90bcb/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/canop__rhit.ae90bcb/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;129&lt;/td&gt;
          &lt;td&gt;stathissideris/ditaa&lt;/td&gt;
          &lt;td&gt;ditaa is a small command-line utility that can convert diagrams drawn using ascii art (&amp;lsquo;drawings&amp;rsquo; that contain characters that resemble lines like | / - ), into proper bitmap graphics.&lt;/td&gt;
          &lt;td&gt;java&lt;/td&gt;
          &lt;td&gt;1,005&lt;/td&gt;
          &lt;td&gt;609&lt;/td&gt;
          &lt;td&gt;20.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/stathissideris__ditaa.f2286c4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/stathissideris__ditaa.f2286c4/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;130&lt;/td&gt;
          &lt;td&gt;rbakbashev/elfcat&lt;/td&gt;
          &lt;td&gt;ELF visualizer. Generates HTML files from ELF binaries.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;990&lt;/td&gt;
          &lt;td&gt;564&lt;/td&gt;
          &lt;td&gt;98.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rbakbashev__elfcat.52f8cc7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rbakbashev__elfcat.52f8cc7/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;131&lt;/td&gt;
          &lt;td&gt;nuta/nsh&lt;/td&gt;
          &lt;td&gt;A command-line shell like fish, but POSIX compatible.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;966&lt;/td&gt;
          &lt;td&gt;1,963&lt;/td&gt;
          &lt;td&gt;83.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/nuta__nsh.bdd0702/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/nuta__nsh.bdd0702/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;132&lt;/td&gt;
          &lt;td&gt;dalance/amber&lt;/td&gt;
          &lt;td&gt;A code search / replace tool&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;941&lt;/td&gt;
          &lt;td&gt;567&lt;/td&gt;
          &lt;td&gt;71.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/dalance__amber.69a0f52/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/dalance__amber.69a0f52/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;133&lt;/td&gt;
          &lt;td&gt;pls-rs/pls&lt;/td&gt;
          &lt;td&gt;pls is a prettier and powerful ls(1) for the pros.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;932&lt;/td&gt;
          &lt;td&gt;332&lt;/td&gt;
          &lt;td&gt;62.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/pls-rs__pls.4e1ae50/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/pls-rs__pls.4e1ae50/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;134&lt;/td&gt;
          &lt;td&gt;Esubaalew/run&lt;/td&gt;
          &lt;td&gt;Universal multi-language runner and smart REPL written in Rust.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;919&lt;/td&gt;
          &lt;td&gt;1,212&lt;/td&gt;
          &lt;td&gt;85.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/esubaalew__run.0fb9dec/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/esubaalew__run.0fb9dec/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;135&lt;/td&gt;
          &lt;td&gt;chirlu/sox&lt;/td&gt;
          &lt;td&gt;SoX, Swiss Army knife of sound processing&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;913&lt;/td&gt;
          &lt;td&gt;1,202&lt;/td&gt;
          &lt;td&gt;37.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/chirlu__sox.42b3557/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/chirlu__sox.42b3557/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;136&lt;/td&gt;
          &lt;td&gt;clog-tool/clog-cli&lt;/td&gt;
          &lt;td&gt;Generate beautiful changelogs from your Git commit history&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;912&lt;/td&gt;
          &lt;td&gt;575&lt;/td&gt;
          &lt;td&gt;93.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/clog-tool__clog-cli.7066cba/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/clog-tool__clog-cli.7066cba/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;137&lt;/td&gt;
          &lt;td&gt;tarka/xcp&lt;/td&gt;
          &lt;td&gt;An extended &lt;code&gt;cp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;911&lt;/td&gt;
          &lt;td&gt;1,184&lt;/td&gt;
          &lt;td&gt;92.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/tarka__xcp.5e5b448/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/tarka__xcp.5e5b448/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;138&lt;/td&gt;
          &lt;td&gt;oppiliappan/eva&lt;/td&gt;
          &lt;td&gt;a calculator REPL, similar to bc(1)&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;907&lt;/td&gt;
          &lt;td&gt;913&lt;/td&gt;
          &lt;td&gt;88.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/oppiliappan__eva.41ae245/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/oppiliappan__eva.41ae245/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;139&lt;/td&gt;
          &lt;td&gt;git-bahn/git-graph&lt;/td&gt;
          &lt;td&gt;Command line tool to show clear git graphs arranged for your branching model&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;904&lt;/td&gt;
          &lt;td&gt;568&lt;/td&gt;
          &lt;td&gt;79.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/git-bahn__git-graph.87b4473/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/git-bahn__git-graph.87b4473/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;140&lt;/td&gt;
          &lt;td&gt;gromacs/gromacs&lt;/td&gt;
          &lt;td&gt;Public/backup repository of the GROMACS molecular simulation toolkit. Please do not mine the metadata blindly; we use &lt;a class=&#34;link&#34; href=&#34;https://gitlab.com/gromacs/gromacs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://gitlab.com/gromacs/gromacs&lt;/a&gt; for code review and issue tracking.&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;901&lt;/td&gt;
          &lt;td&gt;1,245&lt;/td&gt;
          &lt;td&gt;9.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/gromacs__gromacs.665ea4c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/gromacs__gromacs.665ea4c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;141&lt;/td&gt;
          &lt;td&gt;sirwart/ripsecrets&lt;/td&gt;
          &lt;td&gt;A command-line tool to prevent committing secret keys into your source code&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;901&lt;/td&gt;
          &lt;td&gt;611&lt;/td&gt;
          &lt;td&gt;72.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sirwart__ripsecrets.34c9e03/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sirwart__ripsecrets.34c9e03/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;142&lt;/td&gt;
          &lt;td&gt;Drew-Alleman/DataSurgeon&lt;/td&gt;
          &lt;td&gt;Quickly Extracts IP&amp;rsquo;s, Email Addresses, Hashes, Files, Credit Cards, Social Security Numbers and a lot More From Text&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;890&lt;/td&gt;
          &lt;td&gt;502&lt;/td&gt;
          &lt;td&gt;74.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/drew-alleman__datasurgeon.d257cee/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/drew-alleman__datasurgeon.d257cee/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;143&lt;/td&gt;
          &lt;td&gt;alexpovel/srgn&lt;/td&gt;
          &lt;td&gt;A grep-like tool which understands source code syntax and allows for manipulation in addition to search&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;889&lt;/td&gt;
          &lt;td&gt;1,852&lt;/td&gt;
          &lt;td&gt;69.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/alexpovel__srgn.89f943b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/alexpovel__srgn.89f943b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;144&lt;/td&gt;
          &lt;td&gt;kyoheiu/felix&lt;/td&gt;
          &lt;td&gt;tui file manager with vim-like key mapping&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;888&lt;/td&gt;
          &lt;td&gt;502&lt;/td&gt;
          &lt;td&gt;49.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/kyoheiu__felix.95df390/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/kyoheiu__felix.95df390/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;145&lt;/td&gt;
          &lt;td&gt;oppiliappan/statix&lt;/td&gt;
          &lt;td&gt;lints and suggestions for the nix programming language&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;882&lt;/td&gt;
          &lt;td&gt;815&lt;/td&gt;
          &lt;td&gt;42.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/oppiliappan__statix.e9df54c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/oppiliappan__statix.e9df54c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;146&lt;/td&gt;
          &lt;td&gt;nachoparker/dutree&lt;/td&gt;
          &lt;td&gt;a tool to analyze file system usage written in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;871&lt;/td&gt;
          &lt;td&gt;641&lt;/td&gt;
          &lt;td&gt;89.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/nachoparker__dutree.44e877d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/nachoparker__dutree.44e877d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;147&lt;/td&gt;
          &lt;td&gt;simeg/eureka&lt;/td&gt;
          &lt;td&gt;💡 CLI tool to input and store your ideas without leaving the terminal&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;867&lt;/td&gt;
          &lt;td&gt;344&lt;/td&gt;
          &lt;td&gt;78.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/simeg__eureka.df3796c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/simeg__eureka.df3796c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;148&lt;/td&gt;
          &lt;td&gt;kyoh86/richgo&lt;/td&gt;
          &lt;td&gt;Enrich &lt;code&gt;go test&lt;/code&gt; outputs with text decorations.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;863&lt;/td&gt;
          &lt;td&gt;546&lt;/td&gt;
          &lt;td&gt;85.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/kyoh86__richgo.313114f/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/kyoh86__richgo.313114f/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;149&lt;/td&gt;
          &lt;td&gt;rochacbruno/marmite&lt;/td&gt;
          &lt;td&gt;Markdown makes sites - A Static Site Generator for Blogs&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;837&lt;/td&gt;
          &lt;td&gt;668&lt;/td&gt;
          &lt;td&gt;45.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rochacbruno__marmite.7d4bc2d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rochacbruno__marmite.7d4bc2d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;150&lt;/td&gt;
          &lt;td&gt;rust-embedded/svd2rust&lt;/td&gt;
          &lt;td&gt;Generate Rust register maps (&lt;code&gt;struct&lt;/code&gt;s) from SVD files&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;835&lt;/td&gt;
          &lt;td&gt;920&lt;/td&gt;
          &lt;td&gt;72.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rust-embedded__svd2rust.1760b5e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rust-embedded__svd2rust.1760b5e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;151&lt;/td&gt;
          &lt;td&gt;konradsz/igrep&lt;/td&gt;
          &lt;td&gt;Interactive Grep&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;827&lt;/td&gt;
          &lt;td&gt;385&lt;/td&gt;
          &lt;td&gt;73.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/konradsz__igrep.aa75630/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/konradsz__igrep.aa75630/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;152&lt;/td&gt;
          &lt;td&gt;nikolassv/bartib&lt;/td&gt;
          &lt;td&gt;A simple timetracker for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;827&lt;/td&gt;
          &lt;td&gt;722&lt;/td&gt;
          &lt;td&gt;87.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/nikolassv__bartib.6b9b5ce/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/nikolassv__bartib.6b9b5ce/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;153&lt;/td&gt;
          &lt;td&gt;yassinebridi/serpl&lt;/td&gt;
          &lt;td&gt;A simple terminal UI for search and replace, ala VS Code.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;824&lt;/td&gt;
          &lt;td&gt;446&lt;/td&gt;
          &lt;td&gt;61.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/yassinebridi__serpl.c48a9d7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/yassinebridi__serpl.c48a9d7/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;154&lt;/td&gt;
          &lt;td&gt;riquito/tuc&lt;/td&gt;
          &lt;td&gt;When cut doesn&amp;rsquo;t cut it&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;820&lt;/td&gt;
          &lt;td&gt;1,196&lt;/td&gt;
          &lt;td&gt;92.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/riquito__tuc.16fb471/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/riquito__tuc.16fb471/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;155&lt;/td&gt;
          &lt;td&gt;ecumene/rust-sloth&lt;/td&gt;
          &lt;td&gt;A 3D software rasterizer&amp;hellip; for the terminal!&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;818&lt;/td&gt;
          &lt;td&gt;380&lt;/td&gt;
          &lt;td&gt;52.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ecumene__rust-sloth.051c559/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ecumene__rust-sloth.051c559/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;156&lt;/td&gt;
          &lt;td&gt;crowdagger/crowbook&lt;/td&gt;
          &lt;td&gt;Converts books written in Markdown to HTML, LaTeX/PDF and EPUB&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;813&lt;/td&gt;
          &lt;td&gt;807&lt;/td&gt;
          &lt;td&gt;60.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/crowdagger__crowbook.ea214d7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/crowdagger__crowbook.ea214d7/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;157&lt;/td&gt;
          &lt;td&gt;WGUNDERWOOD/tex-fmt&lt;/td&gt;
          &lt;td&gt;An extremely fast LaTeX formatter written in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;789&lt;/td&gt;
          &lt;td&gt;455&lt;/td&gt;
          &lt;td&gt;80.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/wgunderwood__tex-fmt.3f1aef6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/wgunderwood__tex-fmt.3f1aef6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;158&lt;/td&gt;
          &lt;td&gt;Stranger6667/jsonschema&lt;/td&gt;
          &lt;td&gt;A high-performance JSON Schema validator for Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;770&lt;/td&gt;
          &lt;td&gt;2,933&lt;/td&gt;
          &lt;td&gt;51.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/stranger6667__jsonschema.d52e881/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/stranger6667__jsonschema.d52e881/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;159&lt;/td&gt;
          &lt;td&gt;rhysd/kiro-editor&lt;/td&gt;
          &lt;td&gt;A small terminal UTF-8 text editor written in Rust 📝🦀&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;761&lt;/td&gt;
          &lt;td&gt;595&lt;/td&gt;
          &lt;td&gt;93.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rhysd__kiro-editor.4157485/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rhysd__kiro-editor.4157485/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;160&lt;/td&gt;
          &lt;td&gt;astro/deadnix&lt;/td&gt;
          &lt;td&gt;Scan Nix files for dead code&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;745&lt;/td&gt;
          &lt;td&gt;602&lt;/td&gt;
          &lt;td&gt;85.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/astro__deadnix.d590041/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/astro__deadnix.d590041/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;161&lt;/td&gt;
          &lt;td&gt;sstadick/hck&lt;/td&gt;
          &lt;td&gt;A sharp cut(1) clone.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;738&lt;/td&gt;
          &lt;td&gt;855&lt;/td&gt;
          &lt;td&gt;95.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sstadick__hck.b66c751/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sstadick__hck.b66c751/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;162&lt;/td&gt;
          &lt;td&gt;trasta298/keifu&lt;/td&gt;
          &lt;td&gt;Git genealogy, untangled. A TUI for navigating commit graphs with color and clarity.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;729&lt;/td&gt;
          &lt;td&gt;262&lt;/td&gt;
          &lt;td&gt;67.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/trasta298__keifu.3331426/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/trasta298__keifu.3331426/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;163&lt;/td&gt;
          &lt;td&gt;AmmarAbouZor/tui-journal&lt;/td&gt;
          &lt;td&gt;Your journal app if you live in a terminal&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;722&lt;/td&gt;
          &lt;td&gt;1,402&lt;/td&gt;
          &lt;td&gt;70.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ammarabouzor__tui-journal.2b4540d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ammarabouzor__tui-journal.2b4540d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;164&lt;/td&gt;
          &lt;td&gt;incu6us/goimports-reviser&lt;/td&gt;
          &lt;td&gt;Right imports sorting &amp;amp; code formatting tool (goimports alternative)&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;715&lt;/td&gt;
          &lt;td&gt;513&lt;/td&gt;
          &lt;td&gt;86.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/incu6us__goimports-reviser.81bd549/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/incu6us__goimports-reviser.81bd549/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;165&lt;/td&gt;
          &lt;td&gt;yaa110/nomino&lt;/td&gt;
          &lt;td&gt;Batch rename utility for developers&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;710&lt;/td&gt;
          &lt;td&gt;313&lt;/td&gt;
          &lt;td&gt;79.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/yaa110__nomino.f892499/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/yaa110__nomino.f892499/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;166&lt;/td&gt;
          &lt;td&gt;wfxr/csview&lt;/td&gt;
          &lt;td&gt;📠 Pretty and fast csv viewer for cli with cjk/emoji support.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;694&lt;/td&gt;
          &lt;td&gt;335&lt;/td&gt;
          &lt;td&gt;96.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/wfxr__csview.8ac4de0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/wfxr__csview.8ac4de0/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;167&lt;/td&gt;
          &lt;td&gt;chmln/handlr&lt;/td&gt;
          &lt;td&gt;A better xdg-utils&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;693&lt;/td&gt;
          &lt;td&gt;722&lt;/td&gt;
          &lt;td&gt;90.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/chmln__handlr.90e78ba/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/chmln__handlr.90e78ba/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;168&lt;/td&gt;
          &lt;td&gt;Miserlou/Loop&lt;/td&gt;
          &lt;td&gt;UNIX&amp;rsquo;s missing &lt;code&gt;loop&lt;/code&gt; command&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;692&lt;/td&gt;
          &lt;td&gt;710&lt;/td&gt;
          &lt;td&gt;94.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/miserlou__loop.209927c/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/miserlou__loop.209927c/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;169&lt;/td&gt;
          &lt;td&gt;KSXGitHub/parallel-disk-usage&lt;/td&gt;
          &lt;td&gt;Highly parallelized, blazing fast directory tree analyzer&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;689&lt;/td&gt;
          &lt;td&gt;531&lt;/td&gt;
          &lt;td&gt;86.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ksxgithub__parallel-disk-usage.96978ed/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ksxgithub__parallel-disk-usage.96978ed/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;170&lt;/td&gt;
          &lt;td&gt;hush-shell/hush&lt;/td&gt;
          &lt;td&gt;Hush is a unix shell based on the Lua programming language&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;688&lt;/td&gt;
          &lt;td&gt;1,201&lt;/td&gt;
          &lt;td&gt;83.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/hush-shell__hush.560c33a/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/hush-shell__hush.560c33a/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;171&lt;/td&gt;
          &lt;td&gt;zevv/duc&lt;/td&gt;
          &lt;td&gt;Dude, where are my bytes: Duc, a library and suite of tools for inspecting disk usage&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
          &lt;td&gt;682&lt;/td&gt;
          &lt;td&gt;874&lt;/td&gt;
          &lt;td&gt;83.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/zevv__duc.a58fa4e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/zevv__duc.a58fa4e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;172&lt;/td&gt;
          &lt;td&gt;altdesktop/i3-style&lt;/td&gt;
          &lt;td&gt;🎨 Make your i3 config a little more stylish.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;678&lt;/td&gt;
          &lt;td&gt;539&lt;/td&gt;
          &lt;td&gt;80.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/altdesktop__i3-style.f93821b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/altdesktop__i3-style.f93821b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;173&lt;/td&gt;
          &lt;td&gt;wintermute-cell/ngrrram&lt;/td&gt;
          &lt;td&gt;A TUI tool to help you type faster and learn new layouts. Includes a free cat.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;674&lt;/td&gt;
          &lt;td&gt;303&lt;/td&gt;
          &lt;td&gt;84.5%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/wintermute-cell__ngrrram.8ea13c3/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/wintermute-cell__ngrrram.8ea13c3/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;174&lt;/td&gt;
          &lt;td&gt;psampaz/go-mod-outdated&lt;/td&gt;
          &lt;td&gt;Find outdated dependencies of your Go projects. go-mod-outdated provides a table view of the go list -u -m -json all command which lists all dependencies of a Go project and their available minor and patch updates. It also provides a way to filter indirect dependencies and dependencies without updates.&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;669&lt;/td&gt;
          &lt;td&gt;285&lt;/td&gt;
          &lt;td&gt;98.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/psampaz__go-mod-outdated.bb79367/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/psampaz__go-mod-outdated.bb79367/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;175&lt;/td&gt;
          &lt;td&gt;wfxr/code-minimap&lt;/td&gt;
          &lt;td&gt;🛰 A high performance code minimap render.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;660&lt;/td&gt;
          &lt;td&gt;313&lt;/td&gt;
          &lt;td&gt;88.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/wfxr__code-minimap.0ddeea5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/wfxr__code-minimap.0ddeea5/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;176&lt;/td&gt;
          &lt;td&gt;kaushiksrini/parqeye&lt;/td&gt;
          &lt;td&gt;Peek inside Parquet files right from your terminal&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;654&lt;/td&gt;
          &lt;td&gt;479&lt;/td&gt;
          &lt;td&gt;58.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/kaushiksrini__parqeye.8072121/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/kaushiksrini__parqeye.8072121/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;177&lt;/td&gt;
          &lt;td&gt;stacked-git/stgit&lt;/td&gt;
          &lt;td&gt;Stacked Git&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;652&lt;/td&gt;
          &lt;td&gt;1,488&lt;/td&gt;
          &lt;td&gt;20.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/stacked-git__stgit.430027d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/stacked-git__stgit.430027d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;178&lt;/td&gt;
          &lt;td&gt;Isona/dirble&lt;/td&gt;
          &lt;td&gt;Fast directory scanning and scraping tool&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;632&lt;/td&gt;
          &lt;td&gt;718&lt;/td&gt;
          &lt;td&gt;66.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/isona__dirble.e2dea9f/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/isona__dirble.e2dea9f/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;179&lt;/td&gt;
          &lt;td&gt;YS-L/flamelens&lt;/td&gt;
          &lt;td&gt;Flamegraph viewer in the terminal&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;622&lt;/td&gt;
          &lt;td&gt;224&lt;/td&gt;
          &lt;td&gt;59.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ys-l__flamelens.0b4dc33/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ys-l__flamelens.0b4dc33/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;180&lt;/td&gt;
          &lt;td&gt;mookid/diffr&lt;/td&gt;
          &lt;td&gt;Yet another diff highlighting tool&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;612&lt;/td&gt;
          &lt;td&gt;606&lt;/td&gt;
          &lt;td&gt;84.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/mookid__diffr.2152742/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/mookid__diffr.2152742/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;181&lt;/td&gt;
          &lt;td&gt;shashwatah/jot&lt;/td&gt;
          &lt;td&gt;⚡Rapid note management for the terminal.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;609&lt;/td&gt;
          &lt;td&gt;752&lt;/td&gt;
          &lt;td&gt;84.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/shashwatah__jot.a92aad8/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/shashwatah__jot.a92aad8/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;182&lt;/td&gt;
          &lt;td&gt;Epistates/treemd&lt;/td&gt;
          &lt;td&gt;A (TUI/CLI) markdown navigator with tree-based structural navigation.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;603&lt;/td&gt;
          &lt;td&gt;1,569&lt;/td&gt;
          &lt;td&gt;55.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/epistates__treemd.825c6dd/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/epistates__treemd.825c6dd/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;183&lt;/td&gt;
          &lt;td&gt;pier-cli/pier&lt;/td&gt;
          &lt;td&gt;A CLI to organize and run short Unix shell scripts&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;596&lt;/td&gt;
          &lt;td&gt;692&lt;/td&gt;
          &lt;td&gt;83.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/pier-cli__pier.5e1bde9/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/pier-cli__pier.5e1bde9/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;184&lt;/td&gt;
          &lt;td&gt;jrnxf/thokr&lt;/td&gt;
          &lt;td&gt;✨ sleek typing tui with visualized results and historical logging&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;595&lt;/td&gt;
          &lt;td&gt;445&lt;/td&gt;
          &lt;td&gt;82.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/jrnxf__thokr.09375ef/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/jrnxf__thokr.09375ef/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;185&lt;/td&gt;
          &lt;td&gt;ismaelgv/rnr&lt;/td&gt;
          &lt;td&gt;A command-line tool to batch rename files and directories&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;581&lt;/td&gt;
          &lt;td&gt;683&lt;/td&gt;
          &lt;td&gt;82.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/ismaelgv__rnr.fc0733b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/ismaelgv__rnr.fc0733b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;186&lt;/td&gt;
          &lt;td&gt;sitkevij/hex&lt;/td&gt;
          &lt;td&gt;🔮 Futuristic take on hexdump, made in Rust.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;563&lt;/td&gt;
          &lt;td&gt;823&lt;/td&gt;
          &lt;td&gt;91.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/sitkevij__hex.61ae69b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/sitkevij__hex.61ae69b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;187&lt;/td&gt;
          &lt;td&gt;brocode/fblog&lt;/td&gt;
          &lt;td&gt;Small command-line JSON Log viewer&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;561&lt;/td&gt;
          &lt;td&gt;978&lt;/td&gt;
          &lt;td&gt;86.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/brocode__fblog.3b54330/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/brocode__fblog.3b54330/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;188&lt;/td&gt;
          &lt;td&gt;codesnap-rs/codesnap&lt;/td&gt;
          &lt;td&gt;🦀️📸 Pure Rust tool to generate beautiful code snapshots, provide CLI and Library&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;557&lt;/td&gt;
          &lt;td&gt;730&lt;/td&gt;
          &lt;td&gt;59.2%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/codesnap-rs__codesnap.f81e4f3/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/codesnap-rs__codesnap.f81e4f3/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;189&lt;/td&gt;
          &lt;td&gt;foriequal0/git-trim&lt;/td&gt;
          &lt;td&gt;Automatically trims your branches whose tracking remote refs are merged or stray&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;548&lt;/td&gt;
          &lt;td&gt;509&lt;/td&gt;
          &lt;td&gt;64.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/foriequal0__git-trim.07c2f50/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/foriequal0__git-trim.07c2f50/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;190&lt;/td&gt;
          &lt;td&gt;axodotdev/oranda&lt;/td&gt;
          &lt;td&gt;🎁 generate beautiful landing pages for your developer tools&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;542&lt;/td&gt;
          &lt;td&gt;767&lt;/td&gt;
          &lt;td&gt;53.6%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/axodotdev__oranda.27d60c7/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/axodotdev__oranda.27d60c7/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;191&lt;/td&gt;
          &lt;td&gt;elkowar/pipr&lt;/td&gt;
          &lt;td&gt;A tool to interactively write shell pipelines.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;541&lt;/td&gt;
          &lt;td&gt;525&lt;/td&gt;
          &lt;td&gt;57.1%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/elkowar__pipr.fae0b17/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/elkowar__pipr.fae0b17/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;192&lt;/td&gt;
          &lt;td&gt;paradigmxyz/solar&lt;/td&gt;
          &lt;td&gt;Blazingly fast, modular and contributor friendly Solidity compiler, written in Rust&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;539&lt;/td&gt;
          &lt;td&gt;1,978&lt;/td&gt;
          &lt;td&gt;43.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/paradigmxyz__solar.5190d0e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/paradigmxyz__solar.5190d0e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;193&lt;/td&gt;
          &lt;td&gt;Lymphatus/caesium-clt&lt;/td&gt;
          &lt;td&gt;Caesium Command Line Tools - Lossy/lossless image compression tool&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;537&lt;/td&gt;
          &lt;td&gt;575&lt;/td&gt;
          &lt;td&gt;92.3%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/lymphatus__caesium-clt.a529b2e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/lymphatus__caesium-clt.a529b2e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;194&lt;/td&gt;
          &lt;td&gt;agourlay/zip-password-finder&lt;/td&gt;
          &lt;td&gt;Find the password of protected ZIP files.&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;534&lt;/td&gt;
          &lt;td&gt;680&lt;/td&gt;
          &lt;td&gt;97.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/agourlay__zip-password-finder.704700d/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/agourlay__zip-password-finder.704700d/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;195&lt;/td&gt;
          &lt;td&gt;rust-ethereum/ethabi&lt;/td&gt;
          &lt;td&gt;Encode and decode smart contract invocations&lt;/td&gt;
          &lt;td&gt;rs&lt;/td&gt;
          &lt;td&gt;525&lt;/td&gt;
          &lt;td&gt;997&lt;/td&gt;
          &lt;td&gt;90.9%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/rust-ethereum__ethabi.b1710ad/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/rust-ethereum__ethabi.b1710ad/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;196&lt;/td&gt;
          &lt;td&gt;ArthurSonzogni/json-tui&lt;/td&gt;
          &lt;td&gt;A JSON terminal UI made in C++&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;438&lt;/td&gt;
          &lt;td&gt;755&lt;/td&gt;
          &lt;td&gt;71.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/arthursonzogni__json-tui.17a22b6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/arthursonzogni__json-tui.17a22b6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;197&lt;/td&gt;
          &lt;td&gt;tomarrell/wrapcheck&lt;/td&gt;
          &lt;td&gt;A Go linter to check that errors from external packages are wrapped&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;374&lt;/td&gt;
          &lt;td&gt;480&lt;/td&gt;
          &lt;td&gt;80.8%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/tomarrell__wrapcheck.c058da1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/tomarrell__wrapcheck.c058da1/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;198&lt;/td&gt;
          &lt;td&gt;NikolaDucak/caps-log&lt;/td&gt;
          &lt;td&gt;A small TUI journaling tool. 📖&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;370&lt;/td&gt;
          &lt;td&gt;551&lt;/td&gt;
          &lt;td&gt;61.7%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/nikoladucak__caps-log.2cf2d1e/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/nikoladucak__caps-log.2cf2d1e/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;199&lt;/td&gt;
          &lt;td&gt;mibk/dupl&lt;/td&gt;
          &lt;td&gt;a tool for code clone detection&lt;/td&gt;
          &lt;td&gt;go&lt;/td&gt;
          &lt;td&gt;367&lt;/td&gt;
          &lt;td&gt;373&lt;/td&gt;
          &lt;td&gt;85.0%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/mibk__dupl.1bf052b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/mibk__dupl.1bf052b/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;200&lt;/td&gt;
          &lt;td&gt;HaliteChallenge/Halite&lt;/td&gt;
          &lt;td&gt;@twosigma&amp;rsquo;s first artificial intelligence programming challenge&lt;/td&gt;
          &lt;td&gt;cpp&lt;/td&gt;
          &lt;td&gt;202&lt;/td&gt;
          &lt;td&gt;275&lt;/td&gt;
          &lt;td&gt;80.4%&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://programbench.com/task/halitechallenge__halite.822cfb6/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://programbench.com/task/halitechallenge__halite.822cfb6/&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;cómo-leer-estos-datos&#34;&gt;Cómo leer estos datos
&lt;/h2&gt;&lt;p&gt;En el leaderboard principal de ProgramBench, los 9 modelos tienen &lt;code&gt;Resolved&lt;/code&gt; en 0%. Bajo una configuración unificada con un agent ligero, los modelos actuales todavía no pueden reconstruir software completo de forma fiable a partir de comportamiento de caja negra y documentación.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Almost resolved&lt;/code&gt; sí permite distinguir capacidades. Claude Opus 4.7 alcanza 3.0%, Claude Opus 4.6 llega a 2.5%, Claude Sonnet 4.6 llega a 1.0% y el resto de modelos queda en 0.0%. Este indicador sirve mejor para observar la capacidad de acercarse a una solución completa que mirar solo la finalización total.&lt;/p&gt;
&lt;p&gt;La tabla de instancias también es importante. Enumera el lenguaje, las estrellas, el número de pruebas y el mejor resultado actual de cada proyecto open source, mostrando que ProgramBench cubre compresión, búsqueda, bases de datos, compiladores, herramientas de línea de comandos, procesamiento multimedia y otros tipos de software. Para AI Coding, esto se parece mucho más a presión de ingeniería real que un benchmark simple de algoritmos.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>ProgramBench 0% explicado: lo inquietante no es el fallo, sino que la hoja de ruta ya está clara</title>
        <link>https://knightli.com/es/2026/05/10/programbench-ai-coding-zero-percent/</link>
        <pubDate>Sun, 10 May 2026 12:32:39 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/10/programbench-ai-coding-zero-percent/</guid>
        <description>&lt;p&gt;En el mundo de AI Coding acaba de aparecer un nuevo benchmark: &lt;code&gt;ProgramBench&lt;/code&gt;. A primera vista, su resultado parece tranquilizador para los programadores: nueve modelos principales obtuvieron &lt;code&gt;0%&lt;/code&gt; en la métrica fully resolved, y ningún modelo completó por completo ni una sola tarea.&lt;/p&gt;
&lt;p&gt;Pero lo verdaderamente inquietante no es que los grandes modelos actuales todavía fallen. Lo importante es que, por primera vez, la ingeniería de software completa se ha convertido en un conjunto claro de tareas evaluables, clasificables y optimizables de forma repetida.&lt;/p&gt;
&lt;p&gt;Una vez que una tarea queda definida con claridad, la industria de IA suele hacer lo que mejor sabe hacer: resolver el benchmark, iterar, perseguir el leaderboard y empujar poco a poco lo que antes parecía imposible hacia el borde de lo utilizable.&lt;/p&gt;
&lt;h2 id=&#34;qué-mide-programbench&#34;&gt;Qué mide ProgramBench
&lt;/h2&gt;&lt;p&gt;Muchos benchmarks de programación miden completar funciones, corregir bugs, pasar unit tests o añadir una pequeña función a un proyecto existente. &lt;code&gt;ProgramBench&lt;/code&gt; es mucho más duro. No proporciona código fuente, ni estructura de proyecto, ni test cases ya preparados.&lt;/p&gt;
&lt;p&gt;El modelo recibe principalmente solo dos cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Un ejecutable ya compilado.&lt;/li&gt;
&lt;li&gt;La documentación de uso de ese programa.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El modelo debe ejecutar el binario por su cuenta, observar el comportamiento de entrada y salida, entender argumentos de línea de comandos, casos límite, mensajes de error y formas de almacenamiento de datos, y luego volver a implementar un programa con comportamiento equivalente.&lt;/p&gt;
&lt;p&gt;Esto ya no es &amp;ldquo;escribir un fragmento de código&amp;rdquo;. Es una tarea de ingeniería de software simplificada pero completa: entender requisitos, explorar comportamiento, elegir lenguaje, diseñar estructura, escribir código fuente, proporcionar un método de build e intentar pasar las pruebas ocultas.&lt;/p&gt;
&lt;p&gt;Según la descripción oficial de ProgramBench, actualmente contiene 200 tareas, desde pequeñas herramientas de línea de comandos hasta proyectos reales grandes como PHP, FFmpeg y SQLite. El conjunto de pruebas se genera mediante agent-driven fuzzing y supera las 248.000 pruebas de comportamiento.&lt;/p&gt;
&lt;p&gt;Si descomponemos el flujo de evaluación, ProgramBench mide aproximadamente cuatro capacidades:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Leer documentación: entender qué comandos, argumentos y salidas debe ofrecer el programa.&lt;/li&gt;
&lt;li&gt;Explorar comportamiento: ejecutar repetidamente el binario y observar entradas normales, entradas inválidas y casos límite.&lt;/li&gt;
&lt;li&gt;Reconstruir la implementación: elegir lenguaje y estructura de proyecto, y escribir un reemplazo con comportamiento cercano.&lt;/li&gt;
&lt;li&gt;Pasar pruebas ocultas: no basta con acertar el comportamiento normal; también cuentan el manejo de errores, el formato de salida y las condiciones de borde.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por eso su valor de búsqueda no es simplemente &amp;ldquo;otro ranking&amp;rdquo;. Responde a una pregunta más concreta: ¿puede un gran modelo recrear software real desde cero, sin código fuente, usando solo documentación y comportamiento de caja negra?&lt;/p&gt;
&lt;h2 id=&#34;por-qué-el-resultado-es-0&#34;&gt;Por qué el resultado es 0%
&lt;/h2&gt;&lt;p&gt;La métrica principal de ProgramBench es fully resolved: una tarea solo cuenta como completada si todas sus pruebas pasan. En el leaderboard actual, los nueve modelos tienen &lt;code&gt;0%&lt;/code&gt; en esta métrica.&lt;/p&gt;
&lt;p&gt;Los modelos evaluados incluyen familias como Claude, GPT y Gemini, todos usando &lt;code&gt;mini-SWE-agent&lt;/code&gt; como agent base. Claude Opus 4.7 es el mejor en la métrica almost resolved, con alrededor de &lt;code&gt;3.0%&lt;/code&gt; de tareas que pasan al menos el 95% de las pruebas. Claude Opus 4.6 llega a &lt;code&gt;2.5%&lt;/code&gt;, y Claude Sonnet 4.6 a &lt;code&gt;1.0%&lt;/code&gt;. GPT 5.4, GPT 5.4 mini, Gemini 3.1 Pro, Gemini 3 Flash y otros quedan en &lt;code&gt;0.0%&lt;/code&gt; en almost resolved.&lt;/p&gt;
&lt;p&gt;Esto muestra que los grandes modelos actuales, combinados con un agent ligero, todavía no pueden reconstruir software completo desde cero. Incluso en las tareas más simples, alinear todos los detalles resulta difícil.&lt;/p&gt;
&lt;p&gt;Pero hay un matiz importante: esta evaluación usó &lt;code&gt;mini-SWE-agent&lt;/code&gt;, no Claude Code ni Codex. Con un coding agent más fuerte, más soporte de herramientas y un ciclo de exploración más largo, los resultados podrían mejorar. La interpretación más precisa es: los modelos actuales con un agent ligero aún no bastan para completar de forma estable la reconstrucción de software completo.&lt;/p&gt;
&lt;h2 id=&#34;qué-significan-fully-resolved-y-almost-resolved&#34;&gt;Qué significan fully resolved y almost resolved
&lt;/h2&gt;&lt;p&gt;Al leer los resultados de ProgramBench, estas dos métricas son fáciles de confundir.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;fully resolved&lt;/code&gt; es la métrica más estricta: todas las pruebas ocultas de una tarea deben pasar para que se considere completamente resuelta. Si falta un caso límite, un formato de error o un comportamiento de argumento de línea de comandos, la tarea no cuenta como fully resolved.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;almost resolved&lt;/code&gt; se parece más a &amp;ldquo;casi completado&amp;rdquo;: si una tarea pasa al menos el 95% de sus pruebas, entra en almost resolved. Refleja si el modelo logró reproducir la mayor parte del comportamiento, pero no significa que el programa ya pueda sustituir al software original.&lt;/p&gt;
&lt;p&gt;Por eso el &lt;code&gt;0%&lt;/code&gt; debe leerse por partes. El &lt;code&gt;0%&lt;/code&gt; en fully resolved indica que los modelos aún no pueden entregar una solución completa. La diferencia en almost resolved muestra qué modelos ya se acercan al éxito en algunas tareas. Por ejemplo, Claude Opus 4.7 alcanza alrededor de &lt;code&gt;3.0%&lt;/code&gt; en almost resolved, lo que indica que se acerca más en unas pocas tareas relativamente simples, pero sigue muy lejos de reconstruir software completo de forma estable.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-mini-swe-agent-afecta-el-resultado&#34;&gt;Por qué mini-SWE-agent afecta el resultado
&lt;/h2&gt;&lt;p&gt;La evaluación usa un &lt;code&gt;mini-SWE-agent&lt;/code&gt; unificado, lo cual tiene una ventaja clara: equidad. Todos los modelos corren sobre el mismo marco ligero de agent, así que la comparación horizontal es más sencilla.&lt;/p&gt;
&lt;p&gt;Pero también limita el techo. La reconstrucción de software completo no depende solo del modelo. También depende de si el agent puede planificar una estrategia de exploración, gestionar tareas largas, generar tests automáticamente, localizar causas de fallo de forma repetida y organizar la estructura del proyecto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mini-SWE-agent&lt;/code&gt; se parece más a una línea base común que al entorno de ingeniería más potente posible.&lt;/p&gt;
&lt;p&gt;Coding agents más completos como Claude Code o Codex suelen ofrecer mejor uso de herramientas, organización de contexto, descomposición de tareas y reparación en múltiples rondas. Si se usaran esas herramientas, los resultados podrían ser mejores.&lt;/p&gt;
&lt;p&gt;Así que el resultado de ProgramBench se entiende mejor así: los modelos actuales no pueden realizar reconstrucción completa de software en un entorno de agent ligero. No demuestra que los modelos nunca podrán hacerlo, ni mide por completo el techo de todos los coding agents comerciales.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-con-swe-bench&#34;&gt;Diferencias con SWE-bench
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;SWE-bench&lt;/code&gt; ya es un benchmark importante en AI Coding. Pide a los modelos leer issues en repositorios reales de GitHub, modificar código y enviar parches, para evaluar su capacidad de resolver bugs reales.&lt;/p&gt;
&lt;p&gt;Pero &lt;code&gt;SWE-bench&lt;/code&gt; sigue siendo, en esencia, reparar un coche existente: el coche ya está ahí, y el stack tecnológico, la estructura de directorios, la organización del código y la arquitectura ya fueron creados por humanos. El modelo solo necesita encontrar el problema y arreglar la pieza rota.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ProgramBench&lt;/code&gt; se parece más a construir el coche de nuevo: solo sabes qué comportamiento debe tener, por ejemplo detenerse ante un semáforo rojo o tocar la bocina cerca de peatones. La estructura, el lenguaje, los módulos y el método de build deben decidirse desde cero.&lt;/p&gt;
&lt;p&gt;Por eso es mucho más difícil. Ya no evalúa solo la capacidad de hacer parches locales, sino arquitectura de software, razonamiento de sistemas, exploración de comportamiento, pruebas automáticas, corrección en múltiples rondas y diseño de ingeniería a largo plazo.&lt;/p&gt;
&lt;p&gt;La diferencia puede resumirse así:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Dimensión&lt;/th&gt;
          &lt;th&gt;SWE-bench&lt;/th&gt;
          &lt;th&gt;ProgramBench&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Punto de partida&lt;/td&gt;
          &lt;td&gt;Repositorio de GitHub e issue existentes&lt;/td&gt;
          &lt;td&gt;Ejecutable compilado y documentación de uso&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Código fuente disponible&lt;/td&gt;
          &lt;td&gt;Sí&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tarea principal&lt;/td&gt;
          &lt;td&gt;Corregir un bug en un proyecto existente&lt;/td&gt;
          &lt;td&gt;Reimplementar un programa completo a partir del comportamiento&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Stack tecnológico&lt;/td&gt;
          &lt;td&gt;Ya definido por el proyecto&lt;/td&gt;
          &lt;td&gt;Elegido por el modelo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Estructura del proyecto&lt;/td&gt;
          &lt;td&gt;Ya existe&lt;/td&gt;
          &lt;td&gt;Diseñada por el modelo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Método de prueba&lt;/td&gt;
          &lt;td&gt;Ejecutar tests tras enviar un parche&lt;/td&gt;
          &lt;td&gt;Usar pruebas ocultas de comportamiento para medir la reconstrucción&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Enfoque principal&lt;/td&gt;
          &lt;td&gt;Leer código, localizar problemas, reparar con parches&lt;/td&gt;
          &lt;td&gt;Explorar comportamiento, abstraer sistemas, diseñar arquitectura, implementar completo&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Por eso ProgramBench encaja mejor como objetivo de la siguiente etapa de AI Coding: empuja el problema desde &amp;ldquo;arreglar código existente&amp;rdquo; hacia &amp;ldquo;reconstruir software completo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;0-no-significa-seguridad&#34;&gt;0% no significa seguridad
&lt;/h2&gt;&lt;p&gt;Al ver &lt;code&gt;0%&lt;/code&gt;, la primera reacción de muchas personas puede ser: el trabajo de los programadores está a salvo por ahora.&lt;/p&gt;
&lt;p&gt;A corto plazo, eso es cierto. Los grandes modelos actuales todavía no pueden completar ingeniería de software completa de forma estable, especialmente sin código fuente, test cases ni estructura de proyecto. La aclaración de requisitos, el diseño de arquitectura, el mantenimiento a largo plazo, el control de seguridad, la colaboración de equipo y la comprensión del negocio siguen siendo ventajas importantes de los ingenieros humanos.&lt;/p&gt;
&lt;p&gt;Pero interpretar &lt;code&gt;0%&lt;/code&gt; como &amp;ldquo;AI Coding llegó a su límite&amp;rdquo; sería demasiado optimista.&lt;/p&gt;
&lt;p&gt;Lo que ProgramBench cambia de verdad es la definición del problema. Antes ya sabíamos que la IA podía completar código y corregir bugs, pero &amp;ldquo;reconstruir software completo a partir de un ejecutable y documentación&amp;rdquo; no estaba colocado en una pista común. Ahora son 200 tareas, una evaluación unificada y un ranking unificado.&lt;/p&gt;
&lt;p&gt;Eso significa que las empresas de modelos, agents y herramientas de desarrollo saben hacia dónde empujar: hacer que la IA evolucione de escribir fragmentos de código a mantener, reconstruir y entregar sistemas de software completos.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-hacen-falta-modo-offline-y-anti-cheating&#34;&gt;Por qué hacen falta modo offline y anti-cheating
&lt;/h2&gt;&lt;p&gt;Hay un detalle importante en el diseño de ProgramBench: evitar trampas.&lt;/p&gt;
&lt;p&gt;En pruebas iniciales, los modelos intentaban encontrar directamente el código fuente en GitHub, descargar paquetes que contenían el código mediante package managers, o incluso buscar paquetes ya descargados en directorios de caché del sistema. Eso rompe el propósito de la evaluación, porque la pregunta deja de ser &amp;ldquo;puede reconstruir software desde el comportamiento&amp;rdquo; y pasa a ser &amp;ldquo;puede encontrar el código fuente original&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por eso ProgramBench usa sandbox y entorno offline. No permite acceso a internet, ni decompilación, ni desensamblado, ni lectura del contenido del ejecutable. El modelo solo puede ejecutar el programa, observar su comportamiento y luego implementar su propia versión.&lt;/p&gt;
&lt;p&gt;Esta restricción hace la evaluación más limpia y la acerca a la pregunta real: ¿puede un gran modelo de lenguaje partir del comportamiento y la documentación de un programa para construir por sí mismo un proyecto de software ejecutable?&lt;/p&gt;
&lt;h2 id=&#34;lo-más-preocupante-puede-ser-el-cambio-en-la-forma-del-código&#34;&gt;Lo más preocupante puede ser el cambio en la forma del código
&lt;/h2&gt;&lt;p&gt;ProgramBench también muestra algo más importante que el &lt;code&gt;0%&lt;/code&gt; para los ingenieros de software: el código generado por modelos a menudo no se parece a los proyectos que escribirían ingenieros humanos.&lt;/p&gt;
&lt;p&gt;Los materiales públicos mencionan que los modelos tienden a generar menos archivos, jerarquías de directorios más planas, menos funciones y funciones individuales más largas. En otras palabras, pueden producir un script enorme que funciona, en lugar de un proyecto de software bien estructurado y fácil de mantener por humanos.&lt;/p&gt;
&lt;p&gt;Desde la ingeniería de software tradicional, eso suele ser mal código. Muy pocos archivos, funciones demasiado largas, poca abstracción y límites de módulos poco claros dificultan el mantenimiento humano.&lt;/p&gt;
&lt;p&gt;Pero el problema es que la IA quizá no necesite escribir código siguiendo la forma en que los humanos lo mantienen.&lt;/p&gt;
&lt;p&gt;Los humanos enfatizan abstracción, nombres, estructura de directorios y límites de módulos principalmente porque la memoria humana es limitada, los equipos necesitan colaborar y el código debe reutilizarse durante mucho tiempo. Si la IA puede usar contextos más largos, sistemas de búsqueda y pruebas automáticas para reescribir código repetidamente, quizá no necesite tanto esas convenciones de ingeniería familiares para nosotros.&lt;/p&gt;
&lt;p&gt;Esto crea un riesgo muy real: el software escrito por IA en el futuro quizá funcione, e incluso funcione rápido, pero sea cada vez más difícil de mantener por humanos.&lt;/p&gt;
&lt;h2 id=&#34;qué-deben-mejorar-realmente-los-programadores&#34;&gt;Qué deben mejorar realmente los programadores
&lt;/h2&gt;&lt;p&gt;El resultado de ProgramBench no es simplemente una buena noticia ni una mala noticia para los programadores.&lt;/p&gt;
&lt;p&gt;A corto plazo, la ingeniería de software completa sigue siendo difícil, y los programadores no van a perder su trabajo de inmediato por este benchmark. En especial, el juicio arquitectónico, la aclaración de requisitos, el control de seguridad, la validación de calidad y la comprensión del negocio todavía requieren responsabilidad humana.&lt;/p&gt;
&lt;p&gt;A largo plazo, el trabajo del programador seguirá subiendo de nivel. Las personas más vulnerables no son quienes &amp;ldquo;no saben escribir código&amp;rdquo;, sino quienes solo saben escribir código y no saben definir problemas, verificar resultados, organizar toolchains ni controlar riesgos.&lt;/p&gt;
&lt;p&gt;El ingeniero de software del futuro podría parecerse más a esto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Definidor de requisitos: convertir problemas de negocio difusos en objetivos ejecutables.&lt;/li&gt;
&lt;li&gt;Validador de sistemas: juzgar si el resultado generado por IA realmente cumple los requisitos.&lt;/li&gt;
&lt;li&gt;Organizador de toolchains: combinar modelos, agents, tests, despliegue y monitorización.&lt;/li&gt;
&lt;li&gt;Responsable de calidad: controlar seguridad, mantenibilidad, casos límite y riesgos a largo plazo.&lt;/li&gt;
&lt;li&gt;Traductor entre negocio y tecnología: convertir problemas reales en restricciones que un sistema de ingeniería pueda manejar.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la IA realmente evoluciona de asistente de código a ingeniero de software completo, el valor del programador humano ya no será escribir cada línea a mano. Será definir qué vale la pena construir, qué cuenta como correcto y dónde no se puede fallar.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El &lt;code&gt;0%&lt;/code&gt; de ProgramBench no es el final. Es el comienzo de una nueva etapa.&lt;/p&gt;
&lt;p&gt;Muestra que los grandes modelos actuales todavía no pueden reconstruir de forma estable sistemas de software completos desde cero. Pero también define con claridad el objetivo de la próxima generación de AI Coding agents: pasar de parches locales a proyectos completos, de fragmentos de código a entrega de sistemas.&lt;/p&gt;
&lt;p&gt;Para los programadores, a corto plazo se puede respirar un poco. Pero a largo plazo no conviene quedarse mirando solo que &amp;ldquo;la IA todavía no puede&amp;rdquo;. Lo más importante es subir cuanto antes de ejecutor de código a definidor de problemas, validador de resultados y controlador de riesgos.&lt;/p&gt;
&lt;p&gt;Lo verdaderamente inquietante no es que la IA haya sacado &lt;code&gt;0%&lt;/code&gt; hoy. Es que el examen ya está escrito.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo elegir entre GPT-5.5, GPT-5.4 y GPT-5.3-Codex</title>
        <link>https://knightli.com/es/2026/05/10/gpt-5-5-vs-gpt-5-4-vs-gpt-5-3-codex/</link>
        <pubDate>Sun, 10 May 2026 08:43:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/10/gpt-5-5-vs-gpt-5-4-vs-gpt-5-3-codex/</guid>
        <description>&lt;p&gt;Si solo quieres la conclusión corta, es bastante simple: usa &lt;code&gt;GPT-5.5&lt;/code&gt; por defecto, elige &lt;code&gt;GPT-5.4&lt;/code&gt; cuando el presupuesto y el consumo importen más, y presta especial atención a &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; cuando trabajes en tareas de ingeniería de software de larga duración dentro de Codex o necesites funciones como Cloud Tasks y Code Review.&lt;/p&gt;
&lt;p&gt;No es solo una impresión subjetiva. A fecha de &lt;code&gt;2026-05-10&lt;/code&gt;, la documentación oficial de Codex sigue diciendo que la mayoría de las tareas deberían empezar con &lt;code&gt;gpt-5.5&lt;/code&gt;; si &lt;code&gt;gpt-5.5&lt;/code&gt; aún no está disponible, conviene seguir con &lt;code&gt;gpt-5.4&lt;/code&gt;; y para tareas ligeras o subagentes, &lt;code&gt;gpt-5.4-mini&lt;/code&gt; encaja mejor.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-de-posicionamiento-entre-los-tres-modelos&#34;&gt;Diferencias de posicionamiento entre los tres modelos
&lt;/h2&gt;&lt;p&gt;Primero conviene mirar la posición oficial de cada uno.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; es el modelo frontier más reciente dentro de Codex, orientado a programación compleja, uso del ordenador, trabajo de conocimiento y flujos de investigación. Funciona como el modelo principal por defecto para análisis difíciles, tareas de varios pasos, cambios en múltiples archivos, diseño de soluciones y trabajo documental más pesado.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt; es una opción más equilibrada y estable. OpenAI lo describe como un modelo que reúne la capacidad de programación de &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; con mejor razonamiento, uso de herramientas y flujos agentic. Es decir, no es simplemente una versión más débil de &lt;code&gt;5.5&lt;/code&gt;, sino una opción más balanceada para usar como base a largo plazo.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sigue siendo un modelo muy fuerte para código, pero sus ventajas están más concentradas en la ingeniería de software real y en los flujos nativos de Codex. La documentación oficial también deja claro que está optimizado para agentic coding tasks, mientras que &lt;code&gt;GPT-5.4&lt;/code&gt; ya hereda buena parte de esa fortaleza.&lt;/p&gt;
&lt;p&gt;Por eso hoy ya no tiene tanto sentido tratar &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; como si fuera automáticamente &amp;ldquo;el mejor modelo de programación&amp;rdquo;. En la mayoría de escenarios cotidianos de desarrollo, conviene mirar antes &lt;code&gt;GPT-5.5&lt;/code&gt; y &lt;code&gt;GPT-5.4&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-según-el-tipo-de-tarea&#34;&gt;Cómo elegir según el tipo de tarea
&lt;/h2&gt;&lt;p&gt;Si tu trabajo es preguntas frecuentes, explicaciones complejas, síntesis de materiales, análisis de archivos o integración de información extensa, &lt;code&gt;GPT-5.5&lt;/code&gt; es la mejor opción. No solo escribe código bien, sino que también resuelve mejor el trabajo intelectual exigente fuera del código puro.&lt;/p&gt;
&lt;p&gt;Si tu trabajo es programación compleja, refactorización, depuración, diseño de arquitectura o cambios en varios archivos, &lt;code&gt;GPT-5.5&lt;/code&gt; sigue siendo la primera elección. Esa es también la recomendación oficial de Codex: cuando &lt;code&gt;gpt-5.5&lt;/code&gt; está disponible, lo normal es empezar por ahí.&lt;/p&gt;
&lt;p&gt;Si te importan más el consumo y los límites, y aun así quieres una calidad alta, &lt;code&gt;GPT-5.4&lt;/code&gt; suele ser el valor por defecto más razonable. Para desarrollo habitual, reescrituras normales, traducciones estándar, generación de scripts y corrección de bugs, &lt;code&gt;GPT-5.4&lt;/code&gt; ya es suficientemente fuerte y además consume menos.&lt;/p&gt;
&lt;p&gt;Si usas Codex CLI, la extensión de IDE o la app para un trabajo más parecido al de un agente de ingeniería, por ejemplo leer un repositorio durante mucho tiempo, modificar código de forma continua, encadenar tareas, o usar Cloud Tasks y Code Review, &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sigue teniendo peso. No porque sea más avanzado que &lt;code&gt;GPT-5.5&lt;/code&gt;, sino porque Cloud Tasks y Code Review de Codex siguen ejecutándose sobre &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cuánta-diferencia-hay-en-consumo&#34;&gt;Cuánta diferencia hay en consumo
&lt;/h2&gt;&lt;p&gt;La tabla de credits de Codex deja las diferencias bastante claras.&lt;/p&gt;
&lt;p&gt;Bajo la tarificación por tokens para Business / New Enterprise:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: &lt;code&gt;125 credits / 1M tokens&lt;/code&gt; de entrada, &lt;code&gt;12.5 credits&lt;/code&gt; de entrada en caché y &lt;code&gt;750 credits&lt;/code&gt; de salida&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: &lt;code&gt;62.5 credits / 1M tokens&lt;/code&gt; de entrada, &lt;code&gt;6.25 credits&lt;/code&gt; de entrada en caché y &lt;code&gt;375 credits&lt;/code&gt; de salida&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: &lt;code&gt;43.75 credits / 1M tokens&lt;/code&gt; de entrada, &lt;code&gt;4.375 credits&lt;/code&gt; de entrada en caché y &lt;code&gt;350 credits&lt;/code&gt; de salida&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eso significa que, si solo miras la tarifa nominal, &lt;code&gt;GPT-5.4&lt;/code&gt; cuesta aproximadamente la mitad que &lt;code&gt;GPT-5.5&lt;/code&gt; para cantidades parecidas de entrada y salida. &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; es más barato en entrada, pero su salida ya está bastante cerca de &lt;code&gt;GPT-5.4&lt;/code&gt;, así que no es una opción &amp;ldquo;muchísimo más barata&amp;rdquo; en conjunto.&lt;/p&gt;
&lt;p&gt;Hay otro detalle importante. La documentación oficial también dice que &lt;code&gt;GPT-5.5 uses significantly fewer tokens to achieve results comparable to GPT-5.4&lt;/code&gt;. En otras palabras, aunque la tarifa unitaria sea más alta, en tareas complejas puede compensar con menos tokens y menos retrabajo.&lt;/p&gt;
&lt;p&gt;Sin embargo, en tareas como reescritura de artículos con plantilla fija, traducción o generación de descripciones SEO, donde la longitud de entrada y salida suele ser bastante estable, esa ventaja de &amp;ldquo;equivocarse menos&amp;rdquo; se nota menos que en la ingeniería compleja. En la práctica, &lt;code&gt;GPT-5.4&lt;/code&gt; suele seguir siendo la opción más barata, normalmente con un ahorro de alrededor del &lt;code&gt;45%&lt;/code&gt; al &lt;code&gt;50%&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-en-los-límites-de-uso-dentro-de-codex&#34;&gt;Diferencias en los límites de uso dentro de Codex
&lt;/h2&gt;&lt;p&gt;Además del precio, estos modelos no están disponibles exactamente de la misma manera dentro de Codex.&lt;/p&gt;
&lt;p&gt;A fecha de &lt;code&gt;2026-05-10&lt;/code&gt;, &lt;code&gt;GPT-5.5&lt;/code&gt; es el modelo recomendado en Codex, pero por ahora solo está disponible cuando inicias sesión en Codex con ChatGPT, y no admite autenticación con API key. &lt;code&gt;GPT-5.4&lt;/code&gt; y &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sí admiten acceso vía API.&lt;/p&gt;
&lt;p&gt;Además, &lt;code&gt;GPT-5.5&lt;/code&gt; y &lt;code&gt;GPT-5.4&lt;/code&gt; no soportan actualmente Codex Cloud Tasks ni Code Review. Esas dos funciones siguen siendo terreno de &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;. Por eso, si lo que realmente quieres es ejecutar trabajo de ingeniería prolongado dentro de Codex, no basta con comparar cuál modelo es más fuerte: también debes mirar si la función que necesitas sigue dependiendo de &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si solo usas mensajes locales, la ventana oficial de cinco horas del plan Plus es aproximadamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: &lt;code&gt;15-80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: &lt;code&gt;20-100&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: &lt;code&gt;30-150&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eso también refleja una diferencia práctica: &lt;code&gt;GPT-5.5&lt;/code&gt; es el más fuerte, pero normalmente te da menos usos dentro de un límite fijo; &lt;code&gt;GPT-5.4&lt;/code&gt; es más equilibrado; y &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; puede parecer más resistente en mensajes locales.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-en-escenarios-comunes&#34;&gt;Cómo elegir en escenarios comunes
&lt;/h2&gt;&lt;p&gt;En el trabajo diario hay muchas tareas frecuentes. La forma más útil de comparar estos modelos no es preguntar en abstracto cuál es &amp;ldquo;mejor&amp;rdquo;, sino separarlos por escenario.&lt;/p&gt;
&lt;h3 id=&#34;1-preguntas-diarias-organización-de-materiales-y-resúmenes-largos&#34;&gt;1. Preguntas diarias, organización de materiales y resúmenes largos
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: La mejor opción. Maneja mejor las solicitudes ambiguas, completa contexto y convierte información dispersa en una salida estructurada.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Adecuado para resúmenes normales y trabajo en lote. Cuando la dificultad es moderada y el volumen es alto, suele ser la opción más económica.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: No es ideal como opción principal. Puede hacerlo, pero no es donde más destaca.&lt;/p&gt;
&lt;h3 id=&#34;2-explicación-de-conceptos-técnicos-lectura-de-código-y-proyectos-antiguos&#34;&gt;2. Explicación de conceptos técnicos, lectura de código y proyectos antiguos
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor para proyectos complejos. Es más fiable cuando hay muchas relaciones entre archivos, cadenas largas de llamadas y mucha deuda histórica.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Muy bueno para lectura y explicación normales. Funciona bien para entender funciones, módulos, configuraciones y ponerse al día en un proyecto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Más orientado a ejecución, no es la primera opción para tareas centradas en explicación.&lt;/p&gt;
&lt;h3 id=&#34;3-scripts-herramientas-pequeñas-sql-shell-y-expresiones-regulares&#34;&gt;3. Scripts, herramientas pequeñas, SQL, shell y expresiones regulares
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor cuando el script forma parte de un diseño de sistema más amplio, conecta varios servicios o tiene restricciones complejas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción principal por defecto. La mayoría de scripts, herramientas pequeñas, SQL y trabajo de línea de comandos caben perfectamente dentro de su zona de confort, y además consume menos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Tiene sentido si el script es solo una parte de un flujo más grande de agente de ingeniería, pero no hace falta priorizarlo para scripting aislado.&lt;/p&gt;
&lt;h3 id=&#34;4-corregir-bugs-hacer-cambios-pequeños-añadir-tests-y-desarrollo-rutinario&#34;&gt;4. Corregir bugs, hacer cambios pequeños, añadir tests y desarrollo rutinario
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor para correcciones algo más complejas, especialmente si primero debe analizar la causa, luego editar varios archivos y finalmente añadir pruebas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: El mejor caballo de batalla para el desarrollo diario. En bugs normales, pequeñas funciones, esqueletos de tests, renombrado y limpieza de formato, ofrece el mejor equilibrio entre coste y resultado.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Capaz, pero normalmente no es la primera opción salvo que necesites específicamente Cloud Tasks o un flujo de agente de ingeniería.&lt;/p&gt;
&lt;h3 id=&#34;5-refactorización-compleja-diseño-de-arquitectura-y-depuración-difícil&#34;&gt;5. Refactorización compleja, diseño de arquitectura y depuración difícil
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: La mejor opción. En tareas complejas, lo caro no suele ser una respuesta aislada, sino el retrabajo. &lt;code&gt;GPT-5.5&lt;/code&gt; encaja mejor como modelo principal para resolver problemas difíciles.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Bueno para trabajos de complejidad media. Puede encargarse de refactorizaciones y diseño, pero en contextos muy largos, razonamiento de muchos pasos y problemas con alta incertidumbre, suele ser menos estable que &lt;code&gt;GPT-5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Más orientado a ejecución, y no es la prioridad por defecto para trabajo de decisión difícil.&lt;/p&gt;
&lt;h3 id=&#34;6-tareas-ligeras-en-lote-trabajo-repetitivo-y-sub-tareas-divididas&#34;&gt;6. Tareas ligeras en lote, trabajo repetitivo y sub-tareas divididas
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Puede hacerlo, pero normalmente no compensa por coste.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción. Para editar comentarios en lote, reformatear, generar código de plantilla o hacer cambios repetitivos de contenido, es la más equilibrada.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Tiene sentido si el trabajo ya vive dentro de un flujo de ingeniería de Codex, pero en términos puros de coste-rendimiento suele quedar por detrás de &lt;code&gt;GPT-5.4&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;7-automatización-ejecución-de-agentes-y-trabajo-continuo-sobre-repositorios&#34;&gt;7. Automatización, ejecución de agentes y trabajo continuo sobre repositorios
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Bueno para diseño inicial, reglas y descomposición de tareas complejas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Bueno para escribir scripts de automatización y completar lógica de flujos de complejidad media, especialmente si importa el acceso por API.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Es el más relevante aquí. Como Cloud Tasks y Code Review de Codex siguen corriendo sobre él, encaja mejor en escenarios donde quieres que el sistema siga trabajando por sí solo.&lt;/p&gt;
&lt;h3 id=&#34;8-copy-para-páginas-importantes-presentación-de-marca-y-pulido-final&#34;&gt;8. Copy para páginas importantes, presentación de marca y pulido final
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: La mejor opción. Tiene mayor naturalidad, mejor control de estilo y más consistencia en textos largos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Adecuado para la mayoría de páginas normales y actualizaciones diarias. Las páginas importantes pueden partir de un borrador en &lt;code&gt;GPT-5.4&lt;/code&gt; y pulirse después con &lt;code&gt;GPT-5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: No encaja como modelo principal de redacción.&lt;/p&gt;
&lt;h3 id=&#34;9-reescritura-de-artículos-con-plantilla-fija-traducción-y-descripciones-seo&#34;&gt;9. Reescritura de artículos con plantilla fija, traducción y descripciones SEO
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor para diseñar la plantilla, hacer el pulido final, cerrar páginas importantes y producir una traducción chino-inglés más natural.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción para producción en lote. En reescritura de artículos estándar, traducciones con estructura fija, reescritura de copy de producto y generación masiva de meta descriptions, suele ofrecer el mejor equilibrio entre calidad y coste.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: No es adecuado como modelo principal de redacción. Es más útil para scripts de procesamiento por lotes, limpieza de HTML, conservación de estructuras de etiquetas y mejora de flujos de publicación.&lt;/p&gt;
&lt;h3 id=&#34;10-copy-para-e-commerce-páginas-de-categoría-y-operación-masiva-de-contenidos&#34;&gt;10. Copy para e-commerce, páginas de categoría y operación masiva de contenidos
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Bueno para definir reglas, hacer revisiones de muestra y pulir páginas de alto valor.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción para producción masiva. En títulos de producto, descripciones de categorías, textos de campañas y contenido SEO long-tail, ofrece un equilibrio más práctico.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Bueno para scraping, limpieza, procesamiento en lote y scripts de publicación automática, pero no tanto para el copy principal.&lt;/p&gt;
&lt;p&gt;Si comprimes todos estos escenarios en una sola línea:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Trabajo intelectual complejo, análisis complejo y redacción de alto valor: prioriza &lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Desarrollo diario, producción en lote y trabajo repetitivo: prioriza &lt;code&gt;GPT-5.4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Agentes de ingeniería en Codex, Cloud Tasks y Code Review: presta especial atención a &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;recomendación-final&#34;&gt;Recomendación final
&lt;/h2&gt;&lt;p&gt;Si tu trabajo consiste sobre todo en programación normal, corrección de bugs, preguntas técnicas y documentación de apoyo, &lt;code&gt;GPT-5.4&lt;/code&gt; es un valor por defecto muy sólido.&lt;/p&gt;
&lt;p&gt;Si necesitas análisis de proyecto más complejos, cambios en varios archivos, diseño de arquitectura, depuración difícil, o un solo modelo que cubra tanto ingeniería como trabajo intelectual exigente, ve directamente a &lt;code&gt;GPT-5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si lo que más pesa es el flujo de trabajo de ingeniería dentro de Codex, como Cloud Tasks, Code Review y ejecución prolongada de agentes, entonces &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sigue mereciendo un lugar, aunque ya no tenga demasiado sentido como primera opción por defecto.&lt;/p&gt;
&lt;p&gt;Para un sitio con contenido de plantilla fija, una combinación más práctica suele ser:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt; para la producción en lote&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; para diseñar la plantilla, hacer revisiones de muestra y pulir el resultado final&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; para escribir herramientas de automatización en lugar del contenido principal&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El orden por defecto más razonable hoy es &lt;code&gt;GPT-5.5&lt;/code&gt; primero, &lt;code&gt;GPT-5.4&lt;/code&gt; segundo, y &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; reservado para escenarios más ligados a agentes de ingeniería o a funciones específicas de Codex.&lt;/p&gt;
&lt;p&gt;Si la pregunta concreta es &amp;ldquo;¿cuánto ahorra &lt;code&gt;GPT-5.4&lt;/code&gt; frente a &lt;code&gt;GPT-5.5&lt;/code&gt; al reescribir el mismo artículo con plantilla?&amp;rdquo;, entonces, según la tabla oficial de credits y la estructura típica de tokens de este tipo de tarea, es razonable pensar en un ahorro cercano a la mitad. Para sitios de contenido por lotes, esa diferencia es lo bastante grande como para que la práctica habitual no sea usar &lt;code&gt;GPT-5.5&lt;/code&gt; en todo, sino usar &lt;code&gt;GPT-5.5&lt;/code&gt; para fijar reglas y estilo, y dejar la producción masiva a &lt;code&gt;GPT-5.4&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo elegir planes de AI Coding: los usuarios ligeros priorizan comodidad, los intensivos necesitan flexibilidad</title>
        <link>https://knightli.com/es/2026/05/10/ai-coding-plan-selection/</link>
        <pubDate>Sun, 10 May 2026 08:20:58 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/10/ai-coding-plan-selection/</guid>
        <description>&lt;p&gt;Los planes de AI Coding han cambiado muy rápido en los últimos seis meses. Muchas herramientas han pasado de un modelo de cobro por mensajes o por uso limitado a uno claramente basado en consumo, los planes baratos y generosos se han ido recortando, y algunos servicios extranjeros han añadido verificaciones de identidad, restricciones regionales y reglas de uso más estrictas.&lt;/p&gt;
&lt;p&gt;Para un desarrollador, la pregunta ya no es solo qué modelo es el más fuerte. También importa cuánto vas a gastar cada mes, si la cuota alcanza, si la herramienta resulta cómoda de usar y si podrás cambiar sin demasiado dolor cuando un proveedor suba precios o cambie las reglas de repente.&lt;/p&gt;
&lt;p&gt;Una conclusión bastante útil es esta: los usuarios ligeros deberían comprar comodidad, los usuarios intermedios deberían comprar relación calidad-precio y los usuarios intensivos deberían comprar flexibilidad. Cuanto más intensivo sea el uso, menos conviene atar el modelo y la herramienta dentro del mismo plan.&lt;/p&gt;
&lt;h2 id=&#34;cuatro-cosas-que-conviene-revisar-antes-de-elegir-un-plan&#34;&gt;Cuatro cosas que conviene revisar antes de elegir un plan
&lt;/h2&gt;&lt;p&gt;Antes, al elegir un plan de AI Coding, normalmente bastaba con mirar tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si el modelo era lo bastante fuerte.&lt;/li&gt;
&lt;li&gt;Si la velocidad de respuesta era estable.&lt;/li&gt;
&lt;li&gt;Si la cuota incluida alcanzaba.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ahora hay que añadir una cuarta: si el modelo y la herramienta se pueden separar.&lt;/p&gt;
&lt;p&gt;El modelo aporta la capacidad de razonamiento, mientras que la herramienta gestiona contexto, edición de archivos, orquestación de Agent y experiencia de flujo de trabajo. Ambas cosas importan, pero es mejor no dejarlas completamente atadas entre sí. Por ejemplo, si te gustan los modelos de Claude, puedes usar el plan oficial o conectar la API a otras herramientas. Y si te gusta un editor o entorno Agent concreto, es preferible que pueda conectarse a varios modelos en lugar de obligarte a usar solo el suyo.&lt;/p&gt;
&lt;p&gt;La gracia de esto no es complicarse por gusto. Es reducir riesgos. AI Coding es uno de los segmentos que cambian más rápido. Un plan que hoy parece generoso puede cambiar de precio en dos meses, y una herramienta que hoy parece cómoda puede empeorar después de un cambio en la integración con modelos. Separar modelos y herramientas te deja margen de maniobra.&lt;/p&gt;
&lt;h2 id=&#34;los-planes-extranjeros-se-están-endureciendo&#34;&gt;Los planes extranjeros se están endureciendo
&lt;/h2&gt;&lt;p&gt;Herramientas como GitHub Copilot, Cursor, Windsurf y Claude Code siguen siendo la base de trabajo de mucha gente, pero la tendencia es cada vez más clara: mantener planes muy baratos con cuotas muy altas es más difícil, y la facturación por uso real es cada vez más común.&lt;/p&gt;
&lt;p&gt;Cuando servicios como GitHub Copilot se apoyan más en facturación por uso, el supuesto margen de ahorro de algunos planes cae bastante. Para usuarios ligeros siguen siendo cómodos, pero para quienes usan agentes, contexto largo y tareas complejas de código con mucha frecuencia, el consumo real empieza a parecerse mucho más al coste real de API.&lt;/p&gt;
&lt;p&gt;Cursor y Windsurf, en esencia, empaquetan capacidad de modelo dentro de una experiencia de IDE. Su punto fuerte es que funcionan bien desde el primer momento y ofrecen una experiencia de editor madura. Su punto débil es el mayor nivel de dependencia de herramienta. Cuanto más dependas de sus agentes propietarios, sus índices y sus flujos automáticos, más caro será migrar después.&lt;/p&gt;
&lt;p&gt;Claude Code sigue siendo atractivo tanto por experiencia como por atención del ecosistema, pero las suscripciones internacionales, la verificación de identidad, las restricciones regionales y la seguridad de los servicios intermedios son riesgos que los usuarios en China necesitan valorar con cuidado. En especial, los relays de terceros pueden mezclar modelos, ser inestables, exponer datos o desaparecer, así que no son una gran base a largo plazo para trabajo importante.&lt;/p&gt;
&lt;h2 id=&#34;ventajas-y-límites-de-los-planes-nacionales&#34;&gt;Ventajas y límites de los planes nacionales
&lt;/h2&gt;&lt;p&gt;Una ventaja de muchos planes nacionales de AI Coding es que suelen ofrecerse en forma de API, lo que hace que queden menos atados a una sola herramienta. Puedes conectarlos a OpenCode, Cline, Continue, tus propios scripts o agentes internos.&lt;/p&gt;
&lt;p&gt;El problema también es evidente: si quieres al mismo tiempo un modelo fuerte, buena velocidad y bastante cuota, hay pocos planes que cumplan todo a la vez.&lt;/p&gt;
&lt;p&gt;La familia GLM es fuerte dentro del panorama nacional, pero en horas punta el rendimiento puede volverse inestable y las tareas pesadas acaban limitadas por velocidad. Kimi tiene buen nivel, pero sus reglas de precio y cuota hay que seguirlas de cerca, sobre todo la transparencia del límite real. Modelos como MiniMax son más amables en velocidad y cuota, lo que los hace útiles para tareas ligeras del día a día, lotes y ayuda de código no demasiado compleja, aunque pueden quedar un escalón por debajo en razonamiento de ingeniería difícil. DeepSeek puede parecer muy rentable cuando un modelo nuevo está en precio promocional, pero al acabar la promoción toca reevaluarlo con tarifa normal.&lt;/p&gt;
&lt;p&gt;Por eso, en muchos casos, las opciones nacionales funcionan mejor como un grupo de modelos disponible para repartir trabajo según la tarea, y no como una apuesta total por un solo modelo y un solo plan.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-ligeros-elige-lo-que-resulte-cómodo-y-no-sobrediseñes&#34;&gt;Usuarios ligeros: elige lo que resulte cómodo y no sobrediseñes
&lt;/h2&gt;&lt;p&gt;Si solo usas AI para retocar scripts, completar documentación, explicar errores o generar herramientas pequeñas una o dos veces por semana, probablemente no necesitas una configuración complicada.&lt;/p&gt;
&lt;p&gt;En este caso importa más la comodidad. Cursor, Windsurf, Trae, CodeBuddy, Tongyi Lingma, GitHub Copilot y herramientas similares son opciones razonables. El objetivo no es perseguir el coste unitario más bajo, sino reducir fricción: algo estable dentro de tu editor, con buenas sugerencias y fácil de revertir cuando se equivoca.&lt;/p&gt;
&lt;p&gt;Para usuarios ligeros, construir capas de API, relays y proxys complejos solo para ahorrar un poco de dinero rara vez compensa. El tiempo, el riesgo de cuenta y el coste de depuración suelen costar más que la suscripción que te ahorras.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-intermedios-mira-la-relación-calidad-precio-pero-también-la-portabilidad&#34;&gt;Usuarios intermedios: mira la relación calidad-precio, pero también la portabilidad
&lt;/h2&gt;&lt;p&gt;Si usas AI todos los días para programar, modificar proyectos, generar pruebas y preparar documentación, la cuota y el consumo real empiezan a importar mucho más.&lt;/p&gt;
&lt;p&gt;En este caso conviene separar la herramienta principal de los modelos de respaldo. Por ejemplo, un plan cómodo de IDE puede servir para el trabajo diario, mientras que una API o plan agregador conectable a varias herramientas puede encargarse de tareas con contexto más largo o flujos de Agent más complejos.&lt;/p&gt;
&lt;p&gt;Aquí hay tres preguntas clave:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si se puede integrar con herramientas de terceros.&lt;/li&gt;
&lt;li&gt;Si el consumo de tokens o cuota es visible y entendible.&lt;/li&gt;
&lt;li&gt;Si al superar el límite se aplica throttling, degradación, corte del servicio o pura facturación por uso.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si un plan parece barato pero solo funciona dentro de su propia herramienta, conviene contar también el coste de migrar más adelante. Si cuesta algo más pero puede conectarse a varias herramientas, puede ser mejor como base a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-intensivos-no-bloquees-modelo-y-herramienta-juntos&#34;&gt;Usuarios intensivos: no bloquees modelo y herramienta juntos
&lt;/h2&gt;&lt;p&gt;Para los usuarios intensivos, la necesidad principal es la flexibilidad.&lt;/p&gt;
&lt;p&gt;Cuando una persona o un equipo usa agentes de AI de forma intensiva todos los días, el consumo crece muy rápido. Búsquedas de repositorio, cambios con contexto largo, depuración en múltiples rondas y reparación automática de pruebas pueden multiplicar el gasto en tokens. Si en ese punto dependes de un solo plan, aparecen tres problemas con facilidad:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La cuota deja de ser suficiente de repente.&lt;/li&gt;
&lt;li&gt;La regla de cobro cambia de forma inesperada.&lt;/li&gt;
&lt;li&gt;Una herramienta o un modelo deja de estar disponible temporalmente.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La opción más estable es montar una estructura por capas: una herramienta Agent principal, uno o varios endpoints de modelo intercambiables, un modelo barato para tareas simples y un modelo fuerte para tareas difíciles. No conviene mandar todas las tareas pequeñas al modelo más caro, ni depender solo del más barato para las tareas críticas.&lt;/p&gt;
&lt;p&gt;Para un usuario intensivo, que las herramientas puedan conectarse a cualquier modelo y que los modelos puedan moverse entre herramientas importa más que ahorrar unas decenas de dólares al mes. Lo realmente caro no suele ser la suscripción. Lo caro es quedar atrapado en un solo ecosistema y tener que reconstruir el flujo de trabajo después.&lt;/p&gt;
&lt;h2 id=&#34;una-estrategia-de-combinación-más-estable&#34;&gt;Una estrategia de combinación más estable
&lt;/h2&gt;&lt;p&gt;Una forma razonablemente sólida de organizarlo sería esta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usa un modelo de bajo coste para tareas ligeras como explicar código, escribir scripts pequeños, formatear y generar documentos simples.&lt;/li&gt;
&lt;li&gt;Usa un modelo orientado a valor para tareas intermedias como desarrollo normal de funciones, completar pruebas y sugerencias de refactorización.&lt;/li&gt;
&lt;li&gt;Usa un modelo fuerte para tareas difíciles como cambios de arquitectura, correcciones entre varios archivos, bugs complejos y razonamiento con contexto largo.&lt;/li&gt;
&lt;li&gt;Mantén abierta la capa de herramientas, eligiendo soluciones que puedan conectarse por API, exportar configuración y cambiar de modelo.&lt;/li&gt;
&lt;li&gt;Conserva un camino de respaldo, de forma que si tu plan principal cambia reglas puedas moverte rápido a otra herramienta o modelo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Puede que no sea la configuración más barata posible, pero sí una mucho más resistente. Los precios y cuotas de AI Coding van a seguir cambiando. Lo valioso a largo plazo no es un plan que hoy parezca muy generoso, sino un flujo de trabajo portable.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Los planes de AI Coding no deberían juzgarse solo por el precio mensual. Los usuarios ligeros deberían priorizar simplicidad y comodidad. Los usuarios intermedios deberían fijarse en cuota, consumo y capacidad de migrar. Los usuarios intensivos deberían separar modelos y herramientas para no quedar atrapados en un único ecosistema.&lt;/p&gt;
&lt;p&gt;La idea más importante es que los planes cambian, los modelos cambian y las herramientas también. Mantener la capacidad de elegir en tus propias manos es la forma más importante de controlar costes cuando trabajas con AI Coding a largo plazo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex vs Claude Code: cómo elegir entre dos diseños de Subagent</title>
        <link>https://knightli.com/es/2026/05/08/codex-vs-claude-code-subagent-design/</link>
        <pubDate>Fri, 08 May 2026 14:14:01 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/codex-vs-claude-code-subagent-design/</guid>
        <description>&lt;p&gt;Las herramientas de programación con IA están prestando cada vez más atención a los subagentes. No es simple moda: un solo agente acaba encontrando límites cuando debe manejar tareas reales de ingeniería.&lt;/p&gt;
&lt;p&gt;Si un agente lee código, revisa logs, modifica implementación, ejecuta pruebas, analiza errores y resume resultados a la vez, el contexto principal se ensucia rápido. Resultados de búsqueda, salidas de comandos, logs de pruebas y razonamientos intermedios se mezclan. Las decisiones posteriores se vuelven menos fiables. Además, explorar, implementar, verificar y revisar en un único hilo dificulta el paralelismo.&lt;/p&gt;
&lt;p&gt;El objetivo de los subagentes es reducir esa presión. La sesión principal deja de hacerlo todo de principio a fin y pasa a coordinar: define objetivos, asigna trabajo, recibe resultados y los integra. Un subagente se ocupa de una parte local, como exploración, implementación, verificación o revisión, y devuelve una conclusión comprimida.&lt;/p&gt;
&lt;p&gt;Un subagente no es “otra copia de mí”. Es una forma de dividir trabajo de ingeniería confuso en roles más claros.&lt;/p&gt;
&lt;h2 id=&#34;fundamentos-compartidos&#34;&gt;Fundamentos compartidos
&lt;/h2&gt;&lt;p&gt;Un sistema maduro de subagentes suele necesitar cuatro bases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aislamiento de contexto.&lt;/li&gt;
&lt;li&gt;Especialización de roles.&lt;/li&gt;
&lt;li&gt;Configuración a nivel de proyecto y usuario.&lt;/li&gt;
&lt;li&gt;Límites de herramientas y permisos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El aislamiento de contexto es esencial. En un repositorio real hay mucho material intermedio: búsquedas, logs de pruebas, salidas de comandos. Si todo entra en la sesión principal, el hilo principal se vuelve ruidoso. Un subagente puede digerir ese proceso local y devolver solo las señales útiles.&lt;/p&gt;
&lt;p&gt;La especialización de roles también importa. Multi-agent no significa abrir varias copias del mismo modelo. Un rol de exploración debe buscar, leer y resumir. Un rol de implementación debe centrarse en cambios locales. Un rol de verificación debe ejecutar checks, identificar riesgos e informar con claridad.&lt;/p&gt;
&lt;p&gt;Los límites de herramientas y permisos determinan si el sistema es seguro. Un subagente no debería heredar automáticamente todas las capacidades de la sesión principal. Un explorer de solo lectura no necesita escribir archivos. Un verifier no siempre necesita modificar implementación.&lt;/p&gt;
&lt;p&gt;Codex y Claude Code comparten estas preocupaciones, pero toman caminos distintos.&lt;/p&gt;
&lt;h2 id=&#34;codex-delegación-explícita&#34;&gt;Codex: delegación explícita
&lt;/h2&gt;&lt;p&gt;El diseño de Codex es más contenido.&lt;/p&gt;
&lt;p&gt;Ofrece un mecanismo de delegación controlado y ligero alrededor de la sesión principal actual. Cuándo delegar, a quién delegar y cuándo recoger resultados son decisiones explícitas. El flujo de control permanece en la tarea actual.&lt;/p&gt;
&lt;p&gt;Sus rasgos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La sesión principal delega explícitamente.&lt;/li&gt;
&lt;li&gt;El conjunto de roles se mantiene pequeño.&lt;/li&gt;
&lt;li&gt;La sesión principal sabe qué agente hace qué.&lt;/li&gt;
&lt;li&gt;Los resultados vuelven a la línea principal.&lt;/li&gt;
&lt;li&gt;Los límites de colaboración son transparentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto encaja con equipos que valoran orquestación manual, previsibilidad y determinismo. Puedes pedir a un explorer que inspeccione una cadena de llamadas, a un worker que haga un cambio acotado y a la sesión principal que integre el resultado.&lt;/p&gt;
&lt;p&gt;La contrapartida es que la presión de orquestación sigue en la sesión principal. Debe decidir cuándo dividir, cómo dividir, a quién asignar y cómo fusionar resultados. Para colaboración ligera es cómodo; para flujos largos puede cansar.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-agentes-como-puestos-de-trabajo&#34;&gt;Claude Code: agentes como puestos de trabajo
&lt;/h2&gt;&lt;p&gt;Claude Code toma una ruta más de plataforma.&lt;/p&gt;
&lt;p&gt;Trata los agentes como objetos describibles, seleccionables, configurables, con memoria, aislables y capaces de ejecutarse en segundo plano. Un subagente no es solo una ayuda temporal en una conversación; se parece más a un puesto de trabajo dentro de un sistema de ingeniería.&lt;/p&gt;
&lt;p&gt;El sistema puede exponer listas de agentes, casos de uso, descripciones y límites de herramientas al modelo, permitiendo que el modelo decida qué rol usar en cada turno. Eso hace la delegación más automática.&lt;/p&gt;
&lt;p&gt;Varios elementos definen este enfoque.&lt;/p&gt;
&lt;p&gt;Primero, un sistema de roles. Explorer, planner, general-purpose y verifier pueden tener descripción de uso, restricciones de herramientas, modelos por defecto y condiciones de ejecución. Un explorer de solo lectura no edita archivos; un planner diseña; un verifier comprueba.&lt;/p&gt;
&lt;p&gt;Segundo, herencia y override. Un subagente no es completamente libre. Hereda los límites grandes de la sesión principal, pero puede ajustar comportamiento local dentro de reglas permitidas.&lt;/p&gt;
&lt;p&gt;Tercero, memoria. La memoria no es solo recordar algo. Puede tener alcance: memoria de usuario para preferencias largas, memoria de proyecto para contexto del repositorio y memoria local para estado del entorno.&lt;/p&gt;
&lt;p&gt;Cuarto, background y worktree isolation. Algunas verificaciones pueden seguir en segundo plano mientras el hilo principal avanza. Si hace falta aislamiento fuerte, el agente puede trabajar en un worktree separado.&lt;/p&gt;
&lt;p&gt;Quinto, ecosistema de plugins. Si los agentes son objetos de primera clase, hay que pensar en distribución, instalación, prioridades, overrides y seguridad. Los plugin agents pueden entrar al sistema, pero campos de alto riesgo como permission mode, hooks o MCP servers deben estar controlados.&lt;/p&gt;
&lt;p&gt;Esto hace que Claude Code se parezca más a un runtime de agentes que a una herramienta de colaboración de una sola sesión.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-principal&#34;&gt;Diferencia principal
&lt;/h2&gt;&lt;p&gt;Codex se parece a una herramienta de delegación controlada:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Delegación explícita.&lt;/li&gt;
&lt;li&gt;Roles ligeros.&lt;/li&gt;
&lt;li&gt;Flujo de control claro.&lt;/li&gt;
&lt;li&gt;Subtareas centradas en la sesión actual.&lt;/li&gt;
&lt;li&gt;Adecuado para trabajo humano-orquestado y determinista.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code se parece a un sistema de puestos de ingeniería:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los agentes están modelados formalmente.&lt;/li&gt;
&lt;li&gt;Los roles son más sistemáticos.&lt;/li&gt;
&lt;li&gt;Memoria, background, aislamiento y plugins forman parte del runtime.&lt;/li&gt;
&lt;li&gt;El modelo puede ayudar a elegir roles.&lt;/li&gt;
&lt;li&gt;Adecuado para proyectos largos y workflows de plataforma.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La pregunta no es cuál tiene más funciones. Es si quieres que un subagente sea “un ayudante al que llamo explícitamente” o “un puesto permanente dentro del sistema”.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;p&gt;Elige el estilo Codex si valoras control explícito, delegación ligera y paralelismo seguro dentro de la sesión actual. Encaja con revisiones, cambios pequeños, tareas claras y flujos donde la persona quiere mantener el ritmo.&lt;/p&gt;
&lt;p&gt;Elige el estilo Claude Code si necesitas roles sistemáticos, memoria a largo plazo, ejecución en segundo plano, aislamiento por worktree, plugins y un runtime más completo.&lt;/p&gt;
&lt;p&gt;Hazte dos preguntas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Aceptas que el modelo decida quién debe hacer el trabajo?&lt;/li&gt;
&lt;li&gt;¿Necesitas un runtime de agentes más completo?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la primera te incomoda, la delegación explícita es mejor. Si la segunda es sí, un sistema tipo plataforma encaja mejor.&lt;/p&gt;
&lt;h2 id=&#34;consejos-prácticos&#34;&gt;Consejos prácticos
&lt;/h2&gt;&lt;p&gt;No trates los subagentes como “más modelos igual a más potencia”.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define límites de tarea para cada rol.&lt;/li&gt;
&lt;li&gt;Limita las herramientas de cada rol.&lt;/li&gt;
&lt;li&gt;Pide conclusiones, no logs crudos.&lt;/li&gt;
&lt;li&gt;Mantén la decisión final en la sesión principal.&lt;/li&gt;
&lt;li&gt;Haz visibles tareas en background y worktrees.&lt;/li&gt;
&lt;li&gt;Define límites de seguridad para plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de los subagentes no está en la cantidad, sino en la calidad de la división del trabajo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Codex y Claude Code resuelven el mismo problema: un solo agente no puede cargar cómodamente con todo el trabajo real de ingeniería. Ambos reconocen la importancia de aislar contexto, especializar roles, definir permisos y resumir localmente.&lt;/p&gt;
&lt;p&gt;Codex es más contenido y prioriza delegación explícita y control de la sesión principal. Claude Code es más sistemático y trata los agentes como puestos configurables, con memoria, aislamiento, background y ecosistema de plugins.&lt;/p&gt;
&lt;p&gt;La elección no depende de qué marca gana, sino de si tu flujo necesita una herramienta de colaboración controlada o un runtime completo de agentes.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>9Router: conecta Claude Code, Codex y Cursor a un mismo router de IA</title>
        <link>https://knightli.com/es/2026/05/08/9router-ai-coding-router-token-saver/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/9router-ai-coding-router-token-saver/</guid>
        <description>&lt;p&gt;9Router es un router local para herramientas de programación con IA. Permite conectar Claude Code, Codex, Cursor, Cline, Copilot, OpenCode, OpenClaw y herramientas similares a un único endpoint compatible con OpenAI, y desde ahí enrutar las solicitudes a distintos modelos y proveedores.&lt;/p&gt;
&lt;p&gt;No pretende ser otro cliente de chat. Se coloca entre tus herramientas de programación y los proveedores de modelos para resolver problemas prácticos: formatos de API incompatibles, cambios manuales entre proveedores, consumo rápido de tokens por salidas de herramientas, cortes por cuotas agotadas y configuración complicada de varias cuentas.&lt;/p&gt;
&lt;p&gt;Según el README, 9Router admite más de 40 proveedores y más de 100 modelos. Incluye RTK Token Saver, fallback automático, seguimiento de cuotas, rotación multi-cuenta, traducción de formatos y registros de solicitudes. Está escrito en JavaScript, usa Node.js, Next.js, React, Tailwind CSS y LowDB, y tiene licencia MIT.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve&#34;&gt;Para qué sirve
&lt;/h2&gt;&lt;p&gt;9Router tiene más sentido cuando usas varias herramientas de programación con IA y varias fuentes de modelos al mismo tiempo.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code usa una cuenta de suscripción.&lt;/li&gt;
&lt;li&gt;Codex o Cursor necesitan un endpoint OpenAI personalizado.&lt;/li&gt;
&lt;li&gt;Cline, Continue o RooCode necesitan una API compatible con OpenAI.&lt;/li&gt;
&lt;li&gt;Los proveedores gratuitos sirven para pruebas.&lt;/li&gt;
&lt;li&gt;GLM, MiniMax o Kimi funcionan como respaldo barato.&lt;/li&gt;
&lt;li&gt;Los modelos de mayor calidad se reservan para tareas difíciles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin 9Router, cada herramienta necesita su propio endpoint, API key, nombre de modelo y estrategia de fallback. 9Router centraliza todo eso en una capa local.&lt;/p&gt;
&lt;p&gt;API local:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dashboard:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/dashboard
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;instalación-rápida&#34;&gt;Instalación rápida
&lt;/h2&gt;&lt;p&gt;Para uso local:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Desde el código fuente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/decolua/9router.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Modo producción:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;HOSTNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0.0.0.0 &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El paquete npm requiere Node.js &lt;code&gt;&amp;gt;=18.0.0&lt;/code&gt;. En VPS o Docker, configura &lt;code&gt;JWT_SECRET&lt;/code&gt;, &lt;code&gt;INITIAL_PASSWORD&lt;/code&gt;, &lt;code&gt;DATA_DIR&lt;/code&gt; y &lt;code&gt;API_KEY_SECRET&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;conectar-herramientas-de-programación&#34;&gt;Conectar herramientas de programación
&lt;/h2&gt;&lt;p&gt;Configuración típica:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: copiada desde el dashboard de 9Router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: nombre de modelo o combo configurado en 9Router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para Codex CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:20128&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-9router-api-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex &lt;span class=&#34;s2&#34;&gt;&amp;#34;your prompt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para Cline, Continue o RooCode, elige &lt;code&gt;OpenAI Compatible&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: your-9router-api-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los nombres dependen de los proveedores conectados, por ejemplo &lt;code&gt;cc/&lt;/code&gt;, &lt;code&gt;cx/&lt;/code&gt;, &lt;code&gt;gh/&lt;/code&gt;, &lt;code&gt;glm/&lt;/code&gt;, &lt;code&gt;minimax/&lt;/code&gt;, &lt;code&gt;kr/&lt;/code&gt; y &lt;code&gt;vertex/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;rtk-token-saver&#34;&gt;RTK Token Saver
&lt;/h2&gt;&lt;p&gt;En programación con IA, muchas veces lo que más tokens consume son salidas de herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grep&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tree&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;logs&lt;/li&gt;
&lt;li&gt;listas largas de archivos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;RTK Token Saver comprime esas salidas antes de enviarlas al modelo. El proyecto afirma que puede ahorrar 20%-40% de tokens de entrada en muchas solicitudes.&lt;/p&gt;
&lt;p&gt;La ventaja es que no tienes que cambiar de herramienta ni de modelo. Aun así, para logs críticos o contenido completo de archivos, conviene probar primero que la calidad de respuesta no baje.&lt;/p&gt;
&lt;h2 id=&#34;fallback-automático&#34;&gt;Fallback automático
&lt;/h2&gt;&lt;p&gt;Puedes ordenar modelos por prioridad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. Modelo de suscripción
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. API barata
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. Proveedor gratuito
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. glm/glm-5.1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. kr/claude-sonnet-4.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El fallback reduce interrupciones, pero cambia la consistencia de salida. Para refactors grandes, migraciones o tareas sensibles, es mejor fijar un modelo principal.&lt;/p&gt;
&lt;h2 id=&#34;cuidado-con-proveedores-gratuitos&#34;&gt;Cuidado con proveedores gratuitos
&lt;/h2&gt;&lt;p&gt;Kiro, OpenCode Free y Vertex pueden ser útiles, pero sus reglas cambian. Verifica siempre si el uso es gratuito, si hay límites regionales, si se permite usar herramientas de terceros, si puede haber rate limits o bloqueos, y cuándo caduca la cuota.&lt;/p&gt;
&lt;p&gt;9Router enruta solicitudes; no cambia las condiciones del proveedor.&lt;/p&gt;
&lt;h2 id=&#34;despliegue-local&#34;&gt;Despliegue local
&lt;/h2&gt;&lt;p&gt;Para uso personal, basta con escuchar en &lt;code&gt;localhost&lt;/code&gt;. Si lo llevas a un VPS o LAN, cambia la contraseña por defecto, configura &lt;code&gt;JWT_SECRET&lt;/code&gt; y &lt;code&gt;API_KEY_SECRET&lt;/code&gt;, no expongas el dashboard directamente, y exige Bearer API key en &lt;code&gt;/v1/*&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name 9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 20128:20128 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --env-file ./.env &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-data:/app/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-usage:/root/.9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;9Router es una puerta de enlace local para herramientas de programación con IA. Unifica Claude Code, Codex, Cursor y Cline en &lt;code&gt;http://localhost:20128/v1&lt;/code&gt;, y gestiona selección de modelo, traducción de formatos, compresión de tokens, cuotas y fallback.&lt;/p&gt;
&lt;p&gt;Es más útil para usuarios intensivos que ya alternan entre varios proveedores. Empieza con una herramienta y un proveedor, y añade combos poco a poco.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/decolua/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio de 9Router en GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://9router.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sitio web de 9Router&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Paquete npm de 9Router&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI: ejecuta un agente de programación DeepSeek en la terminal</title>
        <link>https://knightli.com/es/2026/05/08/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;DeepSeek-TUI es un agente de programación con IA que corre en la terminal. Está diseñado alrededor de modelos DeepSeek V4 y se inicia con el comando &lt;code&gt;deepseek&lt;/code&gt;. Dentro de una TUI puede leer y editar archivos, ejecutar comandos shell, buscar en la web, gestionar git, conectar servidores MCP y coordinar subagentes.&lt;/p&gt;
&lt;p&gt;Es más un espacio de trabajo de terminal que un chat CLI simple. Combina lectura de código, edición de archivos, comandos, diagnósticos, recuperación de sesión y rollback del workspace.&lt;/p&gt;
&lt;p&gt;El repositorio está escrito principalmente en Rust y usa licencia MIT.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;Sirve para desarrolladores que prefieren trabajar en terminal y quieren usar modelos DeepSeek en tareas locales reales.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambios de código y análisis de proyectos.&lt;/li&gt;
&lt;li&gt;Trabajo sin abrir un IDE completo.&lt;/li&gt;
&lt;li&gt;Lectura y modificación de un workspace local.&lt;/li&gt;
&lt;li&gt;Modos Plan, Agent y YOLO.&lt;/li&gt;
&lt;li&gt;Guardar y reanudar sesiones largas.&lt;/li&gt;
&lt;li&gt;Revertir cambios del workspace.&lt;/li&gt;
&lt;li&gt;Integrar MCP, diagnósticos LSP, HTTP/SSE runtime API y skills.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para preguntas simples, un cliente web o CLI ligero basta. DeepSeek-TUI tiene más sentido cuando el modelo debe formar parte del flujo de desarrollo local.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;Con npm:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El paquete npm es un instalador/wrapper que descarga binarios Rust precompilados. Requiere Node.js &lt;code&gt;&amp;gt;=18&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Con Cargo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui-cli --locked
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui --locked
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Con Homebrew:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew tap Hmbown/deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También hay binarios en GitHub Releases para Linux x64/ARM64, macOS x64/ARM64 y Windows x64.&lt;/p&gt;
&lt;p&gt;Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -it &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e DEEPSEEK_API_KEY &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:/workspace&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ghcr.io/hmbown/deepseek-tui:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;configurar-la-api-key&#34;&gt;Configurar la API Key
&lt;/h2&gt;&lt;p&gt;En el primer inicio, DeepSeek-TUI pide la API key y la guarda en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes configurarla así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O usar variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Comprueba la instalación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para borrar la clave guardada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth clear --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;auto-mode&#34;&gt;Auto mode
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En la TUI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Auto mode decide dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modelo: &lt;code&gt;deepseek-v4-flash&lt;/code&gt; o &lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Thinking: &lt;code&gt;off&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; o &lt;code&gt;max&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes del turno real, hace una llamada pequeña de enrutamiento para analizar la petición y el contexto. Las tareas simples pueden usar Flash con thinking desactivado; tareas complejas pueden subir a Pro o mayor thinking.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;auto&lt;/code&gt; es local a DeepSeek-TUI. La API upstream recibe el modelo concreto elegido.&lt;/p&gt;
&lt;h2 id=&#34;modos&#34;&gt;Modos
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modo&lt;/th&gt;
          &lt;th&gt;Uso&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Plan&lt;/td&gt;
          &lt;td&gt;Exploración y planificación de solo lectura&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Agent&lt;/td&gt;
          &lt;td&gt;Modo interactivo con aprobaciones&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;YOLO&lt;/td&gt;
          &lt;td&gt;Autoaprobación en workspaces confiables&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;YOLO es rápido pero riesgoso. Úsalo solo en ramas temporales o directorios de prueba.&lt;/p&gt;
&lt;h2 id=&#34;herramientas&#34;&gt;Herramientas
&lt;/h2&gt;&lt;p&gt;Incluye lectura/escritura de archivos, apply patch, shell, git, web search/browse, subagentes, MCP, diagnósticos LSP, guardado/reanudación de sesiones, rollback del workspace, cola de tareas durable, HTTP/SSE runtime API y sistema de skills.&lt;/p&gt;
&lt;p&gt;Los diagnósticos LSP ayudan a devolver errores de rust-analyzer, pyright, typescript-language-server, gopls o clangd al modelo después de editar. El rollback usa snapshots side-git y comandos como &lt;code&gt;/restore&lt;/code&gt; y &lt;code&gt;revert_turn&lt;/code&gt;, pero los commits normales de git siguen siendo importantes.&lt;/p&gt;
&lt;h2 id=&#34;comandos-comunes&#34;&gt;Comandos comunes
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek &lt;span class=&#34;s2&#34;&gt;&amp;#34;explain this function&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model deepseek-v4-flash &lt;span class=&#34;s2&#34;&gt;&amp;#34;summarize&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto &lt;span class=&#34;s2&#34;&gt;&amp;#34;fix this bug&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --yolo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor --json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek models
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek sessions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume --last
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek fork &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --http
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --acp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek pr &amp;lt;N&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp validate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;zed-y-acp&#34;&gt;Zed y ACP
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;agent_servers&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;DeepSeek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;custom&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;serve&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--acp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README indica que ACP permite nuevas sesiones y respuestas a prompts, pero la edición con herramientas y la repetición de checkpoints aún no están expuestas.&lt;/p&gt;
&lt;h2 id=&#34;configuración-y-proveedores&#34;&gt;Configuración y proveedores
&lt;/h2&gt;&lt;p&gt;Configuración de usuario:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Overlay de proyecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;workspace&amp;gt;/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Campos como &lt;code&gt;api_key&lt;/code&gt;, &lt;code&gt;base_url&lt;/code&gt;, &lt;code&gt;provider&lt;/code&gt; y &lt;code&gt;mcp_config_path&lt;/code&gt; no se permiten en el overlay del proyecto.&lt;/p&gt;
&lt;p&gt;Endpoint compatible con OpenAI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider openai --api-key &lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_OPENAI_COMPATIBLE_API_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://openai-compatible.example/v4&amp;#34;&lt;/span&gt; deepseek --provider openai --model glm-5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama pull deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --provider ollama --model deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI reúne DeepSeek V4, TUI, llamadas a herramientas, diagnósticos LSP, recuperación de sesiones, rollback, MCP y skills en un flujo Rust de terminal. No es el cliente más ligero, pero su valor está en pasar del chat al desarrollo local ejecutable.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio de DeepSeek-TUI en GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepseek-tui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sitio de DeepSeek-TUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/deepseek-tui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Paquete npm de DeepSeek-TUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.deepseek.com/api_keys&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Keys&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>24 consejos de Claude Code: modo plan, rewind, CLAUDE.md, Skills, Agents y plugins</title>
        <link>https://knightli.com/es/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</link>
        <pubDate>Fri, 08 May 2026 08:54:14 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</guid>
        <description>&lt;p&gt;Claude Code no es solo una caja de chat. Se parece más a un Agent de programación que puede entrar en un directorio de proyecto, leer y escribir archivos, ejecutar comandos y mantener contexto.&lt;/p&gt;
&lt;p&gt;Si solo le das un requisito y esperas código, pronto aparecen problemas: el plan no queda claro, los permisos se repiten, el contexto crece, el resultado no convence, no sabes cómo volver atrás y no hay un lugar estable para reglas del proyecto.&lt;/p&gt;
&lt;p&gt;Estos son consejos prácticos para quienes empiezan con Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;empieza-dentro-del-directorio-del-proyecto&#34;&gt;Empieza dentro del directorio del proyecto
&lt;/h2&gt;&lt;p&gt;Claude Code funciona mejor cuando se inicia dentro del directorio del proyecto, no desde una terminal cualquiera.&lt;/p&gt;
&lt;p&gt;Crea una carpeta de proyecto, entra en ella, abre la línea de comandos e inicia Claude Code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si al entrar por primera vez pregunta si confías en la carpeta actual, confirma antes de seguir. Así podrá leer archivos, crear archivos y ejecutar operaciones alrededor del proyecto.&lt;/p&gt;
&lt;p&gt;Una práctica sencilla es pedirle que cree una web personal de fotógrafo. Es una tarea visual, permite inspeccionar el resultado y sirve para practicar generación de archivos, comandos, rewind y refactorización.&lt;/p&gt;
&lt;h2 id=&#34;usa-modo-plan-para-aclarar-la-dirección&#34;&gt;Usa modo plan para aclarar la dirección
&lt;/h2&gt;&lt;p&gt;Ante tareas complejas, Claude Code puede entrar en modo plan. Su función es discutir requisitos, dividir pasos y pedir aprobación antes de ejecutar.&lt;/p&gt;
&lt;p&gt;Tras escribir un plan, suelen aparecer opciones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aprobar el plan y permitir automáticamente herramientas de edición posteriores.&lt;/li&gt;
&lt;li&gt;Aprobar el plan, pero pedir confirmación manual para futuras ediciones.&lt;/li&gt;
&lt;li&gt;Pausar y seguir discutiendo el plan con Claude Code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la tarea está clara, aprueba y continúa. Si no, pídele que complete el plan: estilo de página, stack técnico, estructura de carpetas, interacciones y criterios de aceptación.&lt;/p&gt;
&lt;p&gt;El modo plan reduce retrabajo. Si el Agent empieza directamente, puede crear muchos archivos rápido; si la dirección era incorrecta, luego todo se vuelve más difícil de corregir.&lt;/p&gt;
&lt;h2 id=&#34;cambia-de-modo-con-shift--tab&#34;&gt;Cambia de modo con Shift + Tab
&lt;/h2&gt;&lt;p&gt;En Claude Code, &lt;code&gt;Shift + Tab&lt;/code&gt; permite cambiar entre modos de trabajo. Se usa a menudo para entrar en modo plan o para cambiar a un modo de aprobación automática de edición.&lt;/p&gt;
&lt;p&gt;Hábitos recomendados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proyecto nuevo, función nueva o cambio grande: primero modo plan.&lt;/li&gt;
&lt;li&gt;Cambio pequeño o arreglo claro: ejecutar directamente.&lt;/li&gt;
&lt;li&gt;Borrado, reemplazos masivos o instalación de dependencias: mantener confirmación humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En modo plan, Claude Code puede preguntar detalles del proyecto. Usa flechas para elegir opciones y Enter para confirmar. Después de enviar feedback, actualizará el plan.&lt;/p&gt;
&lt;h2 id=&#34;no-abras-todos-los-permisos&#34;&gt;No abras todos los permisos
&lt;/h2&gt;&lt;p&gt;Cuando Claude Code ejecuta comandos, edita archivos o inicia programas, puede pedir permisos.&lt;/p&gt;
&lt;p&gt;Opciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permitir solo esta vez.&lt;/li&gt;
&lt;li&gt;Permitir el mismo tipo de comando en esta sesión.&lt;/li&gt;
&lt;li&gt;Rechazar o pausar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para abrir una página local, iniciar un servidor de desarrollo o revisar archivos, aprueba según necesidad. Pero no uses durante mucho tiempo un modo de &amp;ldquo;permitir todo&amp;rdquo; solo por comodidad.&lt;/p&gt;
&lt;p&gt;La aprobación total automática solo tiene sentido en tareas de bajo riesgo, muy claras y con respaldo Git. En el uso diario, conserva confirmación humana para borrar, sobrescribir carpetas, instalar dependencias, usar red, hacer commits o ejecutar scripts.&lt;/p&gt;
&lt;h2 id=&#34;ejecuta-comandos-locales-en-modo-terminal&#34;&gt;Ejecuta comandos locales en modo terminal
&lt;/h2&gt;&lt;p&gt;Claude Code puede entrar en modo de comandos de terminal y ejecutar comandos locales.&lt;/p&gt;
&lt;p&gt;Por ejemplo, después de generar una página, puedes abrir un archivo HTML con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;start index.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start&lt;/code&gt; es un comando de Windows para abrir archivos. Es más rápido que buscar el archivo manualmente.&lt;/p&gt;
&lt;p&gt;El modo terminal sirve para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abrir páginas generadas.&lt;/li&gt;
&lt;li&gt;Ver contenido de directorios.&lt;/li&gt;
&lt;li&gt;Iniciar servidores locales.&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas o builds.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero los comandos de alto riesgo siguen requiriendo cuidado: borrado recursivo, mover directorios, sobrescrituras masivas y cambios de entorno.&lt;/p&gt;
&lt;h2 id=&#34;usa-rewind-cuando-el-resultado-se-desvía&#34;&gt;Usa rewind cuando el resultado se desvía
&lt;/h2&gt;&lt;p&gt;Si la página o el código que hizo Claude Code no es lo que quieres y cada corrección lo empeora, usa rewind temprano.&lt;/p&gt;
&lt;p&gt;Rewind puede devolver conversación o código a un punto anterior. Opciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revertir código y conversación.&lt;/li&gt;
&lt;li&gt;Revertir solo conversación.&lt;/li&gt;
&lt;li&gt;Revertir solo código.&lt;/li&gt;
&lt;li&gt;Comprimir contenido anterior como resumen.&lt;/li&gt;
&lt;li&gt;Cancelar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la dirección se desvió claramente, conviene volver código y conversación juntos. Así contexto y archivos regresan a un estado más limpio.&lt;/p&gt;
&lt;p&gt;Ten en cuenta que el rewind de Claude Code normalmente cubre archivos creados o modificados con herramientas internas. Archivos creados por comandos externos quizá no se reviertan por completo. Para proyectos importantes, usa Git.&lt;/p&gt;
&lt;h2 id=&#34;escribe-prompts-largos-en-un-editor&#34;&gt;Escribe prompts largos en un editor
&lt;/h2&gt;&lt;p&gt;No metas requisitos complejos en una sola línea.&lt;/p&gt;
&lt;p&gt;Si el sistema permite editar un prompt largo en un editor, úsalo, guarda y luego envíalo a Claude Code.&lt;/p&gt;
&lt;p&gt;Un prompt largo debería aclarar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivo.&lt;/li&gt;
&lt;li&gt;Stack técnico.&lt;/li&gt;
&lt;li&gt;Qué no debe hacerse.&lt;/li&gt;
&lt;li&gt;Qué archivos deben conservarse.&lt;/li&gt;
&lt;li&gt;Cómo verificar el resultado.&lt;/li&gt;
&lt;li&gt;Criterios de aceptación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, si quieres refactorizar una página HTML a un stack más moderno, no escribas solo &amp;ldquo;refactoriza&amp;rdquo;. Explica estructura por componentes, preservación visual, diseño responsive y pide ejecutar una comprobación de build.&lt;/p&gt;
&lt;h2 id=&#34;recupera-sesiones-después-de-salir&#34;&gt;Recupera sesiones después de salir
&lt;/h2&gt;&lt;p&gt;Si necesitas salir de Claude Code, hazlo normalmente. Luego vuelve al mismo directorio y arranca otra vez:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el historial anterior no aparece, usa comandos de historial para ver sesiones recientes y cargar la sesión anterior.&lt;/p&gt;
&lt;p&gt;Esto sirve para continuar trabajo interrumpido. Pero no uses el historial como única memoria. Reglas del proyecto, stack, comandos comunes y notas deben estar en archivos del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;guarda-reglas-del-proyecto-en-claudemd&#34;&gt;Guarda reglas del proyecto en CLAUDE.md
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es un archivo de memoria importante para Claude Code. Normalmente está en la raíz del proyecto y registra reglas, stack, estructura de carpetas y restricciones de colaboración.&lt;/p&gt;
&lt;p&gt;Puedes inicializarlo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; sirve para registrar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivos del proyecto.&lt;/li&gt;
&lt;li&gt;Stack técnico.&lt;/li&gt;
&lt;li&gt;Comandos de inicio, prueba y build.&lt;/li&gt;
&lt;li&gt;Estructura de directorios.&lt;/li&gt;
&lt;li&gt;Estilo de código.&lt;/li&gt;
&lt;li&gt;Acciones prohibidas.&lt;/li&gt;
&lt;li&gt;Reglas de commit y despliegue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En cada conversación, Claude Code puede usar estas reglas como parte del contexto. Piensa en él como un manual del proyecto.&lt;/p&gt;
&lt;p&gt;Una prueba sencilla es añadir una regla evidente en &lt;code&gt;CLAUDE.md&lt;/code&gt; y luego preguntar algo. Si la respuesta sigue la regla, leyó la memoria del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;usa--para-referenciar-archivos&#34;&gt;Usa @ para referenciar archivos
&lt;/h2&gt;&lt;p&gt;En el cuadro de entrada, &lt;code&gt;@&lt;/code&gt; permite seleccionar archivos o Agents y añadirlos al contexto actual.&lt;/p&gt;
&lt;p&gt;Sirve para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hacer que Claude Code lea un archivo de configuración.&lt;/li&gt;
&lt;li&gt;Pedir cambios en una página concreta.&lt;/li&gt;
&lt;li&gt;Continuar según &lt;code&gt;CLAUDE.md&lt;/code&gt; u otro documento.&lt;/li&gt;
&lt;li&gt;Decir explícitamente &amp;ldquo;mira solo este archivo, no adivines la estructura&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comparado con pegar el contenido del archivo, &lt;code&gt;@&lt;/code&gt; es más claro y menos propenso a omisiones.&lt;/p&gt;
&lt;h2 id=&#34;revisa-y-comprime-contexto&#34;&gt;Revisa y comprime contexto
&lt;/h2&gt;&lt;p&gt;Tras una conversación larga, el contexto crece. Si se vuelve demasiado largo, el modelo puede ralentizarse o ignorar detalles antiguos.&lt;/p&gt;
&lt;p&gt;Usa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el contexto ya es largo, comprime el historial:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si aun así el efecto es malo, limpia el contexto actual:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de limpiar, Claude Code todavía puede entender parte del proyecto mediante archivos, &lt;code&gt;CLAUDE.md&lt;/code&gt; y el directorio actual, pero no conserva todo el historial de conversación.&lt;/p&gt;
&lt;p&gt;Una regla útil: abre una conversación nueva al terminar una tarea, escribe reglas del proyecto en &lt;code&gt;CLAUDE.md&lt;/code&gt;, y no acumules discusión temporal para siempre en un solo chat.&lt;/p&gt;
&lt;h2 id=&#34;skills-convierte-flujos-fijos-en-instrucciones&#34;&gt;Skills: convierte flujos fijos en instrucciones
&lt;/h2&gt;&lt;p&gt;Skills son instrucciones reutilizables para Claude Code. No son prompts de una sola vez, sino flujos de tarea empaquetados.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si generas informes semanales a menudo, crea una Skill de informe semanal con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Información de entrada necesaria.&lt;/li&gt;
&lt;li&gt;Formato de salida.&lt;/li&gt;
&lt;li&gt;Tono y estructura.&lt;/li&gt;
&lt;li&gt;Qué debe conservarse.&lt;/li&gt;
&lt;li&gt;Qué no debe inventarse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las Skills suelen contener &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt; e instrucciones detalladas. Al instalarlas en el directorio global de Skills, Claude Code puede reconocerlas y cargarlas cuando la tarea encaja.&lt;/p&gt;
&lt;p&gt;Candidatos adecuados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Informes semanales.&lt;/li&gt;
&lt;li&gt;Plantillas de revisión de código.&lt;/li&gt;
&lt;li&gt;Organización de documentos.&lt;/li&gt;
&lt;li&gt;Procesamiento de imágenes por lotes.&lt;/li&gt;
&lt;li&gt;Artículos con formato fijo.&lt;/li&gt;
&lt;li&gt;Flujos de inicialización de proyectos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si copias el mismo prompt muchas veces, conviértelo en Skill.&lt;/p&gt;
&lt;h2 id=&#34;agents-delega-subtareas-a-asistentes-independientes&#34;&gt;Agents: delega subtareas a asistentes independientes
&lt;/h2&gt;&lt;p&gt;Agents no son lo mismo que Skills.&lt;/p&gt;
&lt;p&gt;Una Skill es un manual de instrucciones. Un Agent se parece más a un asistente independiente que trabaja fuera de la conversación principal y devuelve resultados.&lt;/p&gt;
&lt;p&gt;Su valor está en aislar contexto. Para una revisión de código, puedes crear un Agent de solo lectura que lea el proyecto y entregue un informe sin modificar archivos. Así no contamina la conversación principal y reduce riesgos.&lt;/p&gt;
&lt;p&gt;Al crear un Agent, considera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si será de proyecto o de usuario.&lt;/li&gt;
&lt;li&gt;Si Claude Code debe generar la configuración.&lt;/li&gt;
&lt;li&gt;Qué herramientas puede usar.&lt;/li&gt;
&lt;li&gt;Qué modelo usará.&lt;/li&gt;
&lt;li&gt;Si guardará memoria.&lt;/li&gt;
&lt;li&gt;Si el prompt del Agent es claro.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para Agents de auditoría de código, da solo permisos de lectura. Primero que entregue un informe; luego la conversación principal decide si cambia código.&lt;/p&gt;
&lt;h2 id=&#34;plugins-empaqueta-skills-agents-mcp-y-hooks&#34;&gt;Plugins: empaqueta Skills, Agents, MCP y Hooks
&lt;/h2&gt;&lt;p&gt;Los plugins son paquetes de capacidad más completos. Pueden incluir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Agents&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Frente a una Skill aislada, un plugin sirve mejor para capacidades de conjunto. Un plugin de diseño frontend puede empaquetar estética de página, reglas de layout, hábitos de componentes y Agents relacionados.&lt;/p&gt;
&lt;p&gt;Al instalar plugins, suele haber opciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Directorio de usuario, efectivo para todos los proyectos.&lt;/li&gt;
&lt;li&gt;Directorio de proyecto, compartido con el proyecto.&lt;/li&gt;
&lt;li&gt;Directorio local del proyecto, solo efectivo en tu ordenador.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para capacidades personales frecuentes, usa el directorio de usuario. Para acuerdos de equipo, usa el proyecto. Para pruebas temporales, usa instalación local.&lt;/p&gt;
&lt;h2 id=&#34;los-plugins-mejoran-tareas-concretas&#34;&gt;Los plugins mejoran tareas concretas
&lt;/h2&gt;&lt;p&gt;En generación de páginas frontend, un plugin suele ser más estable que un prompt desnudo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, para &amp;ldquo;crear una web personal de fotógrafo&amp;rdquo;, un prompt normal puede crear una página aceptable. Si usas explícitamente un plugin de diseño frontend, la estructura, jerarquía visual, espaciado, color y acabado suelen mejorar.&lt;/p&gt;
&lt;p&gt;Esto no reemplaza el criterio humano. Lo razonable es dejar que el plugin genere un primer borrador mejor y luego ajustar detalles manualmente.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-de-trabajo-más-estable&#34;&gt;Un flujo de trabajo más estable
&lt;/h2&gt;&lt;p&gt;Combinando todo lo anterior, queda un flujo más estable:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inicia &lt;code&gt;claude&lt;/code&gt; dentro del directorio del proyecto.&lt;/li&gt;
&lt;li&gt;Discute requisitos primero en modo plan.&lt;/li&gt;
&lt;li&gt;Confirma stack y criterios de aceptación antes de aprobar.&lt;/li&gt;
&lt;li&gt;Mantén confirmación manual para acciones de alto riesgo.&lt;/li&gt;
&lt;li&gt;Usa modo terminal para previsualización y pruebas.&lt;/li&gt;
&lt;li&gt;Usa rewind cuando el resultado se desvíe.&lt;/li&gt;
&lt;li&gt;Escribe reglas en &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Revisa y comprime contexto en conversaciones largas.&lt;/li&gt;
&lt;li&gt;Convierte flujos repetidos en Skills.&lt;/li&gt;
&lt;li&gt;Delega inspección, investigación y análisis a Agents de solo lectura.&lt;/li&gt;
&lt;li&gt;Usa plugins para tareas de dominio específico.&lt;/li&gt;
&lt;li&gt;Mantén puntos de commit Git en proyectos importantes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Así Claude Code será mucho más estable que enviar una frase y esperar generación.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La eficiencia de Claude Code no viene solo del modelo, sino también del control del flujo.&lt;/p&gt;
&lt;p&gt;El modo plan define la dirección, los permisos controlan el riesgo, rewind reduce retrabajo, &lt;code&gt;CLAUDE.md&lt;/code&gt; guarda reglas del proyecto, &lt;code&gt;/context&lt;/code&gt;, &lt;code&gt;/compact&lt;/code&gt; y &lt;code&gt;/clear&lt;/code&gt; gestionan contexto, Skills reutilizan flujos, Agents aíslan subtareas y plugins empaquetan capacidades completas.&lt;/p&gt;
&lt;p&gt;La mejor forma de usar Claude Code es dejar que avance dentro de límites claros, no entregarle todo el proyecto de una vez.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>opencode, Claude Code y Codex: diferencias y guía de herramientas open source de programación con IA</title>
        <link>https://knightli.com/es/2026/05/08/opencode-open-source-ai-coding-agent/</link>
        <pubDate>Fri, 08 May 2026 08:33:37 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/opencode-open-source-ai-coding-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;opencode&lt;/code&gt; es un AI Coding Agent open source de anomalyco. Su posicionamiento es directo: dar a los desarrolladores un asistente de código programable, extensible y capaz de conectarse a varios proveedores de modelos dentro de la terminal.&lt;/p&gt;
&lt;p&gt;Si lo comparamos con &lt;code&gt;Claude Code&lt;/code&gt; y &lt;code&gt;Codex&lt;/code&gt;, los tres resuelven una misma clase de problema: llevar la IA a bases de código reales para entender contexto, modificar archivos, ejecutar comandos y correr pruebas. Pero su orientación de producto es distinta.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;opencode&lt;/code&gt; pone más énfasis en open source, soporte de múltiples modelos y TUI de terminal. &lt;code&gt;Claude Code&lt;/code&gt; enfatiza el ecosistema de modelos de Anthropic y la colaboración de ingeniería local. &lt;code&gt;Codex&lt;/code&gt; es el AI coding agent de OpenAI, disponible desde la terminal, IDEs, Codex app y tareas en la nube.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es-opencode&#34;&gt;Para quién es opencode
&lt;/h2&gt;&lt;p&gt;opencode encaja mejor con estos tipos de desarrolladores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quienes quieren completar cambios de código, análisis de proyectos y tareas de ingeniería desde la terminal.&lt;/li&gt;
&lt;li&gt;Quienes no quieren que su AI Coding Agent dependa de un único proveedor de modelos.&lt;/li&gt;
&lt;li&gt;Quienes prefieren herramientas open source y quieren auditarlas, ampliarlas o construir sobre ellas.&lt;/li&gt;
&lt;li&gt;Quienes ya están cómodos con Neovim, TUI y flujos de línea de comandos.&lt;/li&gt;
&lt;li&gt;Quienes quieren controlar en el futuro el mismo agente de programación desde una app de escritorio, móvil u otros clientes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su objetivo no es crear otra ventana de chat, sino poner capacidades de programación con IA dentro de la terminal y los directorios de proyecto que los desarrolladores ya usan.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;El README oficial ofrece varias formas de instalación.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Instalación directa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# npm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm i -g opencode-ai@latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;choco install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# macOS y Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install anomalyco/tap/opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Arch Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;paru -S opencode-bin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Otros métodos&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mise use -g opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nix run nixpkgs#opencode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README oficial también recomienda eliminar versiones anteriores a 0.1.x antes de instalar, para evitar problemas causados por restos de versiones antiguas.&lt;/p&gt;
&lt;p&gt;El script de instalación elige el directorio de instalación con esta prioridad:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;$OPENCODE_INSTALL_DIR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$XDG_BIN_DIR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$HOME/bin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$HOME/.opencode/bin&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si necesitas especificar una ruta, puedes usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENCODE_INSTALL_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/bin curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;XDG_BIN_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$HOME&lt;/span&gt;/.local/bin curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;la-app-de-escritorio-sigue-en-beta&#34;&gt;La app de escritorio sigue en Beta
&lt;/h2&gt;&lt;p&gt;Además de la herramienta de línea de comandos, opencode también ofrece una app de escritorio, actualmente marcada como Beta. Se puede descargar desde GitHub Releases o &lt;code&gt;opencode.ai/download&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La versión de escritorio cubre estas plataformas:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Plataforma&lt;/th&gt;
          &lt;th&gt;Archivo&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS Apple Silicon&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-mac-arm64.dmg&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS Intel&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-mac-x64.dmg&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-windows-x64.exe&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;.deb&lt;/code&gt;, &lt;code&gt;.rpm&lt;/code&gt; o &lt;code&gt;.AppImage&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En macOS y Windows también se puede instalar la app de escritorio con gestores de paquetes.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# macOS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install --cask opencode-desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop bucket add extras
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop install extras/opencode-desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;dos-modos-agent-integrados&#34;&gt;Dos modos Agent integrados
&lt;/h2&gt;&lt;p&gt;opencode incluye dos Agent integrados, que se pueden cambiar con la tecla &lt;code&gt;Tab&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;build&lt;/code&gt; es el modo predeterminado. Tiene permisos completos de desarrollo y sirve para editar código directamente, ejecutar comandos y avanzar en tareas de ingeniería.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;plan&lt;/code&gt; es el modo de solo lectura. Es más adecuado para analizar bases de código desconocidas, entender la estructura del proyecto y preparar un plan de cambios. Por defecto rechaza ediciones de archivos y pregunta antes de ejecutar comandos bash.&lt;/p&gt;
&lt;p&gt;Además, opencode incluye un sub-Agent &lt;code&gt;general&lt;/code&gt; para búsquedas complejas y tareas de varios pasos. Los usuarios pueden invocarlo escribiendo &lt;code&gt;@general&lt;/code&gt; en un mensaje.&lt;/p&gt;
&lt;p&gt;Este diseño es bastante práctico: antes de actuar, usa &lt;code&gt;plan&lt;/code&gt; para entender el proyecto; cuando haga falta cambiar código, cambia a &lt;code&gt;build&lt;/code&gt;. En repositorios grandes, separar permisos de lectura y escritura ayuda a reducir errores.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-codex&#34;&gt;Qué es Codex
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Codex&lt;/code&gt; es el AI coding agent de OpenAI para ayudar a desarrolladores a escribir código, revisar código, corregir bugs y entregar tareas de ingeniería.&lt;/p&gt;
&lt;p&gt;A diferencia de una herramienta simple de autocompletado, Codex se parece más a un Agent capaz de operar sobre una base de código. Puede trabajar contigo en herramientas locales y también puede recibir tareas delegadas para ejecutarlas en la nube. Los materiales oficiales de OpenAI describen Codex como disponible desde varias superficies, incluyendo CLI, IDEs, Codex app y flujos en la nube de ChatGPT/Codex.&lt;/p&gt;
&lt;p&gt;Para desarrolladores, Codex tiene varios puntos importantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede leer bases de código, editar archivos, ejecutar comandos y correr pruebas.&lt;/li&gt;
&lt;li&gt;Soporta varias interfaces, incluyendo terminal, IDE, app y nube.&lt;/li&gt;
&lt;li&gt;Encaja con corrección de bugs, desarrollo de funciones, refactorización, migraciones, revisión de código y generación de pruebas.&lt;/li&gt;
&lt;li&gt;Está más ligado a cuentas, modelos y ecosistema de producto de OpenAI.&lt;/li&gt;
&lt;li&gt;Las tareas en la nube sirven para ejecutar en paralelo varias tareas de ingeniería relativamente bien definidas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si opencode se parece más a un framework abierto de agente en terminal, Codex se parece más a un banco de trabajo completo de programación con IA ofrecido por OpenAI: colaboración local, delegación en la nube y flujos de ingeniería más largos para equipos.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-principales&#34;&gt;Diferencias principales
&lt;/h2&gt;&lt;p&gt;opencode, Claude Code y Codex son herramientas de programación con IA, pero la elección se entiende mejor mirando estas dimensiones.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Herramienta&lt;/th&gt;
          &lt;th&gt;Posicionamiento central&lt;/th&gt;
          &lt;th&gt;Ventajas principales&lt;/th&gt;
          &lt;th&gt;Mejor para&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;opencode&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;AI Coding Agent open source&lt;/td&gt;
          &lt;td&gt;Open source, múltiples modelos, TUI, arquitectura cliente/servidor&lt;/td&gt;
          &lt;td&gt;Desarrolladores que quieren una cadena de herramientas abierta, modelos reemplazables y un flujo centrado en terminal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Herramienta de programación de línea de comandos de Anthropic&lt;/td&gt;
          &lt;td&gt;Experiencia con modelos Claude, comprensión de código, contexto largo, colaboración en tareas de ingeniería&lt;/td&gt;
          &lt;td&gt;Desarrolladores que ya usan el ecosistema Claude/Anthropic y quieren avanzar tareas de código locales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Codex&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;AI coding agent de OpenAI&lt;/td&gt;
          &lt;td&gt;CLI, IDE, Codex app, tareas en la nube, flujos multi-Agent&lt;/td&gt;
          &lt;td&gt;Equipos que ya usan ChatGPT/OpenAI y quieren combinar colaboración local con delegación en la nube&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En resumen, las palabras clave de opencode son &amp;ldquo;apertura y reemplazabilidad&amp;rdquo;; las de Claude Code son &amp;ldquo;ecosistema Claude y agente local de ingeniería&amp;rdquo;; y las de Codex son &amp;ldquo;ecosistema OpenAI y colaboración desde múltiples entradas&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-con-claude-code&#34;&gt;Diferencias con Claude Code
&lt;/h2&gt;&lt;p&gt;El FAQ oficial de opencode lo compara directamente con Claude Code. Ambos son muy parecidos en capacidad, pero las diferencias principales son estas.&lt;/p&gt;
&lt;p&gt;Primero, opencode es un proyecto 100% open source, alojado en GitHub y publicado con MIT license.&lt;/p&gt;
&lt;p&gt;Segundo, opencode no depende de un único proveedor de modelos. Recomienda los modelos ofrecidos a través de OpenCode Zen, pero también puede trabajar con Claude, OpenAI, Google o modelos locales. Para desarrolladores, esto significa que cuando cambien el costo, la capacidad o la disponibilidad de los modelos, no quedarán atados a una sola plataforma.&lt;/p&gt;
&lt;p&gt;Tercero, opencode incluye soporte LSP opcional. Para autocompletado, navegación, diagnósticos y comprensión del proyecto, LSP es una base muy importante.&lt;/p&gt;
&lt;p&gt;Cuarto, opencode pone más énfasis en TUI. Está creado por usuarios de Neovim y los creadores de terminal.shop, así que el foco del producto está claramente en la experiencia de terminal.&lt;/p&gt;
&lt;p&gt;Quinto, opencode usa una arquitectura cliente/servidor. Esto significa que opencode puede ejecutarse en tu computadora y, en el futuro, controlarse desde una TUI, una app de escritorio, una app móvil u otros clientes. La TUI es solo una de las posibles interfaces.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-elegir-opencode-claude-code-o-codex&#34;&gt;Cuándo elegir opencode, Claude Code o Codex
&lt;/h2&gt;&lt;p&gt;Si ya usas Claude Code o Codex, opencode no tiene por qué reemplazarlos de inmediato. Una forma más razonable de verlo es que ofrece una opción abierta, con modelos reemplazables y orientada a la terminal.&lt;/p&gt;
&lt;p&gt;Conviene considerar primero opencode cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres que tu herramienta de programación con IA sea lo más open source posible.&lt;/li&gt;
&lt;li&gt;No quieres atar tu flujo de trabajo a un proveedor de modelos.&lt;/li&gt;
&lt;li&gt;Quieres probar Claude, OpenAI, Google o modelos locales con la misma herramienta.&lt;/li&gt;
&lt;li&gt;Te gustan los flujos TUI y no quieres que una app de escritorio o web interrumpa tu flujo principal.&lt;/li&gt;
&lt;li&gt;Te interesa el potencial de control remoto de una arquitectura cliente/servidor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conviene considerar primero Claude Code cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usas principalmente modelos Claude.&lt;/li&gt;
&lt;li&gt;Te importan el contexto largo, la comprensión de código y la colaboración en tareas de ingeniería complejas.&lt;/li&gt;
&lt;li&gt;Quieres avanzar cambios, pruebas y refactorizaciones dentro de un repositorio local.&lt;/li&gt;
&lt;li&gt;Confías más en la experiencia predeterminada de Claude Code diseñada por Anthropic.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conviene considerar primero Codex cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ya usas ChatGPT o el ecosistema de cuentas de OpenAI.&lt;/li&gt;
&lt;li&gt;Quieres un mismo coding agent en terminal, IDE, app de escritorio y tareas en la nube.&lt;/li&gt;
&lt;li&gt;Quieres delegar en la nube correcciones de bugs, desarrollo de funciones, migraciones o generación de pruebas relativamente claras, en paralelo.&lt;/li&gt;
&lt;li&gt;Necesitas revisión de código, tareas en segundo plano, colaboración de equipo y flujos multi-Agent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si priorizas una experiencia oficial de extremo a extremo, configuración predeterminada de modelos, administración empresarial e integraciones listas, Claude Code o Codex pueden ser más cómodos. Si priorizas control, apertura y enfoque provider-agnostic, opencode merece atención.&lt;/p&gt;
&lt;h2 id=&#34;puntos-a-tener-en-cuenta&#34;&gt;Puntos a tener en cuenta
&lt;/h2&gt;&lt;p&gt;opencode, Claude Code y Codex avanzan rápido. Los releases de GitHub, comandos de instalación, nombres de archivos de escritorio, disponibilidad de modelos y permisos de planes pueden cambiar. Antes de instalar o elegir, conviene revisar directamente el README, la documentación y las páginas de releases oficiales de cada herramienta.&lt;/p&gt;
&lt;p&gt;Además, la app de escritorio de opencode sigue marcada como Beta, así que no conviene tratarla por defecto como una herramienta estable de producción. Para tareas de ingeniería diarias, la versión de terminal sigue siendo la entrada principal.&lt;/p&gt;
&lt;p&gt;Visto como tendencia de herramientas, opencode representa la dirección de cadena de herramientas abierta para AI Coding Agents: modelos reemplazables, clientes reemplazables y una capacidad central de agente lo más abierta posible. Codex y Claude Code se parecen más a modelos convertidos por sus empresas en superficies de producto completas para coding agents. Para desarrolladores, ambas rutas probablemente coexistirán durante mucho tiempo.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;opencode GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anomalyco/opencode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sitio oficial de opencode: &lt;a class=&#34;link&#34; href=&#34;https://opencode.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://opencode.ai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;documentación de opencode: &lt;a class=&#34;link&#34; href=&#34;https://opencode.ai/docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://opencode.ai/docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;opencode Releases: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anomalyco/opencode/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenAI Codex: &lt;a class=&#34;link&#34; href=&#34;https://openai.com/codex/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.com/codex/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using Codex with your ChatGPT plan: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenAI Codex CLI Getting Started: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11096431-openai-codex-ci-getting-started&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11096431-openai-codex-ci-getting-started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Flash para una demo de juego en Godot: ¿hasta dónde llegan unos centavos?</title>
        <link>https://knightli.com/es/2026/05/06/deepseek-v4-flash-godot-game-demo/</link>
        <pubDate>Wed, 06 May 2026 09:22:18 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/06/deepseek-v4-flash-godot-game-demo/</guid>
        <description>&lt;p&gt;¿Puede &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; encargarse del desarrollo de una demo de juego en Godot?&lt;/p&gt;
&lt;p&gt;El foco es simple: ¿puede crear una pequeña demo de Godot que se ejecute, se observe y tenga efectos físicos?&lt;/p&gt;
&lt;p&gt;La respuesta corta es sí. La calidad no es comercial, pero ya es suficiente para prototipos de gameplay y demos de interacción física. Más importante aún, el costo es muy bajo, lo que lo hace adecuado para validar ideas rápidamente.&lt;/p&gt;
&lt;h2 id=&#34;rendimiento-de-la-demo&#34;&gt;Rendimiento de la demo
&lt;/h2&gt;&lt;p&gt;El foco de esta demo es la interacción física.&lt;/p&gt;
&lt;p&gt;Varios efectos visibles incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La cuerda puede cortarse.&lt;/li&gt;
&lt;li&gt;La caja cae al suelo.&lt;/li&gt;
&lt;li&gt;Después de aumentar la masa, las colisiones de la caja se vuelven más contundentes.&lt;/li&gt;
&lt;li&gt;La cuerda muestra elasticidad evidente.&lt;/li&gt;
&lt;li&gt;Después de ajustar fricción y elasticidad, la caja muestra deslizamiento y rebote claros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo que presenta, esto ya no es solo &amp;ldquo;unos scripts de Godot generados&amp;rdquo;. Es un pequeño prototipo que puede ejecutarse y mostrar comportamiento físico observable.&lt;/p&gt;
&lt;h2 id=&#34;usabilidad&#34;&gt;Usabilidad
&lt;/h2&gt;&lt;p&gt;El valor de esta demo es que puede ejecutarse, verse y modificarse. No es un juego completo ni un proyecto de ingeniería listo para comercialización directa, pero ya demuestra varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; puede entender el objetivo básico de una demo de Godot.&lt;/li&gt;
&lt;li&gt;Un AI Agent puede convertir requisitos en un proyecto ejecutable.&lt;/li&gt;
&lt;li&gt;Tareas no web como interacción física en Godot están entrando en una etapa de prototipado de bajo costo.&lt;/li&gt;
&lt;li&gt;Para desarrolladores individuales, puede convertir rápidamente una idea en algo visible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el objetivo es construir un juego formal, claramente no basta. Pero si el objetivo es verificar si una idea de gameplay es interesante o si el efecto físico aproximado puede hacerse, esta demo ya es usable.&lt;/p&gt;
&lt;h2 id=&#34;significado-del-costo&#34;&gt;Significado del costo
&lt;/h2&gt;&lt;p&gt;La parte más notable no es lo pulidos que son los visuales, sino el costo.&lt;/p&gt;
&lt;p&gt;Si una demo física de Godot puede producir una versión ejecutable con costos de modelo de unos pocos centavos, su significado no es reemplazar el desarrollo profesional de videojuegos. Es reducir de forma drástica el costo de prueba y error de prototipos.&lt;/p&gt;
&lt;p&gt;Antes, validar una pequeña idea de juego normalmente requería saber Godot, escribir scripts, configurar escenas y ajustar parámetros físicos. Ahora un AI Agent puede generar primero una versión ejecutable, y los humanos pueden juzgar si la dirección tiene sentido.&lt;/p&gt;
&lt;p&gt;Para desarrolladores indie, este tipo de experimentación de bajo costo es útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Validar rápidamente conceptos de gameplay.&lt;/li&gt;
&lt;li&gt;Generar demos temporales para que otros las vean.&lt;/li&gt;
&lt;li&gt;Explorar APIs de Godot y el sistema físico.&lt;/li&gt;
&lt;li&gt;Convertir ideas en un primer proyecto ejecutable.&lt;/li&gt;
&lt;li&gt;Reducir el costo de código escrito a mano antes de aclarar la dirección.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rendimiento-de-deepseek-v4-flash&#34;&gt;Rendimiento de DeepSeek V4 Flash
&lt;/h2&gt;&lt;p&gt;Vale la pena notar que el modelo usado aquí es &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt;, no un modelo insignia más caro y pesado.&lt;/p&gt;
&lt;p&gt;Funciona bien en el rol de modelo de prototipado de bajo costo. No es el más fuerte, estable ni adecuado para entregar ingeniería de producción, pero resulta atractivo en escenarios sensibles al presupuesto donde el objetivo es probar rápidamente una dirección.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4 Flash + Agent + Godot&lt;/code&gt; encaja mejor con estas tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pequeños prototipos de gameplay.&lt;/li&gt;
&lt;li&gt;Demos de efectos físicos.&lt;/li&gt;
&lt;li&gt;Validación de conceptos de UI o interacción.&lt;/li&gt;
&lt;li&gt;Ejemplos de enseñanza.&lt;/li&gt;
&lt;li&gt;Ayuda para entender la estructura de proyectos Godot.&lt;/li&gt;
&lt;li&gt;Generar un primer proyecto ejecutable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es menos adecuado para asumir directamente estas tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arquitectura de juego grande.&lt;/li&gt;
&lt;li&gt;Controladores de personaje complejos.&lt;/li&gt;
&lt;li&gt;Sincronización de red.&lt;/li&gt;
&lt;li&gt;Código central para proyectos comerciales.&lt;/li&gt;
&lt;li&gt;Simulación física de alta precisión.&lt;/li&gt;
&lt;li&gt;Envío automático sin pruebas humanas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, sirve como primer borrador y banco de pruebas, no como responsable de ingeniería de producción.&lt;/p&gt;
&lt;h2 id=&#34;qué-demuestra-esto&#34;&gt;Qué demuestra esto
&lt;/h2&gt;&lt;p&gt;Esto muestra que AI coding sigue expandiéndose desde sitios web, scripts y APIs backend hacia desarrollo de juegos y prototipado interactivo.&lt;/p&gt;
&lt;p&gt;El desarrollo de juegos solía tener una barrera alta de entrada, especialmente cuando motores, scripts, gestión de assets y sistemas físicos se mezclaban. Los principiantes podían atascarse fácilmente. Ahora modelos más herramientas Agent pueden configurar primero el proyecto, permitiendo a los desarrolladores centrarse en juzgar el gameplay y ajustar efectos.&lt;/p&gt;
&lt;p&gt;Esto puede traer tres cambios:&lt;/p&gt;
&lt;p&gt;Primero, los prototipos de juegos se vuelven más baratos. Muchas ideas ya no tienen que esperar a un desarrollo completo para validarse; pueden convertirse primero en demos ejecutables.&lt;/p&gt;
&lt;p&gt;Segundo, los desarrolladores indie pueden estar más dispuestos a experimentar. Personas que no conocen Godot pueden aun así usar IA para tocar la estructura del proyecto y el flujo básico.&lt;/p&gt;
&lt;p&gt;Tercero, la estabilidad del modelo se vuelve más importante. El desarrollo de juegos no consiste solo en que el código corra. El efecto también debe ser razonable, la sensación debe ser normal y los parámetros deben ser controlables. En el futuro, modelos que combinen mejor visuales reales y estado de ejecución serán más adecuados para este tipo de tarea.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Flash para una demo de Godot se puede resumir en una frase: &lt;strong&gt;no perfecto, pero lo bastante barato, rápido y adecuado para prototipar.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Todavía está lejos de los juegos comerciales, pero si el objetivo es validar una pequeña idea de juego a costo extremadamente bajo, ya tiene valor.&lt;/p&gt;
&lt;p&gt;Para desarrolladores individuales, el uso más realista no es entregar todo el juego a la IA, sino dejar que la IA produzca primero un proyecto ejecutable mientras los humanos hacen juicio, compromisos y pulido. Usados así, modelos de bajo costo como DeepSeek V4 Flash se vuelven realmente atractivos.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guía inicial de Codex App: instalación, sandbox, tareas paralelas, Skills y MCP</title>
        <link>https://knightli.com/es/2026/05/06/codex-app-complete-guide-skills-mcp/</link>
        <pubDate>Wed, 06 May 2026 08:41:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/06/codex-app-complete-guide-skills-mcp/</guid>
        <description>&lt;p&gt;Codex App puede entenderse como un espacio de trabajo de tareas para programación con IA. No es un IDE tradicional ni solo una ventana de chat. Reúne multitarea, gestión de proyectos, permisos de sandbox, Git, ejecución en la nube, plugins, Skills, MCP y automatización en una sola interfaz.&lt;/p&gt;
&lt;p&gt;Si ya usas Codex CLI, Claude Code, Cursor u otros coding agents, la parte más interesante de Codex App es que convierte &amp;ldquo;ejecutar varios agentes en paralelo&amp;rdquo; en un flujo de escritorio más claro.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-codex-app&#34;&gt;Para qué sirve Codex App
&lt;/h2&gt;&lt;p&gt;El valor central de Codex App no es responder preguntas, sino permitir que la IA ejecute tareas de forma continua dentro de un directorio de proyecto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editar código, ejecutar comandos e iniciar servidores de desarrollo.&lt;/li&gt;
&lt;li&gt;Gestionar múltiples proyectos y múltiples tareas.&lt;/li&gt;
&lt;li&gt;Ejecutar tareas largas localmente o en la nube.&lt;/li&gt;
&lt;li&gt;Llamar plugins, Skills y MCP para ampliar capacidades.&lt;/li&gt;
&lt;li&gt;Gestionar cambios mediante Git, worktree y flujos PR.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI también posiciona Codex App como una interfaz para gestionar múltiples coding agents. Es adecuada para personas que necesitan avanzar varias tareas de programación a la vez, especialmente páginas frontend, scripts, apps pequeñas, documentación y flujos de automatización.&lt;/p&gt;
&lt;h2 id=&#34;preparación-antes-de-instalar&#34;&gt;Preparación antes de instalar
&lt;/h2&gt;&lt;p&gt;Antes de usar Codex App, conviene preparar tres herramientas básicas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Node.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VS Code&lt;/code&gt; o tu IDE preferido&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Codex App soporta macOS y Windows. Después de instalar, inicia sesión con tu cuenta de ChatGPT. En el primer lanzamiento, puedes elegir tu escenario principal de uso, como programación o trabajo diario. Codex precargará algunos plugins y Skills según tus elecciones, y luego puedes ajustarlos en configuración y en el marketplace de plugins.&lt;/p&gt;
&lt;p&gt;Las funciones principales en Windows y macOS son bastante parecidas, pero algunas capacidades de automatización del ordenador pueden depender de la plataforma y del soporte de plugins. Usa lo que tu versión actual muestre realmente.&lt;/p&gt;
&lt;h2 id=&#34;estructura-de-interfaz-proyectos-tareas-y-chats&#34;&gt;Estructura de interfaz: proyectos, tareas y chats
&lt;/h2&gt;&lt;p&gt;Codex App usa un diseño clásico de tres columnas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Izquierda: proyectos, tareas, historial de chats, plugins y entradas de automatización.&lt;/li&gt;
&lt;li&gt;Centro: ventana de chat actual.&lt;/li&gt;
&lt;li&gt;Derecha: archivos, navegador, terminal, resultados de ejecución y otros paneles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un proyecto normalmente corresponde a una carpeta local. Puedes abrir varios chats dentro del mismo proyecto, o abrir varios proyectos a la vez para que distintos agentes trabajen en paralelo.&lt;/p&gt;
&lt;p&gt;La lista de tareas muestra distintos estados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running: el agente sigue ejecutando.&lt;/li&gt;
&lt;li&gt;Waiting for approval: debes confirmar permisos, red, instalación de dependencias o una acción de alto riesgo.&lt;/li&gt;
&lt;li&gt;Completed: la tarea terminó, y puedes inspeccionar el resultado o seguir preguntando.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es más intuitivo que cambiar entre varias ventanas de terminal, y se adapta mejor a gestionar varias tareas de IA a la vez.&lt;/p&gt;
&lt;h2 id=&#34;sandbox-y-control-de-permisos&#34;&gt;Sandbox y control de permisos
&lt;/h2&gt;&lt;p&gt;El sistema de permisos de Codex App se construye alrededor del sandbox. Por defecto, la carpeta actual del proyecto se convierte en el workspace principal del agente.&lt;/p&gt;
&lt;p&gt;Los límites de permisos comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede leer y modificar archivos dentro del directorio del proyecto.&lt;/li&gt;
&lt;li&gt;Por defecto no puede modificar libremente archivos fuera del proyecto.&lt;/li&gt;
&lt;li&gt;La red o comandos de alto riesgo están restringidos por defecto.&lt;/li&gt;
&lt;li&gt;Cuando necesita acceso elevado, pide aprobación al usuario.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un modo práctico es &amp;ldquo;auto review&amp;rdquo;: las acciones de bajo riesgo se permiten automáticamente, mientras que las acciones de alto riesgo siguen siendo confirmadas por el usuario. Esto reduce ventanas emergentes frecuentes y evita que operaciones peligrosas ocurran en silencio.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Full access&amp;rdquo; debe habilitarse con cautela. Es adecuado cuando sabes exactamente qué necesita hacer el agente, el proyecto ya tiene respaldos Git y los archivos importantes tienen copias separadas. No se recomienda como valor diario permanente.&lt;/p&gt;
&lt;h2 id=&#34;contexto-modelos-y-cuotas&#34;&gt;Contexto, modelos y cuotas
&lt;/h2&gt;&lt;p&gt;Codex App muestra el uso de contexto del chat actual. Cuanto más larga es la conversación y más historial contiene, más contexto necesita procesar el modelo.&lt;/p&gt;
&lt;p&gt;Hábitos útiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Empezar un chat nuevo después de terminar una tarea.&lt;/li&gt;
&lt;li&gt;Los chats largos pueden comprimirse manualmente, pero no trates la compresión como memoria perfecta.&lt;/li&gt;
&lt;li&gt;Para tareas complejas, declara claramente objetivos, límites y criterios de aceptación.&lt;/li&gt;
&lt;li&gt;No pegues de golpe logs, errores o archivos grandes e irrelevantes en un chat.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para selección de modelos, ajusta la fuerza de razonamiento según la complejidad de la tarea. Ediciones simples, escritura y tareas repetitivas no siempre necesitan el modelo más fuerte. Migraciones de arquitectura, bugs difíciles y refactors entre archivos encajan mejor con modelos más potentes.&lt;/p&gt;
&lt;p&gt;Si la interfaz tiene un modo rápido, recuerda que normalmente consume más cuota. Úsalo cuando la velocidad importe, pero no como valor diario predeterminado.&lt;/p&gt;
&lt;h2 id=&#34;generación-de-imágenes-y-entradas-multimodales&#34;&gt;Generación de imágenes y entradas multimodales
&lt;/h2&gt;&lt;p&gt;Codex App puede aceptar imágenes y archivos como contexto, y puede llamar generación de imágenes en escenarios adecuados.&lt;/p&gt;
&lt;p&gt;Esto es útil para proyectos frontend y de contenido. Por ejemplo, puedes pedir a Codex:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Corregir estilos de página según capturas.&lt;/li&gt;
&lt;li&gt;Reemplazar imágenes inadecuadas en una web.&lt;/li&gt;
&lt;li&gt;Generar imágenes de producto, imágenes de carrusel o assets de página.&lt;/li&gt;
&lt;li&gt;Señalar qué debe cambiarse a partir de una captura de UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un enfoque más eficiente no es decir solo &amp;ldquo;hazlo más bonito&amp;rdquo;, sino usar capturas y señalar problemas concretos, como &amp;ldquo;el espacio en esta tarjeta es demasiado grande&amp;rdquo;, &amp;ldquo;esta imagen no coincide con la escena del servicio&amp;rdquo; o &amp;ldquo;haz más clara el área del mapa&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;steer-corregir-dirección-durante-la-ejecución&#34;&gt;Steer: corregir dirección durante la ejecución
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Steer&lt;/code&gt; puede entenderse como tomar control de la dirección durante la ejecución. Si el agente ya empezó pero notas que entendió mal, no siempre conviene esperar a que termine para corregirlo.&lt;/p&gt;
&lt;p&gt;Puedes usar steering para insertar una nueva instrucción en el flujo de ejecución actual y hacer que Codex corrija el rumbo.&lt;/p&gt;
&lt;p&gt;Buenos casos de uso para Steer incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El agente entendió mal el requisito.&lt;/li&gt;
&lt;li&gt;El estilo de página generado es claramente incorrecto.&lt;/li&gt;
&lt;li&gt;El plan actual es demasiado costoso o pesado.&lt;/li&gt;
&lt;li&gt;Necesitas añadir una restricción clave temporalmente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En general, mantén el comportamiento predeterminado en cola y usa Steer manualmente solo cuando se necesite intervención. Esto evita interrumpir tareas normales y aun así permite recuperar la dirección en momentos clave.&lt;/p&gt;
&lt;h2 id=&#34;modo-plan-y-navegador-integrado&#34;&gt;Modo plan y navegador integrado
&lt;/h2&gt;&lt;p&gt;Para tareas complejas, empieza con modo plan. En modo plan, Codex no modifica código de inmediato. Primero produce un plan y puede hacer preguntas clave con tarjetas.&lt;/p&gt;
&lt;p&gt;Tareas adecuadas para modo plan incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Migración de frameworks, como pasar un proyecto React a Next.js.&lt;/li&gt;
&lt;li&gt;Refactors grandes.&lt;/li&gt;
&lt;li&gt;Funciones que involucran bases de datos, autenticación o despliegue.&lt;/li&gt;
&lt;li&gt;Requisitos donde aún no has decidido la ruta técnica.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El panel derecho de Codex App puede abrir un navegador integrado para previsualizar el servidor local de desarrollo. Puedes anotar la página y dejar que Codex modifique una ubicación específica de UI. Este flujo de &amp;ldquo;mirar la página, hacer clic en la posición y pedir a la IA que la cambie&amp;rdquo; suele ser mejor para depuración frontend que descripciones puramente textuales.&lt;/p&gt;
&lt;h2 id=&#34;git-ide-y-rollback-de-código&#34;&gt;Git, IDE y rollback de código
&lt;/h2&gt;&lt;p&gt;Codex App no es un IDE completo. Puede ver código y añadir anotaciones, pero la edición manual sigue siendo mejor en VS Code, Cursor, Windsurf u otro IDE.&lt;/p&gt;
&lt;p&gt;Todo proyecto de Codex debería inicializar Git temprano:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pedir a Codex que cree o revise &lt;code&gt;.gitignore&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Hacer un commit al llegar a un estado usable.&lt;/li&gt;
&lt;li&gt;Asegurar un punto de commit limpio antes de cada cambio grande.&lt;/li&gt;
&lt;li&gt;Volver atrás con Git si no estás satisfecho.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si haces rollback solo del historial de chat, el código no vuelve automáticamente. Un enfoque más seguro es devolver el chat al punto correcto y luego usar un hash de commit Git para devolver el código al estado correspondiente.&lt;/p&gt;
&lt;h2 id=&#34;worktree-desarrollo-paralelo-en-varias-direcciones&#34;&gt;Worktree: desarrollo paralelo en varias direcciones
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;git worktree&lt;/code&gt; es especialmente adecuado para agentes paralelos en Codex App.&lt;/p&gt;
&lt;p&gt;Crea varios directorios de trabajo independientes desde el mismo repositorio, cada uno correspondiente a una rama distinta. Esto permite que diferentes agentes trabajen en distintas carpetas al mismo tiempo sin sobrescribirse.&lt;/p&gt;
&lt;p&gt;Uso típico:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un worktree optimiza el componente de reseñas de clientes.&lt;/li&gt;
&lt;li&gt;Un worktree ajusta información de tienda y diseño del mapa.&lt;/li&gt;
&lt;li&gt;Fusionar ambas tareas de vuelta a main tras completarlas.&lt;/li&gt;
&lt;li&gt;Eliminar worktrees temporales después de fusionar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es mucho más seguro que dejar que varios agentes modifiquen código en el mismo directorio. Si hay conflictos, revísalos y fusiónalos con flujos Git normales.&lt;/p&gt;
&lt;h2 id=&#34;entorno-de-ejecución-en-la-nube&#34;&gt;Entorno de ejecución en la nube
&lt;/h2&gt;&lt;p&gt;Codex puede trabajar no solo en tu máquina local, sino también en un entorno de nube.&lt;/p&gt;
&lt;p&gt;La ejecución en la nube es adecuada cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estás fuera y solo tienes un teléfono.&lt;/li&gt;
&lt;li&gt;Quieres que los agentes ejecuten tareas largas en segundo plano.&lt;/li&gt;
&lt;li&gt;El código ya se sincronizó con GitHub y Codex necesita modificar el repositorio remoto.&lt;/li&gt;
&lt;li&gt;Quieres revisar y fusionar cambios mediante PRs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un flujo típico es: subir el código local a GitHub, dejar que Codex descargue el repositorio en un entorno de nube, ejecutar la tarea, generar cambios y presentarlos como PR o diff para revisión.&lt;/p&gt;
&lt;p&gt;Al continuar el desarrollo local, recuerda traer los últimos cambios remotos.&lt;/p&gt;
&lt;h2 id=&#34;sistema-de-memoria-escribe-un-buen-agentsmd&#34;&gt;Sistema de memoria: escribe un buen AGENTS.md
&lt;/h2&gt;&lt;p&gt;Los chats nuevos no tienen memoria histórica completa por defecto. Una vez que un proyecto se vuelve complejo, explicar el contexto repetidamente es ineficiente.&lt;/p&gt;
&lt;p&gt;La solución más general es mantener &lt;code&gt;AGENTS.md&lt;/code&gt; en la raíz del proyecto. Este archivo puede registrar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivos del proyecto y stack principal.&lt;/li&gt;
&lt;li&gt;Comandos comunes.&lt;/li&gt;
&lt;li&gt;Estructura de directorios.&lt;/li&gt;
&lt;li&gt;Estilo de código y convenciones de nombres.&lt;/li&gt;
&lt;li&gt;Acciones prohibidas, como borrar archivos en masa.&lt;/li&gt;
&lt;li&gt;Reglas de pruebas, build y despliegue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También puedes pedir a Codex que lea el proyecto y genere una primera versión de &lt;code&gt;AGENTS.md&lt;/code&gt;, luego revisarla manualmente. Para proyectos complejos, vale la pena mantener este archivo.&lt;/p&gt;
&lt;p&gt;Las reglas globales deben usarse con cuidado. Son adecuadas para restricciones universales de seguridad, como &amp;ldquo;no borrar directorios recursivamente&amp;rdquo; o &amp;ldquo;confirmar antes de operaciones destructivas&amp;rdquo;. No pongas detalles específicos del proyecto en reglas globales, o contaminarán otros proyectos.&lt;/p&gt;
&lt;h2 id=&#34;plugins-y-automatizaciones&#34;&gt;Plugins y automatizaciones
&lt;/h2&gt;&lt;p&gt;Los plugins conectan Codex con servicios externos como GitHub, Gmail, Google Drive, bases de datos y plataformas de despliegue.&lt;/p&gt;
&lt;p&gt;Su valor está en reducir copiar y pegar. Por ejemplo, Codex puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisar tendencias de estrellas de un repositorio GitHub.&lt;/li&gt;
&lt;li&gt;Resumir contenido de email y enviártelo.&lt;/li&gt;
&lt;li&gt;Ejecutar una revisión recurrente.&lt;/li&gt;
&lt;li&gt;Escribir el resultado como resumen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las automatizaciones son adecuadas para tareas repetidas. Por ejemplo, revisar datos de un repositorio todos los viernes por la tarde y enviar un informe por email. Las tareas simples de automatización normalmente no requieren el modelo más fuerte; basta un modelo más ligero.&lt;/p&gt;
&lt;h2 id=&#34;skills-convertir-flujos-de-trabajo-en-capacidades-reutilizables&#34;&gt;Skills: convertir flujos de trabajo en capacidades reutilizables
&lt;/h2&gt;&lt;p&gt;Las Skills son &amp;ldquo;manuales profesionales&amp;rdquo; para Codex. No son prompts de una sola vez. Empaquetan un flujo de tarea, reglas, scripts y notas para que Codex pueda reutilizarlos de forma fiable después.&lt;/p&gt;
&lt;p&gt;Fuentes comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills oficiales.&lt;/li&gt;
&lt;li&gt;Skills de terceros.&lt;/li&gt;
&lt;li&gt;Skills escritas por ti.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Buenos candidatos para Skills incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convertir subtítulos en notas ilustradas.&lt;/li&gt;
&lt;li&gt;Escribir informes semanales con formato de empresa.&lt;/li&gt;
&lt;li&gt;Procesar imágenes o documentos por lotes.&lt;/li&gt;
&lt;li&gt;Revisiones de código con formato fijo.&lt;/li&gt;
&lt;li&gt;Inicialización de proyectos para un framework concreto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si has copiado y pegado el mismo prompt muchas veces, vale la pena convertirlo en una Skill.&lt;/p&gt;
&lt;h2 id=&#34;mcp-conectar-herramientas-externas-y-bases-de-datos&#34;&gt;MCP: conectar herramientas externas y bases de datos
&lt;/h2&gt;&lt;p&gt;MCP puede entenderse como un protocolo estandarizado de herramientas para modelos grandes. Mediante MCP, Codex puede llamar servicios externos para completar tareas más concretas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, después de conectar Supabase, Codex puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear tablas de base de datos.&lt;/li&gt;
&lt;li&gt;Leer esquemas de base de datos.&lt;/li&gt;
&lt;li&gt;Modificar endpoints backend.&lt;/li&gt;
&lt;li&gt;Enviar formularios frontend a la base de datos.&lt;/li&gt;
&lt;li&gt;Depurar problemas según el estado de la base de datos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es poderoso, pero los permisos importan. Bases de datos, entornos de producción, plataformas de despliegue y cuentas de email son recursos de alto riesgo. Al conectarlos por primera vez, usa un proyecto de prueba y una cuenta con pocos privilegios.&lt;/p&gt;
&lt;h2 id=&#34;plugins-de-despliegue&#34;&gt;Plugins de despliegue
&lt;/h2&gt;&lt;p&gt;Los plugins de plataformas de despliegue pueden permitir que Codex complete builds y releases directamente, como desplegar un proyecto frontend en Netlify.&lt;/p&gt;
&lt;p&gt;Estos plugins son adecuados para sitios pequeños, prototipos, herramientas internas y demos. En uso real, presta atención a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar un build local antes del despliegue.&lt;/li&gt;
&lt;li&gt;No escribir variables de entorno directamente en el código.&lt;/li&gt;
&lt;li&gt;Comprobar que la página abre normalmente después de publicar.&lt;/li&gt;
&lt;li&gt;Mantener revisión humana para proyectos de producción.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La IA puede ayudar a conectar el flujo de despliegue, pero los permisos de despliegue deben gestionarse con cuidado.&lt;/p&gt;
&lt;h2 id=&#34;automatización-del-ordenador&#34;&gt;Automatización del ordenador
&lt;/h2&gt;&lt;p&gt;Con plataformas y entornos de plugins soportados, Codex también puede operar navegadores o apps de escritorio, completando tareas más cercanas a RPA.&lt;/p&gt;
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abrir una app de chat y preparar un mensaje.&lt;/li&gt;
&lt;li&gt;Navegar un tablero de proyecto y resumir estado de tareas.&lt;/li&gt;
&lt;li&gt;Generar un brief en inglés.&lt;/li&gt;
&lt;li&gt;Enviarlo a un destinatario especificado después de tu confirmación.&lt;/li&gt;
&lt;li&gt;Convertir el flujo en una automatización programada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas capacidades son imaginativas, pero requieren los límites de seguridad más fuertes. Cualquier operación que implique enviar mensajes, enviar email, enviar formularios, pagos o eliminar datos debe conservar confirmación humana.&lt;/p&gt;
&lt;h2 id=&#34;sugerencias-de-uso&#34;&gt;Sugerencias de uso
&lt;/h2&gt;&lt;p&gt;La forma correcta de usar Codex App no es dejarle tomar todo de golpe, sino dividir tareas y permitir que ejecute eficientemente en un entorno controlado.&lt;/p&gt;
&lt;p&gt;Hábitos recomendados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inicializar Git en cada proyecto.&lt;/li&gt;
&lt;li&gt;Usar modo plan para tareas complejas.&lt;/li&gt;
&lt;li&gt;Usar worktree para tareas paralelas.&lt;/li&gt;
&lt;li&gt;Poner reglas de proyecto en &lt;code&gt;AGENTS.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Mantener confirmación humana para acciones de alto riesgo.&lt;/li&gt;
&lt;li&gt;Convertir flujos repetidos en Skills o automatizaciones.&lt;/li&gt;
&lt;li&gt;Validar plugins y MCP primero en un entorno de prueba.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-the-codex-app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing the Codex app - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Using Codex with your ChatGPT plan - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/academy/codex-plugins-and-skills/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Plugins and skills - OpenAI Academy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Codex App no es &amp;ldquo;otra ventana de chat con IA&amp;rdquo;. Su foco es convertir la programación con IA en un espacio de trabajo gestionable, donde proyectos locales, tareas en la nube, Git, worktree, plugins, Skills, MCP y automatización puedan conectarse.&lt;/p&gt;
&lt;p&gt;La clave para usarla bien es equilibrar libertad y control. Las tareas pequeñas pueden entregarse a Codex con confianza. Las tareas complejas deben empezar con un plan. Las acciones de alto riesgo deben confirmarse. Usada así, Codex puede convertirse no solo en un asistente que escribe código, sino en una herramienta de ingeniería de largo plazo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Usar pruebas y descripciones de comportamiento para controlar codigo escrito por IA</title>
        <link>https://knightli.com/es/2026/05/05/ai-coding-tdd-bdd/</link>
        <pubDate>Tue, 05 May 2026 14:35:38 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/05/ai-coding-tdd-bdd/</guid>
        <description>&lt;p&gt;Al escribir codigo con IA, la experiencia mas comun es: al principio todo va rapido, despues se vuelve caotico. Las funciones iniciales se montan muy deprisa, pero cuando el proyecto crece y las modificaciones se acumulan, aparece el patron de arreglar un bug y crear tres mas.&lt;/p&gt;
&lt;p&gt;Esto no es solo problema de la IA. Muchas personas tambien programan asi; la diferencia es que la IA escribe mas rapido y los problemas se exponen antes. Para reducir ese descontrol, la clave no es pedir a la IA que &amp;ldquo;se esfuerce mas&amp;rdquo;, sino darle limites mas claros: primero definir que resultado cuenta como correcto y luego dejar que escriba la implementacion.&lt;/p&gt;
&lt;p&gt;TDD y BDD encajan bien dentro del flujo de programacion con IA. TDD convierte &amp;ldquo;si esta bien o mal&amp;rdquo; en pruebas automaticas; BDD convierte &amp;ldquo;si esto es lo que quiero&amp;rdquo; en descripciones de comportamiento comprensibles por personas. Combinados, hacen que la IA adivine menos, improvise menos y sea mas facil de revisar.&lt;/p&gt;
&lt;h2 id=&#34;que-problema-resuelve-tdd&#34;&gt;Que problema resuelve TDD
&lt;/h2&gt;&lt;p&gt;TDD significa Test Driven Development, desarrollo guiado por pruebas. Su secuencia basica es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribir primero las pruebas.&lt;/li&gt;
&lt;li&gt;Ejecutarlas y confirmar que ahora fallan.&lt;/li&gt;
&lt;li&gt;Escribir despues el codigo funcional.&lt;/li&gt;
&lt;li&gt;Ajustar la implementacion hasta que las pruebas pasen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto es lo contrario de lo que mucha gente acostumbra. Al escribir una funcion de ordenacion, la intuicion suele ser escribir primero la funcion y luego probar algunos numeros a mano. TDD pide escribir antes las expectativas como pruebas: por ejemplo, que con &lt;code&gt;[3, 1, 2]&lt;/code&gt; se obtenga &lt;code&gt;[1, 2, 3]&lt;/code&gt;, que un array vacio devuelva un array vacio, y que una entrada con numeros repetidos tambien produzca un resultado correcto.&lt;/p&gt;
&lt;p&gt;El sentido de hacerlo asi es que, antes de empezar a desarrollar, el resultado correcto ya esta definido. Mas adelante, quien cambie el codigo solo necesita volver a ejecutar las pruebas para saber si rompio un comportamiento acordado.&lt;/p&gt;
&lt;h2 id=&#34;por-que-antes-costaba-mantener-tdd&#34;&gt;Por que antes costaba mantener TDD
&lt;/h2&gt;&lt;p&gt;TDD suena muy bien, pero en proyectos reales no es facil sostenerlo durante mucho tiempo.&lt;/p&gt;
&lt;p&gt;Primero, va contra la intuicion. Frente a un archivo vacio, muchas personas prefieren escribir la funcion antes que las pruebas. Cuando los requisitos todavia no estan claros, escribir casos de prueba tambien cuesta.&lt;/p&gt;
&lt;p&gt;Segundo, los requisitos cambian rapido. Una docena de pruebas escritas hoy con mucho cuidado pueden necesitar reescritura masiva si manana cambia el producto. A corto plazo, parece ralentizar el desarrollo.&lt;/p&gt;
&lt;p&gt;Tercero, las pruebas tambien tienen coste. El codigo de pruebas no aparece de la nada: antes lo escribia, mantenia y justificaba el programador. En equipos que solo miran la velocidad de entrega a corto plazo, esto se suele recortar.&lt;/p&gt;
&lt;p&gt;Pero la IA cambia esta estructura de costes. Convertir requisitos en pruebas es precisamente una tarea en la que la IA es fuerte. Pedirle que implemente segun pruebas tambien es mucho mas fiable que dejarla improvisar a partir de una descripcion vaga.&lt;/p&gt;
&lt;h2 id=&#34;como-usar-tdd-al-programar-con-ia&#34;&gt;Como usar TDD al programar con IA
&lt;/h2&gt;&lt;p&gt;Al pedir una funcion a la IA, puedes cambiar el prompt de &amp;ldquo;ayudame a implementar esto&amp;rdquo; a este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pedir a la IA que primero enumere casos de prueba segun el requisito.&lt;/li&gt;
&lt;li&gt;Exigir que cada caso tenga una explicacion en chino o en el idioma de trabajo del equipo.&lt;/li&gt;
&lt;li&gt;Revisar primero si los casos de prueba representan la necesidad real.&lt;/li&gt;
&lt;li&gt;Despues de confirmar las pruebas, pedir a la IA que escriba la implementacion.&lt;/li&gt;
&lt;li&gt;Pedir a la IA que ejecute las pruebas y corrija segun los fallos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En ese momento, la persona revisa sobre todo si las pruebas expresan bien el requisito, no una gran implementacion. Los casos de prueba suelen estar mas cerca de &amp;ldquo;cual es la entrada, cual deberia ser la salida y como se manejan los bordes&amp;rdquo;, por lo que son mas faciles de leer que la logica interna.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes pedirlo asi:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Primero no implementes la funcion.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Segun el requisito siguiente, escribe casos de prueba. Cada caso debe incluir un comentario en chino que explique la regla de negocio cubierta.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Cuando confirme las pruebas, implementa el codigo segun ellas.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este flujo reduce dos problemas comunes: que la IA se desvie del tema y que cambios posteriores rompan funciones antiguas.&lt;/p&gt;
&lt;h2 id=&#34;tdd-no-basta&#34;&gt;TDD no basta
&lt;/h2&gt;&lt;p&gt;TDD por si solo todavia deja dos huecos.&lt;/p&gt;
&lt;p&gt;El primero: que todas las pruebas pasen no significa que el producto cumpla la expectativa. Las pruebas solo demuestran que el codigo cumple las reglas que se escribieron en ellas. Si las pruebas no expresan bien la necesidad del usuario, el codigo puede seguir &amp;ldquo;haciendo mal lo correcto&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El segundo: el codigo de pruebas sigue sin ser amable para usuarios no tecnicos. Incluso con comentarios, muchas personas no quieren leer montones de tests unitarios. Cuanto mas orientado a experiencia de producto sea el requisito, mas dificil es confirmar desde pruebas si &amp;ldquo;esto es lo que queria&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Ahi entra BDD.&lt;/p&gt;
&lt;h2 id=&#34;que-problema-resuelve-bdd&#34;&gt;Que problema resuelve BDD
&lt;/h2&gt;&lt;p&gt;BDD significa Behavior Driven Development, desarrollo guiado por comportamiento. No se centra en como esta escrito el codigo por dentro, sino en que comportamiento debe mostrar el sistema en un escenario determinado.&lt;/p&gt;
&lt;p&gt;La forma habitual de describir BDD es Given / When / Then:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Given&lt;/code&gt;: dado cierto estado inicial.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;When&lt;/code&gt;: cuando el usuario o el sistema realiza una accion.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Then&lt;/code&gt;: entonces debe obtenerse cierto resultado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, un personaje de juego con robo de vida puede describirse asi:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Given hay un vampiro en el tablero con 1 punto de vida restante, 2 de ataque y 5 de vida maxima
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;And hay una unidad enemiga adyacente con 10 puntos de vida restantes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When el vampiro ataca a esa unidad enemiga
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Then la unidad enemiga queda con 8 puntos de vida
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;And el vampiro se cura hasta 3 puntos de vida
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto no es codigo, pero es mucho mas preciso que &amp;ldquo;se cura al atacar al enemigo&amp;rdquo;. Define estado inicial, accion y resultado; tambien expone preguntas posteriores: si el enemigo solo tenia 1 punto de vida, ¿el vampiro se cura por el dano causado o por su ataque? Si el vampiro ya esta al maximo, ¿que ocurre con la curacion sobrante?&lt;/p&gt;
&lt;p&gt;Cuanto antes aparezcan estas preguntas, menos tendra que adivinar la IA despues.&lt;/p&gt;
&lt;h2 id=&#34;por-que-bdd-encaja-tan-bien-con-ia&#34;&gt;Por que BDD encaja tan bien con IA
&lt;/h2&gt;&lt;p&gt;Antes, impulsar BDD tambien tenia coste. Requeria que producto, desarrollo y QA hablaran con la misma descripcion de comportamiento, y muchos equipos no tienen ese habito de colaboracion.&lt;/p&gt;
&lt;p&gt;En la era de la IA, el coste de BDD baja. Solo necesitas escribir primero una necesidad aproximada, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Despues de atacar a un enemigo, el vampiro recupera una cantidad de vida igual al dano causado.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego pides a la IA que genere escenarios Given / When / Then. Una buena IA agregara casos limite y preguntara por reglas ambiguas. Tu trabajo sera confirmar esas descripciones de comportamiento, no leer directamente la implementacion.&lt;/p&gt;
&lt;p&gt;Una vez confirmadas las descripciones, pide a la IA que las convierta en pruebas y finalmente que implemente segun esas pruebas. El camino se vuelve mucho mas claro.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-mas-estable-para-programar-con-ia&#34;&gt;Un flujo mas estable para programar con IA
&lt;/h2&gt;&lt;p&gt;En la practica, puedes encadenar BDD y TDD:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribe el requisito en lenguaje natural.&lt;/li&gt;
&lt;li&gt;Pide a la IA que lo convierta en escenarios BDD.&lt;/li&gt;
&lt;li&gt;Confirma si Given / When / Then encajan con la expectativa.&lt;/li&gt;
&lt;li&gt;Pide a la IA que convierta esos escenarios en pruebas automaticas.&lt;/li&gt;
&lt;li&gt;Revisa rapidamente la cobertura de las pruebas.&lt;/li&gt;
&lt;li&gt;Pide a la IA que implemente la funcion.&lt;/li&gt;
&lt;li&gt;Ejecuta las pruebas; si fallan, pide a la IA que corrija segun los errores.&lt;/li&gt;
&lt;li&gt;Haz una aceptacion manual y una revision de codigo final.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La clave esta en el orden. No empieces pidiendo una implementacion completa. Primero haz que la IA convierta el requisito en comportamiento verificable y despues en pruebas ejecutables. Asi su espacio de improvisacion se reduce mucho.&lt;/p&gt;
&lt;p&gt;Puedes usar directamente un prompt como este:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Procesa este requisito siguiendo un flujo BDD + TDD.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Paso 1: primero organiza el requisito en escenarios Given / When / Then, sin escribir codigo.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Paso 2: enumera las reglas ambiguas que detectes y preguntame para confirmarlas.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Paso 3: cuando los escenarios esten confirmados, conviertelos en casos de prueba.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Paso 4: cuando las pruebas esten confirmadas, implementa la funcion.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Paso 5: ejecuta las pruebas y corrige segun los fallos hasta que pasen.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este tipo de prompt no es complicado, pero cambia claramente la forma de trabajar de la IA. Primero acota el requisito y luego entra en implementacion, en vez de escribir desde el principio mucho codigo que parece completo pero resulta dificil de verificar.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-donde-conviene-usarlo-primero&#34;&gt;Escenarios donde conviene usarlo primero
&lt;/h2&gt;&lt;p&gt;BDD + TDD no tiene que aplicarse a todo. Para scripts de una sola vez, procesamiento temporal de datos o pequenos ajustes de estilo, el flujo completo puede ser excesivo.&lt;/p&gt;
&lt;p&gt;Encaja mejor en estos casos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hay muchas reglas de negocio y se entienden mal con facilidad.&lt;/li&gt;
&lt;li&gt;Hay muchos bordes y se seguira modificando.&lt;/li&gt;
&lt;li&gt;Funciones de logica densa como juegos, facturacion, permisos, maquinas de estado o validacion de formularios.&lt;/li&gt;
&lt;li&gt;Hace falta confirmar requisitos entre varias personas.&lt;/li&gt;
&lt;li&gt;El codigo se mantendra a largo plazo, no se genera una sola vez.&lt;/li&gt;
&lt;li&gt;El proyecto ya muestra el problema de que &amp;ldquo;cuanto mas corrige la IA, mas se enreda&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres cambiar el texto de un boton, no hace falta todo el proceso. Pero si vas a crear un sistema de habilidades de personajes, flujo de estados de pedidos, logica de permisos o reglas de puntos, escribir primero comportamientos y pruebas suele compensar.&lt;/p&gt;
&lt;h2 id=&#34;que-tener-en-cuenta&#34;&gt;Que tener en cuenta
&lt;/h2&gt;&lt;p&gt;Primero, mas pruebas no siempre es mejor. Las pruebas deben cubrir reglas clave y bordes de alto riesgo, no bloquear cada detalle de implementacion. Si no, cualquier cambio menor de requisito convierte las pruebas en una carga de mantenimiento.&lt;/p&gt;
&lt;p&gt;Segundo, los escenarios BDD deben ser concretos. No escribas frases como &amp;ldquo;el sistema deberia funcionar normalmente&amp;rdquo; o &amp;ldquo;la experiencia deberia ser fluida&amp;rdquo;, porque no son verificables. Hay que especificar el estado dado, la accion y el resultado esperado.&lt;/p&gt;
&lt;p&gt;Tercero, las personas aun deben revisar. La IA puede generar pruebas y escenarios de comportamiento, pero no sabe cual es tu verdadero criterio de producto. Las reglas limite, en especial, deben ser confirmadas por una persona.&lt;/p&gt;
&lt;p&gt;Cuarto, despues de pasar las pruebas hay que ejecutar la funcion real. Las pruebas automaticas ayudan con la logica, pero la experiencia de interfaz, rendimiento, interaccion y sensacion de usuario aun requieren aceptacion manual.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La IA escribe codigo rapido, pero rapido no significa estable. Cuanto mas complejo es el requisito, menos conviene depender de un simple &amp;ldquo;ayudame a implementarlo&amp;rdquo;. Es mejor dividir primero la necesidad en comportamientos verificables, convertirlos en pruebas ejecutables y finalmente dejar que la IA implemente segun esas pruebas.&lt;/p&gt;
&lt;p&gt;TDD le dice a la IA que resultado cuenta como correcto. BDD ayuda a las personas a confirmar si esa funcion es realmente la que quieren. Juntos no agregan ceremonia por la ceremonia, sino que reducen el espacio de adivinacion de la IA y convierten &amp;ldquo;escribir rapido&amp;rdquo; en &amp;ldquo;modificar de forma estable&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué ocurrió en el incidente de facturación HERMES.md de Claude Code</title>
        <link>https://knightli.com/es/2026/05/02/claude-code-hermes-md-billing-incident/</link>
        <pubDate>Sat, 02 May 2026 11:19:23 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/claude-code-hermes-md-billing-incident/</guid>
        <description>&lt;p&gt;Claude Code tuvo recientemente un incidente de facturación bastante típico: un usuario solo inició el CLI y no había hecho una petición explícita, pero un archivo local grande &lt;code&gt;HERMES.md&lt;/code&gt; fue leído y generó un cargo considerable.&lt;/p&gt;
&lt;p&gt;Vale la pena mirarlo porque expone un nuevo riesgo en herramientas de programación con IA. En cuanto una herramienta lee contexto automáticamente, los archivos locales pueden convertirse en coste real de tokens.&lt;/p&gt;
&lt;h2 id=&#34;qué-ocurrió&#34;&gt;Qué ocurrió
&lt;/h2&gt;&lt;p&gt;El issue público muestra que el usuario tenía un archivo &lt;code&gt;HERMES.md&lt;/code&gt; grande en el directorio de trabajo. Cuando Claude Code arrancó, el CLI escaneó y cargó contexto del proyecto. El problema fue que ese archivo se incluyó automáticamente en el contexto y contó como uso de API.&lt;/p&gt;
&lt;p&gt;El usuario no pidió explícitamente al modelo procesar ese archivo, pero la facturación ya había ocurrido. La parte más delicada es que esto puede pasar durante inicialización o preparación de contexto, así que los usuarios pueden no darse cuenta de inmediato de que se está generando coste.&lt;/p&gt;
&lt;p&gt;Anthropic respondió después en el issue que reembolsaría el cargo anómalo y daría créditos adicionales. Eso confirma que el problema fue reconocido y gestionado, pero también recuerda a los usuarios que el &amp;ldquo;contexto automático&amp;rdquo; en un CLI de IA no es gratis.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-hermesmd-lo-disparó&#34;&gt;Por qué HERMES.md lo disparó
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;HERMES.md&lt;/code&gt; en sí no es el punto. Podría ser cualquier archivo grande: logs, documentos exportados, datos de prueba, volcados de base de datos o informes generados.&lt;/p&gt;
&lt;p&gt;El problema real es la combinación de tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code lee automáticamente el contexto del proyecto.&lt;/li&gt;
&lt;li&gt;El archivo leído puede ser grande.&lt;/li&gt;
&lt;li&gt;Los tokens de contexto entran en la ruta de facturación.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si un archivo es lo bastante grande, incluso ser incluido &amp;ldquo;de pasada&amp;rdquo; puede crear un coste notable. Para modelos basados en tokens, una automatización más fuerte necesita límites más claros.&lt;/p&gt;
&lt;h2 id=&#34;no-es-un-bug-ordinario&#34;&gt;No es un bug ordinario
&lt;/h2&gt;&lt;p&gt;Un bug normal de CLI puede significar un comando fallido, una salida incorrecta o una función rota. Un bug de facturación es más sensible porque afecta directamente a la factura del usuario.&lt;/p&gt;
&lt;p&gt;En herramientas de programación con IA, el límite de facturación puede ser borroso:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Los system prompts consumen tokens.&lt;/li&gt;
&lt;li&gt;Las reglas de proyecto consumen tokens.&lt;/li&gt;
&lt;li&gt;Los archivos leídos automáticamente consumen tokens.&lt;/li&gt;
&lt;li&gt;Los resultados de llamadas de herramientas consumen tokens.&lt;/li&gt;
&lt;li&gt;Reintentos, compresión y resúmenes pueden seguir consumiendo tokens.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El usuario puede ver solo &amp;ldquo;arrancar la herramienta&amp;rdquo; o &amp;ldquo;un chat&amp;rdquo;, mientras en segundo plano ya se enviaron varias solicitudes con mucho contexto.&lt;/p&gt;
&lt;h2 id=&#34;cómo-pueden-reducir-el-riesgo-los-usuarios&#34;&gt;Cómo pueden reducir el riesgo los usuarios
&lt;/h2&gt;&lt;p&gt;Si usas Claude Code, Codex, Cline o herramientas similares de programación con IA, empieza con algunos hábitos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No pongas archivos grandes directamente en la raíz del proyecto.&lt;/li&gt;
&lt;li&gt;Añade logs, datos exportados, salidas de build y archivos temporales a reglas de ignore.&lt;/li&gt;
&lt;li&gt;Comprueba si la herramienta admite &lt;code&gt;.ignore&lt;/code&gt;, exclusión de contexto o allowlists de archivos.&lt;/li&gt;
&lt;li&gt;Activa alertas de presupuesto o límites de uso.&lt;/li&gt;
&lt;li&gt;Prueba en un directorio pequeño antes de ejecutarla en un repositorio grande.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si un repositorio debe conservar archivos grandes, dile explícitamente a la herramienta que no los lea. Las reglas de proyecto también pueden decir: no leer proactivamente logs, dumps, datasets, archivos comprimidos ni Markdown grandes.&lt;/p&gt;
&lt;h2 id=&#34;qué-deberían-mejorar-los-proveedores&#34;&gt;Qué deberían mejorar los proveedores
&lt;/h2&gt;&lt;p&gt;Esto no puede depender solo de la cautela del usuario. Las herramientas deberían ofrecer límites duros.&lt;/p&gt;
&lt;p&gt;Mejores diseños incluirían:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La inicialización no debería facturar silenciosamente por archivos grandes.&lt;/li&gt;
&lt;li&gt;Leer automáticamente archivos muy grandes debería requerir confirmación.&lt;/li&gt;
&lt;li&gt;El CLI debería mostrar tokens estimados y rango de coste para la solicitud.&lt;/li&gt;
&lt;li&gt;Archivos grandes comunes y directorios generados deberían ignorarse por defecto.&lt;/li&gt;
&lt;li&gt;Los picos anómalos de tokens deberían tener umbrales de protección.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cuanto más se comporten las herramientas de programación con IA como agentes autónomos, más transparentes deben ser sus costes. De lo contrario, los usuarios no pueden juzgar cuánto costará una operación concreta.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El incidente de facturación &lt;code&gt;HERMES.md&lt;/code&gt; de Claude Code es, en esencia, un conflicto entre contexto automático y facturación por uso.&lt;/p&gt;
&lt;p&gt;Para usuarios, la clave es controlar el contexto del proyecto: no exponer archivos grandes a herramientas de IA por defecto, y configurar límites de presupuesto y uso. Para proveedores, la lectura automática de archivos necesita avisos visibles de coste y mecanismos de protección.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/claude-code/issues/53262&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/claude-code/issues/53262&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/claude-code/costs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/claude-code/costs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude.md no es mejor cuando es más largo: cómo escribir archivos de memoria global para codificación AI</title>
        <link>https://knightli.com/es/2026/04/29/how-to-write-claude-md-for-ai-coding/</link>
        <pubDate>Wed, 29 Apr 2026 21:07:37 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/29/how-to-write-claude-md-for-ai-coding/</guid>
        <description>&lt;p&gt;Recientemente vi una discusión sobre archivos de memoria global para codificación de IA: después de que los proyectos agregan archivos como &lt;code&gt;Claude.md&lt;/code&gt; o &lt;code&gt;AGENTS.md&lt;/code&gt;, los resultados no necesariamente mejoran. En algunos casos, las tasas de éxito pueden incluso disminuir mientras que el costo del razonamiento aumenta.&lt;/p&gt;
&lt;p&gt;Al principio, esto parece contradictorio. Generalmente asumimos que si le damos a la IA más antecedentes del proyecto, más reglas y más explicaciones, debería escribir el código con mayor precisión.&lt;br&gt;
El verdadero problema es que &lt;code&gt;Claude.md&lt;/code&gt; no es un documento ordinario. Es un archivo de memoria global que se inyecta en el contexto de cada conversación. Cuanto más contiene, más tiene que leer el modelo cada vez; cuanto más vago sea, más juicio tendrá que hacer el modelo; y si contiene flujos de trabajo que no siempre deberían ejecutarse, el modelo puede desencadenar acciones innecesarias en tareas no relacionadas.&lt;/p&gt;
&lt;p&gt;Entonces, la parte difícil de escribir &lt;code&gt;Claude.md&lt;/code&gt; es no completarlo. Se trata de decidir qué piezas de información merecen ocupar contexto de forma permanente.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-claudemd&#34;&gt;¿Qué es Claude.md?
&lt;/h2&gt;&lt;p&gt;En las herramientas de codificación de IA, archivos como &lt;code&gt;Claude.md&lt;/code&gt; y &lt;code&gt;AGENTS.md&lt;/code&gt; son esencialmente archivos de memoria global.&lt;/p&gt;
&lt;p&gt;La conversación normal entra en el contexto, pero la longitud del contexto es limitada. Una vez que la conversación se vuelve larga, el contenido histórico se comprime y se pierden algunos detalles. Un archivo de memoria global fija reglas importantes para que el modelo pueda verlas al comienzo de cada tarea.&lt;/p&gt;
&lt;p&gt;Esto significa dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contenido escrito allí es más difícil de olvidar.&lt;/li&gt;
&lt;li&gt;El contenido escrito allí también cuesta algo en cada tarea.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es como un README que se lee sólo cuando es necesario. Se parece más a un conjunto de limitaciones laborales de larga duración. Una vez que algo se coloca allí, afecta el juicio del modelo por defecto.&lt;/p&gt;
&lt;p&gt;Por lo tanto, &lt;code&gt;Claude.md&lt;/code&gt; no es una introducción al proyecto, ni una colección de consejos, ni un lugar para deshacerse de cada proceso de desarrollo. Sólo debe almacenar reglas que el modelo probablemente viole repetidamente si no las conoce.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-puede-empeorar-las-cosas&#34;&gt;Por qué puede empeorar las cosas
&lt;/h2&gt;&lt;p&gt;Un archivo de memoria global mal escrito suele provocar tres tipos de problemas.&lt;/p&gt;
&lt;p&gt;Primero, consume contexto.&lt;/p&gt;
&lt;p&gt;Si &lt;code&gt;Claude.md&lt;/code&gt; tiene mil líneas, esas líneas permanecen en el contexto del modelo durante mucho tiempo. Es posible que se reduzcan el código, los mensajes de error y los requisitos que realmente son relevantes para la tarea actual. El contexto no es espacio libre. Cuanto más grande sea el archivo de reglas globales, más fácil será diluir la tarea actual.&lt;/p&gt;
&lt;p&gt;En segundo lugar, puede desencadenar comportamientos innecesarios.&lt;/p&gt;
&lt;p&gt;Por ejemplo, un archivo global podría decir:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Before every task, fully read the project directory.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;After every change, run a complete end-to-end test.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas líneas parecen responsables, pero en un archivo de memoria global se convierten en &amp;ldquo;hacer esto para cada tarea&amp;rdquo;. Incluso si la tarea consiste solo en cambiar una línea de copia, el modelo puede realizar exploraciones y pruebas innecesarias debido a estas reglas. El resultado es un trabajo más lento, un costo más alto y, a veces, más interferencia.&lt;/p&gt;
&lt;p&gt;En tercer lugar, aumenta la carga del juicio.&lt;/p&gt;
&lt;p&gt;Declaraciones como &amp;ldquo;mantener el código elegante, conciso, mantenible y extensible&amp;rdquo; suenan correctas, pero son restricciones débiles. Cada vez que el modelo genera código, tiene que decidir qué significa elegante o extensible, sin recibir un límite claro.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es escribir prohibiciones o contraejemplos concretos en lugar de virtudes abstractas. Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not add a generic abstraction for a single call site.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not change shared parsing logic without test coverage.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not put temporary scripts in the application source directory.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas reglas son más específicas y más fáciles de seguir.&lt;/p&gt;
&lt;h2 id=&#34;qué-debería-entrar&#34;&gt;¿Qué debería entrar?
&lt;/h2&gt;&lt;p&gt;Puedes usar un estándar simple para decidir si algo pertenece a &lt;code&gt;Claude.md&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;Si la IA comete repetidamente el mismo error sin ella, entonces vale la pena anotarlo.&lt;/p&gt;
&lt;p&gt;El contenido adecuado para un archivo de memoria global suele tener estas características:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es duradero&lt;/li&gt;
&lt;li&gt;Está fuertemente ligado al repositorio actual.&lt;/li&gt;
&lt;li&gt;No se puede inferir naturalmente de la estructura del código.&lt;/li&gt;
&lt;li&gt;Cambia claramente el comportamiento del modelo.&lt;/li&gt;
&lt;li&gt;Es preferiblemente una restricción, prohibición, regla de ruta o comando fijo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;For all Hugo posts, only edit index.zh-cn.md and do not automatically generate other language versions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Article front matter must include title/date/draft/tags/categories/slug/description.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not modify generated artifacts under public/.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;On PowerShell, use scripts/deploy.ps1 for deployment.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas no son sugerencias vagas. Están vinculados a cómo funciona realmente el repositorio. Si el modelo no los conoce puede cometer errores; una vez que los conoce, puede evitar verdaderos errores.&lt;/p&gt;
&lt;h2 id=&#34;qué-debería-quedar-fuera&#34;&gt;¿Qué debería quedar fuera?
&lt;/h2&gt;&lt;p&gt;Mucha gente convierte &lt;code&gt;Claude.md&lt;/code&gt; en un manual de proyecto. Esto suele ser innecesario.&lt;/p&gt;
&lt;p&gt;El contenido que generalmente no pertenece allí incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visión y antecedentes del proyecto.&lt;/li&gt;
&lt;li&gt;Descripciones de estructuras de directorios grandes.&lt;/li&gt;
&lt;li&gt;Planes de tareas temporales&lt;/li&gt;
&lt;li&gt;Pasos únicos de depuración&lt;/li&gt;
&lt;li&gt;Lemas de calidad de código abstracto.&lt;/li&gt;
&lt;li&gt;Flujos de trabajo largos que solo son necesarios en algunas situaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, una descripción como &amp;ldquo;este es un proyecto de comercio electrónico con módulos de producto, pedido y usuario&amp;rdquo; ayuda muy poco con una tarea de codificación concreta. Durante el desarrollo real, el modelo debe depender de los requisitos, especificaciones, estructura del código y pruebas actuales, no de una introducción aproximada del proyecto en la memoria global.&lt;/p&gt;
&lt;p&gt;Lo mismo se aplica a la estructura de directorios. A menos que un directorio tenga una convención especial, como &amp;ldquo;los componentes compartidos deben importarse desde este directorio&amp;rdquo;, no es necesario escribir el árbol completo en el archivo. El modelo puede leer el directorio del proyecto. Es fácil que una descripción de directorio estática quede obsoleta.&lt;/p&gt;
&lt;h2 id=&#34;los-flujos-de-trabajo-pertenecen-a-habilidades-o-comandos&#34;&gt;Los flujos de trabajo pertenecen a habilidades o comandos
&lt;/h2&gt;&lt;p&gt;Si una sección dice &amp;ldquo;primero haz esto, luego aquello y luego haz la tercera cosa&amp;rdquo;, es posible que no pertenezca a &lt;code&gt;Claude.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Los flujos de trabajo de larga duración se pueden convertir en habilidades, scripts o comandos. El beneficio es que la memoria global solo necesita conservar el nombre y la condición de activación, mientras que los pasos detallados se cargan solo cuando es necesario.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When the user asks to translate a Hugo post, use the post-translate skill.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When the user asks to deploy the site, run the hugo-rsync-deploy workflow.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto es más liviano que poner los procesos completos de traducción e implementación en &lt;code&gt;Claude.md&lt;/code&gt;. La memoria global sigue siendo corta y los flujos de trabajo detallados se encuentran en herramientas activables.&lt;/p&gt;
&lt;p&gt;El nuevo flujo de inicialización de Claude también avanza en esta dirección. No solo genera un &lt;code&gt;Claude.md&lt;/code&gt;; también intenta dividir los flujos de trabajo reutilizables en habilidades y los eventos fijos en ganchos. La idea subyacente es clara: la memoria global debería ser un punto de entrada, mientras que los detalles deberían cargarse según demanda.&lt;/p&gt;
&lt;h2 id=&#34;claudemd-necesita-iteración&#34;&gt;Claude.md necesita iteración
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude.md&lt;/code&gt; no debe escribirse una vez y luego ignorarse.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es ser breve al principio y dejar que las tareas reales expongan los problemas. Si ocurre un error una vez, manéjelo manualmente. Si el mismo tipo de error aparece dos o más veces, puede merecer convertirse en una regla global.&lt;/p&gt;
&lt;p&gt;Este tipo de iteración es más útil que escribir un enorme conjunto de reglas al principio. Al principio, no sabes qué reglas son realmente útiles o qué líneas se convertirán en ruido. A medida que el proyecto crece, la colaboración aumenta y el comportamiento del modelo se vuelve más claro, puede agregar gradualmente problemas de alta frecuencia.&lt;/p&gt;
&lt;p&gt;También hay una tendencia importante: cuanto más fuerte sea el modelo, más corto debería ser el archivo de memoria global.
Muchos requisitos que alguna vez tuvieron que escribirse en indicaciones ahora son manejados naturalmente por el modelo. Continuar poniendo esos requisitos básicos en &lt;code&gt;Claude.md&lt;/code&gt; solo aumenta la carga de contexto. La memoria global debería reducirse a medida que mejora la capacidad del modelo, manteniendo solo lo que es exclusivo de este repositorio y no se puede inferir automáticamente.&lt;/p&gt;
&lt;h2 id=&#34;una-forma-más-práctica-de-escribirlo&#34;&gt;Una forma más práctica de escribirlo
&lt;/h2&gt;&lt;p&gt;Al escribir &lt;code&gt;Claude.md&lt;/code&gt;, piense en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Qué convenciones especiales tiene este repositorio?&lt;/li&gt;
&lt;li&gt;¿Qué errores ha cometido el modelo más de una vez?&lt;/li&gt;
&lt;li&gt;¿Qué directorios, archivos o comandos nunca deben usarse indebidamente?&lt;/li&gt;
&lt;li&gt;¿Qué flujos de trabajo deberían convertirse en habilidades, guiones o comandos en lugar de un contexto permanente?&lt;/li&gt;
&lt;li&gt;¿Qué partes son meras introducciones y pueden eliminarse?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El archivo final puede tener sólo unas pocas docenas de líneas. No es necesario explicar completamente el proyecto. Necesita limitar el comportamiento con precisión.&lt;/p&gt;
&lt;p&gt;Un buen &lt;code&gt;Claude.md&lt;/code&gt; podría verse así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Working Rules
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Only edit files related to the current task.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Do not modify generated artifact directories such as public/ or resources/.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Hugo post rewrites only process index.zh-cn.md and do not generate other language versions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- If deployment is involved, run the Hugo build first, then execute the existing rsync script.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- When there are existing user changes, do not revert them. Continue from the current state.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es breve, pero cada línea afecta el comportamiento real. Ese es el tipo de contenido que vale la pena mantener en contexto permanentemente.&lt;/p&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;Claude.md&lt;/code&gt; no es hacer que la IA &amp;ldquo;sepa más&amp;rdquo;. Se trata de hacer que la IA &amp;ldquo;evite errores corregidos&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No es una base de conocimientos ni una enciclopedia de proyectos. Es un archivo de restricciones de larga duración para la codificación AI.&lt;br&gt;
Cuanto más específico, breve y cercano a los errores reales sea, más útil será. Cuanto más genérica, más larga y más parecida a una introducción de proyecto sea, más probable será que ralentice el modelo o incluso empeore los resultados.&lt;/p&gt;
&lt;p&gt;Trate la memoria global como un recurso escaso, no como un bloc de notas ilimitado. Ese puede ser el principio más importante para escribir un buen &lt;code&gt;Claude.md&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo elegir entre GPT 5.5, Claude Opus 4.7, DeepSeek V4 y Qwen 3.6 Max</title>
        <link>https://knightli.com/es/2026/04/28/coding-ai-benchmark-gpt55-claude-opus47-deepseek-v4-qwen36max/</link>
        <pubDate>Tue, 28 Apr 2026 22:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/28/coding-ai-benchmark-gpt55-claude-opus47-deepseek-v4-qwen36max/</guid>
        <description>&lt;p&gt;Si solo quieres la respuesta corta, recuerda primero esta versión:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si desea la opción más confiable y la menor pérdida de tiempo, comience con &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si lo que más le importa es la presentación de la página, la creatividad y el pulido visual, &lt;code&gt;Claude Opus 4.7&lt;/code&gt; sigue siendo potente.&lt;/li&gt;
&lt;li&gt;Si desea saber qué modelo nacional se acerca más al nivel superior, &amp;ldquo;Qwen 3.6 Max&amp;rdquo; es altamente competitivo ahora&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; no es débil, pero su salida es más desigual que la de los demás&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la gente pregunta qué IA de codificación es la más potente en este momento, normalmente no preguntan por una tabla de clasificación. Piden algo más práctico:&lt;br&gt;
&lt;strong&gt;Si necesito crear una página, hacer una demostración, generar una pequeña herramienta o agregar interacción, ¿qué modelo es más probable que me brinde algo utilizable en el primer intento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Desde ese ángulo, las diferencias entre estos modelos ya son bastante claras.&lt;/p&gt;
&lt;h2 id=&#34;el-veredicto-general&#34;&gt;El veredicto general
&lt;/h2&gt;&lt;p&gt;Si coloca &lt;code&gt;GPT 5.5&lt;/code&gt;, &lt;code&gt;Claude Opus 4.7&lt;/code&gt;, &lt;code&gt;DeepSeek V4&lt;/code&gt; y &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; uno al lado del otro, la opción más consistente sigue siendo &lt;code&gt;GPT 5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No siempre es el más llamativo, pero rara vez te deja claramente decepcionado. Es rápido, el primer borrador generalmente sale con un alto nivel de finalización y maneja la lógica, la interacción, el movimiento y los juegos pequeños con mano firme.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt; se siente diferente. Su mayor fortaleza no es la pura estabilidad. Es la atmósfera de la página, la organización de la interfaz de usuario y la presentación. Muchas veces, abres lo que hizo y tu primera reacción es simplemente que se ve pulido. Si la presentación visual te importa más, vale la pena considerarla.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; es el que más merece una nueva apariencia. Ya no es sólo &amp;ldquo;utilizable para un modelo doméstico&amp;rdquo;. En algunos escenarios, realmente puede competir con &amp;ldquo;GPT 5.5&amp;rdquo; en calidad de salida. En las páginas frontales, la integridad visual y el realismo, ha comenzado a generar una presencia real.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; no falla porque no puede hacer el trabajo. El problema es que es menos predecible. Cuando funciona, puede ser perfectamente sólido y, a veces, sorprendentemente bueno. Pero la brecha entre sus mejores y más débiles resultados es aún más obvia que en el caso de los demás.&lt;/p&gt;
&lt;h2 id=&#34;dónde-gpt-55-es-más-fuerte&#34;&gt;Dónde &lt;code&gt;GPT 5.5&lt;/code&gt; es más fuerte
&lt;/h2&gt;&lt;p&gt;Si las cosas que haces con más frecuencia se ven así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar una página web completa.&lt;/li&gt;
&lt;li&gt;Crea una pequeña demostración con movimiento.&lt;/li&gt;
&lt;li&gt;Crear una página interactiva con algo de lógica.&lt;/li&gt;
&lt;li&gt;Generar un pequeño juego o una interacción multiestado.&lt;/li&gt;
&lt;li&gt;Mantener el retrabajo al mínimo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces &amp;ldquo;GPT 5.5&amp;rdquo; sigue siendo la respuesta predeterminada más segura.&lt;/p&gt;
&lt;p&gt;Sus ventajas son principalmente estas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generación rápida de código.&lt;/li&gt;
&lt;li&gt;Alta usabilidad desde el primer borrador&lt;/li&gt;
&lt;li&gt;Menos errores graves en lógica e interacción.&lt;/li&gt;
&lt;li&gt;Rendimiento estable en tareas mixtas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para decirlo de manera más simple, &amp;ldquo;GPT 5.5&amp;rdquo; parece el modelo con más probabilidades de lograr las bases correctas en la primera pasada.&lt;br&gt;
Lo que mucha gente realmente necesita no es el resultado más deslumbrante en una categoría. Necesitan que la primera versión no se rompa. En ese frente, sigue siendo la opción menos estresante.&lt;/p&gt;
&lt;p&gt;Por supuesto, no está exenta de debilidades.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En páginas muy visuales, no siempre es lo más sorprendente.&lt;/li&gt;
&lt;li&gt;A veces es tan estable que deja menos impresión de diseño&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, si desea una recomendación predeterminada, sigue siendo &amp;ldquo;GPT 5.5&amp;rdquo;.&lt;br&gt;
Eso no significa que sea el único que vale la pena mirar.&lt;/p&gt;
&lt;h2 id=&#34;a-quién-se-adapta-mejor-claude-opus-47&#34;&gt;¿A quién se adapta mejor &lt;code&gt;Claude Opus 4.7&lt;/code&gt;?
&lt;/h2&gt;&lt;p&gt;El atractivo de &amp;ldquo;Claude Opus 4.7&amp;rdquo; proviene más de cómo se siente la página.&lt;/p&gt;
&lt;p&gt;Sus puntos fuertes suelen ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estructura de interfaz de usuario más limpia&lt;/li&gt;
&lt;li&gt;Presentación visual más completa&lt;/li&gt;
&lt;li&gt;Mayor calidad de presentación en algunas páginas.&lt;/li&gt;
&lt;li&gt;Creatividad más notoria en visualización y diseño.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el modelo te ayuda a construir cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Páginas de demostración&lt;/li&gt;
&lt;li&gt;Páginas de presentación de datos.&lt;/li&gt;
&lt;li&gt;Páginas pequeñas donde la sensación visual importa mucho.&lt;/li&gt;
&lt;li&gt;Resultados que deberían lucir pulidos inmediatamente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces &amp;ldquo;Claude&amp;rdquo; todavía merece un lugar cerca de la cima.&lt;/p&gt;
&lt;p&gt;Sus debilidades también son bastante claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No es tan estable como &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;A veces se ve bien, pero la lógica detallada se desvía.&lt;/li&gt;
&lt;li&gt;En algunos casos, el código se ejecuta, pero la experiencia principal no es del todo correcta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &amp;ldquo;Claude&amp;rdquo; se siente más como un modelo frontal con instinto estético extra.&lt;br&gt;
Si su primera prioridad es el aspecto de la página, tiene ventajas reales. Si tu mayor temor es un error lógico en el primer resultado, debes tener un poco más de cuidado.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-qwen-36-max-merece-una-atención-seria&#34;&gt;Por qué &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; merece una atención seria
&lt;/h2&gt;&lt;p&gt;Entre estos modelos, el &amp;ldquo;Qwen 3.6 Max&amp;rdquo; ofrece la mayor sensación de impulso.&lt;/p&gt;
&lt;p&gt;No hace mucho, muchas personas analizaban la IA de codificación doméstica preguntándose principalmente si podría mantenerse al día. Con &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;, la pregunta ya es diferente:&lt;br&gt;
&lt;strong&gt;En escenarios de producción frontal, ¿puede competir directamente con los mejores modelos extranjeros?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sus áreas más fuertes en este momento incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Salida de página atractiva&lt;/li&gt;
&lt;li&gt;Movimiento sólido y efectos visuales realistas en algunos casos.&lt;/li&gt;
&lt;li&gt;Salidas que se sienten más completas.&lt;/li&gt;
&lt;li&gt;Resultados que a veces pueden acercarse o permanecer cerca de &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso dice algo importante.&lt;br&gt;
Si su caso de uso se inclina hacia páginas web, trabajo frontend y resultados con muchas presentaciones, &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; ya no es solo una opción de respaldo. Puede ser tratado como un candidato principal serio.&lt;/p&gt;
&lt;p&gt;Sin embargo, todavía tiene algunas debilidades.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En tareas lógicas con mucha interacción, aún puede perder un poco de integridad.&lt;/li&gt;
&lt;li&gt;Algunas páginas se ven muy bien, mientras que algunas tareas son más planas de lo esperado.&lt;/li&gt;
&lt;li&gt;Su variación es aún mayor que &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aun así, su presencia actual ya es muy fuerte.&lt;br&gt;
Si desea saber qué modelo doméstico merece la mayor atención en este momento, es difícil pasar por alto el &amp;ldquo;Qwen 3.6 Max&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;dónde-se-encuentra-deepseek-v4-ahora-mismo&#34;&gt;Dónde se encuentra &lt;code&gt;DeepSeek V4&lt;/code&gt; ahora mismo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; es un poco más complicado de colocar.&lt;/p&gt;
&lt;p&gt;El problema no es que no pueda hacer el trabajo. El problema es que es más difícil predecir dónde aterrizará un resultado determinado.&lt;br&gt;
A veces puede terminar la tarea con imágenes y funcionalidad de trabajo decentes. A veces, una vez que la tarea requiere animación, lógica y presentación de datos al mismo tiempo, es más probable que tropiece.&lt;/p&gt;
&lt;p&gt;Ahora mismo se siente más así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tiene habilidad real.&lt;/li&gt;
&lt;li&gt;No es débil&lt;/li&gt;
&lt;li&gt;Aún puede dar resultados aceptables en algunas tareas.&lt;/li&gt;
&lt;li&gt;Pero su estabilidad aún no es lo suficientemente tranquilizadora.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso moldea a quién le conviene más.&lt;/p&gt;
&lt;p&gt;Si no le importa intentarlo varias veces, puede tolerar un reinicio ocasional o ya planea verificar y editar el código usted mismo, aún vale la pena usar &amp;ldquo;DeepSeek V4&amp;rdquo;.&lt;br&gt;
Pero si su principal prioridad es reducir la fricción y maximizar el éxito del primer paso, todavía no es la opción más segura.&lt;/p&gt;
&lt;h2 id=&#34;entonces-qué-debería-elegir-un-usuario-normal&#34;&gt;Entonces, ¿qué debería elegir un usuario normal?
&lt;/h2&gt;&lt;p&gt;Si no está comparando modelos por diversión y realmente quiere trabajar, la forma más sencilla es elegir por caso de uso.&lt;/p&gt;
&lt;h3 id=&#34;1-quiere-menos-complicaciones-y-una-mayor-tasa-de-éxito-en-el-primer-paso&#34;&gt;1. Quiere menos complicaciones y una mayor tasa de éxito en el primer paso
&lt;/h3&gt;&lt;p&gt;Elija &amp;ldquo;GPT 5.5&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Lo mejor es este flujo de trabajo: &amp;ldquo;Este es mi requisito, denme una primera versión utilizable&amp;rdquo;.&lt;br&gt;
Eso importa aún más cuando no tienes tiempo para seguir iterando y arreglando.&lt;/p&gt;
&lt;h3 id=&#34;2-te-importa-más-la-presentación-y-el-acabado-visual&#34;&gt;2. Te importa más la presentación y el acabado visual
&lt;/h3&gt;&lt;p&gt;Elija &lt;code&gt;Claude Opus 4.7&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si lo que desea es una página que ya se parezca más a un producto terminado, o si su trabajo está más orientado a demostraciones y presentaciones, &lt;code&gt;Claude&lt;/code&gt; muestra su valor más fácilmente.&lt;/p&gt;
&lt;h3 id=&#34;3-quiere-el-modelo-nacional-más-sólido-para-la-producción-inicial&#34;&gt;3. Quiere el modelo nacional más sólido para la producción inicial
&lt;/h3&gt;&lt;p&gt;Comience con &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ya no es algo que se utiliza únicamente como compromiso. Ahora se puede comparar directa y seriamente.&lt;br&gt;
Si sus tareas se inclinan hacia las páginas web, el movimiento y la presentación, su competitividad ya es muy real.&lt;/p&gt;
&lt;h3 id=&#34;4-puedes-tolerar-algunas-variaciones-y-quieres-seguir-observando-el-progreso-interno&#34;&gt;4. Puedes tolerar algunas variaciones y quieres seguir observando el progreso interno.
&lt;/h3&gt;&lt;p&gt;Esté atento a &lt;code&gt;DeepSeek V4&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Su problema no es la falta de capacidad. Es que el nivel de ejecución aún varía demasiado.&lt;br&gt;
Si la estabilidad sigue mejorando, podría volverse mucho más importante.&lt;/p&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La diferencia entre estas IA de codificación convencionales ya no es quién puede codificar y quién no. Se trata de quién es más estable, quién tiene mejor aspecto y quién se adapta a su tipo de trabajo.&lt;/p&gt;
&lt;p&gt;Si desea la respuesta más sencilla, &amp;ldquo;GPT 5.5&amp;rdquo; sigue siendo la primera opción.&lt;br&gt;
Si desea una calidad de presentación más fuerte, &amp;ldquo;Claude Opus 4.7&amp;rdquo; todavía tiene sabor real.&lt;br&gt;
Si le interesa qué modelo nacional merece la mayor atención, &amp;ldquo;Qwen 3.6 Max&amp;rdquo; ya está cerca del frente.&lt;br&gt;
&lt;code&gt;DeepSeek V4&lt;/code&gt; se siente más como un fuerte contendiente que todavía está trabajando en la coherencia.&lt;/p&gt;
&lt;p&gt;Si quieres la conclusión más breve posible:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Para mayor estabilidad, elija &lt;code&gt;GPT 5.5&lt;/code&gt;. Para la presentación, elija &amp;ldquo;Claude&amp;rdquo;. Entre los modelos nacionales, el que más vale la pena ver es el &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Por qué Elon Musk y SpaceX quieren la opción de 60 mil millones de dólares para adquirir Cursor</title>
        <link>https://knightli.com/es/2026/04/28/why-spacex-wants-a-60b-option-on-cursor/</link>
        <pubDate>Tue, 28 Apr 2026 21:45:47 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/28/why-spacex-wants-a-60b-option-on-cursor/</guid>
        <description>&lt;p&gt;Si solo lees el titular, la forma más fácil de malinterpretar esta historia es reducirla a una frase: &lt;strong&gt;Elon Musk quiere que SpaceX gaste 60 mil millones de dólares para comprar Cursor.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pero la parte más importante de la historia no es la cifra de 60.000 millones de dólares en sí. El verdadero punto es que lo que obtuvo SpaceX es una &lt;strong&gt;opción de adquisición&lt;/strong&gt;, no una adquisición completa.&lt;/p&gt;
&lt;p&gt;Eso es algo muy diferente.&lt;/p&gt;
&lt;p&gt;En pocas palabras, SpaceX tiene una elección futura: a finales de este año, puede adquirir Cursor por &amp;ldquo;60 mil millones de dólares&amp;rdquo; o pagar &amp;ldquo;10 mil millones de dólares&amp;rdquo; para seguir avanzando en la asociación. Esa estructura por sí sola indica que Elon Musk y SpaceX no persiguen una simple transacción financiera. Lo que quieren es una configuración en la que &lt;strong&gt;primero se asocien, observen el resultado y solo entonces decidan si plegarán completamente el Cursor&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;01-por-qué-no-comprarlo-ahora&#34;&gt;01 ¿Por qué no comprarlo ahora?
&lt;/h2&gt;&lt;p&gt;Si Elon Musk y SpaceX solo quisieran Cursor en el sentido más directo, el camino más sencillo habría sido una adquisición sencilla.&lt;/p&gt;
&lt;p&gt;El hecho de que no lo hicieran sugiere que varias cosas aún no están completamente resueltas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si Cursor como producto puede mantener un crecimiento muy alto&lt;/li&gt;
&lt;li&gt;Si la computación de SpaceX y xAI realmente puede llevar a Cursor a su siguiente etapa&lt;/li&gt;
&lt;li&gt;¿Cuánta sinergia tienen realmente las dos partes una vez que trabajan en estrecha colaboración?&lt;/li&gt;
&lt;li&gt;Si concretar hoy una adquisición de 60.000 millones de dólares sería demasiado pronto para cualquiera de las partes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso importa la opción: &lt;strong&gt;toma lo más importante ahora mismo, pero no te apresures a enviar todo el dinero hoy.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para Elon Musk y SpaceX, esto crea flexibilidad. Para Cursor, también conserva más espacio que el que se absorbe por completo de inmediato.&lt;/p&gt;
&lt;h2 id=&#34;02-lo-que-elon-musk-y-spacex-realmente-quieren-es-más-grande-que-el-propio-cursor&#34;&gt;02 Lo que Elon Musk y SpaceX realmente quieren es más grande que el propio cursor
&lt;/h2&gt;&lt;p&gt;Según los informes públicos, lo que hace atractivo a Cursor no es solo que sea un producto de codificación de IA popular. También se encuentra en la intersección de varias cosas muy valiosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ya cuenta con un canal de distribución de desarrolladores real.&lt;/li&gt;
&lt;li&gt;Ha establecido una posición en la categoría de codificación de IA más popular.&lt;/li&gt;
&lt;li&gt;Puede alimentar flujos de trabajo de ingeniería reales en modelos e infraestructura.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Más claramente, Elon Musk y SpaceX no están prestando atención a Cursor porque es simplemente un editor. Lo que realmente están mirando es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distribución para desarrolladores.&lt;/li&gt;
&lt;li&gt;Usuarios de alto valor&lt;/li&gt;
&lt;li&gt;Datos de uso reales de flujos de trabajo de codificación de IA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para un ecosistema como xAI, que todavía persigue a Anthropic y OpenAI, ese tipo de punto de entrada es caro por una razón.&lt;/p&gt;
&lt;p&gt;En esta etapa, la competencia en los modelos grandes ya no se trata sólo de quién tiene la puntuación de referencia más alta. También se trata de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Quién se acerca a los flujos de trabajo reales?&lt;/li&gt;
&lt;li&gt;¿Quién llega más directamente a los desarrolladores?&lt;/li&gt;
&lt;li&gt;¿Quién recopila más datos de interacción de alta calidad?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El cursor es exactamente ese tipo de punto de acceso.&lt;/p&gt;
&lt;h2 id=&#34;03-por-qué-una-opción-es-más-importante-que-un-acuerdo-de-asociación-normal&#34;&gt;03 Por qué una opción es más importante que un acuerdo de asociación normal
&lt;/h2&gt;&lt;p&gt;Si el objetivo fuera sólo la cooperación, un acuerdo de asociación ordinario podría haber bastado. Entonces, ¿por qué añadir una opción de adquisición por &amp;ldquo;60.000 millones de dólares&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;Porque un acuerdo de cooperación normal no resuelve dos problemas.&lt;/p&gt;
&lt;h3 id=&#34;1-evita-que-otra-persona-se-lleve-el-premio-más-tarde&#34;&gt;1. Evita que otra persona se lleve el premio más tarde
&lt;/h3&gt;&lt;p&gt;Lo que hace que Cursor sea caro no son sólo los ingresos actuales. Existe la posibilidad de que se convierta en una plataforma mucho más grande en los próximos años.
Si SpaceX se hubiera asociado sin bloquear ningún derecho, el resultado fácilmente podría haber sido doloroso para Musk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El producto se fortalece gracias a la asociación.&lt;/li&gt;
&lt;li&gt;El crecimiento se acelera gracias a la asociación&lt;/li&gt;
&lt;li&gt;La valoración aumenta debido a la asociación.&lt;/li&gt;
&lt;li&gt;Y luego interviene otro gigante y lo compra.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ése es exactamente el tipo de problema que resuelve una opción de adquisición.&lt;br&gt;
No compre todavía, pero primero asegure el derecho de prioridad.&lt;/p&gt;
&lt;h3 id=&#34;2-crea-un-colchón-en-torno-a-la-incertidumbre-de-valoración&#34;&gt;2. Crea un colchón en torno a la incertidumbre de valoración
&lt;/h3&gt;&lt;p&gt;Si las dos partes intentaran completar una adquisición total ahora, uno de los argumentos más importantes sería simple: ¿son &amp;ldquo;60 mil millones de dólares&amp;rdquo; demasiado caros?&lt;/p&gt;
&lt;p&gt;Es difícil responder ahora porque el cursor sigue cambiando muy rápidamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desde el punto de vista actual, 60.000 millones de dólares parecen caros.&lt;/li&gt;
&lt;li&gt;Pero si la computación mejora, la capacidad del modelo mejora y los usuarios siguen expandiéndose, el número puede verse muy diferente dentro de unos meses.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso una opción es un compromiso tan clásico:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bloquee el marco de precios hoy&lt;/li&gt;
&lt;li&gt;Decidir si ejercerlo después de ver cómo se desempeña la sociedad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es mucho más típico de acuerdos en los que la estrategia de capital y la estrategia industrial están estrechamente mezcladas.&lt;/p&gt;
&lt;h2 id=&#34;04-por-qué-el-cursor-estaría-de-acuerdo&#34;&gt;04 Por qué el cursor estaría de acuerdo
&lt;/h2&gt;&lt;p&gt;Desde el punto de vista de Cursor, esto tampoco es especialmente difícil de entender.&lt;/p&gt;
&lt;p&gt;Lo que Cursor puede necesitar más en este momento no es simplemente más efectivo. Es más probable que se trate de &lt;strong&gt;una mayor capacidad informática, más recursos de capacitación y un foso estratégico más sólido&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Los informes públicos ya dejan en claro que Cursor quería impulsar la capacitación aún más, pero estaba limitado por la computación. Una asociación con el ecosistema de Musk, especialmente SpaceX y xAI, le brinda acceso directo a una infraestructura mucho más grande.&lt;/p&gt;
&lt;p&gt;Esto importa de maneras muy prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La formación modelo puede seguir ampliándose&lt;/li&gt;
&lt;li&gt;La capacidad del producto puede mejorar más rápido&lt;/li&gt;
&lt;li&gt;El cursor no tiene que depender totalmente de proveedores de modelos externos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese último punto importa mucho.&lt;/p&gt;
&lt;p&gt;Puede que el cursor sea un producto de codificación de IA popular, pero aún vive con una tensión estructural:&lt;br&gt;
coopera con empresas como Anthropic y OpenAI y compite con ellas directamente en la capa de producto.&lt;/p&gt;
&lt;p&gt;Ese tipo de relación es inherentemente inestable.&lt;/p&gt;
&lt;p&gt;Lo que ofrece la combinación SpaceX/xAI de Musk es un camino diferente: unir la capa de modelo ascendente y la capa de producto descendente de manera mucho más estrecha.&lt;/p&gt;
&lt;p&gt;Por tanto, Cursor no acepta esta opción simplemente porque el precio sea atractivo. También está de acuerdo porque realmente necesita una mayor capacidad informática y una alineación estratégica más profunda.&lt;/p&gt;
&lt;h2 id=&#34;05-por-qué-dejar-sobre-la-mesa-una-alternativa-de-10000-millones-de-dólares&#34;&gt;05 ¿Por qué dejar sobre la mesa una alternativa de 10.000 millones de dólares?
&lt;/h2&gt;&lt;p&gt;Esta puede ser la parte más interesante.&lt;/p&gt;
&lt;p&gt;El encuadre público no es &amp;ldquo;ni una adquisición ni nada&amp;rdquo;. Se trata de &amp;ldquo;o una adquisición de &amp;ldquo;60 mil millones de dólares&amp;rdquo; o &amp;ldquo;10 mil millones de dólares&amp;rdquo; para profundizar la asociación&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Eso le indica que ambas partes están asumiendo algo desde el principio:&lt;br&gt;
&lt;strong&gt;la asociación en sí misma tiene valor, incluso si nunca se produce una adquisición total.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ese camino de los “10 mil millones de dólares” funciona como un estado intermedio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la sociedad funciona muy bien, ejecutar la adquisición.&lt;/li&gt;
&lt;li&gt;Si funciona, pero aún no es el momento adecuado para las fusiones y adquisiciones, mantener a las dos partes estrechamente unidas a través de una asociación estratégica más sólida.
En otras palabras, Elon Musk y SpaceX no están forzando esto a tomar una decisión binaria de &amp;ldquo;comprar o no comprar&amp;rdquo;. Están dejando deliberadamente espacio en el medio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo general, eso significa que ambas partes saben que el mercado de la IA se está moviendo demasiado rápido como para tomar una decisión irreversible demasiado pronto.&lt;/p&gt;
&lt;h2 id=&#34;06-desde-la-perspectiva-de-elon-musk-y-spacex-esto-parece-un-movimiento-de-posicionamiento-previo-a-la-ipo&#34;&gt;06 Desde la perspectiva de Elon Musk y SpaceX, esto parece un movimiento de posicionamiento previo a la IPO
&lt;/h2&gt;&lt;p&gt;Visto desde fuera, el acuerdo también tiene una dimensión de mercado de capitales muy obvia.&lt;/p&gt;
&lt;p&gt;Los informes públicos ya han sugerido que, antes de una posible IPO, SpaceX quiere contar una historia más sólida sobre la IA en lugar de ser vista sólo como una compañía de cohetes y satélites. Para Elon Musk, eso también se ajusta a un patrón más amplio de los últimos años: intentar conectar cohetes, computación, modelos, distribución y flujos de trabajo de desarrolladores en un mapa tecnológico más grande.&lt;/p&gt;
&lt;p&gt;En ese contexto, Cursor no es sólo un activo empresarial. También es un activo narrativo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SpaceX aporta infraestructura y computación a gran escala&lt;/li&gt;
&lt;li&gt;xAI trae la historia del modelo y la plataforma.&lt;/li&gt;
&lt;li&gt;Cursor ofrece distribución para desarrolladores y un caso de uso de capa de aplicación novedoso&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez que esas tres capas se vinculan, la historia se vuelve mucho más completa que &amp;ldquo;también hacemos modelos&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Es por eso que la opción también puede leerse como un movimiento para &lt;strong&gt;bloquear una historia futura antes de que se arregle la estructura final&lt;/strong&gt;. Para Musk, no se trata sólo del diseño de acuerdos. También es un paso temprano para asegurar una posición significativa en el punto de entrada de la codificación de IA.&lt;/p&gt;
&lt;p&gt;Esto gana tiempo para la integración interna y al mismo tiempo indica al mundo exterior que SpaceX no quiere detenerse en la infraestructura de inteligencia artificial. Quiere seguir llegando a la capa de aplicaciones y a los flujos de trabajo de los desarrolladores.&lt;/p&gt;
&lt;h2 id=&#34;07-resumen-de-una-oración&#34;&gt;07 Resumen de una oración
&lt;/h2&gt;&lt;p&gt;Elon Musk y SpaceX quieren la opción de adquisición de Cursor por &amp;ldquo;60 mil millones de dólares&amp;rdquo; no porque estén seguros de que deben tragarse toda la compañía hoy, sino porque &lt;strong&gt;quieren acceso de los desarrolladores y derechos de adquisición futura ahora sin asumir todo el riesgo de fusiones y adquisiciones, riesgo de valoración y riesgo de integración de inmediato&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Por eso la palabra &amp;ldquo;opción&amp;rdquo; importa más que la cifra &amp;ldquo;60 mil millones de dólares&amp;rdquo;.&lt;br&gt;
Muestra que SpaceX no busca una transacción única, sino una estrategia para asegurar su posición primero, probar la asociación y solo después decidir si absorbe completamente la empresa.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Pro vs GPT-5.5: después de probar la interfaz, la escritura y la codificación, la brecha parece mayor de lo esperado</title>
        <link>https://knightli.com/es/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</link>
        <pubDate>Sat, 25 Apr 2026 11:12:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</guid>
        <description>&lt;p&gt;Las comparaciones entre &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; y &lt;code&gt;GPT-5.5&lt;/code&gt; están recibiendo más atención últimamente. La razón ya no es si alguno de los modelos es utilizable. La verdadera pregunta es: &lt;strong&gt;cuando el trabajo recae en el desarrollo, la redacción y la codificación del frontend, ¿cuál es mejor para ser su herramienta principal?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando la gente compara modelos como este, a menudo empiezan preguntando cuál es más fuerte.&lt;br&gt;
Pero la pregunta más útil suele ser diferente: &lt;strong&gt;en una tarea real, ¿cuál es más estable, más barata para comunicarse y con mayor probabilidad de producir algo que pueda seguir construyendo de inmediato?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si simplificamos primero la conclusión, queda más o menos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuando desea un resultado más equilibrado y una experiencia productiva más completa, mucha gente todavía mira primero &lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Cuando necesita una iteración de alta frecuencia en chino, se preocupa más por el costo y desea ciclos de respuesta rápidos, &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; se convierte en un candidato serio.&lt;/li&gt;
&lt;li&gt;Lo que realmente determina la experiencia a menudo no es el nombre del modelo en sí, sino el tipo de tarea, el enfoque de las indicaciones y si es necesario seguir revisándolo después.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Analicemos esto en los tres escenarios de comparación más comunes.&lt;/p&gt;
&lt;h2 id=&#34;1-tareas-frontend-la-verdadera-pregunta-no-es-si-puede-crear-una-página-sino-si-puede-seguir-mejorándola&#34;&gt;1. Tareas frontend: la verdadera pregunta no es si puede crear una página, sino si puede seguir mejorándola
&lt;/h2&gt;&lt;p&gt;El trabajo frontend parece ideal para comparaciones de modelos porque el resultado es fácil de ver.&lt;br&gt;
¿Se puede ejecutar la página? ¿Se ve bien? ¿Está limpia la estructura? Puedes juzgar todo eso rápidamente.&lt;/p&gt;
&lt;p&gt;Pero la verdadera diferencia no suele aparecer en si el primer borrador funciona. Aparece en preguntas como estas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Está la estructura lo suficientemente clara?&lt;/li&gt;
&lt;li&gt;¿La división del componente es natural?&lt;/li&gt;
&lt;li&gt;¿Cambiar una pieza accidentalmente rompe otra?&lt;/li&gt;
&lt;li&gt;¿Puede seguir la misma lógica de implementación en múltiples rondas de instrucciones?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es también por eso que muchas demostraciones de frontend que parecen impresionantes en la primera ronda no necesariamente se mantienen a la vanguardia en los flujos de trabajo reales.&lt;/p&gt;
&lt;p&gt;Si su tarea es algo como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar rápidamente un prototipo de página ejecutable&lt;/li&gt;
&lt;li&gt;Redactar una idea de página de destino.&lt;/li&gt;
&lt;li&gt;Complete los estilos, botones, tarjetas, formularios y otros elementos básicos requeridos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces ambos modelos a menudo te acercarán bastante, y la diferencia está más en el estilo de salida.&lt;/p&gt;
&lt;p&gt;Pero si la tarea se convierte en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisar repetidamente la interfaz de usuario durante varias rondas.&lt;/li&gt;
&lt;li&gt;Leer el código existente y continuar desde allí.&lt;/li&gt;
&lt;li&gt;Equilibrar la estructura de los componentes, la coherencia del estilo y la mantenibilidad.&lt;/li&gt;
&lt;li&gt;Convertir gradualmente una página estática en código de proyecto real.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces lo que debes observar ya no es “quién luce mejor en la primera ronda”, sino “quién tiene menos probabilidades de quedarse dormido en la quinta ronda”.&lt;/p&gt;
&lt;p&gt;Entonces, en el trabajo frontend, la comparación clave no es si el modelo puede generar una página. Se trata de si, después de seguir agregando restricciones, aún puede mantener una estructura estable, nombres consistentes y costos de modificación manejables.&lt;/p&gt;
&lt;h2 id=&#34;2-tareas-de-escritura-la-verdadera-diferencia-no-es-cuánto-se-escribe-sino-qué-tan-estable-se-mantiene-el-estilo-y-qué-tan-bien-se-reescribe&#34;&gt;2. Tareas de escritura: la verdadera diferencia no es cuánto se escribe, sino qué tan estable se mantiene el estilo y qué tan bien se reescribe.
&lt;/h2&gt;&lt;p&gt;La escritura es otra área en la que la gente puede juzgar mal los modelos con mucha facilidad.&lt;/p&gt;
&lt;p&gt;Una razón importante es que los primeros borradores suelen verse bien desde ambos lados.&lt;br&gt;
La estructura es completa, los párrafos están ahí y el tono es lo suficientemente suave como para que sea fácil pensar que son básicamente similares.&lt;/p&gt;
&lt;p&gt;Pero tan pronto como avanzas la tarea un paso más, aparecen las diferencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Puede comprender con precisión a su público objetivo?&lt;/li&gt;
&lt;li&gt;¿Puede cambiar de tono manteniendo el mismo tema?&lt;/li&gt;
&lt;li&gt;¿Se pierden puntos clave al reescribir?&lt;/li&gt;
&lt;li&gt;¿Se mantiene estable al comprimir, ampliar, retitular o reestructurar?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El mayor problema al escribir no suele ser “no puede escribir”, sino “escribió algo que aún necesita mucho arreglo”.&lt;/p&gt;
&lt;p&gt;Entonces, al comparar &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; y &amp;ldquo;GPT-5.5&amp;rdquo;, el método más útil es no pedirles a cada uno que escriba un artículo. Se trata de ejecutar varias rondas como esta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribe el primer borrador.&lt;/li&gt;
&lt;li&gt;Reescríbelo en un tono diferente.&lt;/li&gt;
&lt;li&gt;Comprímelo en una versión más corta.&lt;/li&gt;
&lt;li&gt;Modifíquelo para convertirlo en algo más adecuado para titulares basados en clics o distribución de búsqueda.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si un modelo puede mantener intactos los puntos clave, la redacción estable y la estructura limpia durante esas rondas, entonces tiene mucho más valor en un flujo de trabajo de escritura real.&lt;/p&gt;
&lt;p&gt;En otras palabras, lo que realmente miden las tareas de escritura no es el “estilo literario”, sino la &lt;strong&gt;capacidad de revisión, el seguimiento de instrucciones y el sentimiento de colaboración continua&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;3-tareas-de-codificación-la-brecha-real-se-muestra-en-la-estabilidad-de-la-cadena-larga&#34;&gt;3. Tareas de codificación: la brecha real se muestra en la estabilidad de la cadena larga
&lt;/h2&gt;&lt;p&gt;Las tareas de codificación exponen el nivel real de un modelo más fácilmente que el trabajo frontend, porque no se trata solo de generar resultados. Tienen que conectar con la realidad.&lt;/p&gt;
&lt;p&gt;Muy rápidamente, te encuentras con preguntas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Puede comprender la estructura de un proyecto existente?&lt;/li&gt;
&lt;li&gt;¿Puede modificar varios archivos a la vez?&lt;/li&gt;
&lt;li&gt;¿Introduce nuevos problemas después de realizar cambios?&lt;/li&gt;
&lt;li&gt;¿Puede seguir depurando siguiendo registros y errores?&lt;/li&gt;
&lt;li&gt;Después de varias rondas, ¿todavía recuerda lo que ya cambió?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este tipo de trabajo, lo que más preocupa a los usuarios no suele ser si un único fragmento de código parece elegante. Es: &lt;strong&gt;¿puede este modelo seguir avanzando en la tarea, en lugar de dejarme a mí limpiar el desorden?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Entonces, al comparar &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; y &lt;code&gt;GPT-5.5&lt;/code&gt;, lo más significativo a considerar generalmente no son indicaciones de codificación aisladas, sino un proceso más cercano al trabajo real:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer un repositorio existente&lt;/li&gt;
&lt;li&gt;Encuentra un error&lt;/li&gt;
&lt;li&gt;Modificar varios archivos relacionados&lt;/li&gt;
&lt;li&gt;Continuar corrigiendo según los mensajes de error.&lt;/li&gt;
&lt;li&gt;Resumir claramente el resultado al final.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez que la tarea ingresa a ese tipo de flujo de trabajo continuo, la retención del contexto, los hábitos de ejecución, la calidad de la explicación y la tasa de retrabajo son más importantes que la calidad de la respuesta en un solo turno.&lt;/p&gt;
&lt;p&gt;Esta es también la razón por la que muchos usuarios eventualmente no se conforman con “usar un solo modelo para siempre” para codificar. En cambio, cambian su herramienta principal según la etapa de la tarea.&lt;/p&gt;
&lt;h2 id=&#34;4-lo-que-realmente-vale-la-pena-comparar-no-es-quién-gana-sino-qué-tareas-son-más-rentables-asignar-a-quién&#34;&gt;4. Lo que realmente vale la pena comparar no es quién gana, sino qué tareas son más rentables asignar a quién
&lt;/h2&gt;&lt;p&gt;Si pones &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; y &amp;ldquo;GPT-5.5&amp;rdquo; uno al lado del otro y solo intentas elegir un campeón general, el resultado suele ser una conclusión vacía.&lt;/p&gt;
&lt;p&gt;Esto se debe a que las tareas reales no son un examen estándar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunos son de una sola generación.&lt;/li&gt;
&lt;li&gt;Algunas son colaboraciones de múltiples rondas.&lt;/li&gt;
&lt;li&gt;Algunos están escritos en chino.&lt;/li&gt;
&lt;li&gt;Algunos son cambios de ingeniería.&lt;/li&gt;
&lt;li&gt;Algunos priorizan la velocidad&lt;/li&gt;
&lt;li&gt;Algunos priorizan la estabilidad&lt;/li&gt;
&lt;li&gt;Algunos priorizan el costo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, el enfoque que se acerca más al uso real suele ser dividir por objetivo de la tarea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si desea una experiencia general más completa, una interacción más madura y un resultado general más estable, pruebe primero &lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si desea experimentar con alta frecuencia en chino, iteración rápida y mejor relación calidad-precio, &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; merece un lugar importante en su flujo de trabajo.&lt;/li&gt;
&lt;li&gt;Si la tarea en sí es de cadena larga, de múltiples rondas y colaborativa, no se detenga en el primer resultado; observe quién se mantiene más estable después de cinco rondas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, la verdadera pregunta no es “quién es absolutamente más fuerte”, sino ésta:&lt;br&gt;
&lt;strong&gt;para el trabajo frontend, la escritura y la codificación, ¿qué modelo parece más la herramienta más práctica para su etapa actual?&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;5-cómo-realizar-una-comparación-que-realmente-signifique-algo&#34;&gt;5. Cómo realizar una comparación que realmente signifique algo
&lt;/h2&gt;&lt;p&gt;Si desea probar &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; y &lt;code&gt;GPT-5.5&lt;/code&gt; usted mismo, un método más confiable generalmente no es ejecutar una sola ronda, sino hacer algo como esto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Dé a ambos modelos el mismo requisito inicial.&lt;/li&gt;
&lt;li&gt;Mantenga las mismas restricciones en ambos lados&lt;/li&gt;
&lt;li&gt;Continúe haciendo preguntas de seguimiento durante tres a cinco rondas.&lt;/li&gt;
&lt;li&gt;Registre la calidad de salida, la frecuencia de deriva y la cantidad de retrabajo&lt;/li&gt;
&lt;li&gt;Solo entonces compara velocidad, coste y usabilidad final.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ese tipo de prueba te acercará mucho más al trabajo real que simplemente preguntar quién luce más impresionante en la primera ronda.&lt;/p&gt;
&lt;p&gt;Especialmente en frontend, escritura y codificación, lo que a menudo determina la experiencia real no es la línea de partida, sino &lt;strong&gt;quién puede quedarse contigo y ayudarte a terminar el trabajo&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;6-una-forma-sencilla-de-recordarlo&#34;&gt;6. Una forma sencilla de recordarlo
&lt;/h2&gt;&lt;p&gt;Si solo quieres un resumen práctico, puedes recordarlo así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: más como un espacio de trabajo predeterminado amplio, productivo y convencional&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;: más bien un competidor fuerte que vale la pena incorporar a los flujos de trabajo diarios en chino y al trabajo de prueba y error de alta frecuencia&lt;/li&gt;
&lt;li&gt;El verdadero punto de comparación: no un resultado llamativo en la primera ronda, sino quién se mantiene más estable y ahorra más esfuerzo después de múltiples rondas de revisión.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, en este tipo de comparación, lo que realmente importa nunca es simplemente “quién ganó”. Es este:&lt;br&gt;
&lt;strong&gt;Para sus tareas de frontend, escritura y codificación, ¿qué modelo facilita el progreso continuo, reduce el retrabajo y le brinda resultados más estables?&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo dividir tareas entre ChatGPT, Claude y Gemini: elección de uso diario, codificación y capacidades especiales</title>
        <link>https://knightli.com/es/2026/04/25/chatgpt-claude-gemini-task-selection/</link>
        <pubDate>Sat, 25 Apr 2026 10:51:19 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/25/chatgpt-claude-gemini-task-selection/</guid>
        <description>&lt;p&gt;Mucha gente ya no confía en un solo modelo. En cambio, alternan entre &amp;ldquo;ChatGPT&amp;rdquo;, &amp;ldquo;Claude&amp;rdquo; y &amp;ldquo;Gemini&amp;rdquo;. Eso hace que la pregunta sea mucho más práctica: &lt;strong&gt;¿qué tipo de tareas deberían asignarse a qué modelo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esto resulta confuso no porque los tres sean débiles, sino porque ahora son fuertes de diferentes maneras. Si aún así eliges basándose en un estándar vago como “cuál es más inteligente”, fácilmente puedes terminar eligiendo la herramienta equivocada.&lt;/p&gt;
&lt;p&gt;Si simplificamos primero la conclusión, queda más o menos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para conversaciones diarias y tareas de propósito general, muchas personas comienzan con &lt;code&gt;ChatGPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Para la codificación de línea de comandos, la colaboración de contexto prolongado y la ejecución sostenida de tareas, &amp;ldquo;Claude&amp;rdquo; a menudo se siente más fluido.&lt;/li&gt;
&lt;li&gt;Cuando necesita integración del ecosistema de Google, búsqueda, puntos de entrada multimodales o ciertas capacidades a nivel de producto, &amp;ldquo;Gemini&amp;rdquo; tiende a destacar más.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dividámoslo en tres partes.&lt;/p&gt;
&lt;h2 id=&#34;1-conversaciones-diarias-por-qué-muchas-personas-todavía-abren-chatgpt-primero&#34;&gt;1. Conversaciones diarias: por qué muchas personas todavía abren &lt;code&gt;ChatGPT&lt;/code&gt; primero
&lt;/h2&gt;&lt;p&gt;Para la mayoría de los escenarios cotidianos, &amp;ldquo;ChatGPT&amp;rdquo; todavía se siente como el &amp;ldquo;punto de entrada predeterminado&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No se trata de un único punto de referencia. Se trata de la experiencia general:&lt;br&gt;
cuando desea hacer una pregunta rápida, organizar sus pensamientos, redactar un borrador, crear una primera versión o resumir un material, &amp;ldquo;ChatGPT&amp;rdquo; generalmente se siente bastante equilibrado.&lt;/p&gt;
&lt;p&gt;Sus puntos fuertes suelen aparecer en algunos lugares:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Su estilo de respuesta es relativamente estable.&lt;/li&gt;
&lt;li&gt;La curva de aprendizaje es baja para los usuarios generales.&lt;/li&gt;
&lt;li&gt;La mayoría de las tareas amplias no requieren muchos ajustes adicionales&lt;/li&gt;
&lt;li&gt;El producto se siente pulido y funciona bien para el uso diario frecuente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, si tu tarea es algo como esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ayúdame a organizar un tema.&lt;/li&gt;
&lt;li&gt;Convertir una idea en contenido estructurado.&lt;/li&gt;
&lt;li&gt;Resumir un artículo extenso.&lt;/li&gt;
&lt;li&gt;Lluvia de ideas sobre varios enfoques&lt;/li&gt;
&lt;li&gt;Reescribir algo más claramente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, &amp;ldquo;ChatGPT&amp;rdquo; suele ser un lugar muy natural para empezar.&lt;/p&gt;
&lt;p&gt;Eso no significa que sea siempre la opción más sólida para cada tarea profesional. Esto significa que, para un uso amplio y de propósito general, a menudo se siente más como el espacio de trabajo predeterminado.&lt;/p&gt;
&lt;h2 id=&#34;2-codificación-de-línea-de-comandos-y-tareas-largas-por-qué-mucha-gente-se-inclina-por-claude&#34;&gt;2. Codificación de línea de comandos y tareas largas: por qué mucha gente se inclina por &lt;code&gt;Claude&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Una vez que una tarea pasa de &amp;ldquo;charlemos&amp;rdquo; a &amp;ldquo;seguiremos trabajando hasta terminar esto&amp;rdquo;, muchas personas empiezan a preferir &amp;ldquo;Claude&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Esto es especialmente cierto en escenarios como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Programación de línea de comandos&lt;/li&gt;
&lt;li&gt;Comprender el contexto de un gran proyecto.&lt;/li&gt;
&lt;li&gt;Coordinar ediciones en múltiples archivos.&lt;/li&gt;
&lt;li&gt;Depuración de largas cadenas de tareas.&lt;/li&gt;
&lt;li&gt;Leer código mientras se avanza constantemente una tarea&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este tipo de trabajo, la clave no suele ser si una respuesta es especialmente impresionante. Se trata de si el modelo puede permanecer estable a lo largo de una cadena de trabajo más larga.&lt;/p&gt;
&lt;p&gt;La razón por la que a menudo se prefiere &amp;ldquo;Claude&amp;rdquo; no es que &amp;ldquo;diga una frase mejor que las demás&amp;rdquo;, sino que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se mantiene mejor en tareas de contexto prolongado.&lt;/li&gt;
&lt;li&gt;Se siente más estable al leer archivos, registros y reglas continuamente&lt;/li&gt;
&lt;li&gt;Es más adecuado para avanzar gradualmente en trabajos de codificación complejos.&lt;/li&gt;
&lt;li&gt;En los flujos de trabajo de agentes y de línea de comandos, a menudo se lo trata como el modelo de trabajo principal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si está haciendo &amp;ldquo;codificación de vibración&amp;rdquo;, corrigiendo errores en la terminal, entendiendo la estructura del proyecto o cambiando características en varios archivos, las fortalezas de &amp;ldquo;Claude&amp;rdquo; tienden a mostrarse más claramente.
En pocas palabras, &amp;ldquo;Claude&amp;rdquo; se siente más como un modelo con el que trabajas para hacer las cosas, no simplemente como uno al que haces una pregunta y obtienes una respuesta.&lt;/p&gt;
&lt;h2 id=&#34;3-géminis-a-menudo-gana-no-compitiendo-frontalmente-en-todo&#34;&gt;3. &amp;ldquo;Géminis&amp;rdquo; a menudo gana no &amp;ldquo;compitiendo frontalmente en todo&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Cuando la gente habla de &amp;ldquo;Géminis&amp;rdquo;, a menudo formulan la pregunta de la siguiente manera: ¿es el más fuerte de los tres?&lt;/p&gt;
&lt;p&gt;Pero en el uso real, la pregunta más útil no suele ser esa. Es: &lt;strong&gt;¿en qué escenarios vale especialmente la pena sacarlo y usarlo a propósito?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El valor de &amp;ldquo;Géminis&amp;rdquo; a menudo se muestra más claramente en estas direcciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integración con el ecosistema de Google.&lt;/li&gt;
&lt;li&gt;Búsqueda y recopilación de información.&lt;/li&gt;
&lt;li&gt;Puntos de entrada multimodales&lt;/li&gt;
&lt;li&gt;Ciertos vínculos de características del lado del producto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si su flujo de trabajo ya está cerca de la cadena de herramientas de Google, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buscar&lt;/li&gt;
&lt;li&gt;Documentos&lt;/li&gt;
&lt;li&gt;Correo electrónico&lt;/li&gt;
&lt;li&gt;Uso del lado del navegador&lt;/li&gt;
&lt;li&gt;Puntos de entrada móviles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces la conveniencia práctica de &amp;ldquo;Gemini&amp;rdquo; puede importar más que una simple comparación entre modelo y puntuación.&lt;/p&gt;
&lt;p&gt;En otras palabras, &amp;ldquo;Gemini&amp;rdquo; suele ser útil porque se integra en su flujo de trabajo de manera más natural, no solo porque puede o no vencer a otra persona en una sola respuesta.&lt;/p&gt;
&lt;h2 id=&#34;4-la-forma-útil-de-elegir-no-es-preguntar-quién-es-más-fuerte-sino-qué-tipo-de-tarea-tienes&#34;&gt;4. La forma útil de elegir no es preguntar quién es más fuerte, sino qué tipo de tarea tienes
&lt;/h2&gt;&lt;p&gt;Cuando la gente compara los tres modelos uno al lado del otro, la trampa más fácil es tratar de encontrar el “mejor” modelo.&lt;/p&gt;
&lt;p&gt;Pero las tareas reales varían demasiado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunas son preguntas y respuestas únicas&lt;/li&gt;
&lt;li&gt;Algunas son conversaciones de larga duración.&lt;/li&gt;
&lt;li&gt;Algunos son proyectos de software.&lt;/li&gt;
&lt;li&gt;Algunos son recuperación de información.&lt;/li&gt;
&lt;li&gt;Algunos son procesamiento multimodal&lt;/li&gt;
&lt;li&gt;Algunos son colaboración en cadena de herramientas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, el enfoque más eficaz suele ser ordenar por tipo de tarea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si desea un asistente amplio y de alta frecuencia que funcione de inmediato, comience con &lt;code&gt;ChatGPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si necesita contexto extenso, trabajo en la línea de comandos, colaboración en codificación y progreso constante en tareas complejas, pruebe primero con &amp;ldquo;Claude&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Si necesita ayuda del ecosistema de Google, búsqueda, puntos de entrada multimodal o ciertas integraciones de productos, preste especial atención a &amp;ldquo;Gemini&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese tipo de división del trabajo está mucho más cerca del uso en el mundo real que obligar a un único campeón general.&lt;/p&gt;
&lt;h2 id=&#34;5-por-qué-muchos-usuarios-habituales-se-suscriben-a-los-tres&#34;&gt;5. Por qué muchos usuarios habituales se suscriben a los tres
&lt;/h2&gt;&lt;p&gt;Desde la perspectiva de un usuario ligero, pagar por los tres puede parecer redundante.&lt;br&gt;
Desde la perspectiva de un usuario intensivo, es más como asignar diferentes herramientas a diferentes trabajos.&lt;/p&gt;
&lt;p&gt;La razón es sencilla:&lt;br&gt;
Si las fortalezas de los tres modelos ya han comenzado a divergir claramente, entonces usarlos juntos no constituye realmente un gasto duplicado. Es una forma de reducir los costos de cambio y los costos de prueba y error.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice &lt;code&gt;ChatGPT&lt;/code&gt; para la organización diaria y preguntas y respuestas generales&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;Claude&lt;/code&gt; para el trabajo de codificación principal.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;Gemini&lt;/code&gt; para ciertos flujos de trabajo de búsqueda, multimodales o relacionados con Google&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La lógica de esta configuración no es fundamentalmente diferente de la de los diseñadores que instalan múltiples herramientas creativas o los desarrolladores que usan múltiples IDE.&lt;/p&gt;
&lt;h2 id=&#34;6-cuándo-no-debes-cambiar-de-modelo-con-demasiada-frecuencia&#34;&gt;6. Cuándo no debes cambiar de modelo con demasiada frecuencia
&lt;/h2&gt;&lt;p&gt;Eso sí, tener más modelos no siempre es mejor.&lt;/p&gt;
&lt;p&gt;Si todavía estás creando un flujo de trabajo estable, saltar demasiado pronto y con demasiada frecuencia entre tres modelos puede complicar aún más las cosas. Los problemas comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Volver a explicar la misma tarea tres veces.&lt;/li&gt;
&lt;li&gt;Recibir diferentes sugerencias de diferentes modelos y luchar más para juzgarlas.&lt;/li&gt;
&lt;li&gt;Perder contexto y aumentar los costos de colaboración.&lt;/li&gt;
&lt;li&gt;Estancarse en la elección de herramientas antes de establecer sus propios límites de trabajo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, una forma más estable suele ser esta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Asigne primero a cada modelo un escenario principal&lt;/li&gt;
&lt;li&gt;Úselo continuamente en ese escenario por un tiempo.&lt;/li&gt;
&lt;li&gt;Construya gradualmente sus propios hábitos de división del trabajo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eso hace que sea más fácil obtener experiencia reutilizable en lugar de quedarse para siempre en la etapa de &amp;ldquo;déjame probar esta hoy&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;7-una-forma-sencilla-de-recordarlo&#34;&gt;7. Una forma sencilla de recordarlo
&lt;/h2&gt;&lt;p&gt;Si solo desea una versión práctica para recordar, puede utilizar esta división en lenguaje sencillo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ChatGPT&lt;/code&gt;: más parecido al asistente de uso general predeterminado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Claude&lt;/code&gt;: más bien la opción principal para tareas largas y colaboración en codificación&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemini&lt;/code&gt;: más bien la herramienta con mayores ventajas en la búsqueda, el trabajo multimodal y el ecosistema de Google&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta no es una regla absoluta y no significa que los tres no puedan reemplazarse entre sí. Es simplemente un punto de partida más realista.&lt;/p&gt;
&lt;p&gt;Lo que realmente importa no es elegir el “modelo más fuerte del universo”, sino averiguarlo lo antes posible:&lt;br&gt;
&lt;strong&gt;Para el tipo de tarea que tienes por delante, ¿qué modelo ahorra más tiempo, cuesta menos esfuerzo mental y facilita la obtención de resultados?&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>La configuración de entorno en cuatro partes de Claude Code: CLAUDE.md, Rules, Memory y Hooks</title>
        <link>https://knightli.com/es/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</link>
        <pubDate>Thu, 23 Apr 2026 10:43:40 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</guid>
        <description>&lt;p&gt;Si usas &lt;code&gt;Claude Code&lt;/code&gt; durante un tiempo, pronto notas algo: el modelo importa, pero el entorno que le das, los límites que defines y las reglas que configuras importan igual.&lt;/p&gt;
&lt;p&gt;Al principio, mucha gente se centra en &amp;ldquo;cómo escribo este prompt&amp;rdquo;. Pero cuando empiezas a usar &lt;code&gt;Claude Code&lt;/code&gt; en serio, te importa más otra cosa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Sabe quién eres?&lt;/li&gt;
&lt;li&gt;¿Sabe cómo trabajas?&lt;/li&gt;
&lt;li&gt;¿Sabe qué reglas no puede romper?&lt;/li&gt;
&lt;li&gt;¿Sabe qué acciones requieren confirmación primero?&lt;/li&gt;
&lt;li&gt;¿Puede recordar esos límites con el tiempo?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lo que vuelve maduro a &lt;code&gt;Claude Code&lt;/code&gt; no es solo la capacidad del modelo. Es que hay un sistema completo para convertir tu estilo de trabajo en estructura persistente. A alto nivel, ese sistema puede dividirse en cuatro capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este artículo explica las cuatro.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-la-configuración-de-entorno-importa-más-que-prompts-únicos&#34;&gt;Por qué la configuración de entorno importa más que prompts únicos
&lt;/h2&gt;&lt;p&gt;Puedes pensar en &lt;code&gt;Claude Code&lt;/code&gt; como un asistente que contrataste.&lt;/p&gt;
&lt;p&gt;El primer día no le dirías solo &amp;ldquo;ayúdame a hacer cosas&amp;rdquo;. Le darías un manual y explicarías:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quién eres&lt;/li&gt;
&lt;li&gt;qué estilo de comunicación prefieres&lt;/li&gt;
&lt;li&gt;qué acciones siempre requieren confirmación&lt;/li&gt;
&lt;li&gt;qué errores ya ocurrieron y no deben repetirse&lt;/li&gt;
&lt;li&gt;dónde están los documentos importantes del proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso, a largo plazo, la configuración de entorno suele importar más que un prompt aislado.&lt;/p&gt;
&lt;p&gt;Un prompt resuelve &amp;ldquo;qué hacemos esta vez&amp;rdquo;. La configuración de entorno resuelve &amp;ldquo;cómo trabajamos cada vez desde ahora&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;capa-1-claudemd&#34;&gt;Capa 1: &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Empieza por la pieza básica. &lt;code&gt;CLAUDE.md&lt;/code&gt; es esencialmente un archivo de texto.&lt;/p&gt;
&lt;p&gt;Puedes escribir instrucciones para Claude, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quién eres&lt;/li&gt;
&lt;li&gt;en qué trabajas&lt;/li&gt;
&lt;li&gt;tus preferencias de comunicación&lt;/li&gt;
&lt;li&gt;reglas obligatorias&lt;/li&gt;
&lt;li&gt;contexto especial del proyecto actual&lt;/li&gt;
&lt;li&gt;dónde están documentos o directorios importantes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada vez que &lt;code&gt;Claude Code&lt;/code&gt; arranca, este documento se inyecta automáticamente en el contexto, así que el modelo lo leerá.&lt;/p&gt;
&lt;p&gt;Suelo pensarlo como un &amp;ldquo;archivo de entendimiento compartido&amp;rdquo;, porque eso es: el acuerdo permanente entre tú y el modelo.&lt;/p&gt;
&lt;h3 id=&#34;qué-poner-en-claudemd&#34;&gt;Qué poner en &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Lo mejor para &lt;code&gt;CLAUDE.md&lt;/code&gt; suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;identidad y contexto de trabajo&lt;/li&gt;
&lt;li&gt;preferencias de tono y salida&lt;/li&gt;
&lt;li&gt;reglas globales de comportamiento&lt;/li&gt;
&lt;li&gt;contexto de proyecto que aparece a menudo&lt;/li&gt;
&lt;li&gt;errores comunes y cómo evitarlos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tu zona horaria&lt;/li&gt;
&lt;li&gt;si permites que el modelo envíe emails o mensajes directamente&lt;/li&gt;
&lt;li&gt;qué acciones son irreversibles&lt;/li&gt;
&lt;li&gt;tus hábitos con documentos y archivos&lt;/li&gt;
&lt;li&gt;prácticas de seguridad y límites sobre información sensible&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;un-principio-muy-importante-mantenerlo-conciso&#34;&gt;Un principio muy importante: mantenerlo conciso
&lt;/h3&gt;&lt;p&gt;Un principio clave para &lt;code&gt;CLAUDE.md&lt;/code&gt;: mantenlo lo más conciso posible.&lt;/p&gt;
&lt;p&gt;La razón es simple: se inyecta en contexto cada vez.&lt;/p&gt;
&lt;p&gt;Si crece demasiado, ocupa demasiado espacio de contexto y diluye la información importante. El modelo no lo ignora, pero su atención se dispersa, así que es más probable que pase por alto reglas críticas.&lt;/p&gt;
&lt;p&gt;La recomendación oficial suele ser mantenerlo por debajo de &lt;code&gt;400&lt;/code&gt; líneas.&lt;/p&gt;
&lt;p&gt;Mi hábito es aún más conservador: intento mantenerlo por debajo de &lt;code&gt;200&lt;/code&gt; líneas.&lt;/p&gt;
&lt;h3 id=&#34;alcances-comunes-de-claudemd&#34;&gt;Alcances comunes de &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;En la práctica, &lt;code&gt;CLAUDE.md&lt;/code&gt; puede existir en distintos niveles, y esos niveles determinan su alcance.&lt;/p&gt;
&lt;h4 id=&#34;1-nivel-de-usuario&#34;&gt;1. Nivel de usuario
&lt;/h4&gt;&lt;p&gt;Es el nivel global.&lt;/p&gt;
&lt;p&gt;Vive en tu entorno de máquina y aplica a todos los proyectos locales.&lt;/p&gt;
&lt;p&gt;Es buen lugar para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;información de identidad&lt;/li&gt;
&lt;li&gt;preferencias generales de comunicación&lt;/li&gt;
&lt;li&gt;hábitos que aplican a todos los proyectos&lt;/li&gt;
&lt;li&gt;reglas globales de seguridad&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;2-nivel-de-proyecto&#34;&gt;2. Nivel de proyecto
&lt;/h4&gt;&lt;p&gt;Es el nivel del proyecto.&lt;/p&gt;
&lt;p&gt;Está dentro de un directorio de proyecto concreto y solo aplica a ese proyecto.&lt;/p&gt;
&lt;p&gt;Es buen lugar para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;contexto específico del proyecto&lt;/li&gt;
&lt;li&gt;reglas que solo tienen sentido ahí&lt;/li&gt;
&lt;li&gt;explicación de la estructura de directorios&lt;/li&gt;
&lt;li&gt;entradas a documentos clave del proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cómo-decidir-qué-nivel-usar&#34;&gt;Cómo decidir qué nivel usar
&lt;/h3&gt;&lt;p&gt;La regla es simple:&lt;/p&gt;
&lt;p&gt;Si lo escrito seguiría siendo verdad en otro proyecto, ponlo en el &lt;code&gt;user level&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si deja de ser verdad al cambiar de proyecto, ponlo en el &lt;code&gt;project level&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;cómo-escribir-la-primera-versión&#34;&gt;Cómo escribir la primera versión
&lt;/h3&gt;&lt;p&gt;Hay dos formas comunes de empezar:&lt;/p&gt;
&lt;h4 id=&#34;1-usar-init&#34;&gt;1. Usar &lt;code&gt;/init&lt;/code&gt;
&lt;/h4&gt;&lt;p&gt;Puedes ejecutar &lt;code&gt;/init&lt;/code&gt; directamente en la terminal y dejar que Claude escanee el proyecto para generar un &lt;code&gt;CLAUDE.md&lt;/code&gt; básico.&lt;/p&gt;
&lt;h4 id=&#34;2-dejar-que-claude-te-ayude-a-organizarlo&#34;&gt;2. Dejar que Claude te ayude a organizarlo
&lt;/h4&gt;&lt;p&gt;También puedes pedirle que busque cómo otras personas estructuran &lt;code&gt;CLAUDE.md&lt;/code&gt;, que te haga preguntas según tu situación y organice una versión que encaje contigo.&lt;/p&gt;
&lt;h3 id=&#34;un-hábito-práctico&#34;&gt;Un hábito práctico
&lt;/h3&gt;&lt;p&gt;Al colaborar con Claude, cuando notes algo que debe recordarse o que no debe fallar otra vez, puedes pedirle que lo escriba en &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Antes de hacerlo, decide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿es una regla global?&lt;/li&gt;
&lt;li&gt;¿o solo del proyecto actual?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No lo metas todo en un único archivo.&lt;/p&gt;
&lt;h2 id=&#34;capa-2-rules&#34;&gt;Capa 2: &lt;code&gt;Rules&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La siguiente capa es &lt;code&gt;Rules&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La diferencia principal con &lt;code&gt;CLAUDE.md&lt;/code&gt; no es el formato, sino cómo se carga.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; se lee sin importar qué haces.&lt;/p&gt;
&lt;p&gt;La ventaja de &lt;code&gt;Rules&lt;/code&gt; es que pueden cargarse &lt;strong&gt;condicionalmente&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Una regla puede cargarse solo para ciertas rutas, archivos, herramientas o escenarios.&lt;/p&gt;
&lt;h3 id=&#34;por-qué-importa-la-carga-condicional&#34;&gt;Por qué importa la carga condicional
&lt;/h3&gt;&lt;p&gt;Porque el espacio de contexto siempre es escaso.&lt;/p&gt;
&lt;p&gt;Si todas las reglas entran al contexto todo el tiempo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el modelo carga más overhead&lt;/li&gt;
&lt;li&gt;las reglas realmente importantes se entierran&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de cargar reglas bajo demanda es que el modelo ve la información correcta en el momento correcto.&lt;/p&gt;
&lt;h3 id=&#34;cuándo-mover-reglas-desde-claudemd-a-rules&#34;&gt;Cuándo mover reglas desde &lt;code&gt;CLAUDE.md&lt;/code&gt; a &lt;code&gt;Rules&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Suelen darse dos situaciones:&lt;/p&gt;
&lt;h4 id=&#34;1-claudemd-se-volvió-demasiado-largo&#34;&gt;1. &lt;code&gt;CLAUDE.md&lt;/code&gt; se volvió demasiado largo
&lt;/h4&gt;&lt;p&gt;Si empieza a pasar de &lt;code&gt;200&lt;/code&gt; líneas, sigue creciendo y lo importante se diluye, toca separar reglas.&lt;/p&gt;
&lt;h4 id=&#34;2-algunas-reglas-solo-aplican-a-rutas-concretas&#34;&gt;2. Algunas reglas solo aplican a rutas concretas
&lt;/h4&gt;&lt;p&gt;Si sabes que ciertas reglas solo tienen sentido para ciertos archivos, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reglas solo para scripts Python&lt;/li&gt;
&lt;li&gt;reglas solo para un directorio de hooks&lt;/li&gt;
&lt;li&gt;reglas solo para un subproyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces pertenecen más naturalmente a &lt;code&gt;Rules&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;dónde-encajan-mejor-rules&#34;&gt;Dónde encajan mejor &lt;code&gt;Rules&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;El caso típico es &amp;ldquo;situación específica, ruta específica, tipo de archivo específico&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convenciones al manejar hooks&lt;/li&gt;
&lt;li&gt;reglas de código para cierto tipo de scripts&lt;/li&gt;
&lt;li&gt;formas de trabajo que solo aplican bajo un directorio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mantener ese contenido en &lt;code&gt;CLAUDE.md&lt;/code&gt; suele no ser rentable.&lt;/p&gt;
&lt;h2 id=&#34;capa-3-memory&#34;&gt;Capa 3: &lt;code&gt;Memory&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La tercera capa es &lt;code&gt;Memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Como &lt;code&gt;CLAUDE.md&lt;/code&gt; y &lt;code&gt;Rules&lt;/code&gt;, también entra al contexto del modelo, pero su diferencia central es:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es algo que defines deliberadamente.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Memory&lt;/code&gt; se parece más a notas que Claude escribe para sí mismo durante la colaboración.&lt;/p&gt;
&lt;h3 id=&#34;qué-entra-en-memory&#34;&gt;Qué entra en &lt;code&gt;Memory&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Cuando Claude juzga que algo vale la pena recordar o conservar por un tiempo, escribe esa información en &lt;code&gt;Memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ejemplos comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una forma de trabajar que corregiste&lt;/li&gt;
&lt;li&gt;una preferencia nueva&lt;/li&gt;
&lt;li&gt;estado temporal del proyecto actual&lt;/li&gt;
&lt;li&gt;algo que no terminaste hoy y debes continuar mañana&lt;/li&gt;
&lt;li&gt;con quién colaboraste recientemente&lt;/li&gt;
&lt;li&gt;contexto personal aparecido hace poco&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es conocimiento dinámico más que política de largo plazo.&lt;/p&gt;
&lt;h3 id=&#34;diferencia-con-las-dos-primeras-capas&#34;&gt;Diferencia con las dos primeras capas
&lt;/h3&gt;&lt;p&gt;Una distinción simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; / &lt;code&gt;Rules&lt;/code&gt;: reglas explícitas, de largo plazo y tipo política&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;: contexto temporal, dinámico y recién aprendido&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si algo solo importa unos días o cambia con frecuencia, suele pertenecer a &lt;code&gt;Memory&lt;/code&gt;, no a una regla permanente.&lt;/p&gt;
&lt;h3 id=&#34;memory-también-puede-escribirse-manualmente&#34;&gt;&lt;code&gt;Memory&lt;/code&gt; también puede escribirse manualmente
&lt;/h3&gt;&lt;p&gt;Aunque &lt;code&gt;Memory&lt;/code&gt; puede mantenerse automáticamente, también puedes decirle explícitamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;recuerda lo que debo hacer mañana&lt;/li&gt;
&lt;li&gt;recuerda a quién debo hacer seguimiento&lt;/li&gt;
&lt;li&gt;recuerda el hito clave de este proyecto este mes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También puedes usar &lt;code&gt;/memory&lt;/code&gt; para ver, editar o borrar memorias.&lt;/p&gt;
&lt;h2 id=&#34;capa-4-hooks&#34;&gt;Capa 4: &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La última y más avanzada capa es &lt;code&gt;Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Todo lo anterior, incluido &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;Rules&lt;/code&gt; y &lt;code&gt;Memory&lt;/code&gt;, sigue siendo guía en lenguaje natural.&lt;/p&gt;
&lt;p&gt;Escribes reglas y el modelo normalmente las sigue, pero primero debe interpretarlas.&lt;/p&gt;
&lt;p&gt;Mientras la regla viva en lenguaje natural, quedan problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el modelo puede pasarla por alto&lt;/li&gt;
&lt;li&gt;demasiadas reglas diluyen atención&lt;/li&gt;
&lt;li&gt;puede decidir que no es suficientemente importante&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;qué-son-realmente-hooks&#34;&gt;Qué son realmente &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; ya no son instrucciones en lenguaje natural. Son scripts.&lt;/p&gt;
&lt;p&gt;Son lógica de enforcement a nivel programa, disparada por eventos.&lt;/p&gt;
&lt;p&gt;Cuando ocurre cierto evento, esa lógica corre. No se salta porque el modelo la ignore.&lt;/p&gt;
&lt;p&gt;Ese es su valor:&lt;/p&gt;
&lt;p&gt;convierten &amp;ldquo;debería seguir esto&amp;rdquo; en &amp;ldquo;debe ejecutarse esto&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;cuándo-subir-algo-a-hooks&#34;&gt;Cuándo subir algo a &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Si una regla ya está escrita en &lt;code&gt;CLAUDE.md&lt;/code&gt; o &lt;code&gt;Rules&lt;/code&gt;, pero Claude todavía falla ocasionalmente, y el coste de fallar es real, probablemente debería ser un &lt;code&gt;Hook&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comportamiento de bajo riesgo: reglas&lt;/li&gt;
&lt;li&gt;comportamiento de alto riesgo: &lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;escenarios-típicos&#34;&gt;Escenarios típicos
&lt;/h3&gt;&lt;p&gt;Ejemplos obvios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;exigir confirmación antes de enviar un email&lt;/li&gt;
&lt;li&gt;exigir confirmación antes de enviar mensajes Slack, Outlook o Gmail&lt;/li&gt;
&lt;li&gt;interceptar borrados peligrosos de archivos&lt;/li&gt;
&lt;li&gt;bloquear fugas de contraseñas o API keys&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo están escritas como reglas, el modelo puede equivocarse algún día. Si son &lt;code&gt;Hooks&lt;/code&gt;, el evento se intercepta cada vez.&lt;/p&gt;
&lt;h3 id=&#34;puntos-de-disparo-comunes&#34;&gt;Puntos de disparo comunes
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; pueden engancharse en distintas etapas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;inyectar recordatorios al inicio de una conversación&lt;/li&gt;
&lt;li&gt;revisar condiciones antes de ejecutar una herramienta&lt;/li&gt;
&lt;li&gt;validar resultados después de ejecutar una herramienta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No necesitas conocer toda la terminología formal. A menudo basta con describir claramente el requisito y preguntar a Claude si debería convertirse en hook.&lt;/p&gt;
&lt;p&gt;También puedes usar &lt;code&gt;/hook&lt;/code&gt; para inspeccionar hooks configurados.&lt;/p&gt;
&lt;h2 id=&#34;una-forma-práctica-de-empezar&#34;&gt;Una forma práctica de empezar
&lt;/h2&gt;&lt;p&gt;Recomiendo este orden:&lt;/p&gt;
&lt;h3 id=&#34;paso-1-usa-init-para-generar-un-claudemd-básico&#34;&gt;Paso 1: usa &lt;code&gt;/init&lt;/code&gt; para generar un &lt;code&gt;CLAUDE.md&lt;/code&gt; básico
&lt;/h3&gt;&lt;p&gt;No intentes escribir un enorme documento completo desde el inicio.&lt;/p&gt;
&lt;p&gt;Deja que Claude escanee el proyecto y genere un punto de partida, luego itera.&lt;/p&gt;
&lt;h3 id=&#34;paso-2-añade-cosas-mientras-trabajas&#34;&gt;Paso 2: añade cosas mientras trabajas
&lt;/h3&gt;&lt;p&gt;Cuando notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;esto debe recordarse&lt;/li&gt;
&lt;li&gt;este error no debe repetirse&lt;/li&gt;
&lt;li&gt;esta preferencia aplicará siempre&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;pide a Claude que lo añada a &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;paso-3-mueve-cosas-a-rules-cuando-claudemd-crezca&#34;&gt;Paso 3: mueve cosas a &lt;code&gt;Rules&lt;/code&gt; cuando &lt;code&gt;CLAUDE.md&lt;/code&gt; crezca
&lt;/h3&gt;&lt;p&gt;Cuando &lt;code&gt;CLAUDE.md&lt;/code&gt; se alarga y el modelo no sigue todo con fiabilidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿qué reglas son globales?&lt;/li&gt;
&lt;li&gt;¿cuáles solo aplican a ciertas rutas?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mueve las segundas a &lt;code&gt;Rules&lt;/code&gt; para carga condicional.&lt;/p&gt;
&lt;h3 id=&#34;paso-4-convierte-reglas-de-alto-riesgo-en-hooks&#34;&gt;Paso 4: convierte reglas de alto riesgo en &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Si una regla sigue fallando y el coste de fallar es alto, no te quedes en lenguaje natural. Conviértela en &lt;code&gt;Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ahí el &amp;ldquo;recordatorio&amp;rdquo; se vuelve &amp;ldquo;enforcement&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;paso-5-deja-que-memory-maneje-estado-temporal&#34;&gt;Paso 5: deja que &lt;code&gt;Memory&lt;/code&gt; maneje estado temporal
&lt;/h3&gt;&lt;p&gt;Para cosas que expiran, cambian a menudo o no son política permanente, no lo metas todo en &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es más limpio dejar que &lt;code&gt;Memory&lt;/code&gt; guarde:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;progreso actual del proyecto&lt;/li&gt;
&lt;li&gt;colaboradores recientes&lt;/li&gt;
&lt;li&gt;preferencias recién añadidas&lt;/li&gt;
&lt;li&gt;planes y to-dos de corto plazo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-debería-guardar-cada-capa&#34;&gt;Qué debería guardar cada capa
&lt;/h2&gt;&lt;p&gt;Modelo mental rápido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;: entendimiento compartido de largo plazo, instrucciones globales, contexto base del proyecto&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;: reglas especializadas cargadas por ruta o escenario&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;: conocimiento dinámico, estado temporal, cosas aprendidas recientemente&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;: enforcement programático para acciones de alto riesgo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Mucha gente trata &lt;code&gt;Claude Code&lt;/code&gt; como &amp;ldquo;una interfaz de chat que escribe código&amp;rdquo;. Pero al usarlo a fondo, se siente más como una estación de trabajo inteligente de largo plazo.&lt;/p&gt;
&lt;p&gt;La clave no es solo cómo formulas cada instrucción. Es si le diste un entorno estable, claro y acumulativo.&lt;/p&gt;
&lt;p&gt;Cuando construyes estas cuatro capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;la calidad de colaboración suele mejorar mucho.&lt;/p&gt;
&lt;p&gt;Porque ya no reexplicas desde cero quién eres, cómo trabajas y qué no debe pasar en cada sesión. Convertiste esas cosas en parte del entorno.&lt;/p&gt;
&lt;p&gt;Ese es el paso clave para convertir un modelo fuerte en una herramienta madura.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CLAUDE.md de 65 líneas de Karpathy: ayudando a la codificación de IA a evitar tres errores comunes</title>
        <link>https://knightli.com/es/2026/04/19/karpathy-claude-md-ai-coding-rules/</link>
        <pubDate>Sun, 19 Apr 2026 18:27:23 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/karpathy-claude-md-ai-coding-rules/</guid>
        <description>&lt;p&gt;Un proyecto de GitHub sobre codificación de IA ha recibido mucha atención recientemente. Su núcleo no es una base de código compleja, sino un archivo &lt;code&gt;CLAUDE.md&lt;/code&gt; de aproximadamente 65 líneas. La razón por la que atrajo tantas estrellas no es la complejidad técnica. Es que captura los problemas con los que muchas personas se encuentran repetidamente cuando usan IA para escribir código.&lt;/p&gt;
&lt;p&gt;Los antecedentes comienzan con las observaciones de Andrej Karpathy sobre la codificación de IA. Karpathy es un influyente educador e ingeniero en IA: doctor de Stanford, uno de los primeros contribuyentes de OpenAI y exlíder de IA de Tesla responsable del sistema de visión de Autopilot. Continuó compartiendo sus puntos de vista sobre modelos grandes, educación y herramientas de inteligencia artificial, por lo que sus comentarios sobre los cambios en los flujos de trabajo de programación tienden a llamar mucho la atención de los desarrolladores.&lt;/p&gt;
&lt;p&gt;Una vez dijo que después de usar Claude Code durante algunas semanas, su estilo de programación cambió notablemente. Anteriormente, era aproximadamente un 80% de código escrito a mano y un 20% de asistencia de IA. Ahora está más cerca del 80% del código escrito por IA y del 20% editado por él mismo. Lo describió como &amp;ldquo;programación en inglés&amp;rdquo;, diciéndole a un LLM qué escribir en lenguaje natural.&lt;/p&gt;
&lt;p&gt;Pero también señaló varios problemas recurrentes en la codificación de IA.&lt;/p&gt;
&lt;h2 id=&#34;01-suposiciones-erróneas&#34;&gt;01 Suposiciones erróneas
&lt;/h2&gt;&lt;p&gt;El primer problema es que los modelos hacen suposiciones fácilmente en nombre del usuario y luego siguen escribiendo en ese camino. No siempre manejan su propia confusión y no siempre se detienen a hacer preguntas cuando el requisito es ambiguo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si el usuario solo dice &amp;ldquo;agregar una función de exportación de usuario&amp;rdquo;, el modelo podría asumir que debe exportar todos los usuarios, generar JSON, escribir en un archivo local y omitir cualquier confirmación sobre permisos o campos. Sólo después de terminar el código el usuario descubre que la comprensión del modelo no coincide con el escenario real.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es enumerar primero las incertidumbres: ¿debería exportar todos los usuarios o los resultados filtrados? ¿Debería activar una descarga del navegador o ejecutarse como trabajo en segundo plano? ¿Qué campos son necesarios? ¿Qué tamaño tiene el conjunto de datos? ¿Existen restricciones de permisos? Si estas preguntas no se aclaran, escribir más rápido sólo significa ir más lejos.&lt;/p&gt;
&lt;h2 id=&#34;02-sobrecomplejidad&#34;&gt;02 Sobrecomplejidad
&lt;/h2&gt;&lt;p&gt;El segundo problema es que los modelos a menudo convierten problemas simples en complejos. Una tarea que podría manejarse con una función podría recibir clases abstractas, patrones de estrategia, patrones de fábrica, capas de configuración y un montón de puntos de extensión que tal vez nunca sean necesarios.&lt;/p&gt;
&lt;p&gt;Este tipo de código puede parecer diseñado, pero en la práctica aumenta el costo de mantenimiento. La IA es especialmente buena para generar rápidamente estructuras grandes, pero no siempre juzga si esas estructuras son necesarias. El resultado es que una tarea que se puede resolver en 100 líneas se infla en 1000 líneas.&lt;/p&gt;
&lt;p&gt;La prueba es sencilla: ¿un ingeniero senior observaría el cambio y pensaría que está sobrediseñado? Si la respuesta es sí, elimine las capas adicionales y resuelva el problema actual con la menor cantidad de código necesario.&lt;/p&gt;
&lt;h2 id=&#34;03-daños-colaterales&#34;&gt;03 Daños colaterales
&lt;/h2&gt;&lt;p&gt;El tercer problema es que los modelos a veces modifican o eliminan código que no comprenden completamente. Mientras solucionan un pequeño error, pueden cambiar comentarios casualmente, reformatear el código cercano, limpiar importaciones que parecen no utilizadas o incluso tocar lógica no relacionada con la tarea actual.
Estas &amp;ldquo;mejoras inmediatas&amp;rdquo; son riesgosas porque amplían el alcance del cambio y dificultan la revisión. Es posible que el usuario solo desee solucionar un fallo del validador causado por un correo electrónico vacío, pero el modelo también puede mejorar la validación del correo electrónico, agregar validación de nombre de usuario y reescribir cadenas de documentos. Al final, resulta difícil saber qué línea cambió el comportamiento.&lt;/p&gt;
&lt;p&gt;Una regla más segura es: cambiar sólo lo que se debe cambiar y sólo solucionar los problemas causados ​​por su propio cambio. El código muerto existente, los problemas de formato o el bagaje histórico no deben tocarse a menos que la tarea lo solicite explícitamente. Como máximo, menciónalo.&lt;/p&gt;
&lt;h2 id=&#34;04-transformando-las-quejas-en-claudemd&#34;&gt;04 Transformando las quejas en CLAUDE.md
&lt;/h2&gt;&lt;p&gt;Después de que los comentarios de Karpathy se difundieran ampliamente, el desarrollador Forrest Cheung hizo algo inteligente: organizó estas quejas en reglas de comportamiento ejecutables y las puso en un archivo &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El proyecto no contiene código complicado. Su idea clave es convertir las partes más propensas a fallas de la codificación de IA en reglas de trabajo claras. Se pueden resumir en cuatro principios.&lt;/p&gt;
&lt;p&gt;La primera es pensar antes de escribir. No asumas en silencio. No ocultes la confusión. Si un requisito tiene múltiples interpretaciones, enumérelas. Si hay un enfoque más sencillo, dígalo. Pregunte cuando sea necesaria una aclaración y responda cuando sea necesario.&lt;/p&gt;
&lt;p&gt;El segundo es mantener las cosas simples. No agregue funciones que no fueron solicitadas. No abstraiga el código único. No agregue configuraciones innecesarias. No escriba grandes cantidades de código defensivo para escenarios extremadamente improbables. Si 50 líneas pueden resolverlo, no escribas 200.&lt;/p&gt;
&lt;p&gt;El tercero es hacer cambios precisos. Cada línea modificada debe rastrearse directamente hasta la solicitud del usuario. No mejore el código cercano como misión secundaria. No refactorices algo que no esté roto. Haga coincidir el estilo del proyecto existente tanto como sea posible.&lt;/p&gt;
&lt;p&gt;El cuarto es la ejecución impulsada por objetivos. No le des al modelo sólo una instrucción vaga. Dale un criterio de éxito verificable. Por ejemplo, &amp;ldquo;corregir el error&amp;rdquo; puede convertirse en &amp;ldquo;escribir una prueba que reproduzca el error y luego hacer que pase&amp;rdquo;; &amp;ldquo;agregar validación&amp;rdquo; puede convertirse en &amp;ldquo;escribir pruebas de entradas no válidas y hacerlas pasar&amp;rdquo;. Cuanto más claro sea el criterio de éxito, más fácil será para el modelo avanzar hacia su finalización.&lt;/p&gt;
&lt;h2 id=&#34;05-por-qué-despegó&#34;&gt;05 Por qué despegó
&lt;/h2&gt;&lt;p&gt;Este proyecto se hizo popular no porque el contenido sea misterioso, sino porque se acerca al trabajo de desarrollo real.&lt;/p&gt;
&lt;p&gt;Muchas personas que utilizan IA para codificar han visto escenas similares: el modelo malinterpreta con confianza el requisito, el código se vuelve más complejo a medida que avanza o toca lugares que no debería tocar. El valor de &lt;code&gt;CLAUDE.md&lt;/code&gt; es que convierte esas experiencias en reglas de colaboración que se pueden colocar dentro de un proyecto.&lt;/p&gt;
&lt;p&gt;El coste de entrada también es bajo: un archivo puede empezar a marcar la diferencia, sin una integración complicada. Combinado con la influencia de Karpathy y los ejemplos prácticos de comparación del proyecto, se extendió naturalmente a través de la base de usuarios de Claude Code y la comunidad de codificación de IA en general.&lt;/p&gt;
&lt;p&gt;Más importante aún, estas reglas no son solo para el Código Claude. No importa qué herramienta de codificación de IA utilice, los problemas subyacentes son similares: el modelo necesita saber cuándo preguntar, cuándo simplificar, cuándo detenerse y cómo decidir que la tarea está completa.&lt;/p&gt;
&lt;h2 id=&#34;06-lo-que-los-desarrolladores-pueden-llevarse&#34;&gt;06 Lo que los desarrolladores pueden llevarse
&lt;/h2&gt;&lt;p&gt;La lección para los desarrolladores comunes es simple: la codificación con IA no se trata de lanzar una oración a un modelo y esperar un milagro. El enfoque eficaz es darle límites al modelo.&lt;/p&gt;
&lt;p&gt;Cuando el requisito no esté claro, pídale que exponga sus supuestos primero. Cuando la implementación comience a complicarse, pídale que vuelva a la solución viable más pequeña. Al cambiar el código, manténgalo enfocado en el objetivo de la tarea. Al finalizar el trabajo, utilice pruebas, comandos o puntos de control explícitos para verificar el resultado.&lt;/p&gt;
&lt;p&gt;La IA ya es muy capaz de escribir código, pero aún necesita buenas limitaciones de colaboración. El hecho de que un breve &lt;code&gt;CLAUDE.md&lt;/code&gt; pueda atraer tanta atención demuestra que los desarrolladores no sólo necesitan modelos más inteligentes. También necesitan formas de trabajo más fiables.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pensar antes de escribir para reducir suposiciones erróneas.&lt;/li&gt;
&lt;li&gt;Mantenga las cosas simples para evitar el diseño excesivo.&lt;/li&gt;
&lt;li&gt;Realizar cambios precisos para controlar el alcance del cambio.&lt;/li&gt;
&lt;li&gt;Trabajar hacia metas con criterios de éxito verificables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas cuatro reglas no son complicadas, pero son prácticas. El requisito previo para que la codificación de IA realmente mejore la eficiencia es no hacer que el modelo escriba más. Está haciendo que escriba con mayor precisión, con menos código y bajo un mejor control.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Uso más eficiente de la cuota de código de Claude: modelos, contexto, almacenamiento en caché y /compact</title>
        <link>https://knightli.com/es/2026/04/19/claude-code-usage-context-compact-notes/</link>
        <pubDate>Sun, 19 Apr 2026 15:29:06 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/claude-code-usage-context-compact-notes/</guid>
        <description>&lt;p&gt;Muchos usuarios de Claude Code o Claude Max se encuentran con el mismo problema: incluso después de pagar por Pro, Max 5x o Max 20x, la advertencia de uso aparece rápidamente o tienen que esperar al siguiente reinicio. Esto resulta especialmente obvio cuando Claude Code lee muchos archivos, corrige errores complicados o ejecuta tareas largas en un proyecto grande.&lt;/p&gt;
&lt;p&gt;El punto clave es este: el uso no se deduce linealmente por &amp;ldquo;minutos&amp;rdquo;. Depende del modelo, la longitud del contexto, los archivos adjuntos, el tamaño del código base, el historial de conversaciones, las llamadas a herramientas y la capacidad actual. En el mismo período de 5 horas, una persona puede trabajar durante mucho tiempo mientras que otra alcanza el límite en minutos. Por lo general, la cuenta no está rota; cada solicitud es simplemente demasiado pesada.&lt;/p&gt;
&lt;p&gt;Esta nota recoge un conjunto de hábitos prácticos para utilizar la cuota de forma más eficiente.&lt;/p&gt;
&lt;h2 id=&#34;01-primero-comprenda-la-ventana-de-uso-de-claude&#34;&gt;01 Primero comprenda la ventana de uso de Claude
&lt;/h2&gt;&lt;p&gt;Tanto Claude Pro como Max tienen límites de uso. El uso de Claude Code se comparte con Claude en la web, el escritorio y el dispositivo móvil bajo la misma cuota de suscripción. El centro de ayuda de Anthropic explica que el recuento de mensajes depende de la longitud del mensaje, el tamaño del archivo adjunto, la duración de la conversación actual, el modelo o característica utilizada, y que el uso de Claude Code también se ve afectado por la complejidad del proyecto, el tamaño de la base del código y la configuración de aceptación automática.&lt;/p&gt;
&lt;p&gt;Una forma sencilla de pensarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pro: adecuado para uso ligero y proyectos pequeños.&lt;/li&gt;
&lt;li&gt;Max 5x: adecuado para un uso más frecuente y bases de código más grandes.&lt;/li&gt;
&lt;li&gt;Máx. 20x: adecuado para colaboraciones diarias más intensas.&lt;/li&gt;
&lt;li&gt;Las ventanas de uso se restablecen en sesiones de 5 horas.&lt;/li&gt;
&lt;li&gt;Los mensajes largos, las conversaciones largas, los archivos grandes y las tareas complejas consumen el uso más rápidamente.&lt;/li&gt;
&lt;li&gt;Los modelos más fuertes, como Opus, alcanzan los límites más rápido que Sonnet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &amp;ldquo;sólo lo usé durante 20 minutos&amp;rdquo; no explica mucho por sí solo. Lo que importa es cuánto contexto leyó Claude durante esos 20 minutos, qué modelo se utilizó, si los archivos grandes se procesaron repetidamente y si la misma larga conversación siguió acumulando más tareas.&lt;/p&gt;
&lt;h2 id=&#34;02-primer-hábito-no-optar-por-el-modelo-más-caro&#34;&gt;02 Primer hábito: no optar por el modelo más caro
&lt;/h2&gt;&lt;p&gt;La familia de modelos Claude suele posicionarse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Opus&lt;/code&gt;: capacidad más potente, adecuada para razonamientos complejos, decisiones de arquitectura y errores difíciles.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sonnet&lt;/code&gt;: capacidad y coste equilibrados, adecuado para la mayoría de las tareas de codificación cotidianas.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Haiku&lt;/code&gt;: más ligero, adecuado para clasificación, resumen y conversión de formato sencillos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para scripts diarios, pequeñas correcciones de errores, limpieza de documentación y explicación de código, Sonnet suele ser suficiente. Guarde Opus para casos como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Diseño de arquitectura compleja.&lt;/li&gt;
&lt;li&gt;Refactorizaciones profundas de múltiples archivos.&lt;/li&gt;
&lt;li&gt;Errores difíciles de reproducir.&lt;/li&gt;
&lt;li&gt;Solución de problemas de cadena larga.&lt;/li&gt;
&lt;li&gt;Tareas donde el modelo normal está claramente estancado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En Claude Code, use &lt;code&gt;/model&lt;/code&gt; para cambiar de modelo o establezca el valor predeterminado en &lt;code&gt;/config&lt;/code&gt;. Un hábito más constante es utilizar Sonnet de forma predeterminada y cambiar a Opus sólo en puntos clave, en lugar de ejecutar toda la tarea en Opus.&lt;/p&gt;
&lt;h2 id=&#34;03-segundo-hábito-controlar-el-contexto-no-arrastrar-tareas-antiguas&#34;&gt;03 Segundo hábito: controlar el contexto, no arrastrar tareas antiguas
&lt;/h2&gt;&lt;p&gt;Cuanto más largo sea el contexto, más necesitará procesar Claude en cada turno y más rápido se consumirá el uso. Los documentos del Código Claude recomiendan explícitamente la gestión proactiva del contexto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice &lt;code&gt;/clear&lt;/code&gt; cuando cambie a una tarea no relacionada.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/compact&lt;/code&gt; cuando finalice una fase pero debe permanecer un contexto importante.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/context&lt;/code&gt; para ver qué está ocupando espacio.&lt;/li&gt;
&lt;li&gt;Configure una línea de estado si desea visibilidad continua del estado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un ritmo útil:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small phase done: /compact
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Large task done: /clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Switching to unrelated work: /clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Context usage getting high: /compact early
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;/compact&lt;/code&gt; resume el historial de conversaciones anteriores y al mismo tiempo conserva el estado de las tareas clave, las conclusiones, las rutas de los archivos y el trabajo restante. Reduce la cantidad de historial que se incluye en solicitudes posteriores. También puede agregar una breve instrucción:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact Preserve changed files, test results, remaining TODOs, and key design decisions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;No espere a que se compacte automáticamente. Los documentos señalan que Claude Code se autocompacta cuando el contexto se acerca al límite, pero la compactación manual en los límites de fase suele ser más fácil de controlar.&lt;/p&gt;
&lt;h2 id=&#34;04-tercer-hábito-las-conversaciones-largas-y-los-archivos-grandes-hacen-que-cada-solicitud-sea-más-pesada&#34;&gt;04 Tercer hábito: las conversaciones largas y los archivos grandes hacen que cada solicitud sea más pesada
&lt;/h2&gt;&lt;p&gt;Mucha gente supone que &amp;ldquo;Sólo hice una pregunta más&amp;rdquo; debería ser barato. Pero en una conversación larga, esa pregunta puede tener detrás una gran cantidad de historia, resúmenes de archivos, definiciones de herramientas y reglas del sistema.&lt;/p&gt;
&lt;p&gt;Las cosas que fácilmente inflan el contexto incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conversaciones largas que nunca se aclaran.&lt;/li&gt;
&lt;li&gt;Pedirle a Claude que lea archivos grandes completos.&lt;/li&gt;
&lt;li&gt;Pegar registros largos, resultados de compilación o resultados de prueba.&lt;/li&gt;
&lt;li&gt;Agregar muchas capturas de pantalla o imágenes a la vez.&lt;/li&gt;
&lt;li&gt;Pidiéndole que escanee repetidamente todo el repositorio.&lt;/li&gt;
&lt;li&gt;Un &lt;code&gt;CLAUDE.md&lt;/code&gt; demasiado largo.&lt;/li&gt;
&lt;li&gt;Demasiados servidores MCP habilitados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un enfoque más eficiente: pegue solo los errores clave de los registros, incluya solo las partes fallidas del resultado de la prueba y deje que Claude use &lt;code&gt;rg&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, &lt;code&gt;tail&lt;/code&gt; y la búsqueda de símbolos antes de leer solo las partes necesarias. Si el filtrado de la línea de comandos puede reducir el contenido, no pegue todo en contexto.&lt;/p&gt;
&lt;h2 id=&#34;05-cuarto-hábito-comprender-el-almacenamiento-en-caché-pero-no-adorarlo&#34;&gt;05 Cuarto hábito: comprender el almacenamiento en caché, pero no adorarlo
&lt;/h2&gt;&lt;p&gt;El almacenamiento en caché de avisos de Anthropic puede almacenar en caché prefijos de avisos repetidos. La vida útil predeterminada de la caché es de 5 minutos y también se admite una caché de 1 hora. Cuando se alcanza el caché, no es necesario reprocesar completamente el contexto repetido de gran tamaño, lo que ayuda a reducir los costos y mejorar la utilización del límite de velocidad.&lt;/p&gt;
&lt;p&gt;Pero el almacenamiento en caché tiene limitaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contenido debe coincidir exactamente, incluidos texto e imágenes.&lt;/li&gt;
&lt;li&gt;La caché predeterminada es de corta duración.&lt;/li&gt;
&lt;li&gt;Cambiar modelos, herramientas, indicaciones del sistema o estructura de contexto puede reducir los accesos al caché.&lt;/li&gt;
&lt;li&gt;Los tokens de salida no desaparecen debido al almacenamiento en caché; aún es necesario generar la respuesta.&lt;/li&gt;
&lt;li&gt;La forma en que Claude Code utiliza el almacenamiento en caché es un detalle de implementación a nivel de producto, por lo que no lo trate como &amp;ldquo;memoria libre&amp;rdquo; permanente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la práctica, lo importante no es estudiar cada detalle del almacenamiento en caché. Mantiene la sesión estable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Evite cambios frecuentes de modelo dentro de la misma fase.&lt;/li&gt;
&lt;li&gt;No reescriba repetidamente grandes bloques de reglas a mitad de la tarea.&lt;/li&gt;
&lt;li&gt;No sigas agregando nuevas imágenes dentro de la misma tarea.&lt;/li&gt;
&lt;li&gt;No dejes una tarea larga inactiva durante demasiado tiempo y luego regreses con otra gran solicitud.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/compact&lt;/code&gt; en los límites de fase.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto hace que el contexto repetido sea más fácil de reutilizar y reduce el peso de las solicitudes posteriores.&lt;/p&gt;
&lt;h2 id=&#34;06-sobre-las-horas-pico-evítalas-cuando-puedas-pero-no-las-trates-como-una-fórmula&#34;&gt;06 Sobre las horas pico: evítalas cuando puedas, pero no las trates como una fórmula
&lt;/h2&gt;&lt;p&gt;La gente suele decir que ciertas horas se sienten más apretadas. El centro de ayuda de Anthropic es más cuidadoso: el recuento de mensajes puede verse afectado por la capacidad actual de Claude, la duración de la conversación, los archivos adjuntos, el modelo y las características. En otras palabras, la capacidad máxima puede afectar la experiencia, pero no trate una ventana horaria local específica como una regla permanente.&lt;/p&gt;
&lt;p&gt;Sugerencias prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Realice grandes refactorizaciones y análisis exhaustivos en períodos en los que tanto su red como el servicio sean estables.&lt;/li&gt;
&lt;li&gt;No comiences una tarea enorme justo antes de que planees alejarte.&lt;/li&gt;
&lt;li&gt;Si espera salir por un largo tiempo, ejecute &lt;code&gt;/compact&lt;/code&gt; o &lt;code&gt;/clear&lt;/code&gt; primero.&lt;/li&gt;
&lt;li&gt;Para ediciones pequeñas, no utilices Opus con un contexto largo a menos que realmente lo necesites.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es más confiable que memorizar una regla fija de &amp;ldquo;no usarlo de X a Y&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;07-slim-down-claudemd-reglas-mcp-y-habilidades&#34;&gt;07 Slim Down CLAUDE.md, reglas, MCP y habilidades
&lt;/h2&gt;&lt;p&gt;Claude Code carga reglas del proyecto, información de herramientas y algo de contexto ambiental en la sesión. Los documentos oficiales también recomiendan separar las reglas generales de las reglas especializadas para que cada sesión no comience con una gran cantidad de texto no relacionado.&lt;/p&gt;
&lt;p&gt;Una división útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;: sólo reglas globales que siempre se aplican.&lt;/li&gt;
&lt;li&gt;reglas: reglas específicas de ruta o de tipo de archivo.&lt;/li&gt;
&lt;li&gt;habilidades: flujos de trabajo específicos, como publicación de publicaciones, implementación, generación de imágenes o confirmación de código.&lt;/li&gt;
&lt;li&gt;MCP: solo habilita los servidores que la tarea actual realmente necesita.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si &lt;code&gt;CLAUDE.md&lt;/code&gt; tiene cientos o miles de líneas, cada sesión conlleva ese costo. Un mejor patrón es trasladar flujos de trabajo ocasionales a habilidades y cargarlos solo cuando sea necesario.&lt;/p&gt;
&lt;p&gt;MCP es similar. Más herramientas no significan automáticamente más eficiencia. Los documentos de Claude Code mencionan el uso de &lt;code&gt;/mcp&lt;/code&gt; para ver y deshabilitar servidores innecesarios, y &lt;code&gt;/context&lt;/code&gt; para ver qué está consumiendo espacio de contexto.&lt;/p&gt;
&lt;h2 id=&#34;08-lista-de-comandos-prácticos&#34;&gt;08 Lista de comandos prácticos
&lt;/h2&gt;&lt;p&gt;Estos son los comandos diarios más útiles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cambiar de modelo. Sonnet es un buen valor predeterminado; Utilice Opus para razonamientos complejos.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Borrar el contexto actual. Úselo cuando cambie a un trabajo no relacionado.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Comprimir el historial de conversaciones. Úselo cuando finalice una fase pero continúe la misma tarea.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Inspeccione el uso del contexto y encuentre qué está ocupando espacio.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Verifique la suscripción o el estado relacionado con el uso. El centro de ayuda de Anthropic también recomienda monitorear la asignación restante.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Vea y administre servidores MCP y desactive las herramientas que no sean necesarias para la tarea actual.&lt;/p&gt;
&lt;p&gt;Si utiliza la facturación API, &lt;code&gt;/cost&lt;/code&gt; puede resultar útil. Pero para las suscripciones Pro/Max, los documentos de Claude Code explican que la estimación en dólares de &amp;ldquo;/cost&amp;rdquo; no es la referencia de facturación correcta; los suscriptores deberían confiar más en la información de uso como &lt;code&gt;/stats&lt;/code&gt; y &lt;code&gt;/status&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;09-un-flujo-de-trabajo-para-ahorrar-cuotas&#34;&gt;09 Un flujo de trabajo para ahorrar cuotas
&lt;/h2&gt;&lt;p&gt;Un flujo de trabajo práctico se ve así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ejecute &lt;code&gt;/clear&lt;/code&gt; antes de comenzar una nueva tarea.&lt;/li&gt;
&lt;li&gt;Utilice Sonnet de forma predeterminada.&lt;/li&gt;
&lt;li&gt;Deje que Claude inspeccione primero la estructura del proyecto y los archivos clave, no todo el repositorio.&lt;/li&gt;
&lt;li&gt;Ejecute &lt;code&gt;/compact&lt;/code&gt; después de cada pequeña fase.&lt;/li&gt;
&lt;li&gt;Cambie a Opus solo para bloqueadores duros.&lt;/li&gt;
&lt;li&gt;Filtre registros, errores y pruebe los resultados antes de pegarlos.&lt;/li&gt;
&lt;li&gt;Ejecute &lt;code&gt;/clear&lt;/code&gt; una vez finalizada la tarea; No comience un nuevo trabajo con un contexto obsoleto.&lt;/li&gt;
&lt;li&gt;Revise periódicamente &lt;code&gt;CLAUDE.md&lt;/code&gt;, MCP y las habilidades para reducir el contexto siempre activo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La idea central es simple: dejar que Claude vea sólo lo que realmente necesita para la tarea actual.&lt;/p&gt;
&lt;h2 id=&#34;10-resumen&#34;&gt;10 Resumen
&lt;/h2&gt;&lt;p&gt;El uso de Claude Code que se agota rápidamente no suele deberse a una sola cosa. A menudo es una combinación de modelos de alto costo, largas conversaciones sin borrar, demasiados archivos y registros, contexto de reglas y MCP pesado, reutilización de caché más débil y fluctuaciones máximas de capacidad.&lt;/p&gt;
&lt;p&gt;Las soluciones prácticas también son sencillas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice Sonnet para el trabajo diario.&lt;/li&gt;
&lt;li&gt;Guarde Opus para problemas verdaderamente complejos.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/compact&lt;/code&gt; cuando finalice una fase.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/clear&lt;/code&gt; al cambiar de tarea.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/context&lt;/code&gt; para encontrar el contexto hinchado.&lt;/li&gt;
&lt;li&gt;Adelgazar &lt;code&gt;CLAUDE.md&lt;/code&gt;, reglas, MCP y habilidades.&lt;/li&gt;
&lt;li&gt;No volcar todo el repositorio, registros completos o lotes de imágenes grandes en contexto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La cantidad de trabajo que puede soportar el mismo plan Pro o Max depende en gran medida de cómo gestiona el contexto. Si reduce el contexto y aclara los límites de las tareas, Claude Code se sentirá mucho más estable.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Centro de ayuda de Claude: uso de Claude Code con su plan Pro o Max: &lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Centro de ayuda de Claude: Acerca del uso del plan Max de Claude: &lt;a class=&#34;link&#34; href=&#34;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Docs: Gestione los costes de forma eficaz: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/costs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/costs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Docs: almacenamiento en caché rápido: &lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Usar Claude en VS Code: de configurar API a generar páginas</title>
        <link>https://knightli.com/es/2026/04/16/vscode-claude-api-coding-workflow/</link>
        <pubDate>Thu, 16 Apr 2026 17:47:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/16/vscode-claude-api-coding-workflow/</guid>
        <description>&lt;p&gt;Cuando empiezas a llevar modelos grandes al desarrollo diario, el mayor cambio no suele ser si pueden escribir código. Es si pueden empujar de una vez un conjunto de tareas pequeñas y dispersas.&lt;/p&gt;
&lt;p&gt;El valor real de estas herramientas no es completar unas líneas. Es poder chatear, editar archivos, previsualizar resultados y seguir iterando sin salir del editor. Para páginas simples, prototipos rápidos, ajustes de estilo y pequeñas funciones, ese workflow suele sentirse mucho más fluido que cambiar manualmente de una herramienta a otra.&lt;/p&gt;
&lt;p&gt;Este artículo resume un enfoque práctico: después de conectar un modelo tipo Claude a &lt;code&gt;VS Code&lt;/code&gt;, cómo usarlo realmente para generación de páginas e iteración de pequeñas funciones.&lt;/p&gt;
&lt;h2 id=&#34;1-conecta-primero-la-toolchain&#34;&gt;1. Conecta primero la toolchain
&lt;/h2&gt;&lt;p&gt;El flujo central de un plugin de AI coding suele ser simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar en &lt;code&gt;VS Code&lt;/code&gt; un plugin que soporte edición conversacional de código&lt;/li&gt;
&lt;li&gt;Rellenar el &lt;code&gt;Base URL&lt;/code&gt; del servicio de modelo&lt;/li&gt;
&lt;li&gt;Añadir tu &lt;code&gt;API Key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Elegir el nombre de modelo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una vez hecho, la parte AI del editor es realmente usable. Después, las diferencias de experiencia dependen más de calidad del modelo, interacción del plugin y estabilidad del output generado.&lt;/p&gt;
&lt;p&gt;Si nunca configuraste un plugin así, piensa en esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el plugin convierte tu petición en lenguaje natural en acciones del editor&lt;/li&gt;
&lt;li&gt;la &lt;code&gt;API&lt;/code&gt; envía la solicitud a un servicio de modelo&lt;/li&gt;
&lt;li&gt;el modelo interpreta tu intención y devuelve código, ediciones o resultados estructurados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El trabajo real de emparejar piezas está en tres cosas: plugin, endpoint y nombre de modelo.&lt;/p&gt;
&lt;h2 id=&#34;2-empieza-con-tareas-pequeñas&#34;&gt;2. Empieza con tareas pequeñas
&lt;/h2&gt;&lt;p&gt;Mucha gente quiere que la herramienta construya un proyecto completo al primer intento. Puede funcionar, pero para principiantes lo más rápido es empezar con algo mucho menor.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar una página frontend simple&lt;/li&gt;
&lt;li&gt;Añadir una sección de aviso a una página existente&lt;/li&gt;
&lt;li&gt;Crear un formulario de registro&lt;/li&gt;
&lt;li&gt;Hacer que la UI se vea más pulida y formal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas tareas ayudan porque:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el prompt es más claro&lt;/li&gt;
&lt;li&gt;puedes previsualizar el resultado de inmediato&lt;/li&gt;
&lt;li&gt;ves cómo conversación y ediciones de archivo trabajan juntas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la petición es suficientemente específica, el plugin puede conversar en una barra lateral mientras edita archivos. Luego inspeccionas el resultado, previsualizas la página y decides si pedir otro cambio.&lt;/p&gt;
&lt;h2 id=&#34;3-la-ganancia-real-es-la-iteración-no-la-generación-de-una-pasada&#34;&gt;3. La ganancia real es la iteración, no la generación de una pasada
&lt;/h2&gt;&lt;p&gt;Un malentendido común es centrarse demasiado en si el primer resultado impresiona.&lt;/p&gt;
&lt;p&gt;En la práctica importa más si la segunda y tercera ronda siguen moviéndose en la dirección correcta.&lt;/p&gt;
&lt;p&gt;Un patrón común:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pedir un esqueleto funcional de página&lt;/li&gt;
&lt;li&gt;Añadir una o dos funciones claras&lt;/li&gt;
&lt;li&gt;Revisar si código y UI se vuelven más completos&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la herramienta se siente fluida, empieza a parecerse a trabajar con un junior muy rápido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;describes la tarea&lt;/li&gt;
&lt;li&gt;produce una primera pasada&lt;/li&gt;
&lt;li&gt;señalas lo que falta&lt;/li&gt;
&lt;li&gt;sigue refinando&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese workflow iterativo y conversacional se acerca mucho más al desarrollo real y es donde estas herramientas crean mayor diferencia de productividad.&lt;/p&gt;
&lt;h2 id=&#34;4-saber-qué-dar-a-ai-y-qué-corregir-tú&#34;&gt;4. Saber qué dar a AI y qué corregir tú
&lt;/h2&gt;&lt;p&gt;Esta distinción importa mucho.&lt;/p&gt;
&lt;p&gt;Layout de página, borradores de componentes, scaffolding de formularios, pulido de estilo, copy placeholder y boilerplate repetitivo suelen ser buenos candidatos para AI.&lt;/p&gt;
&lt;p&gt;Pero si solo necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cambiar una etiqueta de botón&lt;/li&gt;
&lt;li&gt;ajustar una frase de footer&lt;/li&gt;
&lt;li&gt;tocar un detalle mínimo de estilo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;a menudo es más rápido editarlo tú. El cambio es demasiado pequeño para justificar otra interacción completa con el modelo.&lt;/p&gt;
&lt;p&gt;El enfoque eficiente no es darle todo a AI. Es saber cuándo dejarle manejar un bloque grande y cuándo terminar los últimos detalles a mano.&lt;/p&gt;
&lt;h2 id=&#34;5-la-configuración-api-es-una-barrera-pero-no-lo-más-difícil&#34;&gt;5. La configuración API es una barrera, pero no lo más difícil
&lt;/h2&gt;&lt;p&gt;Mucha gente no se atasca en programar. Se atasca en configurar.&lt;/p&gt;
&lt;p&gt;Checks habituales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿El endpoint es correcto?&lt;/li&gt;
&lt;li&gt;¿La key es válida?&lt;/li&gt;
&lt;li&gt;¿El nombre de modelo coincide con el servicio?&lt;/li&gt;
&lt;li&gt;¿El plugin espera un formato concreto de &lt;code&gt;Base URL&lt;/code&gt;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si uno falla, el plugin puede abrir normalmente pero las solicitudes fallan por debajo.&lt;/p&gt;
&lt;p&gt;Orden práctico de troubleshooting:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar endpoint&lt;/li&gt;
&lt;li&gt;Revisar key&lt;/li&gt;
&lt;li&gt;Revisar nombre de modelo y requisitos de formato URL&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esos tres puntos resuelven la mayoría de problemas de setup.&lt;/p&gt;
&lt;h2 id=&#34;6-cómo-juzgar-si-el-output-vale-la-pena&#34;&gt;6. Cómo juzgar si el output vale la pena
&lt;/h2&gt;&lt;p&gt;Un estándar práctico no es si el output parece espectacular, sino si aguanta pruebas básicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿La página generada corre de inmediato?&lt;/li&gt;
&lt;li&gt;¿La estructura es razonablemente clara?&lt;/li&gt;
&lt;li&gt;¿Sigue el rumbo tras peticiones de seguimiento?&lt;/li&gt;
&lt;li&gt;¿Mantiene consistencia al crecer el alcance de edición?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si una o dos rondas bastan para mover una página desde blanco hasta algo refinable, la herramienta ya es útil.&lt;/p&gt;
&lt;p&gt;Si cada resultado requiere rework grande, no está ahorrando tiempo. Solo convierte escribir código en revisar código.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Lo más interesante de usar modelos tipo Claude en &lt;code&gt;VS Code&lt;/code&gt; no es la fantasía de no escribir código nunca más. Es que muchas tareas dispersas, repetitivas y que rompen contexto pueden avanzar en una pasada.&lt;/p&gt;
&lt;p&gt;Un workflow realista:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deja que AI construya el primer esqueleto de página y función&lt;/li&gt;
&lt;li&gt;usa dos o tres rondas conversacionales para refinar&lt;/li&gt;
&lt;li&gt;haz tú los pequeños cambios finales claros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así, AI se vuelve un acelerador, no un reemplazo que deba tomar todo el desarrollo.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
