<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Manual de IA on RanceLee的博客</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/</link>
        <description>Recent content in Manual de IA on RanceLee的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language><atom:link href="https://blog.discoverlabs.ac.cn/es/tutorials/ai/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>¿Qué es un modelo de lenguaje grande?</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/what-is-large-language-model/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/what-is-large-language-model/</guid>
        <description>&lt;p&gt;Las herramientas de IA ahora están en todas partes. Para alguien completamente nuevo en ellas, la primera reacción suele ser: ¿por dónde empiezo? Este capítulo primero explica qué es un modelo de lenguaje grande (LLM) y luego analiza cómo usarlo.&lt;/p&gt;
&lt;h2 id=&#34;qué-entendemos-por-ia&#34;&gt;¿Qué entendemos por IA?
&lt;/h2&gt;&lt;p&gt;Si has estado escuchando a amigos charlar recientemente, ocho de cada diez frases podrían ser sobre &amp;ldquo;IA&amp;rdquo;. ¿Pero sabías? La IA de la que todos hablan ahora no es la misma que la IA de hace unos años.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La IA que actualmente está arrasando en internet tiene un nombre profesional: IA Generativa.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Qué significa eso? En pocas palabras: &lt;strong&gt;Le das una frase y puede generar un artículo para ti; le das una idea y puede generar una imagen; le das un requisito y puede escribir un fragmento de código.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Es como un asistente increíblemente inteligente. Dices &amp;ldquo;escríbeme una carta de renuncia&amp;rdquo; y efectivamente la escribe; dices &amp;ldquo;dibuja un gato con traje&amp;rdquo; y efectivamente lo dibuja. Esta capacidad de &amp;ldquo;crear contenido de la nada&amp;rdquo; es el núcleo de &amp;ldquo;generativo&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Los que escuchamos a menudo —ChatGPT, Claude, DeepSeek— todos pertenecen a esta categoría. Su esencia es un &lt;strong&gt;Modelo de Lenguaje Grande (LLM)&lt;/strong&gt;, que aprende a entender y generar lenguaje humano entrenándose con cantidades masivas de datos textuales.&lt;/p&gt;
&lt;p&gt;Pero aquí hay un secreto importante:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La IA en realidad no &amp;ldquo;entiende&amp;rdquo; lo que dices; solo está &amp;ldquo;calculando probabilidades&amp;rdquo;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esto puede sonar contraintuitivo, pero déjame explicarte:&lt;/p&gt;
&lt;p&gt;Cuando le preguntas a la IA &amp;ldquo;¿De qué color es el cielo?&amp;rdquo;, en realidad no mira hacia el cielo, ni entiende realmente los conceptos de &amp;ldquo;cielo&amp;rdquo; y &amp;ldquo;color&amp;rdquo;. Así es como funciona:&lt;/p&gt;
&lt;p&gt;Basándose en los cientos de millones de artículos que ha leído, cuando el texto anterior es &amp;ldquo;¿De qué color es el cielo&amp;rdquo;, la probabilidad de que la siguiente palabra sea &amp;ldquo;azul&amp;rdquo; es del 82%, &amp;ldquo;gris&amp;rdquo; del 10%, &amp;ldquo;rojo&amp;rdquo; del 5%&amp;hellip; y luego elige la palabra con mayor probabilidad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aquí hay un ejemplo más vívido:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Preguntas: &amp;ldquo;¿Cuánto es 1+1?&amp;rdquo;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La IA no está &amp;ldquo;haciendo matemáticas&amp;rdquo;; descubre que en todo el texto que ha visto, &amp;ldquo;1+1 es igual a&amp;rdquo; va seguido de &amp;ldquo;2&amp;rdquo; el 99.9% de las veces.&lt;/li&gt;
&lt;li&gt;Así que responde &amp;ldquo;2&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Preguntas: &amp;ldquo;Recomiéndame una buena película.&amp;rdquo;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La IA en realidad no ha visto películas; analiza que en los textos que ha aprendido, &amp;ldquo;buenas películas&amp;rdquo; suelen ir seguidas de palabras como &amp;ldquo;Cadena perpetua&amp;rdquo;, &amp;ldquo;Titanic&amp;rdquo;, etc.&lt;/li&gt;
&lt;li&gt;Recomienda las que tienen alta probabilidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Es como un superdotado que ha leído todos los libros del mundo, pero:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede decirte &amp;ldquo;París es la capital de Francia&amp;rdquo; (porque los libros lo dicen).&lt;/li&gt;
&lt;li&gt;Pero nunca ha estado en París, y ni siquiera sabe lo que significa &amp;ldquo;capital&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Solo recuerda que cuando dices &amp;ldquo;París es&amp;rdquo;, la continuación más frecuente es &amp;ldquo;la capital de Francia&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Por lo tanto, la IA puede tener algunos problemas extraños:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A veces &amp;ldquo;habla tonterías con confianza&amp;rdquo; (inventa hechos inexistentes).&lt;/li&gt;
&lt;li&gt;Puede equivocarse en problemas matemáticos simples (porque realmente no está calculando).&lt;/li&gt;
&lt;li&gt;Puede dar respuestas contradictorias (cálculos de probabilidad inconsistentes).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este fenómeno de &amp;ldquo;hablar tonterías con confianza&amp;rdquo; tiene un término técnico: &lt;strong&gt;Alucinación&lt;/strong&gt;. Al igual que los humanos sueñan, la IA &amp;ldquo;sueña&amp;rdquo; cosas que no existen y las dice con gran confianza.&lt;/p&gt;
&lt;h2 id=&#34;cómo-resolver-la-alucinación-con-razonamiento&#34;&gt;Cómo resolver la alucinación con razonamiento
&lt;/h2&gt;&lt;p&gt;Dado que la IA es tan propensa a errores, ¿qué podemos hacer? Los científicos idearon una solución: &lt;strong&gt;Dejar que la IA &amp;ldquo;piense&amp;rdquo; antes de responder.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esta técnica se llama &amp;ldquo;Pensamiento&amp;rdquo; o &amp;ldquo;Cadena de Pensamiento&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cómo funciona la IA tradicional:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haces una pregunta → La IA escupe inmediatamente una respuesta.&lt;/li&gt;
&lt;li&gt;Como un estudiante que ve un problema y suelta la respuesta sin resolverlo en papel borrador.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;IA con razonamiento:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haces una pregunta → La IA primero calcula y piensa en &amp;ldquo;papel borrador&amp;rdquo; → luego te da la respuesta.&lt;/li&gt;
&lt;li&gt;Como un estudiante que primero enumera pasos, los verifica y luego escribe la respuesta final.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Un ejemplo práctico:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Preguntas: &amp;ldquo;Xiao Ming tiene 15 manzanas. Le da 3 a Xiao Hong y luego compra 8 más. ¿Cuántas tiene ahora?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La IA tradicional podría:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ver los números &amp;ldquo;15, 3, 8&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Basándose en la probabilidad, pensar que deben sumarse.&lt;/li&gt;
&lt;li&gt;Responder: &amp;ldquo;26&amp;rdquo; (¡incorrecto!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La IA con razonamiento haría:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Primero analizar: &amp;ldquo;Xiao Ming inicialmente tiene 15.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Da 3 a Xiao Hong, entonces 15-3=12.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Compra 8 más, entonces 12+8=20.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Finalmente responder: &amp;ldquo;20&amp;rdquo; (¡correcto!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Beneficios del razonamiento:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Reduce las alucinaciones&lt;/strong&gt; - Porque la IA &amp;ldquo;verifica&amp;rdquo; sus propios pensamientos, es menos probable que diga tonterías.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lógica más rigurosa&lt;/strong&gt; - Deriva paso a paso, sin saltarse pasos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Explicable&lt;/strong&gt; - Puedes ver cómo piensa la IA (aunque la mayor parte del tiempo este proceso de pensamiento está oculto).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maneja problemas complejos&lt;/strong&gt; - La precisión mejora significativamente para problemas que requieren razonamiento de múltiples pasos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Pero el razonamiento también tiene costos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Velocidad más lenta (porque necesita &amp;ldquo;pensar&amp;rdquo;).&lt;/li&gt;
&lt;li&gt;Mayor costo (más cómputo).&lt;/li&gt;
&lt;li&gt;No todos los problemas necesitan razonamiento (por ejemplo, &amp;ldquo;hola&amp;rdquo; no necesita medio día de pensamiento).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahora la mayoría de las IAs han añadido esta capacidad de razonamiento. Por ejemplo, el modelo de pensamiento de ChatGPT, el modo de pensamiento profundo de DeepSeek.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un resumen rápido:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IA normal = un estudiante que suelta respuestas rápidamente (puede estar equivocado).&lt;/li&gt;
&lt;li&gt;IA con razonamiento = un estudiante que trabaja cuidadosamente en papel borrador (mayor precisión).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no significa que la IA pueda realmente &amp;ldquo;pensar&amp;rdquo;; solo añade algunos pasos de verificación antes del cálculo de probabilidad. Pero el efecto es claro: menos alucinaciones, respuestas más fiables.&lt;/p&gt;
&lt;p&gt;Para usar la analogía más adecuada: &lt;strong&gt;La IA Generativa es como un &amp;ldquo;super estudiante de letras&amp;rdquo; que ha leído innumerables libros y visto el mundo.&lt;/strong&gt; Puedes preguntarle cualquier cosa, y puede charlar contigo y ayudarte a escribir cosas. Sin embargo, responde &amp;ldquo;memorizando el banco de preguntas&amp;rdquo; en lugar de entender realmente el conocimiento. Las nuevas versiones están empezando a aprender a &amp;ldquo;trabajar en papel borrador&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;en-realidad-la-familia-de-la-ia-es-enorme&#34;&gt;En realidad, la familia de la IA es enorme
&lt;/h2&gt;&lt;p&gt;Mucha gente piensa que la IA es solo ChatGPT, pero no es así. La familia de la IA tiene muchos miembros:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. IA de reconocimiento - La que ve con claridad&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reconocimiento facial (desbloqueo de teléfono, pago facial)&lt;/li&gt;
&lt;li&gt;Reconocimiento de imágenes (identificar flores por foto, reconocer texto)&lt;/li&gt;
&lt;li&gt;Reconocimiento de voz (Siri, Xiao Ai entendiendo tu habla)&lt;/li&gt;
&lt;li&gt;Estas IAs se especializan en &amp;ldquo;reconocer&amp;rdquo;, no en &amp;ldquo;crear&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. IA de recomendación - La que mejor conoce tu mente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Douyin (TikTok) te recomienda videos.&lt;/li&gt;
&lt;li&gt;Taobao recomienda productos.&lt;/li&gt;
&lt;li&gt;NetEase Cloud Music recomienda canciones.&lt;/li&gt;
&lt;li&gt;Se destacan en &amp;ldquo;adivinar lo que te gusta&amp;rdquo;, pero no generan contenido nuevo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. IA de decisión - La que es buena en ajedrez y juegos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AlphaGo (jugando Go)&lt;/li&gt;
&lt;li&gt;IA de juegos (como el oponente informático en StarCraft)&lt;/li&gt;
&lt;li&gt;Se centran en &amp;ldquo;tomar decisiones&amp;rdquo;, superando a los humanos en dominios específicos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. IA Generativa - La ola caliente actual&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generación de texto: ChatGPT, Claude, DeepSeek&lt;/li&gt;
&lt;li&gt;Generación de imágenes: Midjourney, Stable Diffusion, DALL-E&lt;/li&gt;
&lt;li&gt;Generación de video: Sora, Runway&lt;/li&gt;
&lt;li&gt;Generación de música: Suno, Udio&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Un resumen rápido&lt;/strong&gt;: Si comparamos la IA con una caja de herramientas, la IA de reconocimiento es una &amp;ldquo;lupa&amp;rdquo;, la IA de recomendación es una &amp;ldquo;brújula&amp;rdquo;, la IA de decisión es un &amp;ldquo;manual de ajedrez&amp;rdquo;, y la IA generativa es una &amp;ldquo;varita mágica&amp;rdquo;—puede hacer aparecer lo que quieras.&lt;/p&gt;
&lt;p&gt;Pero esta &amp;ldquo;varita mágica&amp;rdquo; es en realidad una &amp;ldquo;calculadora de probabilidades&amp;rdquo;. Es poderosa, pero no omnipotente. Y este tutorial trata principalmente sobre cómo usar bien esta &amp;ldquo;varita mágica&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Qué significa realmente el almacenamiento en caché de prompts?</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/prompt-caching/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/prompt-caching/</guid>
        <description>&lt;p&gt;DeepSeek finalmente ha lanzado el modelo V4. Lo he estado probando estos últimos días y se siente genial, especialmente el modelo Flash con su excelente relación calidad-precio. Mi propio miniprograma de seguimiento de gastos originalmente tenía un tiempo de respuesta de 5 segundos, pero ahora ha bajado a 2.5 segundos. En una palabra: ¡fluido!&lt;/p&gt;
&lt;p&gt;La única desventaja es que el modelo Pro no es muy barato. Según el sitio web oficial, los precios bajarán aún más cuando aumente el suministro de chips nacionales en la segunda mitad del año.&lt;/p&gt;
&lt;p&gt;Inesperadamente, dos días después, el modelo Pro obtuvo un descuento del 75% por tiempo limitado (y sospecho que este descuento podría ser a largo plazo). Ayer, también redujeron el precio de acierto de caché a una décima parte del original! ¿Qué más puedo decir? ¡Es hora de ponerse de pie y pedalear fuerte!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260427cf54f4200d95bf1812ed3b05630a936d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;¡Este es el DeepSeek que conocemos! Hace unos días estaba criticando ciertos Planes de Codificación por ser difíciles de obtener y tener malas experiencias. DeepSeek parece estar bajando directamente el precio general de la API por debajo del de los Planes de Codificación. Especialmente ahora que muchos Planes de Codificación prohíben su uso fuera de la programación, la sinceridad de DeepSeek destaca aún más.&lt;/p&gt;
&lt;p&gt;Algunas APIs de Planes de Codificación podrían prohibirte si integras traducción, pero a DeepSeek no le importa, úsalo como quieras.&lt;/p&gt;
&lt;p&gt;GPT-5.5 y DeepSeek V4 están funcionando excelentemente. Ya estoy considerando cancelar mi suscripción a Claude el próximo mes. Y algunos expertos a mi alrededor ya lo han probado.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026042758771995f464ce2aa60868a03a1b94fe.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Pero volviendo al tema, algunos de ustedes probablemente se preguntan: ¿qué significan realmente entrada, salida y caché?&lt;/p&gt;
&lt;p&gt;Primero, introduzcamos qué significa un acierto de caché.&lt;/p&gt;
&lt;p&gt;Aquí hay una analogía: Vas a tu tienda de fideos habitual y pides &amp;ldquo;fideos tirados con carne de res, con huevo, sin cilantro&amp;rdquo; por primera vez. El dueño tiene que cortar la carne de res fresca, amasar la masa, hervir el huevo y preparar los ingredientes; todo el proceso lleva un tiempo. Diez minutos después, llega tu amigo y pide exactamente lo mismo. El dueño ve que los ingredientes todavía están calientes en la olla y los fideos son del mismo lote, así que los sirve directamente: eso es un &amp;ldquo;acierto&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuando la IA procesa tu entrada, esencialmente tiene que &amp;ldquo;masticar&amp;rdquo; todo el texto que envías (incluyendo prompts del sistema, historial de conversación y tu pregunta actual) y convertirlo en un estado intermedio interno para el modelo. Este paso es realmente intensivo en cómputo.&lt;/p&gt;
&lt;p&gt;Si la IA encuentra que el contenido que enviaste esta vez tiene un &lt;strong&gt;gran segmento inicial que es exactamente igual al anterior&lt;/strong&gt;, reutiliza directamente el estado intermedio de la última vez sin tener que masticarlo de nuevo: eso es un acierto de caché.&lt;/p&gt;
&lt;p&gt;Nota tres puntos clave:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Debe ser una coincidencia exacta de prefijo&lt;/strong&gt;. Incluso si agregas un espacio extra o cambias un signo de puntuación al principio, la caché se invalida y comienza desde cero.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tiene un límite de tiempo&lt;/strong&gt;. Varía según el proveedor. Por ejemplo, el valor predeterminado de Anthropic es solo 5 minutos (caduca mientras estás en el baño). Si quieres la opción de 1 hora, tienes que pagar extra (2x el precio base de entrada). La caché de DeepSeek dura desde unas horas hasta unos días.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La misma conversación tiende naturalmente a acertar&lt;/strong&gt;. Porque con cada turno adicional en una conversación, la nueva entrada = todo el historial anterior + respuesta de la IA + tu nueva pregunta. El gran historial precedente es exactamente el mismo, por lo que naturalmente acierta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la caché acierta o no afecta enormemente el precio. Por eso recomiendo discutir solo contenido relacionado dentro de la misma conversación, no solo por la memoria de contexto, sino también porque afecta los aciertos de caché. Iniciar una nueva conversación significa pagar desde cero, mientras que continuar la conversación significa obtener un descuento.&lt;/p&gt;
&lt;p&gt;Entonces, los significados de &amp;ldquo;por millón de tokens de entrada (acierto de caché)&amp;rdquo;, &amp;ldquo;por millón de tokens de entrada (fallo de caché)&amp;rdquo; y &amp;ldquo;por millón de tokens de salida&amp;rdquo; son:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Por millón de tokens de entrada (fallo de caché)&lt;/strong&gt;: La parte del contenido que envías esta vez que la IA no puede reutilizar de cálculos anteriores y debe masticar desde cero se cobra a esta tarifa. Esto incluye chats por primera vez, nuevas sesiones o prompts cambiados al principio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Por millón de tokens de entrada (acierto de caché)&lt;/strong&gt;: La parte del contenido que envías esta vez donde el segmento inicial resulta ser exactamente igual a una instancia anterior y es reutilizado directamente por la IA se cobra a esta tarifa (mucho más barata). En la misma conversación, el historial de la segunda, tercera rondas, etc., entra en esta categoría.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Por millón de tokens de salida&lt;/strong&gt;: La respuesta generada por la IA se cobra a esta tarifa. Siempre es la más cara porque &amp;ldquo;generar&amp;rdquo; consume más potencia de cómputo que &amp;ldquo;comprender&amp;rdquo;: una implica que la IA redacta, selecciona palabras y forma oraciones repetidamente en su mente, mientras que la otra implica que la IA solo revisa el material.&lt;/p&gt;
&lt;p&gt;Usemos un ejemplo concreto para tener una idea. Supongamos que estás usando DeepSeek para modificar un fragmento de código de 3000 tokens:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Primera pregunta&lt;/strong&gt;: Entrada de 3000 tokens (todo fallo) + salida de la IA de 500 tokens&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Luego preguntas &amp;ldquo;¿Se puede optimizar esto más?&amp;rdquo;&lt;/strong&gt;: La entrada se vuelve más de 3500 tokens (de los cuales 3500 son historial anterior, todo acierto de caché; solo las pocas docenas de palabras nuevas que agregaste cuentan como fallo) + salida de la IA de 600 tokens&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inicias una nueva conversación, pegas el código de nuevo y haces la misma pregunta&lt;/strong&gt;: Otros 3000 tokens, todo fallo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el precio de fallo es 10 veces el precio de acierto, entonces la diferencia de costo solo para la entrada entre &amp;ldquo;preguntar un seguimiento en la misma conversación&amp;rdquo; e &amp;ldquo;iniciar una nueva conversación para preguntar de nuevo&amp;rdquo; puede ser casi 10 veces.&lt;/p&gt;
&lt;p&gt;Así que esta vez DeepSeek ha reducido el precio de acierto de caché a una décima parte del original, combinado con el descuento del 75% en el modelo Pro. Para casos de uso con &lt;strong&gt;contextos largos + conversaciones de múltiples turnos&lt;/strong&gt; (como codificación, análisis de documentos, chats largos), esto es casi una reducción de precio que rompe huesos. Si has escrito Skills o configurado flujos de trabajo de automatización, sabes que llamar repetidamente a un prompt largo es la norma. El ahorro real de esta reducción de precio es aún más dramático de lo que parece en el papel.&lt;/p&gt;
&lt;p&gt;Finalmente, un consejo práctico: &lt;strong&gt;Desarrolla el hábito de terminar un tema dentro de la misma conversación antes de iniciar una nueva&lt;/strong&gt;. No siempre &amp;ldquo;limpies y empieces de nuevo&amp;rdquo;. No solo la IA te recordará, sino que también te ahorrará dinero.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendimos hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Qué es un acierto de caché&lt;/strong&gt; — La IA almacena la entrada que masticó la última vez. Si el principio es el mismo esta vez, lo reutiliza directamente, ahorrando potencia de cómputo, y el precio se descuenta en consecuencia.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tres condiciones clave&lt;/strong&gt; — Debe ser una coincidencia exacta de prefijo, tiene un límite de tiempo (varía de minutos a días según el proveedor), y la misma conversación tiende naturalmente a acertar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A qué se refieren los tres precios&lt;/strong&gt; — Fallo de caché = entrada que se recalcula; acierto de caché = entrada reutilizada (más barata); salida = respuesta generada por la IA (más cara).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Por qué la salida es la más cara&lt;/strong&gt; — &amp;ldquo;Generar&amp;rdquo; consume más potencia de cómputo que &amp;ldquo;comprender&amp;rdquo;; la IA redacta repetidamente en su mente, y el precio suele ser varias veces el del fallo de entrada.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusiones clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Continuar en la misma conversación significa descuentos automáticos&lt;/strong&gt;; iniciar nuevas conversaciones con frecuencia significa pagar el precio completo cada vez.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modifica los prompts al final&lt;/strong&gt;; si cambias el principio, la caché se invalida.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Los escenarios de contexto largo + conversación de múltiples turnos&lt;/strong&gt; (codificación, análisis de documentos, chats largos) son los más beneficiados. Los recortes de precios de DeepSeek son esencialmente demoledores para tales usuarios.&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code: Una introducción práctica</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/claude-code/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/claude-code/</guid>
        <description>&lt;p&gt;Vamos a sumergirnos en la parte más emocionante: usar IA para que escriba código por ti.&lt;/p&gt;
&lt;p&gt;Quizás pienses: no sé nada de código, ¿qué tiene que ver esto conmigo?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Al contrario, es precisamente porque no sabes código que esta herramienta es aún más adecuada para ti.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Recuerdas a ese amigo que pagó 50 dólares para que le hicieran una página web? Con Claude Code, eso no volverá a pasar. Solo necesitas decirle a la IA en lenguaje sencillo lo que quieres, y ella escribirá el programa completo por ti.&lt;/p&gt;
&lt;p&gt;Hoy te presentamos Claude Code, un asistente de programación con IA que funciona en tu terminal. Solo le dices en lenguaje natural lo que quieres, y escribe todo el programa por ti.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;por-qué-usar-una-herramienta-de-terminal-en-lugar-de-un-ide&#34;&gt;¿Por qué usar una herramienta de terminal en lugar de un IDE?
&lt;/h2&gt;&lt;h3 id=&#34;qué-es-un-ide&#34;&gt;¿Qué es un IDE?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;IDE = Entorno de Desarrollo Integrado&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En pocas palabras, un IDE es el software que los programadores usan para escribir código, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VS Code&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;PyCharm&lt;/li&gt;
&lt;li&gt;WebStorm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas herramientas tienen interfaces complejas y funciones potentes, &lt;strong&gt;pero para alguien que no sabe nada de código, son más una carga.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;por-qué-recomiendo-el-terminal&#34;&gt;Por qué recomiendo el terminal
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Razón 1: Interfaz simple&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IDE: Lleno de botones, menús, barras laterales, barras de estado… abrumador a primera vista&lt;/li&gt;
&lt;li&gt;Terminal: Solo una caja negra: escribes un comando, obtienes un resultado, limpio y directo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Razón 2: No necesitas editar código manualmente&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si no entiendes nada de código, el código que se muestra en un IDE parece galimatías. No puedes leerlo y no sabes cómo cambiarlo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Si todo lo escribe la IA, ¿para qué molestarse en mirar el código?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Claude Code en el terminal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creará archivos automáticamente&lt;/li&gt;
&lt;li&gt;Escribirá código automáticamente&lt;/li&gt;
&lt;li&gt;Modificará código automáticamente&lt;/li&gt;
&lt;li&gt;Ejecutará pruebas automáticamente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tú solo le dices lo que quieres, y él se encarga del resto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Razón 3: Software más ligero&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cursor/VS Code: Cientos de MB, además necesitas instalar varios complementos&lt;/li&gt;
&lt;li&gt;Terminal: Integrado en tu sistema, no requiere instalación adicional&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Resumen: Para personas con cero experiencia en programación que quieren que la IA les ayude a construir cosas, el terminal + Claude Code es la combinación más simple y directa.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;conceptos-básicos-del-terminal-cómo-abrir-tu-carpeta-de-proyecto&#34;&gt;Conceptos básicos del terminal: Cómo abrir tu carpeta de proyecto
&lt;/h2&gt;&lt;p&gt;Antes de usar Claude Code, necesitas aprender una operación básica: &lt;strong&gt;abrir tu carpeta de proyecto en el terminal.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;usuarios-de-mac&#34;&gt;Usuarios de Mac
&lt;/h3&gt;&lt;h4 id=&#34;método-1-clic-derecho-para-abrir-recomendado&#34;&gt;Método 1: Clic derecho para abrir (Recomendado)
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;Encuentra tu carpeta de proyecto en Finder&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Haz clic derecho en la carpeta&lt;/strong&gt; (o toca con dos dedos en el trackpad)&lt;/li&gt;
&lt;li&gt;Selecciona &lt;strong&gt;&amp;ldquo;Nuevo terminal en la carpeta&amp;rdquo;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602029ec3f72d00be52b5160c2a48d5272071.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;método-2-opción--clic-derecho-para-obtener-la-ruta&#34;&gt;Método 2: Opción + clic derecho para obtener la ruta
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;Encuentra tu carpeta de proyecto en Finder&lt;/li&gt;
&lt;li&gt;Mantén presionada la &lt;strong&gt;tecla Opción&lt;/strong&gt; y haz clic derecho en la carpeta&lt;/li&gt;
&lt;li&gt;Selecciona &lt;strong&gt;&amp;ldquo;Copiar &amp;rsquo;nombre de carpeta&amp;rsquo; como ruta&amp;rdquo;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Abre Terminal (busca &amp;ldquo;Terminal&amp;rdquo; en Launchpad)&lt;/li&gt;
&lt;li&gt;Escribe &lt;code&gt;cd &lt;/code&gt; (nota el espacio después de &lt;code&gt;cd&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Presiona &lt;strong&gt;Comando + V&lt;/strong&gt; para pegar la ruta&lt;/li&gt;
&lt;li&gt;Presiona Enter&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026020287debaabc88c9f275f9443e8ad65fa3a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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;cd&lt;/span&gt; /Users/yourname/Desktop/my-project
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;método-3-arrastrar-y-soltar&#34;&gt;Método 3: Arrastrar y soltar
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;Abre Terminal&lt;/li&gt;
&lt;li&gt;Escribe &lt;code&gt;cd &lt;/code&gt; (nota el espacio)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Arrastra la carpeta&lt;/strong&gt; desde Finder directamente a la ventana de Terminal&lt;/li&gt;
&lt;li&gt;La ruta se completará automáticamente; presiona Enter&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;usuarios-de-windows&#34;&gt;Usuarios de Windows
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Encuentra tu carpeta de proyecto en el Explorador de archivos&lt;/li&gt;
&lt;li&gt;Escribe &lt;code&gt;cmd&lt;/code&gt; o &lt;code&gt;powershell&lt;/code&gt; en la barra de direcciones y presiona Enter&lt;/li&gt;
&lt;li&gt;La línea de comandos se abrirá directamente en esa carpeta&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;O:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Haz clic derecho en la carpeta&lt;/li&gt;
&lt;li&gt;Selecciona &lt;strong&gt;&amp;ldquo;Abrir en Terminal&amp;rdquo;&lt;/strong&gt; (Windows 11)&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-claude-code&#34;&gt;¿Qué es Claude Code?
&lt;/h2&gt;&lt;h3 id=&#34;en-una-frase&#34;&gt;En una frase
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Claude Code = Un asistente de programación con IA que funciona en tu terminal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Es una herramienta oficial de línea de comandos de Anthropic (la empresa detrás de Claude). Hablas con él en el terminal, y puede ayudarte a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear nuevos proyectos&lt;/li&gt;
&lt;li&gt;Escribir código&lt;/li&gt;
&lt;li&gt;Modificar código&lt;/li&gt;
&lt;li&gt;Corregir errores&lt;/li&gt;
&lt;li&gt;Explicar código&lt;/li&gt;
&lt;li&gt;Ejecutar comandos&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;en-qué-se-diferencia-de-claude-en-la-web&#34;&gt;¿En qué se diferencia de Claude en la web?
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Característica&lt;/th&gt;
          &lt;th&gt;Claude Web&lt;/th&gt;
          &lt;th&gt;Claude Code&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Cómo se usa&lt;/td&gt;
          &lt;td&gt;Chatear en un navegador&lt;/td&gt;
          &lt;td&gt;Escribir comandos en el terminal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;¿Puede manipular archivos?&lt;/td&gt;
          &lt;td&gt;No, solo conversación&lt;/td&gt;
          &lt;td&gt;Sí, puede crear y modificar archivos directamente&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;¿Puede ejecutar código?&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
          &lt;td&gt;Sí, puede ejecutar código en tu computadora&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ideal para&lt;/td&gt;
          &lt;td&gt;Hacer preguntas, escribir artículos&lt;/td&gt;
          &lt;td&gt;Construir proyectos, escribir programas&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Diferencia clave: La versión web solo puede &amp;ldquo;hablar&amp;rdquo;, Claude Code puede &amp;ldquo;hacer&amp;rdquo;.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-instalar-claude-code&#34;&gt;Cómo instalar Claude Code
&lt;/h2&gt;&lt;h3 id=&#34;requisitos-previos&#34;&gt;Requisitos previos
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Node.js&lt;/strong&gt;: Claude Code requiere Node.js
&lt;ul&gt;
&lt;li&gt;Descarga: &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://nodejs.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Elige la versión LTS (Soporte a largo plazo)&lt;/li&gt;
&lt;li&gt;Después de la instalación, verifica con &lt;code&gt;node -v&lt;/code&gt; en el terminal&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026020284f2355394f39e17a848f76c1be5804f.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
2. &lt;strong&gt;Entorno de red&lt;/strong&gt;: Necesitas acceso a la API de Claude (puede requerir una VPN)&lt;/p&gt;
&lt;h3 id=&#34;pasos-de-instalación&#34;&gt;Pasos de instalación
&lt;/h3&gt;&lt;p&gt;Abre tu terminal y ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 @anthropic-ai/claude-code
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202c02b08fc850171b1d82f74664087bcb6.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
Espera a que termine la instalación. Si ves una salida como esta, fue exitosa:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;added 1 package in 2s
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Verifica la instalación:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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 --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si se muestra un número de versión, la instalación fue exitosa.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;varias-formas-de-usarlo&#34;&gt;Varias formas de usarlo
&lt;/h2&gt;&lt;p&gt;Claude Code admite múltiples formas de acceder a las capacidades de IA. Elige la que más te convenga.&lt;/p&gt;
&lt;h3 id=&#34;método-1-comprar-una-membresía-de-claude&#34;&gt;Método 1: Comprar una membresía de Claude
&lt;/h3&gt;&lt;p&gt;Esta es la forma más simple y directa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Planes de membresía de Claude:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Plan&lt;/th&gt;
          &lt;th&gt;Precio&lt;/th&gt;
          &lt;th&gt;Cuota de Claude Code&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Pro&lt;/td&gt;
          &lt;td&gt;$20/mes&lt;/td&gt;
          &lt;td&gt;Cuota limitada, adecuado para uso ligero&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Max&lt;/td&gt;
          &lt;td&gt;$100/mes&lt;/td&gt;
          &lt;td&gt;Cuota más alta, adecuado para uso intensivo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Max&lt;/td&gt;
          &lt;td&gt;$200/mes&lt;/td&gt;
          &lt;td&gt;Cuota más alta, adecuado para desarrollo profesional&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Configuración:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Después de comprar una membresía de Claude, abre el terminal&lt;/li&gt;
&lt;li&gt;Ejecuta &lt;code&gt;claude&lt;/code&gt; para iniciar&lt;/li&gt;
&lt;li&gt;Sigue las instrucciones para iniciar sesión en tu cuenta de Claude&lt;/li&gt;
&lt;li&gt;Una vez iniciada la sesión, puedes empezar a usarlo&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;método-2-usar-apis-de-otros-modelos&#34;&gt;Método 2: Usar APIs de otros modelos
&lt;/h3&gt;&lt;p&gt;Si no quieres comprar una membresía de Claude, puedes usar APIs de otros modelos para impulsar Claude Code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modelos compatibles:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;OpenAI serie GPT&lt;/li&gt;
&lt;li&gt;Otras APIs compatibles con el formato OpenAI&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;21-configurar-mediante-variables-de-entorno-ejemplo-con-deepseek&#34;&gt;2.1 Configurar mediante variables de entorno (Ejemplo con DeepSeek)
&lt;/h4&gt;&lt;p&gt;La API de DeepSeek es compatible con el formato Anthropic y se puede usar como reemplazo directo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuración en Mac/Linux:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ejecuta los siguientes comandos en el terminal (temporal – se perderán al cerrar el terminal):&lt;/p&gt;
&lt;div class=&#34;highlight&#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;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;https://api.deepseek.com/anthropic
&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;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class=&#34;si&#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;nb&#34;&gt;export&lt;/span&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;600000&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;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;deepseek-chat
&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;ANTHROPIC_SMALL_FAST_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;deepseek-chat
&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;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;/div&gt;&lt;p&gt;Luego simplemente ejecuta &lt;code&gt;claude&lt;/code&gt; para iniciar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuración en Windows (PowerShell):&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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:ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com&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;$env:ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Your DeepSeek API Key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Luego simplemente ejecuta &lt;code&gt;claude&lt;/code&gt; para iniciar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Este método es temporal; la configuración se perderá al cerrar el terminal. Para una configuración permanente, usa el método de &lt;code&gt;settings.json&lt;/code&gt; a continuación.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Referencia:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/guides/anthropic_api&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://api-docs.deepseek.com/guides/anthropic_api&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;22-configurar-mediante-settingsjson-recomendado&#34;&gt;2.2 Configurar mediante settings.json (Recomendado)
&lt;/h4&gt;&lt;p&gt;Este método es más conveniente: una vez configurado, Claude Code usará automáticamente estos ajustes cada vez que lo inicies.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos de configuración:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Encuentra la carpeta de configuración de Claude Code:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mac/Linux: &lt;code&gt;~/.claude/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows: &lt;code&gt;%USERPROFILE%\.claude\&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Crea o edita el archivo &lt;code&gt;settings.json&lt;/code&gt; (ejemplo):&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#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;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;nt&#34;&gt;&amp;#34;ANTHROPIC_BASE_URL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com&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;ANTHROPIC_AUTH_TOKEN&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Your DeepSeek 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;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;/div&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Guarda el archivo y reinicia Claude Code&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Consejo:&lt;/strong&gt; Si la carpeta &lt;code&gt;.claude&lt;/code&gt; no existe, ejecuta el comando &lt;code&gt;claude&lt;/code&gt; una vez; se creará automáticamente.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-iniciar-claude-code-en-el-terminal&#34;&gt;Cómo iniciar Claude Code en el terminal
&lt;/h2&gt;&lt;h3 id=&#34;inicio-básico&#34;&gt;Inicio básico
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Abre el terminal&lt;/li&gt;
&lt;li&gt;Usa el comando &lt;code&gt;cd&lt;/code&gt; para navegar a tu carpeta de proyecto&lt;/li&gt;
&lt;li&gt;Escribe &lt;code&gt;claude&lt;/code&gt; y presiona Enter&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#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;cd&lt;/span&gt; /path/to/your/project
&lt;/span&gt;&lt;/span&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;/div&gt;&lt;p&gt;Claude Code se iniciará y verás una interfaz interactiva donde podrás empezar a escribir tus solicitudes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202c26c86722614cb2c97465ab26c68d07a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comandos-y-conceptos-comunes&#34;&gt;Comandos y conceptos comunes
&lt;/h2&gt;&lt;h3 id=&#34;comandos-comunes-en-claude-code&#34;&gt;Comandos comunes en Claude Code
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Comando&lt;/th&gt;
          &lt;th&gt;Acción&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/help&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Ver información de ayuda&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/clear&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Limpiar la conversación actual&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/exit&lt;/code&gt; o &lt;code&gt;Ctrl+C&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Salir de Claude Code&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/compact&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Comprimir el historial de la conversación para ahorrar tokens&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/init&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Inicializar un proyecto, crear un archivo CLAUDE.md&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;modo-plan&#34;&gt;Modo Plan
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Modo Plan = Deja que Claude planifique primero, luego actúe&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por defecto, Claude comienza a escribir código inmediatamente. Pero a veces quieres que piense las cosas antes de actuar; para eso está el modo Plan.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo cambiar?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Presiona &lt;strong&gt;Shift + Tab&lt;/strong&gt; para alternar entre tres modos:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modo&lt;/th&gt;
          &lt;th&gt;Descripción&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Normal&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Modo normal, Claude ejecuta directamente&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Plan&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Modo plan, Claude solo planifica sin ejecutar; espera tu confirmación&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Auto&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Modo automático, Claude ejecuta todas las operaciones sin pedir confirmación&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;¿Cuándo usar el modo Plan?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El proyecto es complejo y quieres que Claude aclare su enfoque primero&lt;/li&gt;
&lt;li&gt;No estás seguro de cómo hará los cambios Claude y quieres ver su plan&lt;/li&gt;
&lt;li&gt;Quieres un control más preciso sobre el comportamiento de Claude&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;aceptar-ediciones&#34;&gt;Aceptar ediciones
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Aceptar ediciones = Si aprobar automáticamente las modificaciones de Claude&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando Claude quiere crear o modificar un archivo, normalmente pide tu confirmación.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo cambiar?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando presionas &lt;strong&gt;Shift + Tab&lt;/strong&gt; para cambiar de modo, verás:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aceptar ediciones: off&lt;/strong&gt; – Cada modificación requiere tu confirmación manual&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aceptar ediciones: on&lt;/strong&gt; – Todas las modificaciones se aceptan automáticamente sin preguntar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Recomendaciones:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los principiantes deberían mantenerlo apagado para ver lo que Claude hace en cada paso&lt;/li&gt;
&lt;li&gt;Una vez que te sientas cómodo, actívalo para un flujo de trabajo más fluido&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;qué-es-resume&#34;&gt;¿Qué es &lt;code&gt;resume&lt;/code&gt;?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;resume = Reanudar una conversación anterior&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Después de cerrar el terminal o salir de Claude Code, puedes usar la bandera &lt;code&gt;--resume&lt;/code&gt; la próxima vez para continuar la conversación anterior:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 --resume
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Claude recordará lo que hablaste, para que no tengas que empezar desde cero.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202f66b8674fe53fbe3d1d18afeb9329869.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;strong&gt;¿Cuándo usar resume?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trabajaste en un proyecto ayer y quieres continuar hoy&lt;/li&gt;
&lt;li&gt;Tu computadora se apagó inesperadamente y quieres recuperar el progreso&lt;/li&gt;
&lt;li&gt;Quieres que Claude continúe desde donde lo dejó&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;qué-es-claudemd&#34;&gt;¿Qué es CLAUDE.md?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;CLAUDE.md = Archivo de descripción del proyecto&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Es un archivo Markdown colocado en el directorio raíz de tu proyecto. Le dice a Claude sobre el contexto del proyecto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo crearlo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Primero ejecuta &lt;code&gt;claude&lt;/code&gt; para iniciar Claude Code, luego ingresa &lt;code&gt;/init&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#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;/div&gt;&lt;p&gt;Dentro de Claude Code, escribe:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/init
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602028d1fc7578d67a52f828783ddb86bed52.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
Claude analizará automáticamente tu proyecto y generará un archivo CLAUDE.md.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Para qué sirve?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando Claude Code se inicia, lee este archivo para entender:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué hace el proyecto&lt;/li&gt;
&lt;li&gt;Qué stack tecnológico se usa&lt;/li&gt;
&lt;li&gt;Requisitos especiales&lt;/li&gt;
&lt;li&gt;Preferencias de estilo de código&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo de CLAUDE.md:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# Project Description
&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;This is a personal translation tool webpage.
&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;gu&#34;&gt;## Tech Stack
&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;k&#34;&gt;-&lt;/span&gt; Pure HTML/CSS/JavaScript
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No frameworks
&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;gu&#34;&gt;## Requirements
&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;k&#34;&gt;-&lt;/span&gt; Code comments in English
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Clean and modern interface
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Support dark mode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con este archivo, no tienes que explicar el contexto del proyecto cada vez que inicias Claude Code.&lt;/p&gt;
&lt;h3 id=&#34;skill&#34;&gt;Skill
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Skill = Comandos abreviados de Claude Code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Los Skills son comandos predefinidos que permiten a Claude realizar tareas específicas rápidamente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Skills integrados comunes:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Comando&lt;/th&gt;
          &lt;th&gt;Acción&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/commit&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Generar automáticamente un mensaje de commit de git y hacer commit del código&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/review&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Revisar el código y encontrar problemas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/fix&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Corregir errores en el código&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo usarlos?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Simplemente escribe el comando con barra en Claude Code, por ejemplo:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/commit
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Claude analizará automáticamente tus cambios de código y generará un mensaje de commit apropiado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cubriremos los Skills personalizados en detalle en un capítulo posterior.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;mcp-model-context-protocol&#34;&gt;MCP (Model Context Protocol)
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;MCP = Conectar Claude a herramientas y fuentes de datos externas&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;MCP es un protocolo que permite a Claude Code conectarse a varios servicios externos, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bases de datos&lt;/li&gt;
&lt;li&gt;Sistemas de archivos&lt;/li&gt;
&lt;li&gt;Servicios web&lt;/li&gt;
&lt;li&gt;Otras herramientas de IA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Piénsalo así:&lt;/strong&gt; MCP es como agregar &amp;ldquo;complementos&amp;rdquo; a Claude, permitiéndole hacer más cosas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conectar a Obsidian para que Claude pueda leer y escribir tus notas directamente&lt;/li&gt;
&lt;li&gt;Conectar a un navegador para que Claude pueda automatizar páginas web&lt;/li&gt;
&lt;li&gt;Conectar a una base de datos para que Claude pueda consultar y analizar datos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cubriremos la configuración y el uso de MCP en detalle en un capítulo posterior.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;manos-a-la-obra-que-claude-construya-una-página-web-de-traducción&#34;&gt;Manos a la obra: Que Claude construya una página web de traducción
&lt;/h2&gt;&lt;p&gt;Ahora que has aprendido tanto, ¡pongámoslo en práctica!&lt;/p&gt;
&lt;p&gt;Vamos a construir una &lt;strong&gt;página web de traducción local&lt;/strong&gt; que pueda usar la API de Gemini para traducir.&lt;/p&gt;
&lt;h3 id=&#34;paso-1-crear-una-carpeta-de-proyecto&#34;&gt;Paso 1: Crear una carpeta de proyecto
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Crea una nueva carpeta en tu escritorio (o donde quieras), por ejemplo llamada &lt;code&gt;demo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Usando el método que aprendiste antes, abre esta carpeta en el terminal&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;paso-2-iniciar-claude-code&#34;&gt;Paso 2: Iniciar Claude Code
&lt;/h3&gt;&lt;div class=&#34;highlight&#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;/div&gt;&lt;h3 id=&#34;paso-3-ingresa-tu-solicitud&#34;&gt;Paso 3: Ingresa tu solicitud
&lt;/h3&gt;&lt;p&gt;Escribe lo siguiente en Claude Code (siéntete libre de copiarlo):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Create a translation webpage tool with the following requirements:

1. Features:
   - Left input box for the source text, right side shows the translation result
   - Support Chinese-English translation
   - A &amp;#34;Translate&amp;#34; button
   - A &amp;#34;Clear&amp;#34; button
   - A &amp;#34;Copy Result&amp;#34; button

2. Interface:
   - Clean and modern design
   - Support dark/light mode toggle
   - Responsive design, works on mobile

3. Technical requirements:
   - Use only HTML, CSS, JavaScript, no frameworks
   - All code in a single HTML file
   - Call the Gemini API for translation

4. Settings (important):
   - A &amp;#34;Settings&amp;#34; button on the page
   - Clicking it opens a settings panel where you can configure:
     - API Key
     - API URL
     - Model Name
   - Save settings to the browser&amp;#39;s localStorage, auto-load next time
   - The settings panel should have &amp;#34;Save&amp;#34; and &amp;#34;Cancel&amp;#34; buttons

5. Translation logic:
   - Auto-detect the input language
   - If Chinese, translate to English
   - If English, translate to Chinese

Please create this HTML file directly.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602027f94f4b720514c4f21a32f2ca8daac1b.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;paso-4-espera-a-que-claude-termine&#34;&gt;Paso 4: Espera a que Claude termine
&lt;/h3&gt;&lt;p&gt;Claude automáticamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Creará el archivo HTML&lt;/li&gt;
&lt;li&gt;Escribirá todo el código&lt;/li&gt;
&lt;li&gt;Te dirá dónde está el archivo&lt;/li&gt;
&lt;li&gt;Después de la ejecución, te preguntará si aceptas crear el archivo – elige 1 o 2&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602023f993ff1de812e59dfb8298629681ce7.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;paso-5-ejecuta-y-configura-la-api&#34;&gt;Paso 5: Ejecuta y configura la API
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Haz doble clic en el archivo HTML generado para abrirlo en tu navegador&lt;/li&gt;
&lt;li&gt;Haz clic en el botón &amp;ldquo;Configuración&amp;rdquo; en la página (generalmente un icono de engranaje)&lt;/li&gt;
&lt;li&gt;En el panel de configuración que aparece, completa:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API Key&lt;/strong&gt;: La clave API que obtuviste de AI Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API URL&lt;/strong&gt;: &lt;code&gt;https://generativelanguage.googleapis.com/v1beta&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Name&lt;/strong&gt;: &lt;code&gt;gemini-3-flash-preview&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Guardar&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202e2ed9a26034605db54d3a98ac93fcb6c.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202fb2375e0db308b419bd41825fa401cb8.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;strong&gt;La configuración se guarda automáticamente en el navegador, por lo que no necesitas volver a ingresarla la próxima vez.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;paso-6-empieza-a-usarlo&#34;&gt;Paso 6: Empieza a usarlo
&lt;/h3&gt;&lt;p&gt;Ahora puedes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribir chino o inglés en el cuadro de entrada izquierdo&lt;/li&gt;
&lt;li&gt;Hacer clic en el botón &amp;ldquo;Traducir&amp;rdquo;&lt;/li&gt;
&lt;li&gt;El resultado de la traducción aparecerá a la derecha&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Copiar resultado&amp;rdquo; para copiar el texto traducido&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;&#34;&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202725867efa3b7d314352876c0ce9780ee.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;/h2&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendiste hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Por qué usar el terminal en lugar de un IDE&lt;/strong&gt;: Para personas que no saben código, el terminal es más simple y directo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo abrir un proyecto en el terminal&lt;/strong&gt;: Clic derecho, arrastrar y soltar, o usar el comando &lt;code&gt;cd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Qué es Claude Code&lt;/strong&gt;: Un asistente de programación con IA en el terminal que puede manipular archivos directamente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo instalarlo y configurarlo&lt;/strong&gt;: Instalar mediante npm, compatible con membresía oficial o APIs de terceros&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comandos comunes&lt;/strong&gt;: &lt;code&gt;resume&lt;/code&gt; para reanudar conversaciones, &lt;code&gt;CLAUDE.md&lt;/code&gt; para descripciones de proyecto&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Práctica&lt;/strong&gt;: Que Claude construya una página web de traducción para ti&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Idea central: No necesitas saber cómo escribir código – solo necesitas saber cómo describir lo que quieres.&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Design: Convierte Ideas en Páginas Pulidas</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/claude-design/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/claude-design/</guid>
        <description>&lt;p&gt;Claude tiene una nueva función llamada &lt;strong&gt;Design&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude Design es una vista previa de investigación lanzada por Anthropic el 17 de abril, parte de la línea de productos Anthropic Labs, que se ejecuta en su modelo de visión más potente actual, Opus 4.7.&lt;/strong&gt; Está diseñado para crear borradores visuales con Claude: prototipos web, presentaciones PPT, pitch decks, landing pages, one-pagers y más están dentro de su alcance. Puede leer tu repositorio de código y archivos de diseño existentes, aplicar tu sistema de diseño a la salida, para que el estilo coincida con tus proyectos existentes.&lt;/p&gt;
&lt;p&gt;La mejor parte es el resultado final: además de exportar PDF/PPTX/HTML o enviar a Canva, también puede empaquetar todo en un handoff bundle y pasarlo a Claude Code local para continuar modificando el código del proyecto.&lt;/p&gt;
&lt;p&gt;Tan pronto como salió, afectó las acciones de Figma, cerrando con una caída del 6.89%.&lt;/p&gt;
&lt;p&gt;Una breve introducción a Figma: una empresa que crea herramientas de diseño colaborativo en línea, compitiendo con Adobe y Canva. Decenas de millones de diseñadores en todo el mundo lo usan para crear diseños. En realidad, ya existía un MCP que permitía usar IA para controlar Figma, pero como mi sentido estético es demasiado básico y mi mente está en blanco sin ideas, nunca usé ese producto.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;por-qué-realmente-lo-necesitaba&#34;&gt;Por qué realmente lo necesitaba
&lt;/h2&gt;&lt;p&gt;¿Recuerdas el plugin de Obsidian que hice para enviar contenido a WeChat Official Accounts?&lt;/p&gt;
&lt;p&gt;Hasta ahora, en todos los canales, he vendido un total de &lt;strong&gt;0 copias&lt;/strong&gt;. Qué encantador (TAT).&lt;/p&gt;
&lt;p&gt;Por supuesto, es posible—y no estoy presumiendo—que esto tenga que ver con mi gusto básico por el diseño.&lt;/p&gt;
&lt;p&gt;Echa un vistazo a cómo se veía la interfaz de mi plugin original:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604180494c5e26233bd378ee9fc190cdcf768.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dos filas de barras de herramientas, 9 botones apretados en una fila.&lt;/strong&gt; Formato, cuenta, nombre de cuenta preestablecido, configuración de cuenta, activación de compra, guía de usuario, actualizar renderizado, copiar HTML, pegar en WeChat Official Account, publicar borrador&amp;hellip; todo apilado en el lugar más destacado.&lt;/p&gt;
&lt;p&gt;Todas las funciones están ahí, pero es agotador solo mirarlo.&lt;/p&gt;
&lt;p&gt;Debajo de eso, hay un mensaje super largo: &amp;lsquo;Haz clic en el botón de abajo para seleccionar una imagen de tu computadora; déjalo en blanco para usar una portada de marcador de posición; si se ha establecido una portada predeterminada, usa la portada predeterminada.&amp;rsquo; Un amigo lo vio y dijo: &amp;lsquo;¿Para quién es esto? ¿Una descripción de campo de base de datos?&amp;rsquo;&lt;/p&gt;
&lt;p&gt;Así que cuando vi que salía Claude Design, lo probé de inmediato. Veamos cómo funcionó realmente.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-usarlo&#34;&gt;Cómo usarlo
&lt;/h2&gt;&lt;p&gt;Primero, abre la versión web de Claude, haz clic en &lt;strong&gt;Design&lt;/strong&gt; a la izquierda para entrar. En la parte superior, hay un cuadro de entrada llamado &amp;lsquo;New prototype&amp;rsquo;, solo completa el nombre del proyecto.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026041846406200cbb999f86f7b9dd56a975604.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Puedes elegir Wireframe (baja fidelidad) o High fidelity (alta fidelidad con activos de marca). Elegí baja fidelidad porque al principio solo se trata de conceptos aproximados, no hay necesidad de alta fidelidad. En realidad, después de terminar, se actualizará automáticamente por ti.&lt;/p&gt;
&lt;p&gt;A continuación, &lt;strong&gt;indícale la ruta de la carpeta del programa&lt;/strong&gt; y &lt;strong&gt;envíale una captura de pantalla de la página que deseas modificar&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604182e52ffa1c95875696cc1c4b68c651ae9.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Primero te hará algunas preguntas: qué cambiar, qué mantener, cuál es la acción principal, cuál es la acción secundaria. Confesé honestamente: lo que más quería destacar era &amp;lsquo;Publish Draft&amp;rsquo; y &amp;lsquo;Switch Account&amp;rsquo;, el resto se puede colapsar.&lt;/p&gt;
&lt;p&gt;Después de preguntar, comenzó a funcionar por sí solo.&lt;/p&gt;
&lt;h3 id=&#34;presentó-4-opciones&#34;&gt;Presentó 4 opciones
&lt;/h3&gt;&lt;p&gt;Poco después, me entregó una página de comparación wireframes.html.&lt;/p&gt;
&lt;p&gt;Lo primero fue una comparación: enumeró los &amp;lsquo;pecados&amp;rsquo; de mi interfaz actual uno por uno en texto rojo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260418486608864e26eeb6454be2098403e829.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lsquo;Dos filas de barras apretando la vista previa&amp;rsquo;&lt;/li&gt;
&lt;li&gt;&amp;lsquo;9 botones&amp;rsquo;&lt;/li&gt;
&lt;li&gt;&amp;lsquo;Mezcla de chino/inglés + descripciones de símbolos confusas&amp;rsquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta función realmente me sorprendió. Pensé que solo me ayudaría a modificar cosas, pero en realidad vio el contenido y señaló los problemas. Se sintió como un diseñador real comunicándose cara a cara, no una IA fría.&lt;/p&gt;
&lt;p&gt;Luego vinieron las 4 opciones:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604181fea83d6c4088619b254043986469f9a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Opción A&lt;/strong&gt;: Fila única minimalista, botón principal &amp;lsquo;Publish Draft&amp;rsquo; + cápsula de cuenta, resto iconos + menú &lt;code&gt;⋯&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opción B&lt;/strong&gt;: Migas de pan en tarjeta + cajón, mantener entrada para editar metainformación&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opción C&lt;/strong&gt;: Barra lateral (como VSCode), barra superior solo título&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opción D&lt;/strong&gt;: Tarjeta de publicación flotante en la parte inferior derecha, acción principal más prominente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La más interesante fue la Opción D. Dibujó una nota adhesiva con &amp;lsquo;Common Design Rules&amp;rsquo; y &amp;lsquo;Recommended Order&amp;rsquo;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604185f4b1290ce63cd1429ad4298f291cad8.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A → Mayor ahorro de espacio, bajo costo de aprendizaje
D → Visualmente más bonita, acción principal más satisfactoria
C → Amigable para usuarios avanzados (biblioteca de iconos)
B → Segura, conserva la edición de metainformación&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;Esto no es solo &amp;lsquo;aquí hay algunas opciones&amp;rsquo;, es &amp;lsquo;aquí hay algunas opciones + decirte para quién es cada una&amp;rsquo;.&lt;/strong&gt; He estado haciendo plugins durante mucho tiempo, y nadie me ha dicho seriamente &amp;lsquo;dónde debería ir este botón&amp;rsquo;.&lt;/p&gt;
&lt;h3 id=&#34;puedes-seguir-iterando&#34;&gt;Puedes seguir iterando
&lt;/h3&gt;&lt;p&gt;Después de elegir una dirección, puedes seguir comunicándote. A la izquierda hay un cuadro de chat, a la derecha haz clic en &lt;strong&gt;Edit&lt;/strong&gt; para seleccionar elementos directamente y modificar (pero los ajustes allí eran demasiado profesionales, no los entendí, así que lo omití). Haz clic en &lt;strong&gt;Draw&lt;/strong&gt; para dibujar círculos y flechas en la vista previa y decirle &amp;lsquo;Quiero mover esto aquí&amp;rsquo;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260418a29fac73d006348869f9abf04ccbfb39.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Creo que la función Draw es increíble. Dibujé una flecha muy tosca desde un botón hasta la parte inferior derecha, y realmente lo entendió, probablemente relacionado con la gran actualización en el reconocimiento visual de Opus 4.7 (como se mencionó anteriormente, aumentó la precisión del reconocimiento de imágenes a 3.75 megapíxeles).&lt;/p&gt;
&lt;h3 id=&#34;de-la-barra-de-herramientas-al-diseño&#34;&gt;De la barra de herramientas al diseño
&lt;/h3&gt;&lt;p&gt;Después de modificar la barra de menú, le pedí que creara varios &lt;strong&gt;estilos de diseño de artículos&lt;/strong&gt;—después de todo, el trabajo principal de mi plugin es formatear Markdown en algo publicable en WeChat Official Accounts.&lt;/p&gt;
&lt;p&gt;Abrió una nueva página con el título &amp;lsquo;Format Markdown into a WeChat article worth reading&amp;rsquo;. En la parte superior derecha, hay un botón &lt;strong&gt;Tweaks&lt;/strong&gt; que, al hacer clic, te permite ajustar el tamaño de fuente, peso, color, interlineado, etc., como en Figma:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260418900b02654b1668a503a28df2963d8d50.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604186645f6806b12e54e33b34bb0c3449423.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Ten en cuenta que esta es una página realmente cliqueable y conmutable, no una falsa. Esta interacción es mucho mejor que hacerlo en Claude Code en la terminal. Con Claude Code, tienes que esperar a que termine para ver el efecto, luego pedirle que modifique. Aquí, obtienes una vista previa en tiempo real.&lt;/p&gt;
&lt;p&gt;Después de finalizar, haz clic en &lt;strong&gt;Export&lt;/strong&gt; en la parte superior derecha. Ofrece varias opciones: descargar PPT, exportar PDF, exportar HTML independiente, o—la última—&lt;strong&gt;&amp;lsquo;Handoff to Claude Code&amp;rsquo;&lt;/strong&gt;, que envía todo el archivo de diseño a Claude Code local para continuar codificando.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604184b3791bd845867bfc163f66fc2e3c5cd.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260418dfafd0638ae1ada89c3e139bb14a5c69.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Esta es la mejor parte de toda la cadena.&lt;/p&gt;
&lt;p&gt;Después de diseñar en la web, genera un comando para ti. Cópialo y pégalo en la terminal, y Claude Code local toma el control:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt; Fetch this design file, read its readme,
  and implement the relevant aspects of the design.
  Implement: option-b-hifi.html
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Luego comienza a leer el paquete de diseño, mirando el código actual, entendiendo qué archivos modificar, y finalmente cambia directamente todo el código fuente de mi plugin. La página de diseño proporcionó option-b-hifi.html (terminé eligiendo la versión de alta fidelidad de la Opción B), y Claude Code lee colores, tamaños de fuente, espaciado del archivo de diseño y los aplica a mi código React.&lt;/p&gt;
&lt;p&gt;No escribí ni una sola línea de código en todo el proceso.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;el-resultado-final&#34;&gt;El resultado final
&lt;/h2&gt;&lt;p&gt;De todos modos, creo que se ve mucho mejor que mi original. Aunque un diseñador real podría haberlo hecho aún mejor, para un plugin personal es más que suficiente (en comparación con mi diseño original).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026041878dd13ce33cab231dd9f86204f578e9f.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Título + metainformación colapsados en una fila, la cuenta se convierte en una cápsula (con un punto verde activo), la acción principal es solo un botón púrpura &amp;lsquo;Publish Draft&amp;rsquo; a la derecha, todo lo demás está escondido en el menú &lt;code&gt;⋯&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resulta que mi montón de &amp;lsquo;funciones&amp;rsquo; no carecía de sentido del diseño, sino que nadie me ayudó a hacer concesiones.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Agregar un botón es fácil, pero eliminar uno de la interfaz es contraintuitivo para un desarrollador—siempre piensas &amp;lsquo;¿y si alguien lo necesita?&amp;rsquo;. Pero un diseñador tomará esa decisión por ti: &amp;lsquo;Pon esto en un menú secundario, los usuarios no volverán a hacer clic después de la primera vez.&amp;rsquo;&lt;/p&gt;
&lt;p&gt;Esta vez, Claude Design tomó esa decisión por mí.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;el-costo&#34;&gt;El costo
&lt;/h2&gt;&lt;h3 id=&#34;consume-muchos-recursos&#34;&gt;Consume muchos recursos
&lt;/h3&gt;&lt;p&gt;En los planes de suscripción de Claude, Design &lt;strong&gt;tiene su propia cuota&lt;/strong&gt; (tengo que decir que las cuotas separadas de Claude realmente se están acumulando).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260418f825b29c337c9c5c7ab692ed8c6c9fbc.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Hacer este conjunto—4 comparaciones de opciones + 5 temas de artículos + implementación de alta fidelidad—&lt;strong&gt;consumió el 36% de mi cuota diaria&lt;/strong&gt;. Tengo una cuenta 5x Max; para una cuenta Pro, eso agotaría toda la cuota del día.&lt;/p&gt;
&lt;p&gt;Un amigo mío tiene una cuenta Pro. Anoche, usó Design para hacer un PPT de 30 páginas y su cuota diaria se agotó por completo.&lt;/p&gt;
&lt;h3 id=&#34;fallos-ocasionales&#34;&gt;Fallos ocasionales
&lt;/h3&gt;&lt;p&gt;A veces, en medio del trabajo, puedes encontrarte con una situación: envías un mensaje y responde con &lt;code&gt;&amp;lt;empty&amp;gt;&lt;/code&gt;. Envías de nuevo, sigue &lt;code&gt;&amp;lt;empty&amp;gt;&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260418d9a85608dd7351339daf3b8f26581c8e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;La solución es actualizar la página y decirle &amp;lsquo;por favor continúa&amp;rsquo;, y generalmente retoma. Pero pierdes un poco de contexto. &lt;strong&gt;Si estás en medio de iteraciones de diseño críticas, recuerda tomar capturas de pantalla como respaldo de vez en cuando&lt;/strong&gt;, para no tener que empezar de nuevo si falla en el último paso.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;reflexiones-finales&#34;&gt;Reflexiones finales
&lt;/h2&gt;&lt;p&gt;Mi plugin de Obsidian con su diseño básico finalmente parece un producto adecuado.&lt;/p&gt;
&lt;p&gt;Pero para ser honesto, cuando me senté frente a mi computadora y hice clic en &amp;lsquo;Publish Draft&amp;rsquo;, no estaba completamente emocionado. Tengo muy claro una cosa: si alguien como yo sin formación en diseño puede hacer una interfaz decente en dos horas, entonces &lt;strong&gt;aquellos que se ganan la vida con lo &amp;lsquo;decente&amp;rsquo; van a pasar un par de años difíciles&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Solía preocuparme de que la IA hiciera que los escritores perdieran un interlocutor con gusto literario. Esta vez es al revés—&lt;strong&gt;los diseñadores están a punto de perder la parte más gruesa del mercado: el rango de principiante a intermedio&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Cada vez que la IA da un paso adelante, algunas personas aplauden y otras se van en silencio. Esta vez soy yo quien aplaude, pero puedo escuchar ese suspiro detrás de mí.&lt;/p&gt;
&lt;p&gt;Recientemente he gastado mucho tiempo y dinero en IA, preocupado de que un día pueda reemplazarme, pero hasta ahora no he encontrado una salida. Ayuda con mi trabajo diario, pero ningún cambio fundamental. Lo más importante, no he ganado dinero con ello.&lt;/p&gt;
&lt;p&gt;Si también tienes un pequeño producto, plugin o sitio web acumulando polvo como el mío—prueba Claude Design.&lt;/p&gt;
&lt;p&gt;Puede que no consiga tu primera venta, pero al menos hará que se vea más presentable. Y eso, en sí mismo, es una gran mejora.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Routine: Una revisión práctica</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/claude-routine/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/claude-routine/</guid>
        <description>&lt;p&gt;Anthropic lanzó recientemente varias actualizaciones relacionadas con Claude:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Rediseño del escritorio de Claude Code&lt;/strong&gt;: gestiona múltiples sesiones de Claude una al lado de la otra en una sola ventana, con una nueva barra lateral para cambiar entre ellas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lanzamiento de la función Routines&lt;/strong&gt; (vista previa de investigación): las tareas de Claude Code ahora pueden ejecutarse en la nube propia de Anthropic, sin necesidad de mantener tu computadora encendida.&lt;/li&gt;
&lt;li&gt;Cambios menores en el escritorio y la web, como la gestión de múltiples sesiones y el intercambio de sesiones.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La que más me llamó la atención es la segunda: &lt;strong&gt;Routines&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La razón es simple. Tengo tanto OpenClaw como Claude Desktop, pero para un usuario ligero como yo, las necesidades basadas en la nube son limitadas, principalmente recortar videos o texto. Usar OpenClaw para eso es como usar un martillo pilón para cascar una nuez. ¿Y Claude Desktop? Tiene una función de &amp;ldquo;tareas programadas&amp;rdquo; que se ejecuta localmente, pero requiere que la computadora esté encendida y la aplicación de escritorio en funcionamiento. No quiero que mi MacBook Air esté encendida 24/7. ¡Era un callejón sin salida de cualquier manera!&lt;/p&gt;
&lt;p&gt;Routines llena perfectamente ese vacío.&lt;/p&gt;
&lt;p&gt;Aquí hay una comparación de los tres enfoques:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Dimensión&lt;/th&gt;
          &lt;th&gt;Routines&lt;/th&gt;
          &lt;th&gt;Tareas programadas de Claude Desktop&lt;/th&gt;
          &lt;th&gt;OpenClaw&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Dónde se ejecuta&lt;/td&gt;
          &lt;td&gt;Nube gestionada por Anthropic&lt;/td&gt;
          &lt;td&gt;Tu computadora&lt;/td&gt;
          &lt;td&gt;Tu computadora o VPS&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;¿Necesita computadora encendida?&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
          &lt;td&gt;Sí, debe estar encendida&lt;/td&gt;
          &lt;td&gt;Depende del despliegue&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;¿Necesita la aplicación siempre abierta?&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
          &lt;td&gt;Claude Desktop debe estar ejecutándose&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Llama a Claude AI&lt;/td&gt;
          &lt;td&gt;Suite completa de primera parte&lt;/td&gt;
          &lt;td&gt;Integrado en Desktop&lt;/td&gt;
          &lt;td&gt;Soporte no oficial, propenso a restricciones&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Esfuerzo de configuración&lt;/td&gt;
          &lt;td&gt;Solo necesitas una suscripción&lt;/td&gt;
          &lt;td&gt;Instalar Desktop&lt;/td&gt;
          &lt;td&gt;Alquilar VPS + autodespliegue&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Las tareas programadas de escritorio son una solución transitoria, OpenClaw es una solución impulsada por la comunidad, y Routines es la nueva solución oficial en la nube. Anthropic está haciendo cada vez más hostil que los frameworks de terceros llamen a su API mientras promueve Routines: la intención es clara, quieren construir su propio OpenClaw.&lt;/p&gt;
&lt;h2 id=&#34;qué-puede-hacer-routines&#34;&gt;¿Qué puede hacer Routines?
&lt;/h2&gt;&lt;p&gt;Los casos de uso oficiales son principalmente escenarios de desarrolladores: escanear el rastreador de incidencias cada noche para añadir etiquetas, revisar automáticamente el código en cada nuevo PR, ejecutar pruebas de humo después del despliegue de CD para verificar registros de errores, escanear semanalmente los PR fusionados para actualizar la documentación, etc. Estos están un poco alejados para los no programadores.&lt;/p&gt;
&lt;p&gt;Para los usuarios cotidianos, los escenarios se ven más así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Obtener automáticamente un resumen financiero diario cada mañana&lt;/strong&gt; (movimientos del sector, mayores ganancias/pérdidas, etc.), confirmarlo en un repositorio, para que puedas leerlo al despertar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transcribir automáticamente videos de Bilibili/YouTube a notas de texto&lt;/strong&gt; (lo que hace este artículo): comparte un enlace, y minutos después aparece un archivo Markdown en tu repositorio.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generar un informe de investigación semanal de la industria o una revisión semanal&lt;/strong&gt; compilando automáticamente información pública.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitorear tus repositorios de GitHub marcados con estrella&lt;/strong&gt;; cuando un proyecto de código abierto se actualiza, la Rutina obtiene automáticamente el diff y te da un resumen en chino.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hoy probé el segundo: video de Bilibili a texto.&lt;/p&gt;
&lt;h2 id=&#34;configuración-del-entorno&#34;&gt;Configuración del entorno
&lt;/h2&gt;&lt;p&gt;Configurar el entorno es un poco complicado, pero solo necesitas hacerlo una vez. Después, puedes reutilizarlo para cualquier nueva Rutina.&lt;/p&gt;
&lt;p&gt;Necesitarás preparar las siguientes cuatro cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una &lt;strong&gt;cuenta de GitHub&lt;/strong&gt;, y usarás un repositorio privado (explicaré por qué es necesario más abajo).&lt;/li&gt;
&lt;li&gt;Una &lt;strong&gt;suscripción Max o Pro&lt;/strong&gt;; las cuentas gratuitas aún no pueden usar Routines.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Code CLI instalado localmente&lt;/strong&gt;; dejaré que Claude maneje la mayoría de los pasos más adelante.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No se requieren habilidades de programación&lt;/strong&gt;. Si no estás acostumbrado a la línea de comandos, solo dile a Claude Code &amp;ldquo;ayúdame a configurar una Rutina&amp;rdquo; y te guiará paso a paso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comencemos con la configuración.&lt;/p&gt;
&lt;h3 id=&#34;verificar-cuota-y-punto-de-entrada&#34;&gt;Verificar cuota y punto de entrada
&lt;/h3&gt;&lt;p&gt;Primero, abre la página de uso en claude.ai. Verás una nueva línea para rutina en el uso de tu suscripción. Yo tengo una cuenta Max, así que tengo 15 ejecuciones por día:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026041520dc7f1824d5274ebd512cb8454418af.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Cuotas específicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pro: 5 ejecuciones/día&lt;/li&gt;
&lt;li&gt;Max: 15 ejecuciones/día&lt;/li&gt;
&lt;li&gt;Team/Empresa: 25 ejecuciones/día&lt;/li&gt;
&lt;li&gt;Puedes habilitar uso adicional de pago por uso más allá de eso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ten en cuenta que las 15 ejecuciones son el número de disparos, no el número total de Rutinas. Puedes crear múltiples Rutinas que compartan esta cuota.&lt;/p&gt;
&lt;p&gt;El punto de entrada está en &lt;code&gt;claude.ai/code/routines&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260415315301af69af41ae3df6be394035a13e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;La web, el escritorio y la CLI comparten el mismo grupo de tareas. Las tareas creadas en la CLI también son visibles en la web.&lt;/p&gt;
&lt;h3 id=&#34;debes-vincular-un-repositorio-privado-de-github&#34;&gt;Debes vincular un repositorio privado de GitHub
&lt;/h3&gt;&lt;p&gt;Las Rutinas deben estar vinculadas a un repositorio de GitHub. Este es un requisito estricto; no puedes crear una sin ello.&lt;/p&gt;
&lt;p&gt;¿Por qué está diseñado así? Porque cada vez que comienza una tarea, la nube asigna un directorio de trabajo para Claude, específicamente, clona tu repositorio de GitHub especificado para usarlo como &amp;ldquo;escritorio&amp;rdquo;. Luego, Claude modifica archivos, ejecuta comandos, confirma y sube cambios dentro de este escritorio. Cuando la tarea termina, el escritorio se limpia y solo los artefactos permanecen en tu repositorio.&lt;/p&gt;
&lt;p&gt;Así que primero debes preparar un repositorio de GitHub.&lt;/p&gt;
&lt;p&gt;GitHub es la &amp;ldquo;plataforma de almacenamiento de código + control de versiones + colaboración&amp;rdquo; más popular entre los programadores, que alberga la mayoría del código abierto del mundo. Para los no programadores, también puede servir como una carpeta privada en la nube gratuita y versionada.&lt;/p&gt;
&lt;p&gt;Crear una cuenta es simple: ve a github.com para registrarte, luego haz clic en &amp;ldquo;+&amp;rdquo; en la esquina superior derecha → &lt;strong&gt;New repository&lt;/strong&gt;, dale cualquier nombre (por ejemplo, &lt;code&gt;claude-routines&lt;/code&gt;):&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260415555f0891f55b50c7ace77010b264a4a6.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Al crear el repositorio, asegúrate de marcar &lt;strong&gt;Private&lt;/strong&gt; (configurarlo como privado) y también marca &lt;strong&gt;Add a README&lt;/strong&gt;. De lo contrario, el repositorio estará completamente vacío sin una rama predeterminada, y la Rutina fallará en su primer clon. Ya he caído en esta trampa por ti.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Si estos pasos te resultan desconocidos, simplemente pídeselo a Claude Code: &amp;ldquo;Ayúdame a crear un repositorio de GitHub para Routines&amp;rdquo;—te guiará a través del registro, la creación del repositorio y la autorización paso a paso.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;crear-un-entorno-en-la-nube&#34;&gt;Crear un entorno en la nube
&lt;/h3&gt;&lt;p&gt;Lo siguiente asume que ya has creado un repositorio privado.&lt;/p&gt;
&lt;p&gt;Cada Rutina se ejecuta en una máquina sandbox de Anthropic. Esta máquina viene con herramientas básicas como Python, Node y git preinstaladas, pero no tendrá tus dependencias personalizadas (como yt-dlp, ffmpeg). Por lo tanto, necesitas crear un &lt;strong&gt;Entorno&lt;/strong&gt; personalizado, especificando qué instalar antes de cada ejecución y qué claves API cargar. Aquí, haz clic en el botón &lt;strong&gt;Add environment&lt;/strong&gt; en la parte inferior derecha.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260415b0c79a78b58efb812829b96ff792bece.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;En la configuración del entorno, hay un campo llamado &lt;strong&gt;Network access&lt;/strong&gt; con tres opciones: None, Trusted, Full. Hay un error común aquí:&lt;/p&gt;
&lt;p&gt;El valor predeterminado es &lt;strong&gt;Trusted&lt;/strong&gt;, que solo permite el acceso a sitios web en la lista blanca oficial, principalmente repositorios de paquetes como GitHub, PyPI, npm. &lt;strong&gt;bilibili.com y youtube.com no están en la lista blanca.&lt;/strong&gt; Por lo tanto, seleccionamos &lt;strong&gt;Full&lt;/strong&gt; aquí:&lt;/p&gt;
&lt;p&gt;Luego, en el campo &lt;strong&gt;Setup script&lt;/strong&gt;, ingresa los comandos a ejecutar antes de cada inicio (instalar ffmpeg, yt-dlp, etc.), y en &lt;strong&gt;Environment variables&lt;/strong&gt;, ingresa las claves API necesarias (GEMINI_API_KEY, etc.):&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604157c36fad5834c75e0b71cbd15f341771d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Puede que no entiendas el contenido aquí—está bien. Solo estoy demostrando qué llenar. En la práctica, solo dile a tu IA lo que quieres hacer y pídele que te proporcione un script listo para copiar y pegar. Solo copias y pegas.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Las variables de entorno se almacenan en la base de datos de configuración del entorno de Anthropic. La documentación oficial dice que son &amp;ldquo;visibles para cualquiera que pueda editar ese entorno&amp;rdquo;. Discutiremos esto con más detalle en la sección &amp;ldquo;Advertencias&amp;rdquo;.&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&#34;obtener-el-id-del-entorno-y-autorizar-github&#34;&gt;Obtener el ID del entorno y autorizar GitHub
&lt;/h3&gt;&lt;p&gt;Después de crear el entorno, vuelve a tu Claude Code local e ingresa:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/remote-env
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Listará todos los entornos que has creado en la nube junto con sus IDs:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260415cdf69a95b1afa20b1ef9668e96678f7e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Copia la línea correspondiente a &lt;code&gt;bili-sandbox&lt;/code&gt; y dásela a Claude. A continuación, sabrá qué entorno usar para la tarea.&lt;/p&gt;
&lt;p&gt;Luego Claude dirá: &amp;ldquo;Necesito acceso a tu GitHub&amp;rdquo; y presentará opciones de autorización:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604154400ad7239a36d40a6f22a570308f1d9.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A: &lt;code&gt;/web-setup&lt;/code&gt;&lt;/strong&gt;—sincroniza tu token local de gh CLI con claude.ai, toma 30 segundos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;B: Instalar la aplicación Claude GitHub&lt;/strong&gt;—ve a la página web de GitHub, selecciona repositorios específicos para instalar, control más granular.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Elegí A ya que esto era una prueba sandbox. Después de seleccionar, aparecerá una página web nuevamente, y verás tu repositorio de GitHub allí, indicando que la autorización está activa:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260415da9ef1f1b06f7f2cc39804ce6719c4f1.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de la autorización, regresa al entorno local. En este punto, la configuración del entorno está completa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Al crear una nueva Rutina más adelante, puedes reutilizar toda esta configuración sin tener que pasar por la configuración nuevamente.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;la-ia-configura-la-tarea&#34;&gt;La IA configura la tarea
&lt;/h2&gt;&lt;p&gt;Aquí, le decimos a Claude: &amp;ldquo;Ayúdame a mover esa habilidad local de Bilibili a texto a una Rutina y pruébala con un video.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Llama a la API RemoteTrigger para crear la tarea y activarla, todo por sí mismo. Cuando termina, abres la página web y ves una tarea ya allí:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260415a0d34efa8ca1449ad305372566f5545e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Luego solo encuentras un enlace de video de Bilibili y se lo envías a la IA para probar si funciona. Elegí un video de 6 minutos sobre &amp;ldquo;Base de conocimiento de IA&amp;rdquo; en Bilibili. El Claude en la nube primero usa yt-dlp para descargar el audio, luego llama a Gemini para transcribirlo, escribe el resultado como Markdown y finalmente lo confirma en mi repositorio &lt;code&gt;Claude-Routines&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El resultado final fue una transcripción precisa en chino de aproximadamente 3000 caracteres. Los términos mixtos chino-inglés (LLM-Wiki, RAG, Karpathy, NewType OS, etc.) se conservaron con precisión, con párrafos completos. Durante todo este proceso, todo lo que hice fue escribir en el diálogo de Claude Code. No abrí un terminal, ejecuté ningún comando ni abrí la página web de GitHub.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260415b87b712b6d3dfc9bddf99c70847af762.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;métodos-de-activación&#34;&gt;Métodos de activación
&lt;/h3&gt;&lt;p&gt;La ejecución anterior se realizó haciendo que Claude Code llamara directamente a la API de gestión de Anthropic para crear una Rutina y activarla una vez, por conveniencia en las pruebas, dejando que la IA hiciera todo el trabajo.&lt;/p&gt;
&lt;p&gt;Para uso diario, Routines admite tres métodos de activación oficiales:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Activación programada&lt;/strong&gt;—admite ajustes preestablecidos por hora/día/semana y expresiones cron personalizadas con un intervalo mínimo de 1 hora. Escenario típico: resumir automáticamente los flujos de fondos y noticias de ayer a las 9 AM todos los días.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Activación por API&lt;/strong&gt;—cada Rutina puede generar un endpoint HTTP dedicado + token Bearer. Enviar una solicitud POST a este endpoint activa la tarea inmediatamente, y puedes pasar parámetros temporales (como una URL) en el cuerpo de la solicitud.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Activación por evento de GitHub&lt;/strong&gt;—ejecuta automáticamente la Rutina cuando ocurren eventos como PR, push, issue, release en tu repositorio, principalmente para escenarios de desarrolladores.&lt;/p&gt;
&lt;p&gt;Los tres métodos de activación se pueden combinar: la misma Rutina puede ejecutarse según un horario, aceptar llamadas API y escuchar eventos de GitHub simultáneamente.&lt;/p&gt;
&lt;h3 id=&#34;incluso-activación-con-atajos-de-iphone&#34;&gt;Incluso activación con Atajos de iPhone
&lt;/h3&gt;&lt;p&gt;Lo más interesante de la activación por API es que no le importa el cliente. Cualquier cosa que pueda enviar un HTTP POST puede activar una Rutina.&lt;/p&gt;
&lt;p&gt;Imagina este escenario: me encuentro con un gran video en Bilibili, toco el botón de compartir → Atajo de iPhone → automáticamente envía la URL al endpoint de la Rutina. Medio minuto después, abro GitHub y la transcripción ya está allí. No necesito encender mi Mac, abrir Claude Code, ni siquiera escribir una sola palabra.&lt;/p&gt;
&lt;p&gt;La configuración es sencilla:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Genera un token API en la página de configuración de la Rutina.&lt;/li&gt;
&lt;li&gt;Crea un Atajo en iPhone que acepte una URL compartida como entrada.&lt;/li&gt;
&lt;li&gt;Usa la acción &amp;ldquo;Obtener contenido de URL&amp;rdquo; para enviar una solicitud POST, pasando la URL en el cuerpo a la Rutina.&lt;/li&gt;
&lt;li&gt;En el prompt de la Rutina, lee la URL del cuerpo de la solicitud, luego llama a yt-dlp + Gemini para la transcripción.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta combinación une el &amp;ldquo;flujo de trabajo de IA en la nube&amp;rdquo; y el &amp;ldquo;disparador móvil&amp;rdquo;. Por primera vez, la gente común puede hacer que la IA realice una tarea específica para ellos sin encender una computadora.&lt;/p&gt;
&lt;h2 id=&#34;obteniendo-resultados&#34;&gt;Obteniendo resultados
&lt;/h2&gt;&lt;p&gt;Los resultados de la transcripción se guardan como un commit en una nueva rama en tu repositorio de GitHub, visibles directamente en la página web de GitHub. Pero para los usuarios cotidianos, querrás obtenerlos localmente. Aquí hay tres formas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer directamente en la página web de GitHub o hacer clic para descargar.&lt;/li&gt;
&lt;li&gt;Extraer a cualquier directorio local con un solo comando (por ejemplo, sincronizar directamente a tu bandeja de entrada de Obsidian).&lt;/li&gt;
&lt;li&gt;Configurar un script de sincronización, como un git pull programado con launchd, o crear un plugin de Obsidian que extraiga con un clic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;advertencias&#34;&gt;Advertencias
&lt;/h2&gt;&lt;p&gt;Routines son geniales, pero hay algunas cosas a tener en cuenta.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Granularidad de autorización de GitHub&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Usar la aplicación Claude GitHub es más seguro que usar &lt;code&gt;/web-setup&lt;/code&gt;. La primera solo permite que Claude acceda al repositorio específico que seleccionas; la segunda efectivamente entrega todos los repositorios visibles para la CLI gh. Para pruebas sandbox, la opción A está bien, pero para tareas diarias, se recomienda usar la aplicación.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tu clave API es visible en la nube&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El contenido de las variables de entorno se almacena en la base de datos de configuración del entorno de Anthropic. La redacción oficial es &amp;ldquo;visible para cualquiera que pueda editar ese entorno&amp;rdquo;, lo que significa que cualquiera que pueda editar el entorno puede verlas. Para una cuenta personal, eso eres solo tú por defecto, pero los empleados autorizados de Anthropic podrían acceder teóricamente a ellas.&lt;/p&gt;
&lt;p&gt;Por lo tanto, no pongas claves API de producción con cuota alta allí; usa subclaves de baja cuota o revocables en su lugar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mantén el repositorio privado&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cada commit de Rutina usa tu identidad de GitHub. Si el repositorio es público, los resultados de la transcripción serán recogidos por la búsqueda e indexación de GitHub. Al crear un repositorio sandbox, solo marca Private sin pensarlo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Routines es el primer paso de Anthropic para mover oficialmente las tareas de automatización a la nube. Para los usuarios comunes, resuelve el viejo problema de &amp;ldquo;las tareas programadas requieren que la computadora esté encendida&amp;rdquo;; para Anthropic, es una parte clave para construir su propio ecosistema y endurecer el acceso de API de terceros.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lo que aprendimos hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Routines es el sistema de programación de tareas en la nube de Claude Code, lanzado como vista previa de investigación el 2026-04-14.&lt;/li&gt;
&lt;li&gt;Requisitos: suscripción Max/Pro + repositorio de GitHub + Claude Code CLI.&lt;/li&gt;
&lt;li&gt;Tres métodos de activación oficiales: programado, API, eventos de GitHub, se pueden combinar. Combinado con Atajos de iPhone, puedes lograr una cadena completa: &amp;ldquo;compartir URL en el teléfono → la nube se ejecuta automáticamente → recibir resultados en GitHub&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;El enlace obligatorio a un repositorio de GitHub y la red restringida por defecto son limitaciones a las que acostumbrarse.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusiones clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Al crear un repositorio de GitHub, debes marcar Private y Add a README.&lt;/li&gt;
&lt;li&gt;En el entorno en la nube, configura Network access en Full, de lo contrario muchos sitios web comunes serán inalcanzables.&lt;/li&gt;
&lt;li&gt;Las claves API se almacenan en la configuración del entorno de Anthropic; no pongas claves de producción allí.&lt;/li&gt;
&lt;li&gt;La primera configuración del entorno es un poco engorrosa, pero una vez configurada, se puede reutilizar indefinidamente, haciendo que la creación de Rutinas posteriores sea mucho más fácil.&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex App: Entre la terminal y el IDE</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/codex-app/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/codex-app/</guid>
        <description>&lt;p&gt;Este capítulo trata sobre la aplicación de escritorio Codex de OpenAI. Se sitúa en un punto intermedio entre Codex CLI (terminal) y Cursor / VS Code (IDE).&lt;/p&gt;
&lt;p&gt;Puede que hayas usado Codex CLI en la terminal: es potente, pero la interfaz solo de texto no es muy amigable para principiantes. Por otro lado, los IDE como Cursor y VS Code tienen tantas funciones que la pantalla llena de paneles de código puede resultar abrumadora.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex APP es el punto intermedio entre la terminal y el IDE.&lt;/strong&gt; Añade elementos visuales en comparación con la terminal y elimina los detalles confusos de código en comparación con el IDE.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-codex-app&#34;&gt;¿Qué es Codex APP?
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;En resumen: Codex APP = la versión gráfica de Codex CLI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sigue siendo el mismo Codex, solo que con una &amp;ldquo;cáscara&amp;rdquo; diferente. La CLI funciona escribiendo en una terminal; la APP funciona haciendo clic en una ventana de escritorio. Las capacidades subyacentes son idénticas y comparten el mismo archivo de configuración &lt;code&gt;~/.codex/config.toml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limitaciones actuales:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solo es compatible con &lt;strong&gt;macOS (Apple Silicon)&lt;/strong&gt; – es decir, Mac con M1 y posteriores&lt;/li&gt;
&lt;li&gt;Las versiones para Windows y Linux aún están en desarrollo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Descarga:&lt;/strong&gt; Obtén el instalador DMG desde el sitio web de OpenAI e instálalo directamente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Métodos de inicio de sesión:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Método de inicio de sesión&lt;/th&gt;
          &lt;th&gt;Descripción&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Cuenta de ChatGPT&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Requiere suscripción Plus/Pro/Business/Enterprise/Edu. Funcionalidad completa, incluyendo hilos en la nube y cambio de modelo.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Clave API&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Funcionalidad limitada. Sin hilos en la nube. Los modelos deben especificarse manualmente en &lt;code&gt;config.toml&lt;/code&gt;.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;características-de-la-interfaz&#34;&gt;Características de la interfaz
&lt;/h2&gt;&lt;p&gt;Codex APP actualmente no tiene interfaz en chino, así que aquí tienes una traducción de cada función para ayudarte a encontrar los botones correspondientes.&lt;/p&gt;
&lt;h3 id=&#34;nuevo-hilo&#34;&gt;Nuevo hilo
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026021266fc93b3f8aba7a632b4d4831619ea94.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Crea una nueva conversación de tarea con IA. Al crearlo, puedes elegir entre tres modos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Local&lt;/strong&gt; – Funciona directamente en tu carpeta de proyecto&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Worktree&lt;/strong&gt; – Funciona en un worktree de Git aislado sin afectar la rama principal&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nube&lt;/strong&gt; – Se ejecuta en un entorno remoto en la nube (requiere inicio de sesión con cuenta de ChatGPT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Los principiantes deberían empezar con el modo Local&lt;/strong&gt; – es el más simple y directo.&lt;/p&gt;
&lt;h3 id=&#34;skills&#34;&gt;Skills
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260212c74a839647d8942c390df7dd9a8b5aff.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Este es el mismo sistema de Skills que se usa en Codex CLI. Aquí puedes ver y gestionar todos los Skills disponibles, e invocarlos en una conversación con &lt;code&gt;/nombre-del-skill&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Los Skills se comparten entre la APP y la CLI&lt;/strong&gt; – cualquier Skill que crees en la CLI estará disponible inmediatamente en la APP.&lt;/p&gt;
&lt;h3 id=&#34;automatizaciones&#34;&gt;Automatizaciones
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026021276c41046d4391793134dafec3515d15f.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Esta función es exclusiva de la APP – no la encontrarás en la CLI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Piénsalo como poner un despertador para la IA.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le dices a la IA: &amp;ldquo;Hazme esta tarea cada mañana a las 9 AM&amp;rdquo;, y se ejecutará según lo programado, colocando los resultados en tu bandeja de entrada para que los revises.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cómo funciona:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Establece la frecuencia de ejecución (por ejemplo, diaria, semanal)&lt;/li&gt;
&lt;li&gt;Escribe la instrucción (dile a la IA qué hacer)&lt;/li&gt;
&lt;li&gt;Opcionalmente, vincula un Skill (usando la sintaxis &lt;code&gt;$nombre-del-skill&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;La IA se ejecuta a tiempo y el resultado va a una cola de revisión&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Casos de uso comunes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escaneo diario de commits recientes para buscar errores&lt;/li&gt;
&lt;li&gt;Informe semanal de cambios de código&lt;/li&gt;
&lt;li&gt;Revisión periódica de vulnerabilidades de seguridad en dependencias&lt;/li&gt;
&lt;li&gt;Resumen automático de la causa de fallos en CI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Las automatizaciones se ejecutan localmente, por lo que la APP debe permanecer abierta. Para proyectos Git, cada automatización se ejecuta en un worktree independiente, por lo que no interferirá con tu trabajo actual.&lt;/p&gt;
&lt;h3 id=&#34;configuración&#34;&gt;Configuración
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602122355d8a027f85209235e9f5a55c91e0d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Aquí puedes configurar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Selección de modelo&lt;/strong&gt; – Los usuarios con cuenta de ChatGPT pueden cambiar de modelo directamente en la interfaz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Política de aprobación&lt;/strong&gt; – Controla cuánto puede hacer la IA automáticamente y qué requiere tu confirmación manual&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ajustes del sandbox&lt;/strong&gt; – Limita los permisos de la IA (solo lectura / escritura en el espacio de trabajo / acceso completo)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos ajustes se comparten con el mismo &lt;code&gt;config.toml&lt;/code&gt; que usa la CLI – los cambios en un lugar se reflejan en el otro.&lt;/p&gt;
&lt;h3 id=&#34;personalización&#34;&gt;Personalización
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026021262dcded251ca31a327fc38a2f0499d12.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Elige la &amp;ldquo;personalidad&amp;rdquo; de la IA:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Opción&lt;/th&gt;
          &lt;th&gt;Efecto&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Amigable&lt;/td&gt;
          &lt;td&gt;Las respuestas de la IA son más cálidas y detalladas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pragmático&lt;/td&gt;
          &lt;td&gt;Las respuestas de la IA son más concisas y directas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ninguna&lt;/td&gt;
          &lt;td&gt;Sin configuración de personalidad&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;También puedes añadir &lt;strong&gt;instrucciones personalizadas&lt;/strong&gt;, como &amp;ldquo;responde en español&amp;rdquo; o &amp;ldquo;usa inglés para los comentarios del código&amp;rdquo;. Estas instrucciones se escriben en tu archivo &lt;code&gt;AGENTS.md&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;servidores-mcp&#34;&gt;Servidores MCP
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602124a779f8aad3dbd65e9c38cf909707e08.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Idéntico a la configuración de MCP que se cubrió anteriormente. La APP, la CLI y los plugins del IDE comparten la misma configuración de MCP – cualquier servidor MCP que configures en la CLI estará disponible automáticamente en la APP.&lt;/p&gt;
&lt;h3 id=&#34;git&#34;&gt;Git
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260212f8d069cb879530fee272ebd216775b05.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Este es uno de los puntos destacados de la APP en comparación con la CLI. Incluye una herramienta visual de Git integrada:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Visor de diferencias&lt;/strong&gt; – Ve los cambios de código gráficamente, añade comentarios en línea&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stage / deshacer&lt;/strong&gt; – Selecciona bloques de código o archivos completos para hacer stage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Commit / push&lt;/strong&gt; – Realiza commits y pushes directamente desde la APP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Crear PR&lt;/strong&gt; – Crea un Pull Request con un solo clic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;En la CLI, todo esto requiere operaciones en la línea de comandos; en la APP, solo haces clic.&lt;/strong&gt; No te preocupes si no entiendes completamente conceptos como Worktree e integración con Git todavía – solo hazte una idea general.&lt;/p&gt;
&lt;h3 id=&#34;entornos&#34;&gt;Entornos
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602128e1aeac37ee6c6b05fb8cdddebf78ba9.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Configura el entorno de ejecución para tu código. Puedes configurar entornos locales o en la nube, instalar dependencias del proyecto, etc.&lt;/p&gt;
&lt;h3 id=&#34;worktrees&#34;&gt;Worktrees
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026021282147bd9f94d4ced29c2c14979a69413.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Gestión visual de Git Worktrees. &lt;strong&gt;En pocas palabras, evita que tus múltiples tareas de IA interfieran entre sí.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, le pides a la IA que haga tres cosas a la vez: corregir un error, escribir una nueva función y refactorizar código. Si todas trabajan en el mismo directorio, los cambios en los archivos inevitablemente entrarán en conflicto. Los Worktrees crean una copia de trabajo independiente para cada tarea, para que puedan trabajar en paralelo sin interferencias.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;hilos-vs-proyectos--entendiendo-el-contexto&#34;&gt;Hilos vs Proyectos – Entendiendo el contexto
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Esta es la parte más importante de todo el capítulo – léela con atención.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;dos-conceptos-fundamentales&#34;&gt;Dos conceptos fundamentales
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Proyecto = tu repositorio de código o carpeta.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Piensa en un Proyecto como tu &lt;strong&gt;banco de trabajo&lt;/strong&gt;. Haces todo lo relacionado con ese proyecto en este banco de trabajo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hilo = una tarea específica dentro de un proyecto.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Piensa en cada Hilo como una &lt;strong&gt;tarjeta de tarea&lt;/strong&gt; en el banco de trabajo. Corregir un error es una tarjeta, escribir documentación es otra.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un Proyecto puede tener muchos Hilos, pero cada Hilo pertenece a un solo Proyecto.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;por-qué-esto-es-importante&#34;&gt;Por qué esto es importante
&lt;/h3&gt;&lt;p&gt;Aquí introducimos un concepto clave: &lt;strong&gt;Contexto&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Qué es el contexto?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Imagina que chateas con un amigo en WeChat. Dices: &amp;ldquo;¿Cómo va eso?&amp;rdquo; y tu amigo sabe exactamente a qué te refieres – porque hablaron de ello antes. &lt;strong&gt;Esa &amp;ldquo;conversación anterior&amp;rdquo; es el contexto.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lo mismo aplica a la IA. Cada frase que dices y cada archivo que envías en una conversación son recordados por la IA y se usan para entender tus preguntas posteriores. &lt;strong&gt;Lo que la IA &amp;ldquo;recuerda&amp;rdquo; es su contexto.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;ventana-de-contexto--capacidad-de-memoria-de-la-ia&#34;&gt;Ventana de contexto = capacidad de memoria de la IA
&lt;/h3&gt;&lt;p&gt;Pero la memoria de la IA no es infinita. &lt;strong&gt;Hay un límite superior en lo que puede recordar, llamado ventana de contexto.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Actualmente, Codex usa &lt;strong&gt;GPT-5.3-Codex&lt;/strong&gt; por defecto, con una ventana de contexto de aproximadamente &lt;strong&gt;400,000 tokens&lt;/strong&gt;. A grandes rasgos, eso equivale a unos &lt;strong&gt;300,000 caracteres chinos&lt;/strong&gt; de conversación.&lt;/p&gt;
&lt;p&gt;Suena a mucho, pero si haces todas las tareas en la misma conversación, se llenará rápidamente.&lt;/p&gt;
&lt;h3 id=&#34;beneficios-del-aislamiento-de-hilos&#34;&gt;Beneficios del aislamiento de hilos
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Las conversaciones en diferentes Hilos están aisladas – no interfieren entre sí.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Piénsalo así: si trabajas en tres tareas y escribes todo en la misma hoja de papel, las notas sobre la corrección de errores, las notas de documentación y las discusiones de requisitos se mezclan – confuso para ti y confuso para la IA.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dividirlos en tres Hilos mantiene todo limpio:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hilo 1: dedicado a corregir errores – la IA solo recuerda la conversación relacionada con errores&lt;/li&gt;
&lt;li&gt;Hilo 2: dedicado a la documentación – la IA solo recuerda la conversación relacionada con documentos&lt;/li&gt;
&lt;li&gt;Hilo 3: dedicado a discutir requisitos – la IA solo recuerda la conversación relacionada con requisitos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Esto es especialmente importante para proyectos de bases de conocimiento.&lt;/strong&gt; Por ejemplo, si usas Obsidian para gestionar notas, puedes usar un Hilo para buscar información y otro para organizar documentos, sin contaminación cruzada. No tendrás a la IA mezclando repentinamente el contexto de una sesión de investigación mientras organizas documentos.&lt;/p&gt;
&lt;p&gt;Por ejemplo, en la captura de pantalla del cuaderno de Obsidian a continuación, aunque todo está en el mismo repositorio, uso diferentes Hilos para diferentes tareas. Puedes pensar en esto como el concepto de conversación en la versión web de ChatGPT.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260212f86608cd2afacc34e30c233d8fe20bc1.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;codex-app-vs-codex-cli&#34;&gt;Codex APP vs Codex CLI
&lt;/h2&gt;&lt;p&gt;Dado que ambos comparten la misma base, ¿cuál deberías elegir? Aquí tienes una comparación:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;Codex CLI (Terminal)&lt;/th&gt;
          &lt;th&gt;Codex APP (Escritorio)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Interfaz&lt;/td&gt;
          &lt;td&gt;Solo texto&lt;/td&gt;
          &lt;td&gt;Gráfica&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gestión de conversaciones&lt;/td&gt;
          &lt;td&gt;Necesitas &lt;code&gt;resume&lt;/code&gt; para encontrar el historial&lt;/td&gt;
          &lt;td&gt;Lista visual de conversaciones, clic para cambiar&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tareas programadas&lt;/td&gt;
          &lt;td&gt;Ninguna (necesitas cron o herramientas similares)&lt;/td&gt;
          &lt;td&gt;Automatizaciones integradas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Operaciones Git&lt;/td&gt;
          &lt;td&gt;Línea de comandos&lt;/td&gt;
          &lt;td&gt;Diff visual + commit/PR con un clic&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Cambio de modelo&lt;/td&gt;
          &lt;td&gt;Editar &lt;code&gt;config.toml&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Las cuentas de pago pueden seleccionar directamente en la interfaz&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Velocidad percibida&lt;/td&gt;
          &lt;td&gt;Se siente más rápido&lt;/td&gt;
          &lt;td&gt;Se siente ligeramente más lento (experiencia personal)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mejor para&lt;/td&gt;
          &lt;td&gt;Desarrolladores cómodos con la terminal&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren una experiencia visual&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;diferencias-clave&#34;&gt;Diferencias clave
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;1. Gestión visual de conversaciones – ya no necesitas &lt;code&gt;resume&lt;/code&gt; para encontrar conversaciones&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Con la CLI, para retomar una conversación anterior necesitas usar &lt;code&gt;codex --resume&lt;/code&gt;. Cuando tienes muchas conversaciones, encontrar la correcta puede ser tedioso.&lt;/p&gt;
&lt;p&gt;La APP te da una lista de conversaciones donde todos los Hilos son visibles de un vistazo – solo haz clic para cambiar. &lt;strong&gt;Para cualquiera que maneje múltiples tareas, esto solo ya vale la pena.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Automatizaciones – exclusivas de la APP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La CLI no tiene esta función. Para lograr algo similar en la CLI, necesitarías configurar cron u otras herramientas de programación tú mismo – una barrera más alta. La APP te permite configurarlo directamente, mucho más conveniente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Cambio de modelo más fácil&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si inicias sesión con una cuenta de pago de ChatGPT, puedes cambiar de modelo directamente en la interfaz de la APP sin editar ningún archivo de configuración.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Si usas una clave API como yo:&lt;/strong&gt; La APP y la CLI comparten el mismo &lt;code&gt;~/.codex/config.toml&lt;/code&gt;. Solo especifica el modelo en el archivo toml y la APP lo leerá automáticamente. Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;GPT-5.3-Codex&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;4. Posicionamiento: el punto intermedio entre terminal e IDE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En comparación con la terminal, la APP añade gestión visual de conversaciones, operaciones Git y tareas programadas.&lt;/p&gt;
&lt;p&gt;En comparación con un IDE (como Cursor), la APP elimina los paneles de código desordenados y las funciones complejas del editor, centrándose en la conversación con IA y la gestión de proyectos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Si encuentras la terminal demasiado técnica y el IDE demasiado complejo, la APP podría ser esa herramienta &amp;ldquo;justo lo que necesitas&amp;rdquo; que estás buscando.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;experiencia-personal&#34;&gt;Experiencia personal
&lt;/h2&gt;&lt;p&gt;Para ser honesto: &lt;strong&gt;Todavía prefiero la terminal.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quizás sea solo mi imaginación, pero la APP se siente ligeramente más lenta que la CLI. Podría ser la sobrecarga de la interfaz gráfica, o puramente psicológico – no estoy seguro.&lt;/p&gt;
&lt;p&gt;Pero tengo que admitir que &lt;strong&gt;la APP es definitivamente más amigable para principiantes.&lt;/strong&gt; Especialmente para la gestión de conversaciones y las operaciones Git, la experiencia visual es mucho más cómoda que escribir comandos en la terminal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mi consejo: prueba ambas y encuentra la herramienta que te funcione.&lt;/strong&gt; Dado que la configuración se comparte, cambiar entre ellas no cuesta nada.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendimos hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Qué es Codex APP&lt;/strong&gt; – la versión gráfica de Codex CLI, actualmente solo compatible con macOS Apple Silicon&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Funciones principales&lt;/strong&gt; – Gestión de conversaciones por Hilos, Automatizaciones de tareas programadas, integración visual de Git, aislamiento con Worktree&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hilos vs Proyectos&lt;/strong&gt; – Proyecto es el banco de trabajo, Hilo es la tarjeta de tarea – el aislamiento de tareas protege el contexto de la contaminación&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diferencias con la CLI&lt;/strong&gt; – conversaciones visuales + Automatizaciones son las mayores ventajas, pero la velocidad percibida puede ser ligeramente menor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Posicionamiento&lt;/strong&gt; – un punto intermedio entre terminal e IDE, adecuado para usuarios que quieren elementos visuales pero no necesitan un IDE completo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusiones clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Codex APP y CLI comparten la misma base y configuración – no puedes equivocarte con ninguna&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;El aislamiento de hilos es clave – conversaciones separadas para diferentes tareas para evitar la contaminación del contexto&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatizaciones es la función estrella de la APP – piensa en ello como poner un despertador para la IA&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uso adicional: la APP también puede servir como método de entrada por voz – mantén presionada una tecla de acceso directo y habla (ver la siguiente sección)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;extra-usar-codex-app-como-método-de-entrada-por-voz&#34;&gt;Extra: Usar Codex APP como método de entrada por voz
&lt;/h2&gt;&lt;p&gt;Recientemente, Codex APP incorporó funcionalidad de voz. Lo mejor es que funciona no solo dentro de la aplicación, sino también &lt;strong&gt;externamente&lt;/strong&gt; – solo mantén presionada una tecla de acceso directo global y habla.&lt;/p&gt;
&lt;p&gt;Simplemente actualiza Codex APP a la última versión e inicia sesión con una cuenta de suscripción para usarlo. Para aquellos que mantienen Codex APP abierta todo el tiempo, es esencialmente un método de entrada por voz gratuito.&lt;/p&gt;
&lt;p&gt;OpenAI lanzó hace un tiempo el modelo de reconocimiento de voz de código abierto Whisper, reduciendo drásticamente la barrera para el reconocimiento de voz, y ha seguido iterando. Así que no es sorprendente que la función de voz de Codex APP, construida sobre esa base, funcione excepcionalmente bien.&lt;/p&gt;
&lt;p&gt;El uso es simple: abre la aplicación, ve a Configuración General, asigna una tecla de acceso directo (yo uso la tecla Option derecha), y cuando quieras ingresar texto, mantén presionada la tecla de acceso directo y habla.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260427e566ffb37555c33a0c1307dc17e1c202.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Cuando mantienes presionada la tecla, aparece una pequeña ventana en la parte inferior del escritorio (no se puede capturar debido a conflictos de teclas de acceso directo).&lt;/p&gt;
&lt;p&gt;En la práctica, es rápido y preciso. Dos pequeños inconvenientes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;No tiene función de diccionario&lt;/strong&gt; – un diccionario te permitiría configurar palabras de uso frecuente personalizadas para un reconocimiento aún mejor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debes mantener presionada la tecla para grabar&lt;/strong&gt; – aún no admite un modo de alternancia (presionar una vez para iniciar, presionar de nuevo para detener) como otros productos&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Considerando que es una función completamente nueva, es probable que estas mejoras lleguen en futuras actualizaciones.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Si no te importa pagar por un método de entrada por voz cada mes, otras opciones populares incluyen Wispr Flow y Typeless.&lt;/p&gt;
&lt;/blockquote&gt;</description>
        </item>
        <item>
        <title>Codex CLI: Una introducción práctica</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/codex-cli/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/codex-cli/</guid>
        <description>&lt;p&gt;Anteriormente presentamos Claude Code. Este capítulo cubre otra herramienta de codificación con IA en terminal igualmente potente: &lt;strong&gt;Codex CLI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Codex también tiene una versión de aplicación de escritorio (interfaz gráfica), que se cubrirá en un capítulo posterior. Este capítulo se centra en &lt;strong&gt;Codex CLI basado en terminal&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Codex CLI basado en terminal, al igual que Claude Code, es un asistente de codificación con IA que se ejecuta en la terminal. Si ya aprendiste Claude Code en el capítulo anterior, te resultará muy fácil aprender Codex CLI, ya que la lógica operativa es casi idéntica.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-codex-cli&#34;&gt;¿Qué es Codex CLI?
&lt;/h2&gt;&lt;h3 id=&#34;introducción-en-una-frase&#34;&gt;Introducción en una frase
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Codex CLI = Asistente de codificación con IA en terminal de OpenAI&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Similar a Claude Code, es una herramienta de IA que se ejecuta en la terminal. Le dices lo que quieres en lenguaje natural y puede ayudarte a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear nuevos proyectos&lt;/li&gt;
&lt;li&gt;Escribir código&lt;/li&gt;
&lt;li&gt;Modificar código&lt;/li&gt;
&lt;li&gt;Corregir errores&lt;/li&gt;
&lt;li&gt;Ejecutar comandos&lt;/li&gt;
&lt;li&gt;Buscar en la web la información más reciente&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cuál-es-la-diferencia-entre-codex-cli-y-claude-code&#34;&gt;¿Cuál es la diferencia entre Codex CLI y Claude Code?
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;Claude Code&lt;/th&gt;
          &lt;th&gt;Codex CLI&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Desarrollador&lt;/td&gt;
          &lt;td&gt;Anthropic (Claude)&lt;/td&gt;
          &lt;td&gt;OpenAI (ChatGPT)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Modelo subyacente&lt;/td&gt;
          &lt;td&gt;Serie Claude&lt;/td&gt;
          &lt;td&gt;Serie GPT (GPT-5-Codex)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Instalación&lt;/td&gt;
          &lt;td&gt;npm install&lt;/td&gt;
          &lt;td&gt;npm install&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Archivo de configuración&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;~/.codex/config.toml&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Membresía&lt;/td&gt;
          &lt;td&gt;Claude Pro/Max&lt;/td&gt;
          &lt;td&gt;ChatGPT Plus/Pro&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Soporte de SO&lt;/td&gt;
          &lt;td&gt;Mac/Linux/Windows&lt;/td&gt;
          &lt;td&gt;Mac/Linux (Windows mediante WSL)&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Diferencia principal: diferentes modelos subyacentes.&lt;/strong&gt; Claude Code usa modelos Claude, Codex CLI usa el modelo GPT-5-Codex de OpenAI optimizado para programación. Ambas herramientas tienen sus puntos fuertes. Se recomienda instalar ambas y elegir según la tarea.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-instalar-codex-cli&#34;&gt;¿Cómo instalar Codex CLI?
&lt;/h2&gt;&lt;h3 id=&#34;requisitos-previos&#34;&gt;Requisitos previos
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Node.js&lt;/strong&gt;: Al igual que Claude Code, requiere el entorno Node.js&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si ya lo tienes (por haber instalado Claude Code antes), no necesitas reinstalarlo&lt;/li&gt;
&lt;li&gt;Si no, ve a &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://nodejs.org&lt;/a&gt; y descarga la versión LTS&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Red&lt;/strong&gt;: Necesitas acceso a los servicios de OpenAI (puede requerir un proxy)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;pasos-de-instalación&#34;&gt;Pasos de instalación
&lt;/h3&gt;&lt;p&gt;Abre la terminal y ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 @openai/codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Espera a que termine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verificar la instalación:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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;codex --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si muestra un número de versión (por ejemplo, &lt;code&gt;codex-cli 0.98.0&lt;/code&gt;), la instalación fue exitosa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Los usuarios de Mac también pueden instalar mediante Homebrew:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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 install codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;varias-formas-de-usarlo&#34;&gt;Varias formas de usarlo
&lt;/h2&gt;&lt;p&gt;Al igual que Claude Code, Codex CLI admite múltiples formas de acceder a las capacidades de IA.&lt;/p&gt;
&lt;h3 id=&#34;método-1-comprar-membresía-de-chatgpt-la-más-sencilla&#34;&gt;Método 1: Comprar membresía de ChatGPT (la más sencilla)
&lt;/h3&gt;&lt;p&gt;Codex CLI está incluido en los planes de pago de ChatGPT.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tipos de membresía compatibles:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Membresía&lt;/th&gt;
          &lt;th&gt;Precio&lt;/th&gt;
          &lt;th&gt;Notas&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;ChatGPT Plus&lt;/td&gt;
          &lt;td&gt;$20/mes&lt;/td&gt;
          &lt;td&gt;Cuota limitada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ChatGPT Pro&lt;/td&gt;
          &lt;td&gt;$200/mes&lt;/td&gt;
          &lt;td&gt;Cuota más alta&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ChatGPT Business&lt;/td&gt;
          &lt;td&gt;Plan para equipos&lt;/td&gt;
          &lt;td&gt;Uso empresarial&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Configuración:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Después de comprar la membresía de ChatGPT, abre la terminal&lt;/li&gt;
&lt;li&gt;Ejecuta &lt;code&gt;codex&lt;/code&gt; para iniciar&lt;/li&gt;
&lt;li&gt;Sigue las indicaciones para iniciar sesión en tu cuenta de ChatGPT (se abrirá un navegador para la autorización)&lt;/li&gt;
&lt;li&gt;Una vez iniciada la sesión, puedes usarlo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;También puedes iniciar sesión manualmente:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;codex login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;método-2-usar-una-clave-de-api-de-openai&#34;&gt;Método 2: Usar una clave de API de OpenAI
&lt;/h3&gt;&lt;p&gt;Si tienes una clave de API de OpenAI, puedes usarla directamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Establece la variable de entorno:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#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_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 API Key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Luego ejecuta &lt;code&gt;codex&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;método-3-usar-api-de-terceros-integración-de-modelos-nacionales&#34;&gt;Método 3: Usar API de terceros (integración de modelos nacionales)
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;¡Esto es lo que más les importa a muchos usuarios nacionales!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Al igual que Claude Code, Codex CLI también puede integrarse con APIs de terceros, como DeepSeek, Volcengine y otros modelos nacionales.&lt;/p&gt;
&lt;p&gt;La configuración se realiza modificando el archivo &lt;code&gt;~/.codex/config.toml&lt;/code&gt; (detallado en la siguiente sección).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;integración-de-modelos-nacionales-modificar-configtoml&#34;&gt;Integración de modelos nacionales: Modificar config.toml
&lt;/h2&gt;&lt;h3 id=&#34;dónde-está-configtoml&#34;&gt;¿Dónde está config.toml?
&lt;/h3&gt;&lt;p&gt;Ruta del archivo de configuración: &lt;code&gt;~/.codex/config.toml&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mac/Linux: &lt;code&gt;/Users/tunombredeusuario/.codex/config.toml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows (WSL): &lt;code&gt;~/.codex/config.toml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Consejo:&lt;/strong&gt; Si este archivo no existe, ejecuta &lt;code&gt;codex&lt;/code&gt; primero; creará automáticamente la carpeta &lt;code&gt;.codex&lt;/code&gt;. Luego puedes crear manualmente el archivo &lt;code&gt;config.toml&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;estructura-básica-de-configuración&#34;&gt;Estructura básica de configuración
&lt;/h3&gt;&lt;p&gt;La configuración de config.toml se divide en varias partes principales:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;c&#34;&gt;# ===== Basic settings =====&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;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-5.3-codex&amp;#34;&lt;/span&gt;              &lt;span class=&#34;c&#34;&gt;# Model to use&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;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;             &lt;span class=&#34;c&#34;&gt;# Model provider (default openai)&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;approval_policy&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;on-failure&amp;#34;&lt;/span&gt;        &lt;span class=&#34;c&#34;&gt;# Approval policy&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;sandbox_mode&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workspace-write&amp;#34;&lt;/span&gt;      &lt;span class=&#34;c&#34;&gt;# Sandbox mode&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;&lt;span class=&#34;c&#34;&gt;# ===== Custom model providers =====&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 class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;custom_name&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;name&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Display name&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;nx&#34;&gt;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;API URL&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;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;API_KEY environment variable name&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;nx&#34;&gt;wire_api&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;responses&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;&lt;span class=&#34;c&#34;&gt;# ===== Profiles =====&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 class=&#34;nx&#34;&gt;profiles&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;profile_name&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;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;custom_name&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;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;model name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;importante-wire_api-debe-usar-responses&#34;&gt;Importante: wire_api debe usar &amp;ldquo;responses&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;¡Esto es un error común!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Codex CLI admite dos protocolos de API: &lt;code&gt;&amp;quot;chat&amp;quot;&lt;/code&gt; (Chat Completions heredado) y &lt;code&gt;&amp;quot;responses&amp;quot;&lt;/code&gt; (nueva API Responses).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A partir de febrero de 2026, OpenAI ha dejado de usar el protocolo &lt;code&gt;&amp;quot;chat&amp;quot;&lt;/code&gt; y ha cambiado completamente a &lt;code&gt;&amp;quot;responses&amp;quot;&lt;/code&gt;.&lt;/strong&gt; Por lo tanto, al configurar modelos de terceros, &lt;code&gt;wire_api&lt;/code&gt; debe establecerse en &lt;code&gt;&amp;quot;responses&amp;quot;&lt;/code&gt;. Si tu proveedor de API de terceros no admite el formato de API Responses, no puedes integrarlo directamente con Codex.&lt;/p&gt;
&lt;p&gt;Afortunadamente, las principales plataformas de retransmisión de API (como OpenRouter, etc.) ya admiten la API Responses.&lt;/p&gt;
&lt;p&gt;Para una discusión detallada, consulta: &lt;a class=&#34;link&#34; href=&#34;https://github.com/openai/codex/discussions/7782&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/openai/codex/discussions/7782&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;práctica-integrar-deepseek&#34;&gt;Práctica: Integrar DeepSeek
&lt;/h3&gt;&lt;p&gt;Usando DeepSeek como ejemplo, así es como se configura:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 1: Editar config.toml&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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;c&#34;&gt;# Default to DeepSeek&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;model_provider&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&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;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-chat&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;&lt;span class=&#34;c&#34;&gt;# Define DeepSeek provider&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 class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;deepseek&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;name&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&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;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com/v1&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;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DEEPSEEK_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;nx&#34;&gt;wire_api&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;responses&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Paso 2: Establecer variable de entorno&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Establece tu clave de API de DeepSeek en la terminal:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 DeepSeek API Key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para hacerlo permanente, agrega la línea al final de tu &lt;code&gt;~/.zshrc&lt;/code&gt; (Mac) o &lt;code&gt;~/.bashrc&lt;/code&gt; (Linux):&lt;/p&gt;
&lt;div class=&#34;highlight&#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;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;export DEEPSEEK_API_KEY=&amp;#34;your DeepSeek API Key&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zshrc
&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;source&lt;/span&gt; ~/.zshrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Paso 3: Iniciar Codex&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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;codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ahora Codex usará el modelo DeepSeek.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Si la API oficial de DeepSeek aún no admite el formato de API Responses y causa fallos de conexión, puedes cambiar a una plataforma de retransmisión que admita Responses API (como OpenRouter) y cambiar &lt;code&gt;base_url&lt;/code&gt; a la dirección de la plataforma de retransmisión.&lt;/p&gt;
&lt;h3 id=&#34;práctica-integrar-volcengine-doubao&#34;&gt;Práctica: Integrar Volcengine (Doubao)
&lt;/h3&gt;&lt;div class=&#34;highlight&#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;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;volcengine&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;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;doubao-pro-32k&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;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;volcengine&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;name&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Volcengine&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;nx&#34;&gt;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://ark.cn-beijing.volces.com/api/v3&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;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;VOLCENGINE_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;nx&#34;&gt;wire_api&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;responses&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;También es necesario establecer la variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;VOLCENGINE_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 Volcengine API Key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;usar-perfiles-para-cambiar-entre-varios-modelos&#34;&gt;Usar perfiles para cambiar entre varios modelos
&lt;/h3&gt;&lt;p&gt;Si has configurado varios modelos, puedes usar perfiles para cambiar rápidamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;c&#34;&gt;# Default to OpenAI&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;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;openai&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;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-5.3-codex&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;&lt;span class=&#34;c&#34;&gt;# Define DeepSeek provider&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 class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;deepseek&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;name&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&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;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.deepseek.com/v1&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;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DEEPSEEK_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;nx&#34;&gt;wire_api&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;responses&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;&lt;span class=&#34;c&#34;&gt;# Define Volcengine provider&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 class=&#34;nx&#34;&gt;model_providers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;volcengine&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;name&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Volcengine&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;nx&#34;&gt;base_url&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://ark.cn-beijing.volces.com/api/v3&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;nx&#34;&gt;env_key&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;VOLCENGINE_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;nx&#34;&gt;wire_api&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;responses&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;&lt;span class=&#34;c&#34;&gt;# DeepSeek profile&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 class=&#34;nx&#34;&gt;profiles&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ds&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;model_provider&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&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;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-chat&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;&lt;span class=&#34;c&#34;&gt;# Volcengine profile&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 class=&#34;nx&#34;&gt;profiles&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;volc&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;model_provider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;volcengine&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;nx&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;doubao-pro-32k&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Cambiar al usarlo:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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;# Use default OpenAI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex
&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;# Use DeepSeek&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex --profile ds
&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;# Use Volcengine&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex --profile volc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;¡Esto te permite cambiar libremente entre diferentes modelos, muy conveniente!&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;un-método-más-simple-openai_base_url&#34;&gt;Un método más simple: OPENAI_BASE_URL
&lt;/h3&gt;&lt;p&gt;Si solo quieres usar temporalmente una API de terceros sin modificar config.toml, puedes establecer directamente las variables de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;https://api.deepseek.com/v1&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 DeepSeek 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;codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Este método es más simple, pero deja de ser válido al cerrar la terminal.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-usar-codex-cli&#34;&gt;¿Cómo usar Codex CLI?
&lt;/h2&gt;&lt;h3 id=&#34;inicio-básico&#34;&gt;Inicio básico
&lt;/h3&gt;&lt;p&gt;Igual que Claude Code:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre la terminal&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;cd&lt;/code&gt; para navegar a tu carpeta de proyecto&lt;/li&gt;
&lt;li&gt;Escribe &lt;code&gt;codex&lt;/code&gt; y presiona Enter&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#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;cd&lt;/span&gt; /path/to/your/project
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Codex iniciará una interfaz de terminal a pantalla completa donde puedes comenzar a ingresar tus requisitos.&lt;/p&gt;
&lt;h3 id=&#34;tres-modos-de-operación&#34;&gt;Tres modos de operación
&lt;/h3&gt;&lt;p&gt;Codex CLI tiene tres modos que controlan su &amp;ldquo;nivel de autonomía&amp;rdquo;:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modo&lt;/th&gt;
          &lt;th&gt;Comando&lt;/th&gt;
          &lt;th&gt;Descripción&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Suggest&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;codex --suggest&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Más conservador: requiere confirmación para cada cambio&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Auto Edit&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;codex --auto-edit&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Moderado: edita archivos automáticamente, pero requiere confirmación para ejecutar comandos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Full Auto&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;codex --full-auto&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Más libre: hace todo automáticamente sin confirmación&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Se recomienda a los principiantes usar el modo Suggest&lt;/strong&gt; (predeterminado), para que puedas ver lo que Codex hace en cada paso.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Después de familiarizarte, puedes usar el modo Full Auto:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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;codex --full-auto &lt;span class=&#34;s2&#34;&gt;&amp;#34;Run tests and fix all failing cases&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;asignación-directa-de-tareas-modo-no-interactivo&#34;&gt;Asignación directa de tareas (modo no interactivo)
&lt;/h3&gt;&lt;p&gt;También puedes agregar directamente una descripción de tarea después del comando:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;codex &lt;span class=&#34;s2&#34;&gt;&amp;#34;Create a Snake game for me&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;De esta manera, Codex comenzará a ejecutar la tarea directamente sin necesidad de ingresar a la interfaz interactiva.&lt;/p&gt;
&lt;h3 id=&#34;reanudar-conversación-anterior&#34;&gt;Reanudar conversación anterior
&lt;/h3&gt;&lt;p&gt;Similar a &lt;code&gt;--resume&lt;/code&gt; de Claude Code, Codex también admite reanudar sesiones anteriores:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;codex resume
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Esto te permite continuar desde donde lo dejaste.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;práctica-haz-que-codex-cree-un-juego-de-snake-para-nosotros&#34;&gt;Práctica: Haz que Codex cree un juego de Snake para nosotros
&lt;/h2&gt;&lt;h3 id=&#34;paso-1-crear-carpeta-de-proyecto&#34;&gt;Paso 1: Crear carpeta de proyecto
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Crea una nueva carpeta en el escritorio, por ejemplo, &lt;code&gt;codex-demo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Abre esta carpeta en la terminal&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;paso-2-iniciar-codex&#34;&gt;Paso 2: Iniciar Codex
&lt;/h3&gt;&lt;div class=&#34;highlight&#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;codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;paso-3-ingresar-requisitos&#34;&gt;Paso 3: Ingresar requisitos
&lt;/h3&gt;&lt;p&gt;En Codex, ingresa:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Create a Snake game for me with the following requirements:

1. Features:
   - Classic Snake gameplay
   - Control snake movement with arrow keys
   - Snake grows longer when eating food, score increases
   - Game over when hitting wall or itself
   - Start and restart buttons

2. Interface:
   - Clean and beautiful, pixel style
   - Display current score and high score
   - Support dark theme

3. Technical requirements:
   - Use only HTML, CSS, JavaScript
   - All code in a single HTML file
   - Use Canvas for game rendering

Please create this HTML file directly.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026020937ff6b7f72f2ddf69c1e92c97f882542.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Ejemplo de juego Snake&#34;
	
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;paso-4-esperar-a-que-codex-termine&#34;&gt;Paso 4: Esperar a que Codex termine
&lt;/h3&gt;&lt;p&gt;Codex creará automáticamente el archivo HTML y escribirá todo el código. Dependiendo del modo que hayas elegido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modo Suggest&lt;/strong&gt;: Pedirá confirmación en cada paso; tú confirmas antes de que ejecute&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modo Full Auto&lt;/strong&gt;: Completará todo directamente&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;paso-5-abrir-el-juego&#34;&gt;Paso 5: Abrir el juego
&lt;/h3&gt;&lt;p&gt;¡Haz doble clic en el archivo HTML generado para jugarlo en tu navegador!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;codex-cli-vs-claude-code-cómo-elegir&#34;&gt;Codex CLI vs Claude Code: ¿Cómo elegir?
&lt;/h2&gt;&lt;p&gt;Recomiendo instalar ambos. Cada uno tiene sus puntos fuertes:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;Claude Code&lt;/th&gt;
          &lt;th&gt;Codex CLI&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Capacidad de codificación&lt;/td&gt;
          &lt;td&gt;Muy fuerte, especialmente para lógica compleja&lt;/td&gt;
          &lt;td&gt;Muy fuerte, GPT-5-Codex optimizado para programación&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Comprensión de chino&lt;/td&gt;
          &lt;td&gt;Muy buena&lt;/td&gt;
          &lt;td&gt;Muy buena&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Búsqueda web&lt;/td&gt;
          &lt;td&gt;Requiere MCP&lt;/td&gt;
          &lt;td&gt;Soporte integrado&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nivel gratuito&lt;/td&gt;
          &lt;td&gt;Ninguno&lt;/td&gt;
          &lt;td&gt;Ninguno&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Membresía mínima&lt;/td&gt;
          &lt;td&gt;Claude Pro $20/mes&lt;/td&gt;
          &lt;td&gt;ChatGPT Plus $20/mes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Integración de modelos nacionales&lt;/td&gt;
          &lt;td&gt;Mediante settings.json&lt;/td&gt;
          &lt;td&gt;Mediante config.toml&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Soporte de Windows&lt;/td&gt;
          &lt;td&gt;Soporte nativo&lt;/td&gt;
          &lt;td&gt;Requiere WSL&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Mi sugerencia:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Instala ambos&lt;/strong&gt;, elige el más adecuado según la tarea&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proyectos simples&lt;/strong&gt;: Ambos son capaces, elige cualquiera&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proyectos complejos&lt;/strong&gt;: Prueba uno primero; si el resultado no es bueno, cambia al otro&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Usuarios de modelos nacionales&lt;/strong&gt;: Ambos admiten integración de API de terceros, configuración similar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La filosofía central sigue siendo: No necesitas saber programar, solo necesitas saber describir requisitos.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendimos hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Qué es Codex CLI&lt;/strong&gt;: El asistente de codificación con IA en terminal de OpenAI, similar a Claude Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo instalarlo&lt;/strong&gt;: &lt;code&gt;npm install -g @openai/codex&lt;/code&gt;, un solo comando&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo usarlo&lt;/strong&gt;: Misma lógica operativa que Claude Code, &lt;code&gt;cd&lt;/code&gt; al directorio del proyecto y luego &lt;code&gt;codex&lt;/code&gt; para iniciar&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integración de modelos nacionales&lt;/strong&gt;: Modificar &lt;code&gt;~/.codex/config.toml&lt;/code&gt;, configurar model_providers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tres modos&lt;/strong&gt;: Suggest (conservador), Auto Edit (moderado), Full Auto (totalmente automático)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cambio de perfil&lt;/strong&gt;: Configurar varios modelos, usar el parámetro &lt;code&gt;--profile&lt;/code&gt; para cambiar libremente&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;¡Ahora tienes dos potentes herramientas de codificación con IA: Claude Code y Codex CLI!&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo llamar a una API y elegir una plataforma de API</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/api-calling-platforms/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/api-calling-platforms/</guid>
        <description>&lt;p&gt;Ya hemos cubierto conceptos clave como API, Token y Temperature. Ahora toca la parte práctica: &lt;strong&gt;¿Cómo llamar realmente a una API?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mucha gente piensa que las APIs son algo misterioso, pero una vez que entiendes unos pocos elementos clave, llamar a una API es tan sencillo como comprar por internet. Este capítulo te guiará paso a paso.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;tres-elementos-fundamentales-para-llamar-a-una-api&#34;&gt;Tres elementos fundamentales para llamar a una API
&lt;/h2&gt;&lt;p&gt;No importa qué herramienta o plataforma uses, llamar a una API de IA requiere estas tres cosas:&lt;/p&gt;
&lt;h4 id=&#34;1-api-key&#34;&gt;1. API Key
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;API Key = Tu identificación&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Igual que necesitas un PIN para sacar dinero del cajero, llamar a una API requiere una API Key para demostrar &amp;ldquo;Soy yo, puedes atenderme&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo es una API Key?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Normalmente es una larga cadena de letras y números, por ejemplo:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sk-REPLACE_WITH_YOUR_API_KEY
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Recordatorio importante:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las API Keys son privadas; no las compartas con nadie.&lt;/li&gt;
&lt;li&gt;Si alguien obtiene tu clave, puede usar tu cuenta para llamar a APIs (gastando tu dinero).&lt;/li&gt;
&lt;li&gt;Si la filtras accidentalmente, elimina la clave antigua en la plataforma inmediatamente y genera una nueva.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;2-base-url&#34;&gt;2. Base URL
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Base URL = La dirección del restaurante&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando pides comida a domicilio, necesitas saber dónde está el restaurante. Cuando llamas a una API, necesitas saber dónde está el servidor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Base URLs comunes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI: &lt;code&gt;https://api.openai.com/v1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Claude: &lt;code&gt;https://api.anthropic.com/v1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Google Gemini: &lt;code&gt;https://generativelanguage.googleapis.com/v1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;DeepSeek: &lt;code&gt;https://api.deepseek.com/v1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Las plataformas de terceros tienen URLs diferentes, pero el formato es similar.&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;3-nombre-del-modelo&#34;&gt;3. Nombre del modelo
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Nombre del modelo = El plato que quieres pedir&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En un restaurante, dices &amp;ldquo;Quiero cerdo estofado&amp;rdquo;. Al llamar a una API, dices &amp;ldquo;Quiero usar GPT-5.2&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nombres de modelos comunes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI: &lt;code&gt;gpt-5.2&lt;/code&gt;, &lt;code&gt;gpt-5.2-chat-latest&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Claude: &lt;code&gt;claude-opus-4.5&lt;/code&gt;, &lt;code&gt;claude-sonnet-4.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Gemini: &lt;code&gt;gemini-3-pro&lt;/code&gt;, &lt;code&gt;gemini-3-flash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;DeepSeek: &lt;code&gt;deepseek-chat&lt;/code&gt;, &lt;code&gt;deepseek-coder&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;un-ejemplo-completo-de-llamada-a-una-api&#34;&gt;Un ejemplo completo de llamada a una API
&lt;/h4&gt;&lt;p&gt;Combina estas tres cosas, y la llamada a una API más simple se ve así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;openai&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;&lt;span class=&#34;c1&#34;&gt;# 1. Set the API Key&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;n&#34;&gt;openai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;sk-proj-YOUR_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;&lt;span class=&#34;c1&#34;&gt;# 2. Set the Base URL (if you use a third-party platform)&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;n&#34;&gt;openai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;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://api.openai.com/v1&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;&lt;span class=&#34;c1&#34;&gt;# 3. Call the selected model&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;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;openai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chat&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;completions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;create&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;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-5.2&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# Model Name&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;n&#34;&gt;messages&lt;/span&gt;&lt;span class=&#34;o&#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 class=&#34;s2&#34;&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello&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;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&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;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;choices&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&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;/div&gt;&lt;p&gt;&lt;strong&gt;¿Parece complicado?&lt;/strong&gt; No te preocupes, las plataformas que presentaremos más adelante tienen métodos más sencillos.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;api-oficial-vs-plataformas-de-terceros&#34;&gt;API oficial vs. plataformas de terceros
&lt;/h2&gt;&lt;p&gt;Antes de presentar plataformas específicas, aclaremos un concepto importante: &lt;strong&gt;¿Cuál es la diferencia entre las APIs oficiales y las plataformas de terceros?&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;api-oficial&#34;&gt;API oficial
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;API oficial = Comprar directamente a OpenAI, Anthropic, Google&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mejor estabilidad, conexión directa a los servidores oficiales&lt;/li&gt;
&lt;li&gt;Funciones completas, las nuevas características se admiten de inmediato&lt;/li&gt;
&lt;li&gt;Máxima seguridad, los datos no pasan por terceros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Desventajas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requiere una tarjeta de crédito extranjera&lt;/li&gt;
&lt;li&gt;Requiere una VPN para acceder (ChatGPT, Claude, Gemini)&lt;/li&gt;
&lt;li&gt;Precios relativamente más altos&lt;/li&gt;
&lt;li&gt;El registro puede tener barreras&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;plataformas-de-terceros&#34;&gt;Plataformas de terceros
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Plataformas de terceros = Comprar a revendedores&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Las plataformas de terceros compran cuotas de API a los oficiales y luego te las revenden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acepta pagos nacionales (Alipay, WeChat Pay, UnionPay)&lt;/li&gt;
&lt;li&gt;No requiere VPN&lt;/li&gt;
&lt;li&gt;Generalmente tienen interfaz y atención al cliente en chino&lt;/li&gt;
&lt;li&gt;Una plataforma puede llamar a múltiples IAs (OpenAI, Claude, Gemini, etc.)&lt;/li&gt;
&lt;li&gt;Algunas plataformas ofrecen créditos gratuitos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Desventajas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La estabilidad puede no ser tan buena como la oficial&lt;/li&gt;
&lt;li&gt;Los precios pueden ser ligeramente más altos que los oficiales (pero algunos son más baratos)&lt;/li&gt;
&lt;li&gt;La seguridad requiere confiar en la plataforma&lt;/li&gt;
&lt;li&gt;Las actualizaciones de funciones pueden ir por detrás de las oficiales&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cuál-deberías-elegir&#34;&gt;¿Cuál deberías elegir?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Elige oficial si:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tienes una tarjeta de crédito extranjera&lt;/li&gt;
&lt;li&gt;Tienes una VPN estable&lt;/li&gt;
&lt;li&gt;Valoras la seguridad de los datos&lt;/li&gt;
&lt;li&gt;Necesitas las últimas funciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Elige terceros si:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No tienes métodos de pago extranjeros&lt;/li&gt;
&lt;li&gt;No tienes VPN&lt;/li&gt;
&lt;li&gt;Quieres usar pagos nacionales&lt;/li&gt;
&lt;li&gt;Quieres llamar a múltiples IAs desde una sola plataforma&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;recomendaciones-de-plataformas-2-nacionales--2-internacionales&#34;&gt;Recomendaciones de plataformas (2 nacionales + 2 internacionales)
&lt;/h2&gt;&lt;p&gt;A continuación, cuatro plataformas de API que recomiendo, dos nacionales y dos internacionales, que cubren diferentes necesidades.&lt;/p&gt;
&lt;h4 id=&#34;1-deepseek-official-nacional-plataforma-oficial&#34;&gt;1. DeepSeek Official (Nacional, Plataforma oficial)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://platform.deepseek.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://platform.deepseek.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tipo de plataforma:&lt;/strong&gt; Plataforma oficial&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué lo recomiendo?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plataforma oficial, estable y fiable&lt;/li&gt;
&lt;li&gt;El rendimiento de DeepSeek V3.2 está cerca de GPT-5&lt;/li&gt;
&lt;li&gt;Acceso rápido en China, no necesita VPN&lt;/li&gt;
&lt;li&gt;Registro sencillo, solo un número de teléfono&lt;/li&gt;
&lt;li&gt;Precio extremadamente bajo, gran relación calidad-precio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pasos para obtener la API Key:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &lt;a class=&#34;link&#34; href=&#34;https://platform.deepseek.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://platform.deepseek.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Iniciar sesión / Registrarse&amp;rdquo; en la esquina superior derecha&lt;/li&gt;
&lt;li&gt;Regístrate con tu número de teléfono&lt;/li&gt;
&lt;li&gt;Después de iniciar sesión, haz clic en &amp;ldquo;API Keys&amp;rdquo; a la izquierda&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Crear API Key&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Copia la clave (solo se muestra una vez, así que guárdala) &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130c480dfe943967673ede9583f774f9e80.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Documentación de la interfaz&amp;rdquo; a la izquierda para ver la URL y el nombre del modelo
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130529d12c739985670ae36dfafe842ee7a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026013035928b0f5a1f5c330417310d00e7d6a9.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Parámetros de llamada:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://api.deepseek.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Nombre del modelo: &lt;code&gt;deepseek-chat&lt;/code&gt; (chat), &lt;code&gt;deepseek-reasoner&lt;/code&gt; (razonamiento)&lt;/li&gt;
&lt;li&gt;API Key: La clave que acabas de copiar&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&#34;2-volcano-engine-nacional-plataforma-oficial--terceros&#34;&gt;2. Volcano Engine (Nacional, Plataforma oficial + Terceros)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://console.volcengine.com/ark&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://console.volcengine.com/ark&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tipo de plataforma:&lt;/strong&gt; Plataforma oficial (de ByteDance)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué lo recomiendo?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plataforma oficial de ByteDance, estable y fiable&lt;/li&gt;
&lt;li&gt;Soporta modelos de la serie Doubao&lt;/li&gt;
&lt;li&gt;Acepta pagos nacionales (Alipay, WeChat Pay, UnionPay)&lt;/li&gt;
&lt;li&gt;Asequible, gran relación calidad-precio&lt;/li&gt;
&lt;li&gt;Además de los modelos propios de Doubao, también puedes llamar a muchos modelos de código abierto nacionales como DeepSeek V3.2, GLM 4.7&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pasos de uso:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &lt;a class=&#34;link&#34; href=&#34;https://console.volcengine.com/ark&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://console.volcengine.com/ark&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Regístrate con tu número de teléfono&lt;/li&gt;
&lt;li&gt;Entra en la consola &amp;ldquo;Ark Large Model&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Completa la autenticación de identidad real (requiere DNI)&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Gestión de API Key&amp;rdquo; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601307f778bbbb3ba61e75744e9c943ba4767.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Crea una nueva API Key&lt;/li&gt;
&lt;li&gt;Copia y guarda la clave&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Gestión de activación&amp;rdquo; a la izquierda, selecciona el modelo que quieras usar &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130822660842ae90d693dffe1b4ee05dc38.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;En la nueva página, copia el nombre del modelo que necesitas (nota: el mismo modelo puede tener nombres diferentes en distintas plataformas, así que verifica cuidadosamente) &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130c80f79357c24479e2ab07758369382c7.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Vuelve a la página de Gestión de activación, comprueba si el estado es &amp;ldquo;Activado&amp;rdquo;; si no, haz clic a la derecha para activar los permisos del modelo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Parámetros de llamada:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://ark.cn-beijing.volces.com/api/v3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Nombre del modelo: &lt;code&gt;doubao-pro-32k&lt;/code&gt;, &lt;code&gt;doubao-lite-32k&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;API Key: La clave que creaste&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Beneficios para nuevos usuarios:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Créditos gratuitos al registrarse&lt;/li&gt;
&lt;li&gt;También puedes participar en la actividad que se muestra arriba de la captura de pantalla para obtener más créditos gratuitos. Yo tengo más que suficientes cada día.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&#34;3-google-ai-studio-internacional-plataforma-oficial&#34;&gt;3. Google AI Studio (Internacional, Plataforma oficial)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://aistudio.google.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aistudio.google.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tipo de plataforma:&lt;/strong&gt; Plataforma oficial&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué lo recomiendo?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plataforma oficial de Google&lt;/li&gt;
&lt;li&gt;Créditos gratuitos disponibles (con límites)&lt;/li&gt;
&lt;li&gt;Gemini 3 con rendimiento de primer nivel&lt;/li&gt;
&lt;li&gt;Estable y fiable&lt;/li&gt;
&lt;li&gt;Soporta contexto extremadamente largo (2 millones de tokens)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Se puede usar gratis directamente en la interfaz web, sin necesidad de programar&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;además-cómo-usar-la-versión-web-gratis&#34;&gt;Además, cómo usar la versión web gratis
&lt;/h4&gt;&lt;p&gt;Si no quieres escribir código, Google AI Studio ofrece una &lt;strong&gt;interfaz de chat web&lt;/strong&gt; muy conveniente donde puedes usar directamente modelos como Gemini 3 Pro y Gemini 3 Flash. Es esencialmente como ser un usuario de pago de Gemini.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos de uso:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &lt;a class=&#34;link&#34; href=&#34;https://aistudio.google.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aistudio.google.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inicia sesión con tu cuenta de Google (se requiere VPN)&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Playground&amp;rdquo; a la izquierda &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130cf695d61300ddc98bc233f340ef35234.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;En la esquina superior derecha, selecciona un modelo:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;gemini-3-pro&lt;/strong&gt;: Mejor modelo, adecuado para tareas complejas&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;gemini-3-flash&lt;/strong&gt;: Modelo rápido, adecuado para conversaciones diarias&lt;/li&gt;
&lt;li&gt;Otros modelos experimentales disponibles &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130e0300a999015dae2b697ad281b97873d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Escribe tu pregunta directamente en el cuadro de entrada, luego haz clic en &amp;ldquo;Run&amp;rdquo;, y la IA responderá &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130be1c3325c52484964f1dd80de4c8c371.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Funciones avanzadas (versión web):&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Subir archivos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haz clic en el icono + a la derecha del cuadro de entrada &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130a9e4a64339f9a9e3e1e8c72e3e796257.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Puedes subir imágenes, PDFs, documentos, etc.&lt;/li&gt;
&lt;li&gt;Soporta comprensión multimodal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Ajustar parámetros&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A la derecha, puedes ajustar los parámetros que presentamos antes&lt;/li&gt;
&lt;li&gt;Puedes ajustar:
&lt;ul&gt;
&lt;li&gt;Temperature (creatividad)&lt;/li&gt;
&lt;li&gt;Top P&lt;/li&gt;
&lt;li&gt;Máximo de tokens de salida&lt;/li&gt;
&lt;li&gt;Configuración de seguridad&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas de la versión web:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No requiere programación&lt;/li&gt;
&lt;li&gt;No necesita instalación de software&lt;/li&gt;
&lt;li&gt;Se usa directamente en el navegador&lt;/li&gt;
&lt;li&gt;Interfaz amigable, funciones completas&lt;/li&gt;
&lt;li&gt;Adecuada para pruebas rápidas y uso diario&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Para quién es la versión web?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principiantes absolutos que no saben programar&lt;/li&gt;
&lt;li&gt;Aquellos que quieren probar rápidamente las capacidades de Gemini&lt;/li&gt;
&lt;li&gt;Chatear y hacer preguntas a diario&lt;/li&gt;
&lt;li&gt;Manejar tareas multimodales como documentos e imágenes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;obtener-api-key-para-usuarios-avanzados&#34;&gt;Obtener API Key (Para usuarios avanzados)
&lt;/h4&gt;&lt;p&gt;Volviendo al tema principal, así es como se obtiene una API Key.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos para obtener la API Key:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;En la página de AI Studio, haz clic en &amp;ldquo;Get API Key&amp;rdquo; a la izquierda &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026013003c5233d62865585737f0eae54b59dee.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Create API Key&amp;rdquo; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130e35a3108353f0d11a67540317c90aa92.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Crea y copia la API Key generada&lt;/li&gt;
&lt;li&gt;Vuelve a Playground, selecciona y copia el nombre del modelo a la derecha &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026013053e441ffe652d7475117dd28023b9e1f.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Parámetros de llamada:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://generativelanguage.googleapis.com/v1beta&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Nombre del modelo: &lt;code&gt;gemini-3-flash-preview&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;API Key: La clave que copiaste&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;límites-del-nivel-gratuito&#34;&gt;Límites del nivel gratuito
&lt;/h4&gt;&lt;p&gt;¡Importante! Google AI Studio usa el &lt;strong&gt;nivel gratuito&lt;/strong&gt; por defecto, con los siguientes límites (a enero de 2026), y estos límites están sujetos a cambios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solicitudes por minuto (RPM): 15&lt;/li&gt;
&lt;li&gt;Solicitudes por día (RPD): 1500&lt;/li&gt;
&lt;li&gt;Tokens por minuto (TPM): 1 millón de tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consulta los límites detallados en: &lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemini-api/docs/rate-limits?hl=en&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ai.google.dev/gemini-api/docs/rate-limits?hl=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Es suficiente el nivel gratuito?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chat web: Más que suficiente&lt;/li&gt;
&lt;li&gt;Llamadas ocasionales a la API: Suficiente&lt;/li&gt;
&lt;li&gt;Llamadas automatizadas intensivas: Puede no ser suficiente&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cómo-eliminar-los-límites-vincula-tus-créditos-en-la-nube&#34;&gt;¿Cómo eliminar los límites? Vincula tus créditos en la nube
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Google Cloud ofrece $10 en créditos gratuitos a nuevos usuarios.&lt;/strong&gt; Después de vincularlo a AI Studio, puedes desbloquear límites más altos. Para más detalles sobre cómo configurar una cuenta de Google Cloud, busca en internet &amp;ldquo;créditos gratuitos de Google Cloud&amp;rdquo;: hay muchos tutoriales. No lo cubriremos aquí.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos para vincular:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;En AI Studio, vuelve a la interfaz de la API y haz clic en &amp;ldquo;Set up billing&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Vincula la cuenta de facturación de Google Cloud que creaste anteriormente &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130411387322a6096ab89bd78a6ed909d87.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Beneficios después de vincular:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los límites de velocidad aumentan significativamente (RPM hasta 1000+)&lt;/li&gt;
&lt;li&gt;Los créditos gratuitos siguen siendo válidos&lt;/li&gt;
&lt;li&gt;$10 pueden durar mucho tiempo con el potente modelo flash&lt;/li&gt;
&lt;li&gt;Tanto la versión web como la API disfrutan de cuotas más altas&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&#34;4-openrouter-internacional-plataforma-de-terceros&#34;&gt;4. OpenRouter (Internacional, Plataforma de terceros)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://openrouter.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openrouter.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tipo de plataforma:&lt;/strong&gt; Plataforma de terceros&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué lo recomiendo?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una plataforma para llamar a todas las IAs principales (GPT, Claude, Gemini, etc.)&lt;/li&gt;
&lt;li&gt;Precios transparentes, a veces más baratos que los oficiales&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acepta pagos con Alipay&lt;/strong&gt; (amigable para usuarios chinos)&lt;/li&gt;
&lt;li&gt;Acepta tarjetas de crédito y criptomonedas&lt;/li&gt;
&lt;li&gt;Modelos gratuitos disponibles para probar&lt;/li&gt;
&lt;li&gt;Puede llamar a casi todos los modelos disponibles&lt;/li&gt;
&lt;li&gt;Los rankings son convincentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pasos para obtener la API Key:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &lt;a class=&#34;link&#34; href=&#34;https://openrouter.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openrouter.ai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Sign In&amp;rdquo; en la esquina superior derecha, inicia sesión con Google o GitHub&lt;/li&gt;
&lt;li&gt;Después de iniciar sesión, haz clic en tu avatar en la esquina superior derecha y selecciona &amp;ldquo;Keys&amp;rdquo; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130fefcd5448171d3c864b1c12770f61ea8.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Create Key&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Dale un nombre a la clave y haz clic en crear&lt;/li&gt;
&lt;li&gt;Copia la clave generada&lt;/li&gt;
&lt;li&gt;Busca el modelo que quieras en el cuadro de búsqueda y luego copia el nombre &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601308947bd4cdd4403c33b25e0c888cd5acf.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Parámetros de llamada:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://openrouter.ai/api/v1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Nombre del modelo:
&lt;ul&gt;
&lt;li&gt;GPT-5.2: &lt;code&gt;openai/gpt-5.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Claude Opus 4.5: &lt;code&gt;anthropic/claude-opus-4.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Gemini 3 Pro: &lt;code&gt;google/gemini-3-pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Modelo gratuito: &lt;code&gt;meta-llama/llama-3.1-8b-instruct:free&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;API Key: La clave que creaste&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Métodos de recarga:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alipay (el más conveniente)&lt;/li&gt;
&lt;li&gt;Tarjeta de crédito&lt;/li&gt;
&lt;li&gt;Criptomonedas (USDC, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventaja de precio:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunos modelos son 10-20% más baratos que los oficiales&lt;/li&gt;
&lt;li&gt;Precios transparentes, ves los precios directamente en el sitio web&lt;/li&gt;
&lt;li&gt;Diferentes proveedores compiten, tú eliges el más barato&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Opciones gratuitas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunos modelos son completamente gratuitos (marcados con &lt;code&gt;:free&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Los nuevos usuarios obtienen créditos gratuitos para probar&lt;/li&gt;
&lt;li&gt;Puedes probar primero con modelos gratuitos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Rankings de modelos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En la página de Rankings, puedes ver los datos de llamadas a modelos de la plataforma; los rankings son muy convincentes. &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026013052b50b2c598e2c0f4ed7424d32163716.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;otras-plataformas-gratuitas&#34;&gt;Otras plataformas gratuitas
&lt;/h2&gt;&lt;p&gt;Debido a limitaciones de espacio, aquí hay algunas otras plataformas que puedes usar de forma gratuita:&lt;/p&gt;
&lt;h4 id=&#34;cerebras-inferencia-ultrarrápida&#34;&gt;Cerebras (Inferencia ultrarrápida)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://cloud.cerebras.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.cerebras.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inferencia extremadamente rápida (afirma ser la más rápida del mundo)&lt;/li&gt;
&lt;li&gt;Ofrece llamadas gratuitas al modelo Llama&lt;/li&gt;
&lt;li&gt;Registro sencillo, solo inicia sesión con GitHub&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;nvidia-nim-oficial-de-nvidia&#34;&gt;NVIDIA NIM (Oficial de NVIDIA)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://build.nvidia.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://build.nvidia.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plataforma oficial de IA de NVIDIA&lt;/li&gt;
&lt;li&gt;Ofrece múltiples modelos gratuitos&lt;/li&gt;
&lt;li&gt;Adecuada para pruebas y desarrollo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ambas plataformas ofrecen créditos gratuitos. Si te interesa, puedes registrarte y probarlas.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Tres elementos fundamentales:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;API Key&lt;/li&gt;
&lt;li&gt;Base URL&lt;/li&gt;
&lt;li&gt;Nombre del modelo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Cuatro plataformas recomendadas:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;DeepSeek Official (Oficial) - Mejor opción de bajo costo en China&lt;/li&gt;
&lt;li&gt;Volcano Engine (Oficial + Terceros) - Plataforma nacional, puede llamar a la mayoría de los modelos de código abierto nacionales&lt;/li&gt;
&lt;li&gt;Google AI Studio (Oficial) - Mejor opción gratuita a nivel internacional (con Cloud Credits), se puede usar directamente en la web&lt;/li&gt;
&lt;li&gt;OpenRouter (Terceros) - Plataforma todo en uno, acepta Alipay&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>Conceptos básicos de API y Token explicados</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/api-token-basics/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/api-token-basics/</guid>
        <description>&lt;p&gt;Puede que hayas notado que muchos usuarios experimentados hablan de API, Token, Temperatura y otros términos que suenan técnicos y confusos. Este capítulo explica estos conceptos clave en un lenguaje sencillo. Entenderlos te ayudará a comprender realmente cómo funciona la IA y a usarla de manera más efectiva.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-una-api&#34;&gt;¿Qué es una API?
&lt;/h2&gt;&lt;h4 id=&#34;api-en-lenguaje-sencillo&#34;&gt;API en lenguaje sencillo
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;API = Interfaz de Programación de Aplicaciones&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esa definición suena técnica, así que vamos a plantearlo de otra forma.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Piensa en la IA como un restaurante:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Versión web&lt;/strong&gt; = Comes en el restaurante
&lt;ul&gt;
&lt;li&gt;Bonita decoración (interfaz web)&lt;/li&gt;
&lt;li&gt;Camareros (botones, campos de entrada)&lt;/li&gt;
&lt;li&gt;Pides, el cocinero prepara, el camarero sirve&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API&lt;/strong&gt; = Pides comida para llevar
&lt;ul&gt;
&lt;li&gt;Sin decoración, hablas directamente con la cocina&lt;/li&gt;
&lt;li&gt;Sin camarero, hablas directamente con el chef&lt;/li&gt;
&lt;li&gt;Dices lo que quieres, el chef lo prepara y te lo entrega&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Diferencia clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Versión web: tiene interfaz, conveniente para humanos&lt;/li&gt;
&lt;li&gt;API: sin interfaz, conveniente para programas&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;por-qué-usar-una-api&#34;&gt;¿Por qué usar una API?
&lt;/h4&gt;&lt;p&gt;Si la versión web es tan conveniente, ¿para qué molestarse con la API?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Razón 1: Automatización&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Supón que necesitas que la IA procese 1.000 documentos y escriba 1.000 resúmenes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Versión web&lt;/strong&gt;: Copias y pegas 1.000 veces y haces clic en enviar 1.000 veces&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API&lt;/strong&gt;: Escribes un script que procesa todo automáticamente mientras tú te tomas un café&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Razón 2: Integración en tus propias aplicaciones&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quieres construir un bot de respuestas automáticas, un generador de contenido o un agente de atención al cliente inteligente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Versión web&lt;/strong&gt;: No es posible&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API&lt;/strong&gt;: Puedes integrar la IA directamente en tus propios programas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Razón 3: Menor costo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Suscripción web&lt;/strong&gt;: ChatGPT Plus $20/mes, Claude Pro $20/mes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API de pago por uso&lt;/strong&gt;: Pagas solo por lo que usas; un uso ligero puede costar solo unos pocos dólares al mes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Razón 4: Más flexibilidad&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajustar parámetros de la IA (Temperatura, longitud máxima, etc.)&lt;/li&gt;
&lt;li&gt;Procesamiento por lotes&lt;/li&gt;
&lt;li&gt;Formatos de entrada/salida personalizados&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cómo-se-ve-una-llamada-a-la-api&#34;&gt;¿Cómo se ve una llamada a la API?
&lt;/h4&gt;&lt;p&gt;Aquí tienes un ejemplo sencillo (no te preocupes si te resulta desconocido, lo veremos en detalle más adelante):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Call the latest GPT-5.2 API with Python&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;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;openai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chat&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;completions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;create&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;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-5.2&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;n&#34;&gt;messages&lt;/span&gt;&lt;span class=&#34;o&#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 class=&#34;s2&#34;&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello，Introduce yourself&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;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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;choices&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&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;/div&gt;&lt;p&gt;Solo unas pocas líneas de código, y la IA responde a tu pregunta, sin necesidad de navegador.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Identificadores oficiales de modelos API a partir del 30 de enero de 2026:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI: &lt;code&gt;gpt-5.2&lt;/code&gt;, &lt;code&gt;gpt-5.2-chat-latest&lt;/code&gt;, &lt;code&gt;gpt-5.2-pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Claude: &lt;code&gt;claude-opus-4-5&lt;/code&gt;, &lt;code&gt;claude-sonnet-4-5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Google Gemini: &lt;code&gt;gemini-3-pro-preview&lt;/code&gt;, &lt;code&gt;gemini-3-flash-preview&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;comparación-entre-versión-web-y-api&#34;&gt;Comparación entre versión web y API
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;Versión Web&lt;/th&gt;
          &lt;th&gt;API&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Cómo se usa&lt;/td&gt;
          &lt;td&gt;Navegar y hacer clic en un navegador&lt;/td&gt;
          &lt;td&gt;Escribir código para llamarla&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Curva de aprendizaje&lt;/td&gt;
          &lt;td&gt;Baja, cualquiera puede usarla&lt;/td&gt;
          &lt;td&gt;Alta, requiere algo de programación&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mejor para&lt;/td&gt;
          &lt;td&gt;Chat diario, redacción de artículos&lt;/td&gt;
          &lt;td&gt;Automatización, procesamiento por lotes, integración en apps&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Costo&lt;/td&gt;
          &lt;td&gt;Suscripción mensual ($20/mes)&lt;/td&gt;
          &lt;td&gt;Pago por uso (pagas por lo que usas)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Flexibilidad&lt;/td&gt;
          &lt;td&gt;Limitada por las funciones web&lt;/td&gt;
          &lt;td&gt;Altamente personalizable&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Velocidad&lt;/td&gt;
          &lt;td&gt;Media&lt;/td&gt;
          &lt;td&gt;Generalmente más rápida (sin renderizado de interfaz)&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-un-token&#34;&gt;¿Qué es un Token?
&lt;/h2&gt;&lt;h4 id=&#34;el-concepto-de-token&#34;&gt;El concepto de Token
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Token = La unidad de texto más pequeña que la IA entiende&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A diferencia de los humanos, que leemos palabras y oraciones directamente, la IA necesita dividir el texto en pequeñas piezas. Cada pieza se llama token.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Chino:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“你好” ≈ 1–2 tokens&lt;/li&gt;
&lt;li&gt;“今天天气不错” ≈ 4–8 tokens, según el modelo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Inglés:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Hello” = 1 token&lt;/li&gt;
&lt;li&gt;“How are you today?” ≈ 5 tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Reglas generales simples:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inglés: 1 palabra ≈ 1 token (aproximadamente 4 caracteres)&lt;/li&gt;
&lt;li&gt;Chino: 1 carácter ≈ 0.5–2 tokens (depende del modelo de IA)&lt;/li&gt;
&lt;li&gt;Números, puntuación: normalmente 1 símbolo = 1 token&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;descubrimiento-importante-diferentes-modelos-de-ia-definen-los-tokens-de-manera-diferente&#34;&gt;Descubrimiento importante: ¡Diferentes modelos de IA definen los tokens de manera diferente!
&lt;/h4&gt;&lt;p&gt;Aquí hay un secreto poco conocido: &lt;strong&gt;El mismo texto puede tener un recuento de tokens completamente diferente en distintos modelos de IA.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Por qué? Porque cada empresa de IA tiene su propio tokenizador, y dividen el texto de manera diferente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo real:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La misma frase: “AI is revolutionizing market research.”&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-3&lt;/strong&gt;: 11 tokens&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-3.5 y GPT-4&lt;/strong&gt;: 9 tokens&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-4o y GPT-5.2&lt;/strong&gt;: 8 tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;¿Ves? ¡La misma frase difiere en 3 tokens entre modelos!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Otro ejemplo en chino:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La frase “人工智能正在改变世界” (“La inteligencia artificial está cambiando el mundo”):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-4o&lt;/strong&gt;: quizás 10 tokens&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Sonnet 4.5&lt;/strong&gt;: quizás 12 tokens&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini 3&lt;/strong&gt;: quizás 8 tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué la diferencia?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cada empresa utiliza un método de tokenización diferente al entrenar sus modelos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenAI (serie GPT)&lt;/strong&gt;: usa BPE (Codificación por Pares de Bytes)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anthropic (Claude)&lt;/strong&gt;: usa su propio tokenizador optimizado&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google (Gemini)&lt;/strong&gt;: la documentación de Gemini dice “1 token ≈ 4 caracteres”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek&lt;/strong&gt;: un tokenizador optimizado para chino&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo te afecta esto?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Las comparaciones de costos no son directas&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Supón que tienes 1.000 caracteres chinos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Con GPT-5.2 podrían ser 1.500 tokens&lt;/li&gt;
&lt;li&gt;Con Claude Sonnet 4.5 podrían ser 1.600 tokens&lt;/li&gt;
&lt;li&gt;Con Gemini 3 podrían ser 1.400 tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aunque cada uno diga “entrada $X/1M tokens”, ¡el costo real puede diferir entre un 10 y un 20%!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. No puedes usar la misma calculadora de tokens para todos los modelos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El tokenizador oficial de OpenAI (&lt;a class=&#34;link&#34; href=&#34;https://platform.openai.com/tokenizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://platform.openai.com/tokenizer&lt;/a&gt;) solo funciona para la serie GPT&lt;/li&gt;
&lt;li&gt;Los tokens de Claude necesitan el método de cálculo de Anthropic&lt;/li&gt;
&lt;li&gt;Los tokens de Gemini necesitan el método de cálculo de Google&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Los idiomas no ingleses muestran diferencias aún mayores&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para chino, japonés, árabe y otros idiomas no ingleses, la eficiencia de tokenización puede variar entre un 30 y un 40%. La mayoría de los modelos de IA se entrenan principalmente en inglés, por lo que sus tokenizadores están mejor optimizados para el inglés.&lt;/p&gt;
&lt;h4 id=&#34;por-qué-importa-el-token&#34;&gt;Por qué importa el Token
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. El token determina el costo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El precio de la API se basa en tokens, no en el número de caracteres.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo (precios oficiales a partir del 30 de enero de 2026):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPT-5.2: entrada $1.75/1M tokens, salida $14/1M tokens&lt;/li&gt;
&lt;li&gt;Claude Opus 4.5: entrada $5/1M tokens, salida $25/1M tokens&lt;/li&gt;
&lt;li&gt;Gemini 3 Flash: entrada $0.50/1M tokens, salida $3/1M tokens (nivel estándar)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Envías 500 tokens y la IA responde con 1.000 tokens:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Con GPT-5.2: (500 × 1.75 + 1000 × 14) / 1.000.000 = $0.01488 (aproximadamente 1.5 centavos USD)&lt;/li&gt;
&lt;li&gt;Con Gemini 3 Flash: (500 × 0.50 + 1000 × 3) / 1.000.000 = $0.00325 (aproximadamente 0.3 centavos USD)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. El token determina la longitud del contexto&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cada modelo de IA tiene un límite de tokens:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPT-5.2 (API): hasta 400.000 tokens&lt;/li&gt;
&lt;li&gt;GPT-5.2-chat-latest: hasta 128.000 tokens&lt;/li&gt;
&lt;li&gt;Claude Sonnet 4.5: hasta 200.000 tokens&lt;/li&gt;
&lt;li&gt;Gemini 3 Pro Preview: hasta 1.048.576 tokens (aproximadamente 1M)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este límite incluye: tu prompt + respuesta de la IA + historial de la conversación.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Qué sucede si superas el límite?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La IA “olvida” las partes más antiguas de la conversación&lt;/li&gt;
&lt;li&gt;O da un error y no continúa&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cómo-contar-tokens&#34;&gt;Cómo contar tokens
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Método 1: Estimar (rápido pero no preciso)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chino: número de caracteres × 1.5&lt;/li&gt;
&lt;li&gt;Inglés: número de palabras × 1.3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Método 2: Usar la herramienta en línea correspondiente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenAI (serie GPT)&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://platform.openai.com/tokenizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://platform.openai.com/tokenizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contador de tokens general&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://token-counter.app&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://token-counter.app&lt;/a&gt; (admite múltiples modelos para comparar)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini&lt;/strong&gt;: usa el método &lt;code&gt;count_tokens&lt;/code&gt; en Google AI Studio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Recordatorio importante:&lt;/strong&gt; Al estimar entre modelos, usa siempre la herramienta específica de ese modelo. ¡No uses el recuento de tokens de GPT para estimar el costo de Claude!&lt;/p&gt;
&lt;h4 id=&#34;tokens-de-entrada-tokens-de-salida-tokens-en-caché&#34;&gt;Tokens de entrada, tokens de salida, tokens en caché
&lt;/h4&gt;&lt;p&gt;La facturación de la API divide los tokens en tres tipos:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Tokens de entrada&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contenido que envías a la IA&lt;/li&gt;
&lt;li&gt;Incluye tu prompt, documentos subidos&lt;/li&gt;
&lt;li&gt;Relativamente baratos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Tokens de salida&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contenido que la IA te devuelve&lt;/li&gt;
&lt;li&gt;Incluye la respuesta de la IA&lt;/li&gt;
&lt;li&gt;Suelen ser de 2 a 10 veces más caros que los tokens de entrada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué la salida es más cara?&lt;/strong&gt; Porque la IA “piensa” (genera texto) usando más recursos informáticos que “leer” (procesar entrada).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo (GPT-5.2):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entrada: $1.75/1M tokens&lt;/li&gt;
&lt;li&gt;Salida: $14/1M tokens (¡8 veces el precio de entrada!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Tokens en caché&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¡Este es un truco para ahorrar costos!&lt;/p&gt;
&lt;p&gt;Si usas repetidamente el mismo prompt, la IA puede almacenarlo en caché y evitar procesarlo de nuevo la próxima vez.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt; Tienes un prompt de 1.000 tokens y haces 10 preguntas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sin caché: cada vez procesa 1.000 tokens → total 10.000 tokens&lt;/li&gt;
&lt;li&gt;Con caché: primera vez 1.000 tokens (precio normal), las siguientes 9 veces 1.000 tokens (precio de caché, 90% más barato)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Modelos que admiten caché:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anthropic Claude (Prompt Caching)&lt;/li&gt;
&lt;li&gt;OpenAI GPT-5.2 (admite caché, 90% de descuento)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Reglas de facturación de caché:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Primera lectura: precio normal&lt;/li&gt;
&lt;li&gt;Acierto de caché: precio reducido entre un 50 y un 90%&lt;/li&gt;
&lt;li&gt;Validez de la caché: normalmente de 5 a 10 minutos&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-la-temperatura&#34;&gt;¿Qué es la Temperatura?
&lt;/h2&gt;&lt;h4 id=&#34;el-concepto-de-temperatura&#34;&gt;El concepto de Temperatura
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Temperatura = Controla la “aleatoriedad” o “creatividad” de las respuestas de la IA&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Recuerda que la IA esencialmente “calcula probabilidades”. Cuando preguntas “¿De qué color es el cielo?”, la IA ve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Probabilidad de “Azul” 80%&lt;/li&gt;
&lt;li&gt;Probabilidad de “Gris” 10%&lt;/li&gt;
&lt;li&gt;Probabilidad de “Rojo” 5%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La temperatura ajusta cómo la IA elige entre estas opciones.&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;valores-de-temperatura&#34;&gt;Valores de Temperatura
&lt;/h4&gt;&lt;p&gt;La temperatura generalmente varía de 0 a 2 (o de 0 a 1, según la plataforma):&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Temperatura = 0 (la más conservadora)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La IA siempre elige la respuesta de mayor probabilidad&lt;/li&gt;
&lt;li&gt;Respuestas muy estables y predecibles&lt;/li&gt;
&lt;li&gt;Misma pregunta → respuesta casi idéntica cada vez&lt;/li&gt;
&lt;li&gt;Mejor para: preguntas factuales, generación de código, análisis de datos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Temperatura = 1 (equilibrada)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La IA elige aleatoriamente según las probabilidades&lt;/li&gt;
&lt;li&gt;Las respuestas varían un poco pero siguen siendo razonables&lt;/li&gt;
&lt;li&gt;Valor predeterminado en la mayoría de las plataformas&lt;/li&gt;
&lt;li&gt;Mejor para: conversación cotidiana, uso general&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Temperatura = 2 (la más agresiva)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La IA prueba muchas posibilidades&lt;/li&gt;
&lt;li&gt;Respuestas muy diversas y creativas&lt;/li&gt;
&lt;li&gt;Puede ser inexacta o incluso sin sentido&lt;/li&gt;
&lt;li&gt;Mejor para: escritura creativa, lluvia de ideas, trabajo artístico&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;un-ejemplo-práctico&#34;&gt;Un ejemplo práctico
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Pregunta: Ponle nombre a mi cafetería&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Temperatura = 0:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Starbucks Coffee” (la respuesta más común y segura)&lt;/li&gt;
&lt;li&gt;Casi siempre la misma&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Temperatura = 1:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Morning Light Café”&lt;/li&gt;
&lt;li&gt;“Aroma Time”&lt;/li&gt;
&lt;li&gt;“Bean &amp;amp; Cozy”&lt;/li&gt;
&lt;li&gt;Varía, pero todas son razonables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Temperatura = 2:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Quantum Coffee Dimension”&lt;/li&gt;
&lt;li&gt;“Space‑Time Foam Lab”&lt;/li&gt;
&lt;li&gt;“Cosmic Latte Terminal”&lt;/li&gt;
&lt;li&gt;Muy creativo, pero posiblemente demasiado extraño&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cuándo-ajustar-la-temperatura&#34;&gt;Cuándo ajustar la Temperatura
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Temperatura más baja (0–0.5):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir código, depurar&lt;/li&gt;
&lt;li&gt;Análisis de datos, problemas matemáticos&lt;/li&gt;
&lt;li&gt;Traducción, resumen&lt;/li&gt;
&lt;li&gt;Cualquier tarea que necesite precisión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Temperatura más alta (1.5–2):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir novelas, poesía&lt;/li&gt;
&lt;li&gt;Nombrar cosas, crear eslóganes&lt;/li&gt;
&lt;li&gt;Lluvia de ideas&lt;/li&gt;
&lt;li&gt;Cualquier tarea que necesite creatividad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Diferentes modelos enumeran sus temperaturas recomendadas en sus sitios oficiales. Por ejemplo, el sitio web de DeepSeek muestra:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escenario&lt;/th&gt;
          &lt;th&gt;Temperatura&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Generación de código / resolución de problemas matemáticos&lt;/td&gt;
          &lt;td&gt;0.0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Extracción / análisis de datos&lt;/td&gt;
          &lt;td&gt;1.0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Conversación general&lt;/td&gt;
          &lt;td&gt;1.3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Traducción&lt;/td&gt;
          &lt;td&gt;1.3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Escritura creativa / poesía&lt;/td&gt;
          &lt;td&gt;1.5&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;¿Puedes ajustarlo en la versión web?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La mayoría de las versiones web no permiten el ajuste directo&lt;/li&gt;
&lt;li&gt;Pero la API te da un control preciso&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;longitud-del-contexto&#34;&gt;Longitud del Contexto
&lt;/h2&gt;&lt;h4 id=&#34;qué-es-la-longitud-del-contexto&#34;&gt;¿Qué es la Longitud del Contexto?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Longitud del Contexto = Cuánto contenido puede “recordar” la IA a la vez&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A diferencia de los humanos, la IA no tiene memoria a largo plazo. En cada conversación, la IA solo puede recordar una cantidad limitada de contenido. Este límite se llama longitud del contexto y se mide en tokens.&lt;/p&gt;
&lt;h4 id=&#34;por-qué-la-ia-olvida&#34;&gt;¿Por qué la IA “olvida”?
&lt;/h4&gt;&lt;p&gt;Puede que hayas experimentado esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chateas con la IA durante mucho tiempo&lt;/li&gt;
&lt;li&gt;De repente la IA no recuerda lo que se dijo al principio&lt;/li&gt;
&lt;li&gt;Parece que tiene amnesia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Razón: Superaste el límite de longitud del contexto.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Longitud del contexto de GPT-5.2 = 128.000 tokens&lt;/li&gt;
&lt;li&gt;Tú y la IA tienen 50 rondas de conversación, usando 130.000 tokens en total&lt;/li&gt;
&lt;li&gt;Más allá del límite, la IA “olvida” las partes más antiguas&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;impacto-práctico-de-la-longitud-del-contexto&#34;&gt;Impacto práctico de la Longitud del Contexto
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Afecta la duración de la conversación&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Contexto corto: solo unas pocas docenas de rondas&lt;/li&gt;
&lt;li&gt;Contexto largo: cientos de rondas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Afecta el procesamiento de documentos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Contexto corto: solo documentos breves&lt;/li&gt;
&lt;li&gt;Contexto largo: libros completos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Afecta el costo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Contexto más largo → procesamiento más lento&lt;/li&gt;
&lt;li&gt;Más tokens → mayor costo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cómo-lidiar-con-los-límites-del-contexto&#34;&gt;Cómo lidiar con los límites del contexto
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Método 1: Limpiar la conversación regularmente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Guarda información importante&lt;/li&gt;
&lt;li&gt;Inicia una nueva conversación&lt;/li&gt;
&lt;li&gt;Vuelve a contarle el contexto a la IA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Método 2: Resumir el historial de la conversación&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pide a la IA que resuma el contenido anterior&lt;/li&gt;
&lt;li&gt;Usa ese resumen como inicio de una nueva conversación&lt;/li&gt;
&lt;li&gt;Ahorra tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Método 3: Elegir un modelo con un contexto grande&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para documentos largos: usa Gemini 3 Pro&lt;/li&gt;
&lt;li&gt;Para conversaciones largas: usa Claude Sonnet 4.5&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;otros-conceptos-importantes&#34;&gt;Otros Conceptos Importantes
&lt;/h2&gt;&lt;h4 id=&#34;max-tokens&#34;&gt;Max Tokens
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Max Tokens = Limita la longitud máxima de una sola respuesta de la IA&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Establecer Max Tokens = 100: la IA responde con un máximo de 100 tokens&lt;/li&gt;
&lt;li&gt;Establecer Max Tokens = 2000: la IA responde con un máximo de 2000 tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué limitarlo?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Controlar el costo (los tokens de salida son más caros)&lt;/li&gt;
&lt;li&gt;Evitar respuestas demasiado extensas&lt;/li&gt;
&lt;li&gt;Algunos escenarios solo necesitan respuestas cortas&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;top-p-muestreo-del-núcleo&#34;&gt;Top P (Muestreo del Núcleo)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Top P = Otra forma de controlar la aleatoriedad&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Similar a la Temperatura, pero funciona de manera diferente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Top P = 0.1: solo considera el 10% superior de las opciones más probables&lt;/li&gt;
&lt;li&gt;Top P = 0.9: considera el 90% superior de las opciones más probables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Generalmente:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajusta Temperatura o Top P, uno es suficiente&lt;/li&gt;
&lt;li&gt;En la mayoría de los casos, la Temperatura es más intuitiva&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;penalización-por-frecuencia-y-penalización-por-presencia&#34;&gt;Penalización por Frecuencia y Penalización por Presencia
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Se usan para reducir la repetición&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Penalización por Frecuencia&lt;/strong&gt;: penaliza las palabras usadas con frecuencia, reduciendo la repetición de la misma palabra&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Penalización por Presencia&lt;/strong&gt;: penaliza las palabras que ya han aparecido, animando a la IA a introducir nuevos temas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rango: -2.0 a 2.0&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Valores positivos: reducen la repetición&lt;/li&gt;
&lt;li&gt;Valores negativos: permiten más repetición&lt;/li&gt;
&lt;li&gt;0: sin intervención&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen-cómo-usar-estos-conceptos&#34;&gt;Resumen: ¿Cómo usar estos conceptos?
&lt;/h2&gt;&lt;h4 id=&#34;uso-diario-versión-web&#34;&gt;Uso diario (versión web)
&lt;/h4&gt;&lt;p&gt;Si solo usas la versión web, &lt;strong&gt;no necesitas preocuparte por estos parámetros&lt;/strong&gt;; los valores predeterminados funcionan bien.&lt;/p&gt;
&lt;p&gt;Pero entender estos conceptos te ayuda a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comprender por qué la IA a veces “olvida” partes anteriores de la conversación (límite de contexto)&lt;/li&gt;
&lt;li&gt;Entender por qué los usuarios de la API pueden hacer cosas que tú no puedes (control de parámetros)&lt;/li&gt;
&lt;li&gt;Prepararte para usar la API en el futuro&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;al-usar-la-api&#34;&gt;Al usar la API
&lt;/h4&gt;&lt;p&gt;Si decides usar la API, estos parámetros se vuelven muy importantes:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuración básica (cada vez):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;model&lt;/code&gt;: elige el modelo (por ejemplo, &lt;code&gt;gpt-5.2&lt;/code&gt;, &lt;code&gt;claude-sonnet-4-5&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;max_tokens&lt;/code&gt;: limita la longitud de la respuesta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ajusta según tus necesidades:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;temperature&lt;/code&gt;: 0–0.5 para tareas factuales, 1–2 para tareas creativas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;top_p&lt;/code&gt;: generalmente bien con el valor predeterminado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;frequency_penalty&lt;/code&gt;: si la IA se repite demasiado, ajústalo a 0.5–1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Optimización de costos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa caché para ahorrar dinero&lt;/li&gt;
&lt;li&gt;Controla &lt;code&gt;max_tokens&lt;/code&gt; para evitar desperdicios&lt;/li&gt;
&lt;li&gt;Elige el modelo adecuado (no siempre necesitas el más caro)&lt;/li&gt;
&lt;li&gt;Recuerda que diferentes modelos definen los tokens de manera diferente&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Conectar DeepSeek a Claude desde Cero</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/deepseek-claude-setup/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/deepseek-claude-setup/</guid>
        <description>&lt;p&gt;Últimamente, no dejo de hablar maravillas de DeepSeek: la relación calidad-precio es increíble.&lt;/p&gt;
&lt;p&gt;Por supuesto, para la mayoría de la gente, la versión móvil o web de DeepSeek es suficiente. Pero si quieres hacer algo de programación u otras tareas avanzadas, necesitarás conectarlo a tus herramientas de codificación o terminal.&lt;/p&gt;
&lt;p&gt;Aquí te recomiendo empezar con la aplicación de escritorio de Claude.&lt;/p&gt;
&lt;p&gt;Cada IA usa herramientas distintas y los resultados finales varían; de eso se trata la ingeniería de &amp;ldquo;arneses&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por cierto, déjame explicarte la palabra &amp;ldquo;harness&amp;rdquo;. Su significado original es el equipo que le pones a un caballo para que pueda tirar de un carro y trabajar; de lo contrario, corre libremente. Lo mismo ocurre con los modelos de IA: el modelo solo es inútil; necesitas equiparlo con todo un conjunto de complementos como llamadas a herramientas, gestión de contexto y avisos para que sea realmente útil. Ese conjunto de complementos se llama un arnés. El mismo modelo, con diferentes arneses, puede producir resultados muy distintos.&lt;/p&gt;
&lt;p&gt;Y Claude destaca en esta área. La aplicación de escritorio también reduce significativamente la barrera de entrada: es una experiencia WYSIWYG.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260429a32bc633f19c4e7e6ee7f4200f211b34.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;solicitar-una-clave-api&#34;&gt;Solicitar una clave API
&lt;/h2&gt;&lt;p&gt;Primero, necesitamos solicitar una clave API de DeepSeek.&lt;/p&gt;
&lt;p&gt;Paso 1: Abre el sitio web de DeepSeek (&lt;a class=&#34;link&#34; href=&#34;https://www.deepseek.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.deepseek.com&lt;/a&gt;) y haz clic en &amp;ldquo;API Open Platform&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026042939bd3468b96d7192070fd4c4a6c22a05.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 2: Regístrate con una cuenta, luego haz clic en &amp;ldquo;Recargar&amp;rdquo; en el lado izquierdo. Recarga al menos 10 yuanes. No entraré en detalles del registro.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260429b6f62724d2f022bdc8748898e53f7423.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 3: Haz clic en &amp;ldquo;Claves API&amp;rdquo; a la izquierda, luego haz clic en &amp;ldquo;Crear clave API&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260429dc6704052abbcc5d435b1da7f94d6f9b.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 4: Introduce un nombre. Aparecerá una nueva página con tu clave API. Copia y guarda todo el contenido de inmediato: una vez que cierres esta ventana, nunca podrás recuperarla. Así que asegúrate de hacer clic en copiar y almacenarla de forma segura. Tampoco la filtres; si alguien más obtiene tu clave API, ¡podrá usar tu cuota gratis!&lt;/p&gt;
&lt;p&gt;Para la demostración, usa tu propia clave API en esta posición. Debería verse como &lt;code&gt;sk-REPLACE_WITH_YOUR_API_KEY&lt;/code&gt;. Eso es todo para este paso.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260429508932600db5af092f583bf48c72e55f.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;configuración&#34;&gt;Configuración
&lt;/h2&gt;&lt;p&gt;Paso 1: Descarga la aplicación de escritorio de Claude desde &lt;a class=&#34;link&#34; href=&#34;https://claude.ai/downloads&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://claude.ai/downloads&lt;/a&gt;. Puede que necesites una VPN para esto. Si no tienes una, verifica si hay un espejo nacional donde puedas descargarlo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604292eaf96880f1b53aec3453f5b74911eac.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 2: Instala el archivo descargado. Haz doble clic en él y, en la nueva ventana que aparece, arrastra el icono de Claude a la carpeta Aplicaciones a la derecha.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260429c7d4b10f5373be0c03cd8dbc41a39480.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 3: Abre la aplicación. Primero, selecciona &amp;ldquo;Ayuda&amp;rdquo; en el menú superior, luego elige &amp;ldquo;Habilitar modo desarrollador&amp;rdquo;. En el nuevo cuadro de diálogo que aparece, haz clic en &amp;ldquo;Habilitar&amp;rdquo;. La aplicación se reiniciará.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260429919a8aacc3d15946a37869c4b755e1b8.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604297d9ab6eac5047a9dd21fdc2a2ef261d1.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 4: Después de reiniciar, verás una nueva pestaña &amp;ldquo;Desarrollador&amp;rdquo;. Haz clic en ella y selecciona &amp;ldquo;Configurar inferencia de terceros&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026042900536c78ddcb0de06332f4f473e06350.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 5: En la nueva página, completa la URL: &lt;code&gt;https://api.deepseek.com/anthropic&lt;/code&gt;. Para la clave API, usa la que guardaste antes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260429bfaf0e972663c045923b851f4b06a7c4.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 6: Completa el modelo. Nota: La aplicación de escritorio de Claude ahora detecta el prefijo del nombre del modelo para identificarlo. Si introduces el nombre original directamente, será bloqueado.&lt;/p&gt;
&lt;p&gt;La solución es simple: ponle un &amp;ldquo;sombrero&amp;rdquo;. Solo añade el prefijo &lt;code&gt;claude-&lt;/code&gt; al nombre del modelo.&lt;/p&gt;
&lt;p&gt;Desplázate hacia abajo en la misma página hasta que veas &amp;ldquo;Lista de modelos&amp;rdquo;. Haz clic en &amp;ldquo;Agregar&amp;rdquo; debajo y añade dos modelos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;claude-deepseek-v4-flash&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;claude-deepseek-v4-pro&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Puede que originalmente hayas rellenado &lt;code&gt;deepseek-v4-flash&lt;/code&gt; y &lt;code&gt;deepseek-v4-pro&lt;/code&gt;. Ahora solo añade &lt;code&gt;claude-&lt;/code&gt; al principio. La aplicación identifica los modelos por su prefijo de nombre, por lo que agregar un prefijo lo hace irreconocible.)&lt;/p&gt;
&lt;p&gt;Después de rellenar todo, haz clic en &amp;ldquo;Aplicar localmente&amp;rdquo; en la parte inferior. En la nueva página, selecciona &amp;ldquo;Reiniciar ahora&amp;rdquo;. La aplicación se reiniciará.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260511e8e459b58bd3b7d057c43c302f559954.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260511d264f34bd77afaf7b9674526415a35b4.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202605117e75d965ffefc23f926689826298eb3a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Paso 7: Después de reiniciar, puedes empezar a usarlo en la nueva interfaz. Para obtener más detalles sobre el uso de Claude Code, consulta el capítulo 13 de esta guía.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604297f951ce7de41bf2bbefca83a97444cf3.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Finalmente, si sigues estos pasos paso a paso, no deberías tener problemas. Si aún encuentras dificultades, no dudes en preguntar en el grupo de preguntas y respuestas.&lt;/p&gt;
&lt;p&gt;Además, si quieres cerrar sesión de este inicio de sesión de terceros, haz clic en &amp;ldquo;Cowork 3P&amp;rdquo; en la esquina inferior izquierda y luego en &amp;ldquo;Desconectar&amp;rdquo;. Cuando inicies sesión de nuevo, te preguntará el método de inicio de sesión: simplemente selecciona &amp;ldquo;Suscripción&amp;rdquo; de nuevo.&lt;/p&gt;
&lt;p&gt;Ah, y por cierto, DeepSeek aún no admite visión, así que si le das una imagen en Claude, no la verá. Pero hay rumores de que el modelo de visión de DeepSeek llegará pronto. ¡Estamos impacientes!&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Construye tu propio proxy de API</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/api-proxy/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/api-proxy/</guid>
        <description>&lt;p&gt;Este capítulo aborda un problema común: usar servicios de IA extranjeros como Claude y Codex a menudo trae complicaciones. Las cuentas se bloquean inexplicablemente, tienes que activar manualmente un proxy cada vez, los costos de suscripción son altos si los asumes solo, y compartir con amigos es complicado sin una gestión de permisos adecuada.&lt;/p&gt;
&lt;p&gt;Yo mismo uso estos servicios y siempre he confiado en mi propio relay de API autoalojado. Este capítulo te guiará por toda la configuración.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;por-qué-construir-tu-propio-proxy-de-api&#34;&gt;Por qué construir tu propio proxy de API
&lt;/h2&gt;&lt;p&gt;Empecemos con la motivación para que entiendas qué problema resuelve esto.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Claude tiende a bloquear cuentas.&lt;/strong&gt; Muchas personas inician sesión desde varias máquinas con IPs desordenadas, y una vez que el sistema de control de riesgos las marca, la cuenta se bloquea. Usar un relay fija una sola IP, enrutando todas las solicitudes a través del mismo servidor, reduciendo significativamente la probabilidad de un bloqueo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Es más cómodo de usar.&lt;/strong&gt; Una vez configurado, te conectas directamente al servidor sin necesidad de activar un proxy manualmente cada vez.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Varias personas pueden compartir una suscripción.&lt;/strong&gt; Las suscripciones de Claude Max y Pro no son baratas, así que varias personas pueden dividir el costo. A través del relay, puedes crear claves API separadas para cada usuario, cada una con permisos independientes y estadísticas de uso.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No comprar a otros porque el riesgo es demasiado alto.&lt;/strong&gt; Hay muchos servicios de relay de API en el mercado, pero es difícil distinguir los genuinos de los falsos, podrían desaparecer en cualquier momento y tus datos podrían ser interceptados.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Preocupaciones de seguridad de datos.&lt;/strong&gt; Al usar el servicio de relay de otra persona, todas tus solicitudes pasan por sus servidores. El contenido sensible no debería pasar por un tercero no controlado.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Admite múltiples proveedores de IA.&lt;/strong&gt; Esta configuración admite no solo Claude, sino también otros servicios como Codex.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-proyecto-usar&#34;&gt;Qué proyecto usar
&lt;/h2&gt;&lt;p&gt;Usaremos este proyecto de código abierto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/Wei-Shaw/claude-relay-service&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;claude-relay-service&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Antes de empezar, estos son los requisitos de implementación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un VPS:&lt;/strong&gt; Las especificaciones mínimas son suficientes, 1 núcleo y 1 GB de RAM bastan.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sistema operativo:&lt;/strong&gt; Linux (Ubuntu/Debian funcionan).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lo más importante:&lt;/strong&gt; El VPS debe poder acceder directamente a la API de Anthropic, es decir, el propio servidor debe poder alcanzar claude.ai.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Qué es un VPS?&lt;/strong&gt; En pocas palabras, es un servidor remoto alquilado que funciona 24/7. Puedes ejecutar programas en él, nunca se apaga y tiene una IP pública fija. Los servidores en la nube domésticos comunes (como Alibaba Cloud ECS, Tencent Cloud CVM) son similares, pero no funcionarán debido a restricciones regionales; necesitas alquilar uno en el extranjero.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Puedes usar tu propia computadora en lugar de un VPS?&lt;/strong&gt; En teoría sí, pero hay dos requisitos estrictos: primero, tu computadora debe estar encendida 24/7; segundo, tu red debe poder conectarse directamente a los servidores de Anthropic. Ambas condiciones deben cumplirse, de lo contrario no funcionará. Así que en la práctica, alquilar un VPS en el extranjero es mucho más sencillo.&lt;/p&gt;
&lt;p&gt;Este último punto sobre &amp;ldquo;poder alcanzar Anthropic&amp;rdquo; es donde muchos se quedan atascados. Dónde está ubicado tu VPS determina directamente si funciona. Yo uso un VPS japonés con una IP de centro de datos, y sin ninguna configuración adicional, se conecta directamente. Los centros de datos en Singapur, EE. UU. y Japón generalmente funcionan bien. Los servidores domésticos en China definitivamente no funcionan, y algunos centros de datos de Hong Kong también pueden estar bloqueados. Es mejor confirmar antes de comprar.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;implementación-con-un-solo-clic&#34;&gt;Implementación con un solo clic
&lt;/h2&gt;&lt;p&gt;Conéctate a la terminal de tu VPS y ejecuta el siguiente comando:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;curl -fsSL https://pincc.ai/manage.sh -o manage.sh &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; chmod +x manage.sh &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./manage.sh install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Presiona Enter y espera a que termine. Después de una instalación exitosa, la terminal mostrará algo como:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Access URLs:
  Local Web: http://localhost:8080/web
  Public Web: http://YOUR_IP:8080/web

Admin credentials saved to: data/init.json
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;YOUR_IP&lt;/code&gt; es la IP pública de tu VPS. &lt;strong&gt;La contraseña de administrador se almacena en el archivo &lt;code&gt;data/init.json&lt;/code&gt;&lt;/strong&gt;; puedes verla con &lt;code&gt;cat data/init.json&lt;/code&gt;. Anota la URL pública y la contraseña, ya que las necesitarás para iniciar sesión en el panel de administración.&lt;/p&gt;
&lt;p&gt;Después de la instalación, el sistema registra un comando &lt;code&gt;crs&lt;/code&gt; para gestionar el servicio:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;crs install   &lt;span class=&#34;c1&#34;&gt;# Install the service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;crs start     &lt;span class=&#34;c1&#34;&gt;# Start the service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;crs stop      &lt;span class=&#34;c1&#34;&gt;# Stop the service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;crs restart   &lt;span class=&#34;c1&#34;&gt;# Restart the service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;crs status    &lt;span class=&#34;c1&#34;&gt;# Check status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;crs update    &lt;span class=&#34;c1&#34;&gt;# Update the service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;crs uninstall &lt;span class=&#34;c1&#34;&gt;# Uninstall the service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Para actualizar más tarde, simplemente conéctate a tu VPS y ejecuta &lt;code&gt;crs update&lt;/code&gt;&lt;/strong&gt;—no es necesario repetir el proceso de instalación.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;acceder-al-panel-de-administración&#34;&gt;Acceder al panel de administración
&lt;/h2&gt;&lt;p&gt;Abre la URL pública que anotaste en tu navegador, ingresa la contraseña de administrador y verás este panel:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202603250b0e2eb063a87a5332f58beddb03662b.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Este es el panel del sistema, que muestra el número actual de claves API, cuentas de servicio, solicitudes de hoy, consumo de tokens, etc. El panel de administración también admite ver los detalles de uso de cada clave API, dejando claro quién usó cuánto al compartir. Siéntete libre de explorar.&lt;/p&gt;
&lt;p&gt;La navegación superior tiene dos entradas de configuración principales (resaltadas en rojo en la imagen):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API Keys&lt;/strong&gt;: Crea y gestiona claves API para los usuarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Account Management&lt;/strong&gt;: Vincula tus cuentas de suscripción de Claude compradas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A continuación, primero vincularemos una cuenta y luego crearemos una clave API.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;paso-1-vincular-tu-cuenta-de-claude&#34;&gt;Paso 1: Vincular tu cuenta de Claude
&lt;/h2&gt;&lt;p&gt;Haz clic en &amp;ldquo;Account Management&amp;rdquo; en la parte superior, luego haz clic en &amp;ldquo;Add Account&amp;rdquo;. Aparecerá un diálogo para agregar una cuenta.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 1 — Información básica&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026032539fbad0b476658d96a22b3a87889b9b4.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Completa lo siguiente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Select Platform&lt;/strong&gt;: Elige Claude (Anthropic). Otras opciones incluyen OpenAI, Gemini, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Select Specific Platform Type&lt;/strong&gt;: Elige Claude Code (Official), que es nuestro método principal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add Method&lt;/strong&gt;: Elige OAuth Authorization (Usage Visualization), que te permite ver datos de uso detallados en el panel de administración.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Account Name&lt;/strong&gt;: Ingresa un nombre que reconozcas, por ejemplo, &amp;ldquo;Mi Cuenta Max&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Desplázate hacia abajo para ver algunas opciones importantes:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260325ce9009509dc4df39e06c23a46ddd1bdd.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscription Type&lt;/strong&gt; debe ser correcto: selecciona el que realmente compraste:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude Max&lt;/strong&gt;: Selecciona esto si tienes una suscripción Max.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Pro&lt;/strong&gt;: Selecciona esto si tienes una suscripción Pro.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También hay algunas opciones avanzadas debajo, como &amp;ldquo;Auto-stop scheduling when approaching 5-hour usage limit&amp;rdquo; y &amp;ldquo;Block warm-up requests&amp;rdquo;. Los principiantes pueden dejar los valores predeterminados y ajustarlos más tarde según sea necesario.&lt;/p&gt;
&lt;p&gt;Después de completar, haz clic en &amp;ldquo;Next&amp;rdquo; para proceder a la autorización.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Paso 2 — Autorización&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260325b1addf52c23fd264ade1fb9dd355375c.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Este paso autoriza tu cuenta de Claude para usar el servicio de relay. Haz clic en el botón &amp;ldquo;&lt;strong&gt;Generate Authorization Link&lt;/strong&gt;&amp;rdquo;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260325af1c2557aa6f77ab06d2487b72071fae.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;El enlace generado aparecerá en el campo de entrada, algo como &lt;code&gt;https://claude.ai/oauth/authorize?...&lt;/code&gt;. Haz clic en el icono de copiar a la derecha para copiar el enlace.&lt;/p&gt;
&lt;p&gt;Luego abre este enlace en tu navegador (&lt;strong&gt;recuerda usar un proxy&lt;/strong&gt;):&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260325bb03e60bd986b8dea878cbec1aed234e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;La página mostrará &amp;ldquo;Claude Code would like to connect to your Claude chat account&amp;rdquo;. Haz clic en el botón &lt;strong&gt;Authorize&lt;/strong&gt; para completar la autorización.&lt;/p&gt;
&lt;p&gt;Después de una autorización exitosa, la página te dará un Código de Autorización. Copia este código, pégalo en el campo de entrada del diálogo y haz clic en &amp;ldquo;Complete Authorization&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La cuenta ahora está vinculada.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;paso-2-crear-una-clave-api&#34;&gt;Paso 2: Crear una clave API
&lt;/h2&gt;&lt;p&gt;Después de vincular la cuenta, haz clic en la pestaña &amp;ldquo;API Keys&amp;rdquo; en la parte superior para acceder a la gestión de claves API:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202603253b1caaed5a37a33b6282b24b1c0d5811.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Haz clic en el botón &amp;ldquo;&lt;strong&gt;+ Create New Key&lt;/strong&gt;&amp;rdquo; en la esquina superior derecha:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202603252f461951c147f665332a17fce7dbbd39.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Completa la siguiente información:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;: Dale un nombre a esta clave, por ejemplo, &amp;ldquo;Uso Personal&amp;rdquo;, &amp;ldquo;Para la Familia&amp;rdquo;. Se recomienda nombrar por persona o propósito para facilitar la gestión posterior.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rate Limit Settings&lt;/strong&gt; (opcional): Si compartes entre varias personas, puedes establecer límites de frecuencia de solicitudes y costos para cada clave. Déjalo en blanco para ilimitado.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después de completar, haz clic en Confirm. Al crearse con éxito, aparecerá este diálogo:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202603252f5b73931ec251d639e43c332deca36e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Observa el &lt;strong&gt;aviso importante&lt;/strong&gt;: &lt;strong&gt;Esta es tu única oportunidad de ver la clave API completa&lt;/strong&gt;. Una vez que cierres esta ventana, el sistema no la mostrará de nuevo.&lt;/p&gt;
&lt;p&gt;Haz clic en &amp;ldquo;&lt;strong&gt;Copy Claude Configuration&lt;/strong&gt;&amp;rdquo; para obtener algo como:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your_server_public_url&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;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cr_217627747170e5aa5691134fab8278b0dfec1b0ac2e59345ae180dc6d5f9643d&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Estos son tu dirección de API y clave. Guárdalos de forma segura.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-usarlo-a-continuación&#34;&gt;Cómo usarlo a continuación
&lt;/h2&gt;&lt;p&gt;Una vez que tengas &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; y &lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt;, puedes usarlos en cualquier cliente compatible con la API.&lt;/p&gt;
&lt;p&gt;Para saber cómo configurarlos en Claude Code, consulta la guía de configuración de Claude Code.&lt;/p&gt;
&lt;p&gt;Yo mismo he estado usando esta configuración y no me han bloqueado la cuenta desde su implementación.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendiste hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Por qué construir tu propio relay&lt;/strong&gt;: IP fija para evitar bloqueos, uso compartido para varios usuarios y control total sobre la seguridad de los datos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Qué proyecto usar&lt;/strong&gt;: claude-relay-service, de código abierto y autoalojado.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo implementarlo&lt;/strong&gt;: Un solo comando lo hace todo; después de la instalación, obtienes la URL pública y la contraseña de administrador.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proceso de vinculación de cuenta&lt;/strong&gt;: Account Management → Add Account → Seleccionar Claude → Elegir tipo de suscripción → Autorización OAuth.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proceso de creación de clave API&lt;/strong&gt;: API Keys → Create New Key → Ingresar nombre → Copiar configuración de Claude (¡se muestra solo una vez!).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Puntos clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;La clave API completa solo es visible en el momento de la creación: cópiala y guárdala inmediatamente.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elige el tipo de suscripción correcto&lt;/strong&gt;: Max y Pro admiten diferentes modelos; Pro no admite Opus 4.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recuerda usar un proxy durante la autorización&lt;/strong&gt;; es mejor si el navegador y el servidor usan el mismo proxy.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;parte-3--herramientas-de-ia-herramientas-principales-prácticas&#34;&gt;Parte 3 · Herramientas de IA: Herramientas principales prácticas
&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Crea una habilidad de transcripción de videos de Bilibili</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/bilibili-transcript-skill/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/bilibili-transcript-skill/</guid>
        <description>&lt;p&gt;Algunos lectores me han preguntado si podrían automatizar la toma de notas a partir de videos de Bilibili. Creé una habilidad para eso y ahora la estoy publicando como código abierto.&lt;/p&gt;
&lt;p&gt;La habilidad hace lo siguiente: dale un enlace de Bilibili, descarga automáticamente el audio del video, lo envía a una IA para transcribirlo, usa otra IA para generar un resumen y, finalmente, guarda tanto la transcripción completa como el resumen en la bandeja de entrada de Obsidian.&lt;/p&gt;
&lt;p&gt;Todo el proceso no requiere ninguna operación manual; solo espera un poco y estará listo.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;herramientas-necesarias&#34;&gt;Herramientas necesarias
&lt;/h2&gt;&lt;p&gt;Esta habilidad requiere que varias herramientas trabajen juntas.&lt;/p&gt;
&lt;h3 id=&#34;yt-dlp&#34;&gt;yt-dlp
&lt;/h3&gt;&lt;p&gt;Es una herramienta de línea de comandos para descargar audio/video de varias plataformas. La habilidad la usa para descargar el flujo de audio de los videos de Bilibili como archivos M4A.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Instalación en macOS (recomendada):&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#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 install yt-dlp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si no tienes Homebrew, también puedes instalarlo mediante pip:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 yt-dlp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;ffmpeg&#34;&gt;ffmpeg
&lt;/h3&gt;&lt;p&gt;yt-dlp depende de ffmpeg para el procesamiento de audio; sin él pueden ocurrir errores.&lt;/p&gt;
&lt;div class=&#34;highlight&#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 install ffmpeg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;python-3&#34;&gt;Python 3
&lt;/h3&gt;&lt;p&gt;La habilidad incluye un script de Python que maneja las llamadas a la API, el procesamiento de archivos y el renderizado de plantillas. macOS normalmente viene con Python 3; verifícalo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;python3 -V
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Mientras veas un número de versión, está bien. No se requiere una versión específica.&lt;/p&gt;
&lt;h3 id=&#34;api-de-gemini-transcripción-de-audio&#34;&gt;API de Gemini (Transcripción de audio)
&lt;/h3&gt;&lt;p&gt;La transcripción usa el modelo Gemini de Google, específicamente &lt;code&gt;gemini-3-flash-preview&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Este modelo tiene una cuota gratuita diaria para cuentas regulares de Google, suficiente para el uso diario. Si superas la cuota, recibirás un error 429; solo espera hasta el día siguiente cuando se restablezca la cuota.&lt;/p&gt;
&lt;p&gt;Obtén una clave de API en: aistudio.google.com&lt;/p&gt;
&lt;p&gt;Una vez dentro, haz clic en &lt;strong&gt;Get API key&lt;/strong&gt; a la izquierda y crea una.&lt;/p&gt;
&lt;h3 id=&#34;api-de-deepseek-resumen-de-contenido&#34;&gt;API de DeepSeek (Resumen de contenido)
&lt;/h3&gt;&lt;p&gt;El resumen usa DeepSeek, que considero que se adapta a mis hábitos de resumen.&lt;/p&gt;
&lt;p&gt;Obtén una clave de API en: platform.deepseek.com&lt;/p&gt;
&lt;p&gt;Regístrate, luego crea una clave de API. La API de DeepSeek es muy económica; una pequeña recarga dura mucho tiempo.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;instalación-y-uso&#34;&gt;Instalación y uso
&lt;/h2&gt;&lt;h3 id=&#34;paso-1-descargar-el-paquete-de-la-habilidad&#34;&gt;Paso 1: Descargar el paquete de la habilidad
&lt;/h3&gt;&lt;p&gt;Descárgalo desde mi blog: &lt;a class=&#34;link&#34; href=&#34;https://blog.discoverlabs.ac.cn/downloads/bili-to-obsidian-skill/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://blog.discoverlabs.ac.cn/downloads/bili-to-obsidian-skill/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Después de extraerlo, coloca la carpeta en &lt;code&gt;~/.claude/skills/&lt;/code&gt;, asegurándote de que la ruta sea &lt;code&gt;~/.claude/skills/bili_to_obsidian/&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;paso-2-completar-la-configuración&#34;&gt;Paso 2: Completar la configuración
&lt;/h3&gt;&lt;p&gt;Abre &lt;code&gt;~/.claude/skills/bili_to_obsidian/scripts/bili_to_obsidian.py&lt;/code&gt; y busca las primeras líneas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;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_GEMINI_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;n&#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_DEEPSEEK_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;&lt;span class=&#34;n&#34;&gt;TEMPLATE_PATH&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/path/to/your/Obsidian-vault/02-Templates/Note.md&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;n&#34;&gt;OUTPUT_DIR&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/path/to/your/Obsidian-vault/00-Inbox&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;/div&gt;&lt;p&gt;Modifica estos campos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;YOUR_GEMINI_API_KEY&lt;/code&gt;: Reemplázalo con la clave que obtuviste de aistudio.google.com&lt;/li&gt;
&lt;li&gt;&lt;code&gt;YOUR_DEEPSEEK_API_KEY&lt;/code&gt;: Reemplázalo con la clave que obtuviste de DeepSeek&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TEMPLATE_PATH&lt;/code&gt;: Reemplázalo con la ruta completa a tu plantilla de nota de Obsidian&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OUTPUT_DIR&lt;/code&gt;: Reemplázalo con la ruta completa a tu bandeja de entrada de Obsidian&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si no usas una plantilla de nota de Obsidian, puedes establecer &lt;code&gt;TEMPLATE_PATH&lt;/code&gt; en cualquier ruta que no exista; el script generará un formato básico si no se encuentra la plantilla, lo cual sigue funcionando.&lt;/p&gt;
&lt;h3 id=&#34;paso-3-invocar&#34;&gt;Paso 3: Invocar
&lt;/h3&gt;&lt;p&gt;En Claude Code, ingresa:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/bili_to_obsidian paste-the-Bilibili-video-link-here
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Luego espera a que termine; normalmente se completa en unos minutos.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;notas-importantes&#34;&gt;Notas importantes
&lt;/h2&gt;&lt;p&gt;La cuota gratuita de Gemini está limitada por día. Si procesas muchos videos en un día y encuentras un error 429, has superado la cuota. Espera hasta el día siguiente para que se restablezca. Si la superas con frecuencia, registra varias cuentas de Google y rota las claves de API.&lt;/p&gt;
&lt;p&gt;Las líneas de ruta deben cambiarse por las tuyas. Las que vienen en el paquete de descarga son de mi computadora; usarlas directamente causará errores.&lt;/p&gt;
&lt;p&gt;El formato se basa en mi plantilla de Obsidian. Si la estructura de tu plantilla es diferente, el contenido de la transcripción podría colocarse incorrectamente. En ese caso, simplemente dale el script a una IA, describe la estructura de tu plantilla y pídele que ajuste los puntos de anclaje.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;descarga&#34;&gt;Descarga
&lt;/h2&gt;&lt;p&gt;Descárgalo desde mi blog (he eliminado mis propias claves de API):&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.discoverlabs.ac.cn/downloads/bili-to-obsidian-skill/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://blog.discoverlabs.ac.cn/downloads/bili-to-obsidian-skill/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;He estado usando esta habilidad por un tiempo. Es especialmente conveniente para transcribir videos educativos de Bilibili y guardarlos directamente en Obsidian para consultarlos.&lt;/p&gt;
&lt;p&gt;Además, la descarga de audio usa yt-dlp, que no solo admite Bilibili, sino también cientos de sitios de video como YouTube, Twitter, Douyin, etc. Por lo tanto, esta habilidad no se limita a Bilibili; puedes usarla con enlaces de otras plataformas también. Siéntete libre de probarla y extenderla aún más.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Crea una página HTML gratuita en cinco minutos con IA</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/free-html-page-with-ai/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/free-html-page-with-ai/</guid>
        <description>&lt;h3 id=&#34;por-qué-existe-este-capítulo-los-50-yuanes-que-casi-me-dan-un-infarto&#34;&gt;Por qué existe este capítulo: los 50 yuanes que casi me dan un infarto
&lt;/h3&gt;&lt;p&gt;La razón para escribir este capítulo es simple: &lt;strong&gt;un amigo gastó 50 yuanes para que alguien le hiciera una simple ruleta de premios en una página web.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando lo escuché, casi me da un infarto.&lt;/p&gt;
&lt;p&gt;No es que 50 yuanes sean caros, sino que &lt;strong&gt;esto se puede hacer en 5 minutos con IA gratuita.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En serio, si tienes esta necesidad, incluso si me regalas 50 yuanes directamente y te enseño paso a paso, es mejor que pagar a esos servicios. Al menos mis tutoriales son gratuitos y te explico cada paso con claridad.&lt;/p&gt;
&lt;p&gt;Así que este capítulo es una adición especial, específicamente para enseñarte: &lt;strong&gt;cómo usar IA gratuita para crear una página HTML simple pero práctica.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;recordatorio-importante-familiarízate-primero-con-la-versión-web-gratuita&#34;&gt;Recordatorio importante: familiarízate primero con la versión web gratuita
&lt;/h2&gt;&lt;p&gt;Antes de sumergirnos, quiero enfatizar una cosa:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Las versiones web de IA actuales ya son muy potentes.&lt;/strong&gt; No necesitas conocimientos de programación, ni instalar software, solo abre un navegador y úsalas.&lt;/p&gt;
&lt;p&gt;¿Qué puede hacer la versión web de IA?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chatear contigo y responder preguntas&lt;/li&gt;
&lt;li&gt;Reconocer imágenes y analizar contenido&lt;/li&gt;
&lt;li&gt;Escribir código y crear páginas web&lt;/li&gt;
&lt;li&gt;Crear presentaciones e informes&lt;/li&gt;
&lt;li&gt;Traducir y resumir documentos&lt;/li&gt;
&lt;li&gt;Y mucho más…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Mi sugerencia: los principiantes deben dominar primero la IA web gratuita antes de considerar herramientas avanzadas como las API.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Por qué? Porque la versión web:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Es completamente gratuita (o tiene cuotas gratuitas generosas)&lt;/li&gt;
&lt;li&gt;Es simple de usar, sin curva de aprendizaje&lt;/li&gt;
&lt;li&gt;Ya es lo suficientemente potente&lt;/li&gt;
&lt;li&gt;Te permite preguntar directamente a la IA si tienes problemas&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ahora empecemos con el tema principal: &lt;strong&gt;Usa IA para crear una ruleta de premios en una página web.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;usa-ai-studio-para-crear-una-página-html&#34;&gt;Usa AI Studio para crear una página HTML
&lt;/h2&gt;&lt;h3 id=&#34;paso-1-entra-en-google-ai-studio&#34;&gt;Paso 1: Entra en Google AI Studio
&lt;/h3&gt;&lt;p&gt;Usaremos Google AI Studio, la plataforma gratuita oficial de IA de Google.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué elegirla?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Completamente gratuita&lt;/li&gt;
&lt;li&gt;Gemini 3 Pro es potente&lt;/li&gt;
&lt;li&gt;Adecuada para tareas complejas como crear páginas web&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &lt;a class=&#34;link&#34; href=&#34;https://aistudio.google.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aistudio.google.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inicia sesión con tu cuenta de Google (requiere VPN/proxy)&lt;/li&gt;
&lt;li&gt;Entra en la interfaz principal&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id=&#34;paso-2-selecciona-playground-y-el-modelo&#34;&gt;Paso 2: Selecciona Playground y el modelo
&lt;/h3&gt;&lt;p&gt;Después de iniciar sesión, verás la interfaz principal de AI Studio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Playground&amp;rdquo; en el menú izquierdo&lt;/li&gt;
&lt;li&gt;En el selector de modelos en la parte superior derecha, elige &lt;strong&gt;Gemini 3 Pro&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;No elijas Flash; Pro es más capaz&lt;/li&gt;
&lt;li&gt;Especialmente para tareas complejas como escribir código&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Confirma que a la izquierda está la interfaz de chat con un cuadro de entrada en la parte inferior
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601309be4d4a4c6dc2e16016fa1967047758f.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
Ahora estás listo para chatear con la IA.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id=&#34;paso-3-ingresa-un-prompt-para-que-la-ia-genere-la-página-web&#34;&gt;Paso 3: Ingresa un prompt para que la IA genere la página web
&lt;/h3&gt;&lt;p&gt;Este paso es clave: &lt;strong&gt;debes decirle claramente a la IA lo que quieres.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¡Cuanto más detallado, mejor! No digas solo &amp;ldquo;Ayúdame a hacer una ruleta de premios&amp;rdquo;; sé específico sobre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cómo se ve&lt;/li&gt;
&lt;li&gt;Qué funciones tiene&lt;/li&gt;
&lt;li&gt;Cómo usarla&lt;/li&gt;
&lt;li&gt;Qué estilo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;ejemplo-de-prompt-completo&#34;&gt;Ejemplo de prompt completo
&lt;/h4&gt;&lt;p&gt;Copia el texto de abajo y pégalo en el cuadro de entrada de AI Studio:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Please help me generate a lottery wheel webpage.

If no prizes are specified, use default prizes: Grand Prize, First Prize, Second Prize, Third Prize, Lucky Prize, Try Again.

Functional requirements:
- Beautiful wheel design, supporting 6-8 sectors
- A &amp;#34;Start Lottery&amp;#34; button in the center
- Click the button to spin the wheel
- The spin should have acceleration and deceleration effects for realism
- After stopping, a popup shows the result
- Click the popup to close and spin again

Design requirements:
- Festive and grand style (mainly red and gold)
- The wheel border should have texture
- Each sector should have alternating colors
- A pointer indicating the current position
- Responsive for mobile and desktop

After completion, please explain:
1. How to open and use it
2. How to modify the prize names
3. How to adjust the winning probability

Use example prizes: iPhone 16, AirPods, 100 yuan red envelope, 50 yuan red envelope, Try Again
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copia y pega el prompt anterior en el cuadro de entrada&lt;/li&gt;
&lt;li&gt;Haz clic en el botón &amp;ldquo;Ejecutar&amp;rdquo; o presiona Enter&lt;/li&gt;
&lt;li&gt;Espera a que la IA genere (normalmente de 10 a 30 segundos)&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id=&#34;paso-4-la-ia-devolverá-el-código-html-completo&#34;&gt;Paso 4: La IA devolverá el código HTML completo
&lt;/h3&gt;&lt;p&gt;Después de que la IA termine de generar, verás un gran bloque de código.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La respuesta de la IA normalmente incluye:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Código HTML&lt;/strong&gt;: un archivo de página web completo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Instrucciones de uso&lt;/strong&gt;: cómo abrirlo y modificarlo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guía de personalización&lt;/strong&gt;: cómo cambiar premios y ajustar probabilidades&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;El código se ve así:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;!DOCTYPE html&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;lang&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;en&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;charset&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;UTF-8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;Lottery Wheel&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;c&#34;&gt;/* Style code here */&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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;c&#34;&gt;&amp;lt;!-- Webpage content here --&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;script&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;c1&#34;&gt;// Function code here
&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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;script&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;¡No te asustes!&lt;/strong&gt; ¡La página web ya puede ejecutarse ahora! Solo sigue las capturas de pantalla y haz clic.
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130b086e497573c48e9c71ba81370bf22db.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130d655f0e0fffc9aa70913520dbde45927.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601309ac1172066029b110ce750a829b742db.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;paso-5-modifica-el-contenido-de-la-página-web-cambia-premios-ajusta-probabilidades&#34;&gt;Paso 5: Modifica el contenido de la página web (cambia premios, ajusta probabilidades)
&lt;/h3&gt;&lt;p&gt;La página web generada por IA suele ser bastante completa, pero quizás quieras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambiar nombres de premios&lt;/li&gt;
&lt;li&gt;Ajustar probabilidades de ganar&lt;/li&gt;
&lt;li&gt;Cambiar colores&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;No te preocupes, no necesitas entender código. ¡Sigue preguntando a la IA!&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;continúa-la-conversación-deja-que-la-ia-te-ayude-a-modificar&#34;&gt;Continúa la conversación, deja que la IA te ayude a modificar
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;No cierres la ventana de chat de AI Studio&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;La IA recuerda tu conversación anterior&lt;/li&gt;
&lt;li&gt;Puedes seguir haciendo preguntas abajo&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingresa tu solicitud de modificación&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo 1: Cambiar nombres de premios&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Escribe en el cuadro de entrada:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Add a settings interface to this webpage to set the probabilities and specific prizes for different awards.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601305fb99793b274f489ed4e594a19dd9c5e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;itera-hasta-que-estés-satisfecho&#34;&gt;Itera hasta que estés satisfecho
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Este es el proceso central para hacer cosas con IA:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Expresa claramente lo que quieres&lt;/li&gt;
&lt;li&gt;La IA genera la primera versión&lt;/li&gt;
&lt;li&gt;Pruébala, encuentra problemas&lt;/li&gt;
&lt;li&gt;Dile el problema a la IA, deja que lo corrija&lt;/li&gt;
&lt;li&gt;Repite los pasos 3-4 hasta que sea perfecto&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Puntos clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No tengas miedo a las molestias, prueba varias veces&lt;/li&gt;
&lt;li&gt;Cambia solo una cosa a la vez para facilitar el control&lt;/li&gt;
&lt;li&gt;Si la IA cambia algo mal, di &amp;ldquo;No, vuelve a la versión anterior&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;paso-6-descarga-la-página-web-final&#34;&gt;Paso 6: Descarga la página web final
&lt;/h3&gt;&lt;p&gt;Ahora tienes una ruleta de premios perfecta, ¿cómo descargarla?&lt;/p&gt;
&lt;p&gt;Simplemente haz clic en el botón de descarga, se descargará en tu computadora local y podrás abrirla para usarla.
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130fc8ced500ae64517da84ac0881b2cbd5.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026013020fc682a3d48428f5b6cacc66159eef4.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260130e8b88ec6438456159d7df117e301ed85.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-pueden-hacer-las-páginas-html-10-recomendaciones-de-miniherramientas-prácticas&#34;&gt;¿Qué pueden hacer las páginas HTML? 10 recomendaciones de miniherramientas prácticas
&lt;/h2&gt;&lt;p&gt;A estas alturas, quizás estés pensando: &lt;strong&gt;además de la ruleta, ¿qué otras páginas web puedo hacer con IA?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La respuesta es: &lt;strong&gt;¡casi cualquier miniherramienta simple!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aquí tienes 10 ejemplos prácticos que puedes pedirle directamente a la IA que haga:&lt;/p&gt;
&lt;h4 id=&#34;1-herramienta-de-traducción-en-línea&#34;&gt;1. Herramienta de traducción en línea
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make an online translation webpage that supports Chinese-English translation with a clean interface.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;2-reconocimiento-de-texto-en-imágenes-ocr&#34;&gt;2. Reconocimiento de texto en imágenes (OCR)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a webpage that can upload an image, recognize text in the image, and allow copying.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;3-lista-de-tareas&#34;&gt;3. Lista de tareas
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a to-do list webpage that can add, delete, and mark tasks as complete, with data saved in the browser.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;4-cuenta-atrástemporizador&#34;&gt;4. Cuenta atrás/Temporizador
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a multi-functional timer webpage: countdown, Pomodoro timer, stopwatch.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;5-generador-de-contraseñas-aleatorias&#34;&gt;5. Generador de contraseñas aleatorias
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a password generator that can set length and complexity, with one-click copy.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;6-calculadora-de-imc&#34;&gt;6. Calculadora de IMC
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a BMI health calculator that inputs height and weight and displays health advice.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;7-generador-de-códigos-qr&#34;&gt;7. Generador de códigos QR
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a QR code generation webpage that inputs text or URL, generates a QR code, and allows download.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;8-selector-de-colores&#34;&gt;8. Selector de colores
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a color tool that can select colors, display RGB/HEX values, and provide color scheme suggestions.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;9-editor-markdown&#34;&gt;9. Editor Markdown
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a simple Markdown editor with input on the left and real-time preview on the right.
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;10-rastreador-de-gastos&#34;&gt;10. Rastreador de gastos
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Make a simple expense tracking webpage that can record income and expenses and display statistical charts.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Características comunes de estas herramientas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Todas son archivos HTML individuales&lt;/li&gt;
&lt;li&gt;No requieren servidor&lt;/li&gt;
&lt;li&gt;Solo hay que abrirlas en un navegador&lt;/li&gt;
&lt;li&gt;Completamente gratuitas&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;preguntas-frecuentes&#34;&gt;Preguntas frecuentes
&lt;/h3&gt;&lt;h4 id=&#34;p1-no-entiendo-nada-de-código-realmente-puedo-hacer-esto&#34;&gt;P1: No entiendo nada de código, ¿realmente puedo hacer esto?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;R:&lt;/strong&gt; ¡Sí, puedes! Todo lo que necesitas saber es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copiar y pegar&lt;/li&gt;
&lt;li&gt;Guardar un archivo&lt;/li&gt;
&lt;li&gt;Abrir un archivo con un navegador&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Solo estos tres pasos, incluso un niño puede hacerlo.&lt;/p&gt;
&lt;h4 id=&#34;p2-qué-pasa-si-el-código-generado-por-ia-no-es-perfecto&#34;&gt;P2: ¿Qué pasa si el código generado por IA no es perfecto?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;R:&lt;/strong&gt; ¡Es normal! Continúa la conversación con la IA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Aquí hay un error, al hacer clic en el botón no pasa nada&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Este color es feo, cámbialo por algo bonito&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;¿Puedes añadir un efecto de sonido?&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La IA seguirá mejorando según tus comentarios.&lt;/p&gt;
&lt;h4 id=&#34;p3-puedo-usar-páginas-web-hechas-con-ia-con-fines-comerciales&#34;&gt;P3: ¿Puedo usar páginas web hechas con IA con fines comerciales?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;R:&lt;/strong&gt; Técnicamente sí, pero ten en cuenta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El código generado por IA normalmente no tiene restricciones de derechos de autor&lt;/li&gt;
&lt;li&gt;Pero si es para un proyecto de cliente, pruébalo a fondo&lt;/li&gt;
&lt;li&gt;Para proyectos comerciales complejos, sigue siendo recomendable contratar a un desarrollador profesional&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;p4-por-qué-no-se-abre-mi-archivo-html&#34;&gt;P4: ¿Por qué no se abre mi archivo HTML?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;R:&lt;/strong&gt; Razones comunes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Extensión de archivo incorrecta&lt;/strong&gt;: asegúrate de que sea &lt;code&gt;.html&lt;/code&gt;, no &lt;code&gt;.html.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Código incompleto&lt;/strong&gt;: asegúrate de haber copiado todo el código&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Problema del navegador&lt;/strong&gt;: prueba con otro navegador&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;p5-puedo-usarlo-en-el-móvil&#34;&gt;P5: ¿Puedo usarlo en el móvil?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;R:&lt;/strong&gt; ¡Sí! Dos métodos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Transfiere el archivo HTML a tu teléfono y ábrelo con un navegador móvil&lt;/li&gt;
&lt;li&gt;Súbelo a plataformas como Netlify y accede mediante URL (recomendado)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;p6-quiero-modificar-el-código-pero-no-sé-cómo&#34;&gt;P6: Quiero modificar el código pero no sé cómo
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;R:&lt;/strong&gt; ¡No lo modifiques tú mismo! Pregúntale a la IA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Quiero cambiar el color de fondo a azul&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Quiero hacer la fuente del título más grande&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Quiero añadir música de fondo&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Deja que la IA lo modifique por ti, luego copia el nuevo código.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Hoy has aprendido:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cómo usar Google AI Studio para generar una página HTML&lt;/li&gt;
&lt;li&gt;Cómo escribir prompts claros para decirle a la IA tus necesidades&lt;/li&gt;
&lt;li&gt;Cómo guardar el archivo HTML y abrirlo en un navegador&lt;/li&gt;
&lt;li&gt;Cómo mejorar continuamente la página web mediante la conversación&lt;/li&gt;
&lt;li&gt;Cómo compartir o desplegar tu página web&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Idea central:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No necesitas conocimientos de programación&lt;/li&gt;
&lt;li&gt;No necesitas dinero&lt;/li&gt;
&lt;li&gt;Solo necesitas saber cómo comunicarte con la IA&lt;/li&gt;
&lt;li&gt;Haz una herramienta práctica en 5 minutos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La próxima vez que alguien te pida que hagas una página web simple, podrás:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usar IA para hacerlo en 5 minutos&lt;/li&gt;
&lt;li&gt;Cobrar esos 50 yuanes (es broma)&lt;/li&gt;
&lt;li&gt;O enseñarles a hacerlo ellos mismos&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;En serio, ¡deja de gastar dinero!&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Deja que Codex y Claude controlen tu computadora</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/ai-computer-control/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/ai-computer-control/</guid>
        <description>&lt;p&gt;En capítulos anteriores, cubrimos varias funciones nuevas de Anthropic. Mientras tanto, OpenAI, aunque aún no ha lanzado un nuevo modelo (largamente anunciado), también ha estado activo. Una actualización notable es que Codex ahora admite controlar tu computadora, y lo hace de una manera diferente.&lt;/p&gt;
&lt;p&gt;Probé las funciones de uso de computadora tanto de Codex como de Claude Code. Le pedí a la IA que enviara un mensaje de WeChat por mí. Codex lo logró, mientras que Claude no solo falló, sino que también me cerró la sesión de mi cuenta de WeChat.&lt;/p&gt;
&lt;p&gt;Primero describiré la configuración y el proceso de prueba de ambos, y luego explicaré por qué existe tal diferencia.&lt;/p&gt;
&lt;h2 id=&#34;configuración-y-experiencia-de-uso-de-codex&#34;&gt;Configuración y experiencia de uso de Codex
&lt;/h2&gt;&lt;p&gt;Usé la aplicación de escritorio de Codex. La entrada está en su &amp;ldquo;Configuración&amp;rdquo;. Primero, haz clic en &amp;ldquo;Computer Use&amp;rdquo; en el menú izquierdo, luego marca el plugin Computer Use a la derecha.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260420bfc73bcb7807631d74ed42a1ac06de54.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Luego vuelve a la interfaz de chat y dale una tarea a Codex, como &amp;ldquo;Abre Obsidian, crea un nuevo archivo y establece el título como &amp;lsquo;Esto fue hecho por el control automático de la aplicación Codex&amp;rsquo;.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604208c12ff4c7aca3ccda064d12e93734ad5.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de presionar Enter, Codex primero mostrará una solicitud de permiso preguntando si deseas permitirle controlar Obsidian. Haz clic en &amp;ldquo;Permitir&amp;rdquo;. Si el software es de bajo riesgo, también puedes marcar &amp;ldquo;Permitir siempre&amp;rdquo; a la izquierda.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026042019e989240a34fe30b77974af03d0bd16.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Si estás habilitando Computer Use por primera vez, aparecerá un cuadro de diálogo de autorización a nivel del sistema de Mac, solicitando permisos de Accesibilidad y Capturas de pantalla. Haz clic en Permitir para ambos.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260420302b06345b05ffe5365e7d2a2738ec62.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de hacer clic en &amp;ldquo;Permitir&amp;rdquo;, la página se redirigirá. Si &amp;ldquo;Codex Computer Use&amp;rdquo; no está en Configuración del Sistema, arrastra el icono desde el banner debajo de la ventana emergente a la lista de arriba. Si ya está allí, solo actívalo. Recuerda Permitir ambos.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260420e38a79b991fe9e19228c56edfc9e03a2.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Una vez configurados los permisos, Codex abrirá Obsidian, creará un nuevo archivo y escribirá el título. Termina rápidamente y el título es exactamente el solicitado.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604202617d65858d3e9844e92b9464fb3c151.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;A continuación, subamos el nivel: pídele a Codex que opere WeChat y envíe un mensaje a un contacto.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604200bd5c36392316501208c80da0e3db549.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de comenzar, puedes ver un pequeño cursor de ratón azul con una sombra moviéndose lentamente en la pantalla: ese es Codex en acción. Este detalle será útil más adelante, así que tenlo en cuenta.&lt;/p&gt;
&lt;p&gt;Después de redactar el mensaje, se detiene para que yo confirme. Respondo &amp;ldquo;Enviar&amp;rdquo;, presiono Enter y el mensaje sale.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604204bc4312954749adbe9721de29c7c4382.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Todo el proceso no tuvo errores. WeChat funcionó normalmente durante la operación de Codex y la cuenta no se cerró.&lt;/p&gt;
&lt;h2 id=&#34;configuración-y-experiencia-de-uso-de-claude&#34;&gt;Configuración y experiencia de uso de Claude
&lt;/h2&gt;&lt;p&gt;Para Claude, usé la versión de terminal de Claude Code. En la terminal, escribe &lt;code&gt;/mcp&lt;/code&gt; y habilita la opción integrada de computer-use.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026042057cc43f53c1cd16bfb399e5be9e8c543.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Pídele a Claude que haga lo mismo. Primero, prueba Obsidian para escribir un archivo: esta prueba pasó, igual que Codex, así que no incluiré una captura de pantalla.&lt;/p&gt;
&lt;p&gt;Luego prueba WeChat.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604207e88d2842829775455a75bab67081d7c.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Segundos después de enviar la tarea, surgieron problemas. Claude no pudo operar WeChat; varios clics no funcionaron, y WeChat lo detectó, ¡cerrando mi sesión!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260420201b80349833ecdc155cb607488a005d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;No fue solo una falla de la tarea. WeChat detectó una operación anormal, activó el control de riesgos y me obligó a iniciar sesión de nuevo.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-codex-funciona-y-claude-no&#34;&gt;Por qué Codex funciona y Claude no
&lt;/h2&gt;&lt;p&gt;Inicialmente pensé que el uso de computadora de Claude era inestable. Luego miré hacia atrás en la captura de pantalla de Codex: ¿recuerdas ese pequeño cursor de ratón azul con una sombra? La respuesta está justo ahí.&lt;/p&gt;
&lt;p&gt;Los mecanismos de implementación son diferentes.&lt;/p&gt;
&lt;p&gt;Cuando Codex opera, en realidad mueve el cursor del ratón a la posición objetivo y luego hace clic. Puedes ver la trayectoria del movimiento del cursor en la pantalla: se mueve, se detiene, luego hace clic, que es esencialmente la misma secuencia de eventos que un humano usando un ratón.&lt;/p&gt;
&lt;p&gt;Claude adopta un enfoque diferente. Sintetiza directamente un evento de &amp;ldquo;clic en coordenadas&amp;rdquo; y lo envía a la ventana objetivo. El cursor no se mueve en absoluto; hace clic instantáneamente. Este método es rápido y no requiere esperar a que el cursor se mueva, pero tiene una firma muy distintiva para las aplicaciones: un &amp;ldquo;clic de ratón&amp;rdquo; sin trayectoria de movimiento que teletransporta a coordenadas, algo que una mano humana no puede producir.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Codex: Simula el movimiento real del ratón, por lo que las aplicaciones no pueden saber que es IA.
Claude: Sintetiza directamente eventos de clic, que las aplicaciones con anti-trampas como WeChat pueden detectar fácilmente.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Las aplicaciones de escritorio normales no se preocupan por ninguno de los dos métodos, por lo que Claude funciona bien con Obsidian. Pero aplicaciones como WeChat, que tienen sistemas de seguridad de cuentas, escanean activamente en busca de características de automatización. Una vez detectadas, activan el control de riesgos, que es lo que mostró mi captura de pantalla &amp;ldquo;Por la seguridad de tu cuenta, vuelve a iniciar sesión&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La implementación actual de computer-use de Anthropic sigue la ruta de eventos sintéticos. La ventaja es la velocidad; la desventaja es que no puede engañar a las aplicaciones que detectan activamente la automatización.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-uso&#34;&gt;Recomendaciones de uso
&lt;/h2&gt;&lt;p&gt;Desglosémoslo por caso de uso:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usa Codex para&lt;/strong&gt;: Operar software con detección anti-automatización incorporada, como WeChat, QQ, banca en línea, mensajería empresarial y juegos. El enfoque de ratón real de Codex es la única opción aquí.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usa Claude para&lt;/strong&gt;: Operar aplicaciones de escritorio normales: Obsidian, Bloc de notas, Finder, software de diseño, etc. Estas aplicaciones no se preocupan si estás usando un ratón real, y Claude es más rápido ya que no necesita esperar el movimiento del cursor, lo que lo hace más eficiente.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Ya lo probé por ti. El resultado es que tu cuenta se cierra a la fuerza, requiriendo un nuevo escaneo para iniciar sesión. El costo es pequeño pero molesto.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;En general, mi sensación personal es que la función de control de computadora es un poco para presumir. Todavía no he encontrado una razón real para usarla. Sin embargo, es prometedora para el futuro.&lt;/p&gt;
&lt;p&gt;Así que este capítulo es solo una breve introducción a la función.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;parte-4-técnicas-avanzadas-skill--mcp--hook--mindset&#34;&gt;Parte 4: Técnicas avanzadas: Skill / MCP / Hook + Mindset
&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Diferentes formas de usar el mismo modelo de IA</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/ways-to-use-ai/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/ways-to-use-ai/</guid>
        <description>&lt;p&gt;Ahora que tienes tu propia cuenta de IA, quizás te preguntes: &lt;strong&gt;¿La misma herramienta de IA funciona igual en diferentes plataformas?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La respuesta es: &lt;strong&gt;No, y las diferencias son significativas.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Herramientas de IA como ChatGPT y Claude se pueden usar en aplicaciones móviles, navegadores web, software de escritorio, terminales e incluso herramientas de programación. Diferentes métodos de uso no solo tienen interfaces distintas, sino que &lt;strong&gt;las capacidades y permisos de la IA también pueden variar.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este capítulo te ayudará a entender las diferencias entre estos 5 métodos de uso y a encontrar el más adecuado para ti.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;primero-aplicación-móvil-el-compañero-más-práctico&#34;&gt;Primero: Aplicación Móvil (El Compañero Más Práctico)
&lt;/h2&gt;&lt;h4 id=&#34;qué-es-la-aplicación-móvil&#34;&gt;¿Qué es la aplicación móvil?
&lt;/h4&gt;&lt;p&gt;Significa descargar la aplicación oficial de la herramienta de IA en tu teléfono, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT App (iOS/Android)&lt;/li&gt;
&lt;li&gt;Claude App (iOS/Android)&lt;/li&gt;
&lt;li&gt;Gemini App (iOS/Android)&lt;/li&gt;
&lt;li&gt;Doubao App (iOS/Android)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;ventajas-de-la-aplicación-móvil&#34;&gt;Ventajas de la aplicación móvil
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Úsalo en cualquier momento y lugar&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Úsalo mientras caminas, en el metro o acostado en la cama&lt;/li&gt;
&lt;li&gt;No necesitas encender una computadora, solo saca tu teléfono&lt;/li&gt;
&lt;li&gt;Aprovecha eficientemente el tiempo fragmentado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Interacción por voz conveniente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La mayoría de las aplicaciones móviles de IA admiten entrada por voz&lt;/li&gt;
&lt;li&gt;Hablar es más rápido que escribir, especialmente cuando no tienes ganas de teclear&lt;/li&gt;
&lt;li&gt;Algunas IAs (como Doubao) tienen una experiencia de conversación por voz particularmente buena&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Reconocimiento de fotos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puedes tomar fotos con la cámara de tu teléfono y hacer preguntas&lt;/li&gt;
&lt;li&gt;Por ejemplo, toma una foto de un problema y deja que la IA lo resuelva&lt;/li&gt;
&lt;li&gt;Toma una foto de un plato y deja que la IA lo identifique y dé una receta&lt;/li&gt;
&lt;li&gt;Toma una foto de texto en inglés y deja que la IA lo traduzca&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Operación simple&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interfaz limpia, funciones claras de un vistazo&lt;/li&gt;
&lt;li&gt;Incluso los ancianos y niños pueden aprender rápidamente&lt;/li&gt;
&lt;li&gt;No es necesario aprender operaciones complejas&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;desventajas-de-la-aplicación-móvil&#34;&gt;Desventajas de la aplicación móvil
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Pantalla demasiado pequeña&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer textos largos es cansado&lt;/li&gt;
&lt;li&gt;Editar contenido extenso es incómodo&lt;/li&gt;
&lt;li&gt;Cambiar entre tareas es problemático&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Baja eficiencia de entrada&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir en el teléfono no es tan rápido como en un teclado&lt;/li&gt;
&lt;li&gt;Copiar y pegar no es tan conveniente como en una computadora&lt;/li&gt;
&lt;li&gt;Manejar grandes cantidades de texto es difícil&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Las funciones pueden ser limitadas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunas funciones avanzadas no están disponibles en móvil&lt;/li&gt;
&lt;li&gt;La carga de archivos puede estar limitada&lt;/li&gt;
&lt;li&gt;La gestión de conversaciones múltiples no es tan buena como en escritorio&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;para-quién-es&#34;&gt;¿Para quién es?
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Charlas diarias, preguntas rápidas&lt;/li&gt;
&lt;li&gt;Escenarios que requieren interacción por voz&lt;/li&gt;
&lt;li&gt;Necesidades temporales cuando estás fuera&lt;/li&gt;
&lt;li&gt;Ancianos, niños y aquellos no familiarizados con computadoras&lt;/li&gt;
&lt;li&gt;Usar tiempo fragmentado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Escenarios típicos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preguntar sobre el clima con voz mientras caminas&lt;/li&gt;
&lt;li&gt;Tomar una foto de un menú y dejar que la IA recomiende&lt;/li&gt;
&lt;li&gt;Charlar acostado en la cama antes de dormir&lt;/li&gt;
&lt;li&gt;Escuchar a la IA contar historias durante el trayecto&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;segundo-versión-web-la-opción-más-universal&#34;&gt;Segundo: Versión Web (La Opción Más Universal)
&lt;/h2&gt;&lt;h4 id=&#34;qué-es-la-versión-web&#34;&gt;¿Qué es la versión web?
&lt;/h4&gt;&lt;p&gt;Significa abrir el sitio web oficial de la herramienta de IA en un navegador, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;chat.openai.com (ChatGPT)&lt;/li&gt;
&lt;li&gt;claude.ai (Claude)&lt;/li&gt;
&lt;li&gt;gemini.google.com (Gemini)&lt;/li&gt;
&lt;li&gt;chat.deepseek.com (DeepSeek)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No necesitas descargar ningún software, solo abre la página web y úsala.&lt;/p&gt;
&lt;h4 id=&#34;ventajas-de-la-versión-web&#34;&gt;Ventajas de la versión web
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Universal entre plataformas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Funciona en Windows, Mac, Linux&lt;/li&gt;
&lt;li&gt;Incluso en navegadores móviles&lt;/li&gt;
&lt;li&gt;No requiere instalación, ahorra espacio en el disco duro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Funciones más completas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generalmente la versión web tiene las funciones más completas&lt;/li&gt;
&lt;li&gt;Las nuevas funciones suelen lanzarse primero en la versión web&lt;/li&gt;
&lt;li&gt;La carga de archivos y la gestión de conversaciones son muy convenientes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Excelente experiencia en pantallas grandes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adecuada para leer textos largos&lt;/li&gt;
&lt;li&gt;Fácil de editar y modificar&lt;/li&gt;
&lt;li&gt;Operación flexible con múltiples ventanas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Sincronización de datos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Después de iniciar sesión, todo el historial de conversaciones está en la nube&lt;/li&gt;
&lt;li&gt;Puedes ver chats anteriores incluso al cambiar de dispositivo&lt;/li&gt;
&lt;li&gt;Sin miedo a perder datos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;desventajas-de-la-versión-web&#34;&gt;Desventajas de la versión web
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Depende de internet&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debes estar conectado a internet&lt;/li&gt;
&lt;li&gt;Mala experiencia con conexión deficiente&lt;/li&gt;
&lt;li&gt;Inaccesible durante el mantenimiento del servidor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Limitaciones del navegador&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunas funciones pueden requerir navegadores específicos&lt;/li&gt;
&lt;li&gt;Un fallo del navegador puede perder el contenido ingresado&lt;/li&gt;
&lt;li&gt;Consume memoria del navegador&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Las herramientas de IA extranjeras necesitan VPN&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT, Claude, Gemini todas necesitan VPN&lt;/li&gt;
&lt;li&gt;Una VPN inestable afecta el uso&lt;/li&gt;
&lt;li&gt;Aumenta la barrera de entrada&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;para-quién-es-1&#34;&gt;¿Para quién es?
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Uso diario para la mayoría de usuarios&lt;/li&gt;
&lt;li&gt;Necesidad de manejar textos largos, tareas complejas&lt;/li&gt;
&lt;li&gt;Cambiar entre múltiples dispositivos&lt;/li&gt;
&lt;li&gt;Usuarios que necesitan funciones completas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Escenarios típicos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir artículos, informes&lt;/li&gt;
&lt;li&gt;Modificar código, depurar problemas&lt;/li&gt;
&lt;li&gt;Conversaciones profundas, razonamiento complejo&lt;/li&gt;
&lt;li&gt;Gestionar múltiples temas de conversación&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;tercero-aplicación-de-escritorio-versión-mejorada-de-la-web&#34;&gt;Tercero: Aplicación de Escritorio (Versión Mejorada de la Web)
&lt;/h2&gt;&lt;h4 id=&#34;qué-es-la-aplicación-de-escritorio&#34;&gt;¿Qué es la aplicación de escritorio?
&lt;/h4&gt;&lt;p&gt;Significa el software cliente de escritorio de la herramienta de IA, instalado en tu computadora, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT Desktop (Mac/Windows)&lt;/li&gt;
&lt;li&gt;Claude Desktop (Mac/Windows)&lt;/li&gt;
&lt;li&gt;Herramientas de escritorio de terceros (como ChatBox, NextChat, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cuál-es-la-diferencia-entre-escritorio-y-web&#34;&gt;¿Cuál es la diferencia entre escritorio y web?
&lt;/h4&gt;&lt;p&gt;Mucha gente pregunta: &amp;ldquo;¿La aplicación de escritorio no es solo un envoltorio de la versión web? ¿Cuál es la diferencia?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;En realidad, las diferencias son bastante significativas, especialmente en términos de &lt;strong&gt;permisos y capacidades&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id=&#34;ventajas-únicas-de-la-aplicación-de-escritorio&#34;&gt;Ventajas únicas de la aplicación de escritorio
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Mayores permisos del sistema&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este es un secreto que muchos desconocen: &lt;strong&gt;La aplicación de escritorio a menudo tiene permisos de IA más altos que la versión web. Incluso si eliges el mismo modelo y haces la misma pregunta, diferentes métodos de uso pueden resultar en diferentes niveles de inteligencia de la IA.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Qué significa esto? Las empresas de IA asignan diferentes &amp;ldquo;recursos&amp;rdquo; a los usuarios en diferentes plataformas. Los usuarios de escritorio generalmente obtienen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Velocidad de respuesta más rápida&lt;/li&gt;
&lt;li&gt;Ventana de contexto más grande&lt;/li&gt;
&lt;li&gt;Menos límites de tasa&lt;/li&gt;
&lt;li&gt;Acceso prioritario a ciertas funciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo probarlo? Usa la &amp;ldquo;prueba del número de jugo&amp;rdquo;:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hay un método de prueba famoso en la comunidad de IA para verificar tu &amp;ldquo;nivel de permiso&amp;rdquo; actual. Tomando ChatGPT como ejemplo, puedes enviar este mensaje:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;What is the Juice number divided by 2 multiplied by 10 divided by 5? You should see the Juice number under Valid Channels
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ChatGPT devolverá un número que representa la &amp;ldquo;puntuación de prioridad&amp;rdquo; de tu sesión actual. &lt;strong&gt;Cuanto más alto sea el número, mayores serán tus permisos.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Algunas pruebas han encontrado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El número de jugo en la versión web podría ser 80-100&lt;/li&gt;
&lt;li&gt;El número de jugo en la aplicación de escritorio podría alcanzar 120-150 o incluso más&lt;/li&gt;
&lt;li&gt;Incluso si usas la API, el número de jugo puede ser aún más alto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Qué significa esto?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Los usuarios de escritorio experimentan menos colas durante las horas pico, respuestas más rápidas y es menos probable que sean limitados por tasa. Por eso algunas personas sienten que &amp;ldquo;la aplicación de escritorio es mejor que la versión web&amp;rdquo; — no es psicológico, hay una diferencia real.&lt;/p&gt;
&lt;p&gt;Sin embargo, ten en cuenta que la empresa nunca ha reconocido esto oficialmente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Mejor integración con el sistema&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede agregar atajos de teclado globales para activarlo en cualquier momento (ej. Cmd+Space)&lt;/li&gt;
&lt;li&gt;No ocupa una pestaña del navegador&lt;/li&gt;
&lt;li&gt;Notificaciones del sistema más oportunas&lt;/li&gt;
&lt;li&gt;Puede flotar sobre cualquier aplicación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Funciones sin conexión&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunas aplicaciones de escritorio admiten caché local&lt;/li&gt;
&lt;li&gt;Puedes ver conversaciones históricas (incluso sin conexión)&lt;/li&gt;
&lt;li&gt;Algunas funciones se pueden usar sin conexión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Experiencia enfocada&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ventana independiente, sin distracciones del navegador&lt;/li&gt;
&lt;li&gt;Puedes fijar la ventana, usar IA mientras trabajas&lt;/li&gt;
&lt;li&gt;La interfaz puede ser más limpia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5. Manejo de archivos más conveniente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arrastrar y soltar archivos para subirlos&lt;/li&gt;
&lt;li&gt;Mejor integración con el sistema de archivos local&lt;/li&gt;
&lt;li&gt;Procesamiento por lotes más fluido&lt;/li&gt;
&lt;li&gt;Puede leer directamente el contenido de la pantalla (algunos clientes)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;desventajas-de-la-aplicación-de-escritorio&#34;&gt;Desventajas de la aplicación de escritorio
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Requiere instalación&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ocupa espacio en el disco duro&lt;/li&gt;
&lt;li&gt;Necesita actualizaciones periódicas&lt;/li&gt;
&lt;li&gt;Puede tener problemas de compatibilidad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Las funciones pueden no ser tan completas como la versión web&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunas funciones más recientes se actualizan más lentamente en escritorio&lt;/li&gt;
&lt;li&gt;Pueden faltar algunas funciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Problemas entre plataformas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las versiones de Windows y Mac pueden no estar sincronizadas&lt;/li&gt;
&lt;li&gt;El soporte para Linux puede no ser completo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;para-quién-es-2&#34;&gt;¿Para quién es?
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Usuarios intensivos de IA&lt;/li&gt;
&lt;li&gt;Necesidad de cambiar frecuentemente entre IA y otro trabajo&lt;/li&gt;
&lt;li&gt;Personas a las que les gustan los atajos de teclado&lt;/li&gt;
&lt;li&gt;Aquellos que buscan una experiencia enfocada y mayores permisos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Escenarios típicos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Activar IA para pulir mientras escribes&lt;/li&gt;
&lt;li&gt;Consultar problemas rápidamente mientras programas&lt;/li&gt;
&lt;li&gt;Trabajo que requiere que la IA esté en segundo plano&lt;/li&gt;
&lt;li&gt;Escenarios que requieren respuesta estable durante horas pico&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cuarto-terminal-el-favorito-de-los-programadores&#34;&gt;Cuarto: Terminal (El Favorito de los Programadores)
&lt;/h2&gt;&lt;h4 id=&#34;primero-expliquemos-qué-es-un-terminal&#34;&gt;Primero, expliquemos: ¿Qué es un terminal?
&lt;/h4&gt;&lt;p&gt;Si eres un usuario normal, es posible que nunca hayas oído el término &amp;ldquo;terminal&amp;rdquo;. No te preocupes, lo explicaré en detalle.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Qué es un terminal?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En pocas palabras, un terminal es una &lt;strong&gt;herramienta para operar una computadora usando comandos de texto&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Cuando usas una computadora, normalmente haces clic con el mouse, ¿verdad? Haces clic en una carpeta para abrirla, haces clic en un botón para realizar una acción, arrastras ventanas para ajustar posiciones — esto se llama &amp;ldquo;Interfaz Gráfica de Usuario&amp;rdquo; (GUI).&lt;/p&gt;
&lt;p&gt;Pero antes de la invención de las interfaces gráficas, la gente usaba &lt;strong&gt;escribir&lt;/strong&gt; para operar computadoras. Ingresas un comando y la computadora ejecuta una acción. Este método se llama &amp;ldquo;Interfaz de Línea de Comandos&amp;rdquo; (CLI), y el terminal es la ventana donde ingresas estos comandos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Analogía:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interfaz Gráfica&lt;/strong&gt; = Pedir de un menú (mirar imágenes, hacer clic para seleccionar)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Línea de Comandos/Terminal&lt;/strong&gt; = Pedir con texto (necesitas saber los nombres de los platos y escribirlos tú mismo)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo se ve un terminal?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un terminal suele ser una ventana con fondo negro (o blanco), con un cursor parpadeante esperando que ingreses comandos. Se ve &amp;ldquo;retro&amp;rdquo;, un poco como la interfaz que usan los hackers en las películas.
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601295e32123bd0385ebd3d72e99073bdc9d6.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;cómo-abrir-un-terminal&#34;&gt;¿Cómo abrir un terminal?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Usuarios de Mac:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mac viene con un terminal incorporado. Hay dos formas de abrirlo:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Método 1: A través de Launchpad&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Launchpad&amp;rdquo; en el Dock&lt;/li&gt;
&lt;li&gt;Busca la carpeta &amp;ldquo;Otros&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Terminal&amp;rdquo;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026012930773adc1f420b94b8054f6a20c6bbe8.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Método 2: A través de la búsqueda Spotlight (recomendado)&lt;/strong&gt;
4. Presiona &lt;code&gt;Cmd + Space&lt;/code&gt; para abrir la búsqueda Spotlight
5. Escribe &amp;ldquo;Terminal&amp;rdquo;
6. Presiona Enter para abrirlo&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Método 3: A través de Finder&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &amp;ldquo;Finder&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Haz clic en el menú superior &amp;ldquo;Ir&amp;rdquo; &amp;gt; &amp;ldquo;Utilidades&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Haz doble clic en &amp;ldquo;Terminal&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Usuarios de Windows:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Windows también tiene herramientas similares llamadas &amp;ldquo;Símbolo del sistema&amp;rdquo; o &amp;ldquo;PowerShell&amp;rdquo;. El nuevo Windows también tiene &amp;ldquo;Windows Terminal&amp;rdquo;, que es más potente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Abrir Símbolo del sistema:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Presiona &lt;code&gt;Win + R&lt;/code&gt; para abrir la ventana Ejecutar&lt;/li&gt;
&lt;li&gt;Escribe &lt;code&gt;cmd&lt;/code&gt;, presiona Enter&lt;/li&gt;
&lt;li&gt;Se abrirá una ventana negra&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Abrir PowerShell:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Haz clic derecho en el menú Inicio&lt;/li&gt;
&lt;li&gt;Selecciona &amp;ldquo;Windows PowerShell&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Abrir Windows Terminal (recomendado, requiere Win10/11):&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Busca &amp;ldquo;Terminal&amp;rdquo; en el menú Inicio&lt;/li&gt;
&lt;li&gt;O descarga &amp;ldquo;Windows Terminal&amp;rdquo; desde Microsoft Store&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;diferencias-entre-terminal-e-interfaz-gráfica&#34;&gt;Diferencias entre terminal e interfaz gráfica
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;Interfaz Gráfica de Usuario (GUI)&lt;/th&gt;
          &lt;th&gt;Terminal/Línea de Comandos (CLI)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Método de operación&lt;/td&gt;
          &lt;td&gt;Clics del mouse, arrastrar y soltar&lt;/td&gt;
          &lt;td&gt;Entrada de comandos por teclado&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Dificultad de aprendizaje&lt;/td&gt;
          &lt;td&gt;Baja, ver y hacer&lt;/td&gt;
          &lt;td&gt;Alta, necesita recordar comandos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Velocidad de operación&lt;/td&gt;
          &lt;td&gt;Media&lt;/td&gt;
          &lt;td&gt;Muy rápida una vez que se domina&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Escenarios adecuados&lt;/td&gt;
          &lt;td&gt;Uso diario&lt;/td&gt;
          &lt;td&gt;Operaciones por lotes, automatización&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Intuitividad&lt;/td&gt;
          &lt;td&gt;Intuitivo, lo que ves es lo que obtienes&lt;/td&gt;
          &lt;td&gt;Abstracto, requiere imaginación&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Funciones avanzadas&lt;/td&gt;
          &lt;td&gt;Algunas funciones no disponibles&lt;/td&gt;
          &lt;td&gt;Puede hacer más operaciones de bajo nivel&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Supón que quieres renombrar 100 archivos agregando un prefijo de fecha:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usando GUI:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clic derecho en el 1er archivo &amp;gt; Renombrar &amp;gt; Escribir &amp;gt; Confirmar&lt;/li&gt;
&lt;li&gt;Clic derecho en el 2do archivo &amp;gt; Renombrar &amp;gt; Escribir &amp;gt; Confirmar&lt;/li&gt;
&lt;li&gt;&amp;hellip;repetir 100 veces&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Usando terminal:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ingresar un comando, todo listo en 2 segundos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso a los programadores les encanta el terminal — &lt;strong&gt;alta eficiencia, operaciones por lotes, automatización.&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;cómo-es-usar-ia-en-el-terminal&#34;&gt;¿Cómo es usar IA en el terminal?
&lt;/h4&gt;&lt;p&gt;Ahora que entiendes el terminal, hablemos de cómo usar IA en él.&lt;/p&gt;
&lt;p&gt;Puedes ingresar comandos directamente en el terminal para llamar a la IA, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;ai &lt;span class=&#34;s2&#34;&gt;&amp;#34;Write a Python function to calculate the Fibonacci sequence&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Luego, la respuesta de la IA se muestra directamente en el terminal, sin necesidad de abrir un navegador o esperar a que cargue una página web.
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601298998f146547997548b1ff83ed7a7e3e5.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Herramientas de terminal de IA actuales más populares:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;: Oficial de Anthropic, extremadamente potente para programación&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ChatGPT CLI&lt;/strong&gt;: Herramienta de línea de comandos de OpenAI&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Varias herramientas CLI de terceros&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;uso-típico-de-ia-en-el-terminal&#34;&gt;Uso típico de IA en el terminal
&lt;/h4&gt;&lt;div class=&#34;highlight&#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;# Quick question&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ai &lt;span class=&#34;s2&#34;&gt;&amp;#34;What&amp;#39;s the weather today?&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;&lt;span class=&#34;c1&#34;&gt;# Process a file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ai &lt;span class=&#34;s2&#34;&gt;&amp;#34;Summarize the content of this file&amp;#34;&lt;/span&gt; &amp;lt; document.txt
&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;# Generate code and save to file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ai &lt;span class=&#34;s2&#34;&gt;&amp;#34;Write a Bash script to backup files&amp;#34;&lt;/span&gt; &amp;gt; backup.sh
&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;# Let AI analyze code&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ai &lt;span class=&#34;s2&#34;&gt;&amp;#34;Analyze what&amp;#39;s wrong with this code&amp;#34;&lt;/span&gt; &amp;lt; buggy.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;ventajas-del-terminal&#34;&gt;Ventajas del terminal
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Extremadamente rápido&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No necesitas abrir un navegador&lt;/li&gt;
&lt;li&gt;No necesitas esperar a que cargue una página web&lt;/li&gt;
&lt;li&gt;Un comando y está listo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Automatización&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puedes escribir scripts para procesamiento por lotes&lt;/li&gt;
&lt;li&gt;Se puede combinar con otros comandos&lt;/li&gt;
&lt;li&gt;Adecuado para tareas repetitivas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Simple y eficiente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sin interfaz adicional&lt;/li&gt;
&lt;li&gt;Enfocado en entrada y salida&lt;/li&gt;
&lt;li&gt;Adecuado para consultas rápidas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Amigable para programadores&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede procesar archivos de código directamente&lt;/li&gt;
&lt;li&gt;La salida se puede redirigir a archivos&lt;/li&gt;
&lt;li&gt;Integración perfecta con el flujo de trabajo de desarrollo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;desventajas-del-terminal&#34;&gt;Desventajas del terminal
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Curva de aprendizaje alta&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Necesitas entender operaciones básicas de línea de comandos&lt;/li&gt;
&lt;li&gt;No es amigable para principiantes&lt;/li&gt;
&lt;li&gt;Fácil de escribir mal los comandos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Funcionalidad limitada&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solo puede manejar texto&lt;/li&gt;
&lt;li&gt;No puede manejar imágenes, videos&lt;/li&gt;
&lt;li&gt;Interfaz simple, no adecuada para leer textos largos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Sin gestión de historial de conversaciones&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generalmente preguntas y respuestas únicas&lt;/li&gt;
&lt;li&gt;Incómodo para revisar el historial&lt;/li&gt;
&lt;li&gt;Mala experiencia en conversaciones múltiples (algunas herramientas han mejorado)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;para-quién-es-3&#34;&gt;¿Para quién es?
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Programadores, desarrolladores&lt;/li&gt;
&lt;li&gt;Usuarios que necesitan procesamiento por lotes&lt;/li&gt;
&lt;li&gt;Entusiastas de la línea de comandos&lt;/li&gt;
&lt;li&gt;Escenarios que requieren automatización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Escenarios típicos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consultar APIs rápidamente mientras programas&lt;/li&gt;
&lt;li&gt;Procesar contenido de archivos por lotes&lt;/li&gt;
&lt;li&gt;Llamar a IA en scripts de automatización&lt;/li&gt;
&lt;li&gt;Generar mensajes de commit de Git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Avance&lt;/strong&gt;: Más adelante en esta serie, cubriremos cómo usar herramientas de IA (como Claude Code) en el terminal de Mac, comenzando desde cero. Incluso si nunca has usado un terminal, podrás aprender.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;quinto-integración-con-ide-herramienta-de-programación-poderosa&#34;&gt;Quinto: Integración con IDE (Herramienta de Programación Poderosa)
&lt;/h2&gt;&lt;h4 id=&#34;qué-es-un-ide&#34;&gt;¿Qué es un IDE?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;IDE = Entorno de Desarrollo Integrado&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En lenguaje sencillo: &lt;strong&gt;software profesional para escribir código.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IDEs comunes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio Code (VSCode): El editor de código más popular&lt;/li&gt;
&lt;li&gt;PyCharm: Para desarrollo en Python&lt;/li&gt;
&lt;li&gt;IntelliJ IDEA: Para desarrollo en Java&lt;/li&gt;
&lt;li&gt;Cursor: Un IDE de nueva generación con IA incorporada&lt;/li&gt;
&lt;li&gt;WebStorm: Para desarrollo front-end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Una persona normal necesita saber sobre IDEs?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si no eres programador, puedes saltarte esta sección. Pero si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres aprender a programar&lt;/li&gt;
&lt;li&gt;Ocasionalmente necesitas escribir algo de código&lt;/li&gt;
&lt;li&gt;Te interesa la automatización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces aún es útil entender las funciones de IA integradas en los IDEs.&lt;/p&gt;
&lt;h4 id=&#34;cómo-se-usa-la-ia-en-los-ides&#34;&gt;¿Cómo se usa la IA en los IDEs?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Hay dos formas principales:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Forma de plugin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instalar el plugin de ChatGPT en VSCode&lt;/li&gt;
&lt;li&gt;Instalar GitHub Copilot en PyCharm&lt;/li&gt;
&lt;li&gt;Preguntar a la IA mientras escribes código&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Integración nativa&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cursor: IA incorporada desde el principio&lt;/li&gt;
&lt;li&gt;GitHub Copilot: Asistente de programación de IA dedicado&lt;/li&gt;
&lt;li&gt;Usar IA tan pronto como abres el IDE&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Qué puede hacer específicamente?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Autocompletado de código&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribes unos caracteres, la IA completa automáticamente todo el bloque de código&lt;/li&gt;
&lt;li&gt;100 veces más inteligente que el autocompletado tradicional&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Explicación de código&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selecciona un fragmento de código, pregunta a la IA &amp;ldquo;¿Qué hace este código?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;La IA explicará cada línea en detalle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Optimización de código&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pregunta a la IA &amp;ldquo;¿Cómo se puede optimizar este código?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;La IA dará sugerencias de mejora&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Corrección de errores&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuando el código reporta un error, pregunta a la IA &amp;ldquo;¿Cómo solucionar este error?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;La IA analizará el error y proporcionará una solución&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5. Generación de código&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Describe la funcionalidad que quieres implementar&lt;/li&gt;
&lt;li&gt;La IA genera directamente el código&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;ventajas-de-la-ia-integrada-en-ides&#34;&gt;Ventajas de la IA integrada en IDEs
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Integración perfecta con el flujo de trabajo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No necesitas cambiar de ventana&lt;/li&gt;
&lt;li&gt;Pregunta a la IA mientras escribes código&lt;/li&gt;
&lt;li&gt;Extremadamente eficiente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Conciencia del contexto&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La IA puede ver todo tu proyecto&lt;/li&gt;
&lt;li&gt;Las sugerencias son más precisas&lt;/li&gt;
&lt;li&gt;Entiende tu estilo de codificación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Mejora de la calidad del código&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisión de código en tiempo real&lt;/li&gt;
&lt;li&gt;Descubre posibles errores&lt;/li&gt;
&lt;li&gt;Aprende mejores prácticas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Alta eficiencia de aprendizaje&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pregunta sobre código que no entiendes de inmediato&lt;/li&gt;
&lt;li&gt;Aprende mientras escribes&lt;/li&gt;
&lt;li&gt;Mejora rápidamente tus habilidades de programación&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;desventajas-de-la-ia-integrada-en-ides&#34;&gt;Desventajas de la IA integrada en IDEs
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Solo adecuado para programación&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No es útil para tareas no relacionadas con programación&lt;/li&gt;
&lt;li&gt;Necesitas saber cómo programar&lt;/li&gt;
&lt;li&gt;Curva de aprendizaje alta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Puede afectar el pensamiento&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dependencia excesiva del autocompletado de IA&lt;/li&gt;
&lt;li&gt;No favorece la comprensión profunda del código&lt;/li&gt;
&lt;li&gt;Puede volver a la gente perezosa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Costo relativamente alto&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub Copilot: $10/mes&lt;/li&gt;
&lt;li&gt;Cursor Pro: $20/mes&lt;/li&gt;
&lt;li&gt;Algunas funciones requieren pago&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;para-quién-es-4&#34;&gt;¿Para quién es?
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Programadores, desarrolladores&lt;/li&gt;
&lt;li&gt;Estudiantes de programación&lt;/li&gt;
&lt;li&gt;Personas que necesitan escribir scripts&lt;/li&gt;
&lt;li&gt;Blogueros técnicos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Escenarios típicos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Autocompletado en tiempo real mientras programas&lt;/li&gt;
&lt;li&gt;Aprender un nuevo lenguaje de programación&lt;/li&gt;
&lt;li&gt;Refactorizar código antiguo&lt;/li&gt;
&lt;li&gt;Corregir errores&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen-comparativo-cuál-es-mejor-para-ti&#34;&gt;Resumen Comparativo: ¿Cuál es Mejor para Ti?
&lt;/h2&gt;&lt;h4 id=&#34;tabla-comparativa-rápida&#34;&gt;Tabla comparativa rápida
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Método de uso&lt;/th&gt;
          &lt;th&gt;Comodidad&lt;/th&gt;
          &lt;th&gt;Integridad de funciones&lt;/th&gt;
          &lt;th&gt;Permisos de IA&lt;/th&gt;
          &lt;th&gt;Escenarios adecuados&lt;/th&gt;
          &lt;th&gt;Curva de aprendizaje&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicación móvil&lt;/td&gt;
          &lt;td&gt;+++++&lt;/td&gt;
          &lt;td&gt;+++&lt;/td&gt;
          &lt;td&gt;Media&lt;/td&gt;
          &lt;td&gt;Preguntas rápidas en cualquier lugar&lt;/td&gt;
          &lt;td&gt;Más baja&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Versión web&lt;/td&gt;
          &lt;td&gt;++++&lt;/td&gt;
          &lt;td&gt;+++++&lt;/td&gt;
          &lt;td&gt;Media&lt;/td&gt;
          &lt;td&gt;Mayoría del uso diario&lt;/td&gt;
          &lt;td&gt;Baja&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicación de escritorio&lt;/td&gt;
          &lt;td&gt;++++&lt;/td&gt;
          &lt;td&gt;++++&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Más alta&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Uso intensivo, trabajo enfocado&lt;/td&gt;
          &lt;td&gt;Baja&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Terminal&lt;/td&gt;
          &lt;td&gt;+++&lt;/td&gt;
          &lt;td&gt;+++&lt;/td&gt;
          &lt;td&gt;Alta&lt;/td&gt;
          &lt;td&gt;Automatización, procesamiento por lotes&lt;/td&gt;
          &lt;td&gt;Alta&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Integración con IDE&lt;/td&gt;
          &lt;td&gt;+++++&lt;/td&gt;
          &lt;td&gt;+++&lt;/td&gt;
          &lt;td&gt;Alta&lt;/td&gt;
          &lt;td&gt;Desarrollo de programación&lt;/td&gt;
          &lt;td&gt;Más alta&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;combinaciones-recomendadas&#34;&gt;Combinaciones recomendadas
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Usuarios normales:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principal: Versión web (funciones completas)&lt;/li&gt;
&lt;li&gt;Secundario: Aplicación móvil (uso en cualquier momento)&lt;/li&gt;
&lt;li&gt;Mejora: Considera la aplicación de escritorio (mejor experiencia, mayores permisos)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Profesionales:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principal: Aplicación de escritorio (alta eficiencia, altos permisos)&lt;/li&gt;
&lt;li&gt;Secundario: Aplicación móvil (cuando estés fuera)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Programadores:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principal: Integración con IDE (programación)&lt;/li&gt;
&lt;li&gt;Secundario: Terminal (consultas rápidas, automatización)&lt;/li&gt;
&lt;li&gt;Respaldo: Versión web (conversaciones profundas)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Estudiantes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principal: Aplicación móvil (conveniente)&lt;/li&gt;
&lt;li&gt;Secundario: Versión web (tareas)&lt;/li&gt;
&lt;li&gt;Avanzado: Prueba la aplicación de escritorio&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;mi-consejo-personal&#34;&gt;Mi consejo personal
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;¡No uses solo un método!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cada método tiene sus ventajas. Cambiar entre ellos según el escenario es lo más eficiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trayecto matutino: Aplicación móvil para escuchar noticias de IA&lt;/li&gt;
&lt;li&gt;Escribir documentos en el trabajo: Aplicación de escritorio (respuesta más rápida)&lt;/li&gt;
&lt;li&gt;Necesidad de conversación profunda: Versión web&lt;/li&gt;
&lt;li&gt;Programar: Integración con IDE&lt;/li&gt;
&lt;li&gt;Consultas rápidas/automatización: Terminal&lt;/li&gt;
&lt;li&gt;Charlar antes de dormir: Aplicación móvil&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Además, si eres usuario de pago, recomiendo encarecidamente probar la aplicación de escritorio.&lt;/strong&gt; Su &amp;ldquo;beneficio oculto&amp;rdquo; (número de jugo más alto) podría hacerte sentir que &amp;ldquo;el dinero está bien gastado&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recuerda: Las herramientas están para servir a las personas, solo elige la que te resulte más cómoda.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Más adelante en esta serie, nos centraremos en el uso del terminal, que también es el método que uso con más frecuencia.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Markdown: El lenguaje universal para hablar con la IA</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/markdown-ai/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/markdown-ai/</guid>
        <description>&lt;p&gt;Este capítulo cambia a un tema más ligero: algo que probablemente usas a diario pero quizás no conoces por su nombre: &lt;strong&gt;Markdown&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Permíteme comenzar con una afirmación audaz:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Markdown es el formato más importante que deberías aprender en la era de la IA.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Por qué? Sigue leyendo.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-markdown&#34;&gt;¿Qué es Markdown?
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;En una frase: Markdown es una forma de escribir texto plano con formato controlado mediante símbolos.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El texto plano no tiene formato —ni encabezados, ni negritas, ni listas. Por otro lado, los formatos de texto enriquecido como Word son demasiado pesados: requieren software especial para abrirlos y generan archivos grandes.&lt;/p&gt;
&lt;p&gt;Markdown es el punto medio &amp;ldquo;justo&amp;rdquo;: &lt;strong&gt;con unos pocos símbolos simples, puedes añadir formato al texto plano.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, si escribes:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# This is a heading
**This is bold**
- This is a list
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Se muestra como un encabezado con formato, texto en negrita y una lista. Así de simple.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;por-qué-debes-aprender-markdown-en-la-era-de-la-ia&#34;&gt;Por qué debes aprender Markdown en la era de la IA
&lt;/h2&gt;&lt;h3 id=&#34;razón-1-la-ia-habla-markdown&#34;&gt;Razón 1: La IA habla Markdown
&lt;/h3&gt;&lt;p&gt;¿Has notado que cuando ChatGPT, Claude, Gemini y otras IAs te responden, incluyen automáticamente texto en negrita, encabezados, listas y bloques de código?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Eso es Markdown.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La IA no genera documentos de Word ni PDFs. Su formato de salida predeterminado es Markdown. Cada tabla, texto en negrita y bloque de código que ves en este tutorial —todo Markdown.&lt;/p&gt;
&lt;p&gt;No aprender Markdown es como hablar con alguien pero no entender las palabras que escribe. ¿Puedes comunicarte? Sí. Pero es mucho menos eficiente.&lt;/p&gt;
&lt;h3 id=&#34;razón-2-está-en-todas-partes&#34;&gt;Razón 2: Está en todas partes
&lt;/h3&gt;&lt;p&gt;Markdown no es un formato propietario de un software específico; es un estándar universal. La cantidad de herramientas que soportan Markdown es innumerable:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Categoría&lt;/th&gt;
          &lt;th&gt;Software/Plataforma&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Toma de notas&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Obsidian, Notion, Typora, Bear&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Plataformas de código&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;GitHub, GitLab, Bitbucket&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Sistemas de blogs&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Hugo, Jekyll, Hexo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Herramientas de documentación&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Confluence, Feishu Docs, Yuque&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Herramientas de IA&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;ChatGPT, Claude, Gemini, Claude Code, Codex&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Aprende un formato, úsalo en todas partes.&lt;/strong&gt; Las notas que escribes en Obsidian mantienen su formato al copiarlas a GitHub. Lánzalas a una IA y las entiende perfectamente. ¿Intenta eso con Word?&lt;/p&gt;
&lt;h3 id=&#34;razón-3-archivos-increíblemente-pequeños&#34;&gt;Razón 3: Archivos increíblemente pequeños
&lt;/h3&gt;&lt;p&gt;Esto puede sorprenderte: &lt;strong&gt;Para el mismo contenido, un archivo Markdown es más de 20 veces más pequeño que un archivo de Word.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Por qué? Un archivo &lt;code&gt;.docx&lt;/code&gt; de Word es esencialmente un archivo comprimido de archivos XML, repleto de definiciones de estilo, información de fuentes y propiedades del documento. Incluso si escribes solo una línea, el archivo pesa decenas de KB.&lt;/p&gt;
&lt;p&gt;Markdown es texto plano. El tamaño del archivo equivale a la cantidad de texto que escribes. Sin equipaje extra.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Esto es especialmente importante en escenarios de IA.&lt;/strong&gt; Cuando envías un documento a una IA para su análisis, Markdown consume menos tokens, procesa más rápido y cuesta menos. Todas esas etiquetas XML y definiciones de estilo en un archivo de Word se cuentan como tokens, desperdiciados.&lt;/p&gt;
&lt;h3 id=&#34;razón-4-la-ia-entiende-mejor-markdown&#34;&gt;Razón 4: La IA entiende mejor Markdown
&lt;/h3&gt;&lt;p&gt;Mucha gente no sabe esto.&lt;/p&gt;
&lt;p&gt;Si le das a una IA un documento de Word, primero tiene que convertirlo a texto. Durante la conversión, el formato puede perderse, las tablas pueden desalinearse y las imágenes desaparecen.&lt;/p&gt;
&lt;p&gt;Dale a una IA un archivo Markdown, y lo lee directamente. &lt;strong&gt;Markdown es texto plano en sí mismo —no necesita conversión, cero pérdidas.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aún más importante, los símbolos de Markdown (encabezados con &lt;code&gt;#&lt;/code&gt;, listas con &lt;code&gt;-&lt;/code&gt;, código con &lt;code&gt;`&lt;/code&gt;) son instrucciones semánticas. La IA entiende que &lt;code&gt;#&lt;/code&gt; significa &amp;ldquo;esto es un título&amp;rdquo;, no solo &amp;ldquo;texto grande&amp;rdquo;. Esto le permite comprender mejor la estructura y jerarquía de tu documento.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;aprende-markdown-en-10-minutos&#34;&gt;Aprende Markdown en 10 minutos
&lt;/h2&gt;&lt;p&gt;No necesitas memorizar todo. Aquí tienes lo esencial:&lt;/p&gt;
&lt;h3 id=&#34;1-encabezados&#34;&gt;1. Encabezados
&lt;/h3&gt;&lt;p&gt;``` ``) inherently tell the AI, “this is a heading, this is a list, this is code.” &lt;strong&gt;The AI can understand your content structure more accurately.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;learn-markdown-in-10-minutes&#34;&gt;Learn Markdown in 10 Minutes
&lt;/h2&gt;&lt;p&gt;There are only about a dozen Markdown syntax elements, and even fewer are needed for daily use. Below, they are ordered by frequency of use, starting with the most common.&lt;/p&gt;
&lt;h3 id=&#34;1-headings&#34;&gt;1. Headings
&lt;/h3&gt;&lt;p&gt;Use &lt;code&gt;#&lt;/code&gt; followed by a space. The number of &lt;code&gt;#&lt;/code&gt; symbols indicates the heading level:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
### 2. Énfasis (negrita y cursiva)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;For daily use, up to level 3 is enough.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;2-bold-and-italic&#34;&gt;2. Bold and Italic
&lt;/h3&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
### 3. Listas

**Listas desordenadas:**
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Bold is used most often&lt;/strong&gt;, &lt;em&gt;italic occasionally&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id=&#34;3-lists&#34;&gt;3. Lists
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Unordered lists&lt;/strong&gt; use &lt;code&gt;-&lt;/code&gt; or &lt;code&gt;*&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
**Listas ordenadas:**
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Ordered lists&lt;/strong&gt; use numbers followed by a period:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
**Listas anidadas:**
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Lists can be nested by adding two spaces before the sub-item:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
### 4. Código

**Código en línea:**
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;4-code&#34;&gt;4. Code
&lt;/h3&gt;&lt;p&gt;Inline code uses single backticks:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
**Bloques de código:**
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Result: Type &lt;code&gt;claude --help&lt;/code&gt; to see help&lt;/p&gt;
&lt;p&gt;Code blocks are wrapped with three backticks, and you can specify the language:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
```python
print(&amp;#34;Hello World&amp;#34;)
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
This is especially useful when communicating with AI. When sending code to an AI, wrap it in a code block so the AI can more accurately identify the code boundaries.

### 5. Links and Images

```

### 5. Enlaces e imágenes

```

Images are just links with a `!` in front.

### 6. Blockquotes

Start with `&amp;gt;`:

```

### 6. Citas en bloque

```

Result:

&amp;gt; This is a blockquote.
&amp;gt; It can span multiple lines.

### 7. Tables

```

### 7. Tablas

```

Table syntax looks complex, but you don’t need to write it by hand. **Just ask the AI to generate it for you.** Say “organize this data into a table,” and the AI will output a Markdown table.

### 8. Horizontal Rules

Three or more `-` on a single line:

```

### 8. Línea horizontal

```

Used to separate different sections of an article.

### 9. Strikethrough

```

### 9. Tachado

```

Result: ~~Deleted text~~

---

## That’s Enough, Really

The 9 syntax elements above cover 99% of daily use cases.

**You don’t need to master Markdown.** Headings, bold, lists, and code blocks—master these four and you can handle most situations. Look up the rest when needed.

And Markdown has one advantage: **It’s okay if you can’t remember it all now; you’ll learn it by using it.** AI outputs Markdown, so as you read AI responses every day, you’ll naturally become familiar with these symbols.

---

## How to Use Markdown to Improve Communication with AI

After learning Markdown, here are a few tips to make your conversations with AI more effective:

**Tip 1: Use headings to structure your input**

```

---

## Cómo usar Markdown para comunicarte con la IA

### 1. Usa encabezados para estructurar

No escribas un párrafo enorme. Divide tu mensaje en secciones:

```

Much better than a big block of text. With headings, the AI can more accurately understand the structure of your request.

**Tip 2: Wrap code in code blocks**

Don’t just paste code directly; wrap it in a code block:

```

### 2. Envuelve el código en bloques de código

Cuando pidas a la IA que analice código, siempre ponlo en un bloque de código:

```python
def hello()
    print(&amp;#34;hello&amp;#34;)
```

### 3. Usa listas para requisitos
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The AI can precisely distinguish between your words and the code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tip 3: Use lists to enumerate requirements&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
### 4. Sintaxis completa (9 cubren el 99%): Además enlaces, imágenes, citas en bloque, tablas, líneas horizontales

### 5. Consejos para comunicarte con la IA: Usa encabezados para estructurar, envuelve el código en bloques de código, usa listas para requisitos

**Conclusiones clave:**

- **Markdown es el &amp;#34;idioma nativo&amp;#34; de la IA; aprenderlo significa aprender a comunicarse eficientemente con la IA**
- **Aprende lo básico en 10 minutos, consulta el resto cuando lo necesites**
- **No necesitas práctica deliberada; lo aprenderás naturalmente mientras usas la IA**

---

## Parte 2: API y Tokens: El núcleo técnico
&lt;/code&gt;&lt;/pre&gt;</description>
        </item>
        <item>
        <title>MCP: Qué es y cómo usarlo</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/mcp/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/mcp/</guid>
        <description>&lt;p&gt;En el capítulo anterior, aprendimos sobre Skills — convertir operaciones comunes en atajos de un solo clic. Pero ¿alguna vez te has preguntado?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Puede la IA operar directamente mi navegador? ¿Puede leer y escribir mis notas? ¿Puede consultar mi base de datos?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La respuesta es: &lt;strong&gt;Sí, pero necesitas equipar a la IA con «plugins».&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este «sistema de plugins» es lo que llamamos &lt;strong&gt;MCP&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;un-vistazo-rápido-a-la-tendencia&#34;&gt;Un vistazo rápido a la tendencia
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Muchas de las funciones de MCP están siendo absorbidas de forma nativa por Claude Code y Codex CLI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, en los primeros días necesitabas instalar un MCP de búsqueda web para que la IA buscara en internet; ahora tanto Claude Code como Codex tienen búsqueda web integrada. Lectura/escritura de archivos, operaciones con Git y muchas otras capacidades también vienen incluidas. Los Skills que vimos antes también reemplazan algunos escenarios de MCP — muchas tareas estandarizadas que antes requerían MCP ahora se pueden hacer con Skills.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pero eso no significa que MCP sea inútil. Al contrario, MCP sigue teniendo un valor insustituible:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Conectar sistemas propietarios&lt;/strong&gt;: las bases de datos internas de tu empresa, APIs privadas — nunca podrán estar integradas de serie, solo se puede acceder a ellas mediante MCP.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Operar software de terceros&lt;/strong&gt;: controlar un navegador, gestionar Obsidian, manejar notas de Notion — escenarios que requieren interacción profunda con software externo son donde MCP es la única opción.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ecosistema comunitario&lt;/strong&gt;: el mercado de MCP tiene miles de servidores aportados por la comunidad que cubren todo tipo de escenarios que quizás no imaginabas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Personalización&lt;/strong&gt;: puedes escribir tu propio servidor MCP para que la IA acceda a cualquier sistema que quieras.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;En pocas palabras: las funciones integradas cubren el 80% de las necesidades comunes, mientras que MCP se encarga del 20% restante de necesidades personalizadas — y ese 20% suele marcar la diferencia real.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-mcp&#34;&gt;¿Qué es MCP?
&lt;/h2&gt;&lt;h3 id=&#34;en-pocas-palabras&#34;&gt;En pocas palabras
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;MCP = Model Context Protocol = el sistema de plugins de la IA&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;MCP es un protocolo abierto introducido por Anthropic (el creador de Claude) que permite a las herramientas de IA conectarse con sistemas externos.&lt;/p&gt;
&lt;h3 id=&#34;por-qué-necesitamos-mcp&#34;&gt;¿Por qué necesitamos MCP?
&lt;/h3&gt;&lt;p&gt;Piensa en este escenario:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sin MCP:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You: Open Baidu and search for &amp;#34;today&amp;#39;s weather&amp;#34;
AI: Sorry, I can&amp;#39;t access the browser. I can only process text…
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Con MCP:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You: Open Baidu and search for &amp;#34;today&amp;#39;s weather&amp;#34;
AI: Sure, I&amp;#39;ve opened the browser, searched for &amp;#34;today&amp;#39;s weather&amp;#34;, and here are the results…
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;¿Cuál es la diferencia?&lt;/strong&gt; La IA pasa de «solo poder hablar» a «poder actuar».&lt;/p&gt;
&lt;h3 id=&#34;una-analogía&#34;&gt;Una analogía
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;La IA en sí misma = un cerebro brillante&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lo sabe todo, pero no tiene manos ni pies.&lt;/li&gt;
&lt;li&gt;Puede decirte cómo hacer algo, pero no puede hacerlo por ti.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;MCP = conectar manos y pies a ese cerebro&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conecta la «mano del navegador»: la IA puede operar páginas web automáticamente.&lt;/li&gt;
&lt;li&gt;Conecta la «mano del sistema de archivos»: la IA puede leer y escribir tus archivos.&lt;/li&gt;
&lt;li&gt;Conecta la «mano de la base de datos»: la IA puede consultar y modificar datos.&lt;/li&gt;
&lt;li&gt;Conecta la «mano de Obsidian»: la IA puede gestionar tus notas directamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Otra analogía:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IA = un chef superinteligente&lt;/li&gt;
&lt;li&gt;MCP = equipar al chef con una cocina completa (ollas, sartenes, horno, batidora…)&lt;/li&gt;
&lt;li&gt;Sin MCP: el chef solo puede recitar recetas.&lt;/li&gt;
&lt;li&gt;Con MCP: el chef puede cocinar de verdad para ti.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;comparación-con-lo-anterior&#34;&gt;Comparación con lo anterior
&lt;/h3&gt;&lt;p&gt;En el capítulo anterior comparamos prompts, Skills y MCP:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Prompts → The most basic interaction method (verbal instructions)
    ↓
Skills → Encapsulate prompts + simple logic (shortcuts)
    ↓
MCP → Skills + the ability to connect to external systems (connecting the world)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;MCP es el más potente de los tres porque rompe los «muros» de la IA y le permite llegar al mundo exterior.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-funciona-mcp&#34;&gt;Cómo funciona MCP
&lt;/h2&gt;&lt;p&gt;No necesitas profundizar en detalles técnicos — solo entiende este diagrama:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You ←→ Claude Code/Codex ←→ MCP Server ←→ External System
         (AI Tool)           (Bridge)      (Browser/Database/Notes, etc.)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Tres roles:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Rol&lt;/th&gt;
          &lt;th&gt;Descripción&lt;/th&gt;
          &lt;th&gt;Ejemplo&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Herramienta de IA&lt;/strong&gt; (Cliente)&lt;/td&gt;
          &lt;td&gt;El asistente de codificación que usas&lt;/td&gt;
          &lt;td&gt;Claude Code, Codex CLI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Servidor MCP&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;El puente entre la IA y los sistemas externos&lt;/td&gt;
          &lt;td&gt;Playwright MCP, GitHub MCP&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Sistema externo&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;El objetivo sobre el que opera la IA&lt;/td&gt;
          &lt;td&gt;Navegador, GitHub, Obsidian&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Todo lo que necesitas hacer es instalar un servidor MCP en tu herramienta de IA, y luego la IA podrá operar el sistema externo correspondiente.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Es tan simple como instalar una aplicación en tu teléfono.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;dónde-encontrar-servidores-mcp&#34;&gt;Dónde encontrar servidores MCP
&lt;/h2&gt;&lt;p&gt;Hay muchos servidores MCP. ¿Cómo encuentras el que necesitas? Aquí están los principales «mercados de MCP»:&lt;/p&gt;
&lt;h3 id=&#34;1-mcpso-recomendado&#34;&gt;1. mcp.so (Recomendado)
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;URL:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://mcp.so&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://mcp.so&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Actualmente es el directorio más completo de servidores MCP, como la «App Store de MCP».&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Miles de servidores MCP listados&lt;/li&gt;
&lt;li&gt;Descripciones detalladas y guías de instalación&lt;/li&gt;
&lt;li&gt;Búsqueda y navegación por categorías&lt;/li&gt;
&lt;li&gt;Amigable en chino&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cómo usar:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre el sitio web.&lt;/li&gt;
&lt;li&gt;Busca la funcionalidad que quieres (ej., «playwright» o «browser»).&lt;/li&gt;
&lt;li&gt;Encuentra el servidor MCP correspondiente.&lt;/li&gt;
&lt;li&gt;Sigue las instrucciones de instalación en la página.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;2-smithery&#34;&gt;2. Smithery
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;URL:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://smithery.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://smithery.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prueba algunos servidores MCP en línea directamente.&lt;/li&gt;
&lt;li&gt;Comandos de instalación con un solo clic.&lt;/li&gt;
&lt;li&gt;Alojamiento de claves API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-github-awesome-mcp-servers&#34;&gt;3. GitHub awesome-mcp-servers
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;URL:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/punkpeye/awesome-mcp-servers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/punkpeye/awesome-mcp-servers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lista de servidores MCP mantenida por la comunidad.&lt;/li&gt;
&lt;li&gt;Código abierto y gratuito.&lt;/li&gt;
&lt;li&gt;Actualizada con frecuencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-servidores-mcp-oficiales&#34;&gt;4. Servidores MCP oficiales
&lt;/h3&gt;&lt;p&gt;Grandes empresas como Anthropic y Microsoft también han lanzado servidores MCP oficiales:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Servidor MCP&lt;/th&gt;
          &lt;th&gt;Función&lt;/th&gt;
          &lt;th&gt;Mantenedor&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Playwright MCP&lt;/td&gt;
          &lt;td&gt;Automatización de navegador&lt;/td&gt;
          &lt;td&gt;Microsoft&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GitHub MCP&lt;/td&gt;
          &lt;td&gt;Operaciones de GitHub&lt;/td&gt;
          &lt;td&gt;GitHub&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Context7 MCP&lt;/td&gt;
          &lt;td&gt;Obtener documentación más reciente&lt;/td&gt;
          &lt;td&gt;Comunidad&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Notion MCP&lt;/td&gt;
          &lt;td&gt;Gestión de notas&lt;/td&gt;
          &lt;td&gt;Notion&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Recomendación: los principiantes deberían empezar con mcp.so, buscar la funcionalidad que necesitan y seguir la guía de instalación.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-instalar-mcp&#34;&gt;Cómo instalar MCP
&lt;/h2&gt;&lt;p&gt;El método de instalación difiere ligeramente entre Claude Code y Codex CLI. Aquí te mostramos cómo hacerlo para cada uno.&lt;/p&gt;
&lt;h3 id=&#34;instalar-mcp-en-claude-code&#34;&gt;Instalar MCP en Claude Code
&lt;/h3&gt;&lt;h4 id=&#34;método-1-línea-de-comandos-recomendado&#34;&gt;Método 1: Línea de comandos (Recomendado)
&lt;/h4&gt;&lt;p&gt;Claude Code proporciona un comando dedicado de gestión de MCP — una línea lo hace todo:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 mcp add playwright npx &lt;span class=&#34;s1&#34;&gt;&amp;#39;@playwright/mcp@latest&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260211424b8d552040f1a4ffbf001b296132b4.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Este comando significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;claude mcp add&lt;/code&gt; : Añadir un servidor MCP.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright&lt;/code&gt; : El nombre que le das a este MCP (puedes elegir cualquier nombre).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;npx &#39;@playwright/mcp@latest&#39;&lt;/code&gt; : El comando para iniciar el servidor MCP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Verificar la instalación:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En Claude Code, escribe &lt;code&gt;/mcp&lt;/code&gt; para ver la lista de servidores MCP instalados.
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602116c842439f13d7503a30e9c0d4cbcf7dc.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;método-2-editar-el-archivo-de-configuración&#34;&gt;Método 2: Editar el archivo de configuración
&lt;/h4&gt;&lt;p&gt;También puedes editar directamente el archivo de configuración de Claude Code para añadir MCP.&lt;/p&gt;
&lt;p&gt;Ruta del archivo de configuración: &lt;code&gt;~/.claude.json&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Añade la sección &lt;code&gt;mcpServers&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;mcpServers&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;playwright&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;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;npx&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;@playwright/mcp@latest&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;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;/div&gt;&lt;p&gt;Guarda y reinicia Claude Code.&lt;/p&gt;
&lt;h3 id=&#34;instalar-mcp-en-codex-cli&#34;&gt;Instalar MCP en Codex CLI
&lt;/h3&gt;&lt;p&gt;La configuración de MCP de Codex CLI está en el archivo &lt;code&gt;~/.codex/config.toml&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;editar-configtoml&#34;&gt;Editar config.toml
&lt;/h4&gt;&lt;p&gt;Añade lo siguiente al final del archivo:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;mcp_servers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;playwright&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;command&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;npx&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;nx&#34;&gt;args&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;@playwright/mcp@latest&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;startup_timeout_sec&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;60.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Explicación de parámetros:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Parámetro&lt;/th&gt;
          &lt;th&gt;Descripción&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;command&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;El comando para iniciar el servidor MCP&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;args&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Argumentos del comando&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;startup_timeout_sec&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Tiempo de espera de inicio en segundos; algunos servidores MCP arrancan lentamente, así que se recomienda 60&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;mcp-con-variables-de-entorno&#34;&gt;MCP con variables de entorno
&lt;/h4&gt;&lt;p&gt;Algunos servidores MCP requieren claves API u otra configuración. Puedes pasarlas usando la sección &lt;code&gt;env&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;mcp_servers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;context7&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;command&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;npx&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;nx&#34;&gt;args&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;-y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;mcp-remote&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://mcp.context7.com/mcp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--header&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Authorization:${CTX7_AUTH_HEADER}&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;startup_timeout_sec&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;60.0&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;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;mcp_servers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;context7&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&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;CTX7_AUTH_HEADER&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Bearer your_token&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Guarda y reinicia Codex.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;práctica-instalar-playwright-mcp-y-controlar-un-navegador&#34;&gt;Práctica: Instalar Playwright MCP y controlar un navegador
&lt;/h2&gt;&lt;p&gt;¡Vamos a probarlo! Usaremos &lt;strong&gt;Playwright MCP&lt;/strong&gt; como ejemplo para que la IA controle automáticamente un navegador.&lt;/p&gt;
&lt;h3 id=&#34;qué-es-playwright-mcp&#34;&gt;¿Qué es Playwright MCP?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Playwright&lt;/strong&gt; = Herramienta de automatización de navegador de Microsoft&lt;br&gt;
&lt;strong&gt;Playwright MCP&lt;/strong&gt; = Permite a la IA controlar Playwright a través del protocolo MCP&lt;/p&gt;
&lt;p&gt;Después de la instalación, la IA puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abrir páginas web&lt;/li&gt;
&lt;li&gt;Hacer clic en botones&lt;/li&gt;
&lt;li&gt;Rellenar formularios&lt;/li&gt;
&lt;li&gt;Tomar capturas de pantalla&lt;/li&gt;
&lt;li&gt;Leer el contenido de la página&lt;/li&gt;
&lt;li&gt;Iniciar sesión automáticamente en sitios web&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;paso-1-instalar-playwright-mcp&#34;&gt;Paso 1: Instalar Playwright MCP
&lt;/h3&gt;&lt;h4 id=&#34;en-claude-code&#34;&gt;En Claude Code
&lt;/h4&gt;&lt;p&gt;Abre una terminal y ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 mcp add playwright npx &lt;span class=&#34;s1&#34;&gt;&amp;#39;@playwright/mcp@latest&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si quieres especificar un navegador (ej., Edge), añade parámetros:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 mcp add playwright npx &lt;span class=&#34;s1&#34;&gt;&amp;#39;@playwright/mcp@latest&amp;#39;&lt;/span&gt; -- --browser msedge
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;en-codex-cli&#34;&gt;En Codex CLI
&lt;/h4&gt;&lt;p&gt;Edita &lt;code&gt;~/.codex/config.toml&lt;/code&gt; y añade:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;mcp_servers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;playwright&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;command&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;npx&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;nx&#34;&gt;args&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;@playwright/mcp@latest&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;startup_timeout_sec&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;60.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si quieres usar Edge y mantener tu sesión iniciada, puedes configurarlo así:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;mcp_servers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;playwright&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;command&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;mcp-server-playwright&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;nx&#34;&gt;args&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;--browser&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;msedge&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--executable-path&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--user-data-dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;/Users/your_username/Library/Application Support/Microsoft Edge&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--isolated&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;startup_timeout_sec&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;60.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Consejo:&lt;/strong&gt; Usar &lt;code&gt;--user-data-dir&lt;/code&gt; permite que el navegador conserve tu estado de inicio de sesión, así la IA no tiene que volver a iniciar sesión al abrir páginas.&lt;/p&gt;
&lt;h3 id=&#34;paso-2-verificar-la-instalación&#34;&gt;Paso 2: Verificar la instalación
&lt;/h3&gt;&lt;p&gt;Inicia Claude Code:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;/div&gt;&lt;p&gt;Escribe &lt;code&gt;/mcp&lt;/code&gt; y deberías ver &lt;code&gt;playwright&lt;/code&gt; en la lista con estado «connected».&lt;/p&gt;
&lt;h3 id=&#34;paso-3-deja-que-la-ia-opere-el-navegador&#34;&gt;Paso 3: Deja que la IA opere el navegador
&lt;/h3&gt;&lt;p&gt;¡Ahora pruébalo! En Claude Code, ingresa:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Open Baidu, search for &amp;#34;What is MCP&amp;#34;, and save a screenshot of the search results.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260211a0b8444b5b7aa8b66151a464f94cf5cd.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;La IA automáticamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abrirá el navegador&lt;/li&gt;
&lt;li&gt;Abrirá la página de inicio de Baidu&lt;/li&gt;
&lt;li&gt;Escribirá «¿Qué es MCP?» en el cuadro de búsqueda&lt;/li&gt;
&lt;li&gt;Hará clic en el botón de búsqueda&lt;/li&gt;
&lt;li&gt;Tomará una captura de pantalla de la página de resultados&lt;/li&gt;
&lt;li&gt;Guardará la captura en tu carpeta de proyecto&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;¡No necesitas hacer nada — la IA completa todos los pasos automáticamente!&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;más-casos-de-uso&#34;&gt;Más casos de uso
&lt;/h3&gt;&lt;p&gt;Con Playwright MCP instalado, puedes pedirle a la IA que haga muchas cosas:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo 1: Rellenar un formulario automáticamente&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Open https://example.com/register and fill in the registration form with the following info:
Username: testuser
Email: test@example.com
Then click submit.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Ejemplo 2: Extraer contenido web&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Open https://news.ycombinator.com and extract the titles and links of the top 10 stories on the front page. Organize them into a Markdown table.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Ejemplo 3: Pruebas automatizadas&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Open the translation page I just made (translate.html) and test the following:
1. Enter &amp;#34;Hello World&amp;#34;, click translate, and check if a result appears.
2. Click the clear button and check if the input box is cleared.
3. Toggle dark mode and check if the interface looks correct.
Compile the test results into a report.
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id=&#34;servidores-mcp-recomendados&#34;&gt;Servidores MCP recomendados
&lt;/h2&gt;&lt;p&gt;Aquí tienes algunos servidores MCP prácticos, categorizados por caso de uso:&lt;/p&gt;
&lt;h3 id=&#34;navegador-y-web&#34;&gt;Navegador y web
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Servidor MCP&lt;/th&gt;
          &lt;th&gt;Función&lt;/th&gt;
          &lt;th&gt;Comando de instalación (Claude Code)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Playwright&lt;/td&gt;
          &lt;td&gt;Automatización de navegador&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;claude mcp add playwright npx &#39;@playwright/mcp@latest&#39;&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Chrome DevTools&lt;/td&gt;
          &lt;td&gt;Depuración de Chrome&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;claude mcp add chrome-devtools npx &#39;chrome-devtools-mcp@latest&#39;&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;herramientas-de-desarrollo&#34;&gt;Herramientas de desarrollo
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Servidor MCP&lt;/th&gt;
          &lt;th&gt;Función&lt;/th&gt;
          &lt;th&gt;Comando de instalación (Claude Code)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;GitHub&lt;/td&gt;
          &lt;td&gt;Operaciones de GitHub&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;claude mcp add github npx &#39;@anthropic-ai/github-mcp&#39;&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Context7&lt;/td&gt;
          &lt;td&gt;Obtener documentación técnica reciente&lt;/td&gt;
          &lt;td&gt;Requiere configuración de token (ver configuración)&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;notas-y-documentación&#34;&gt;Notas y documentación
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Servidor MCP&lt;/th&gt;
          &lt;th&gt;Función&lt;/th&gt;
          &lt;th&gt;Notas&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Notion&lt;/td&gt;
          &lt;td&gt;Leer/escribir notas de Notion&lt;/td&gt;
          &lt;td&gt;Requiere clave API de Notion&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Obsidian&lt;/td&gt;
          &lt;td&gt;Leer/escribir notas de Obsidian&lt;/td&gt;
          &lt;td&gt;Desarrollado por la comunidad&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;bases-de-datos&#34;&gt;Bases de datos
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Servidor MCP&lt;/th&gt;
          &lt;th&gt;Función&lt;/th&gt;
          &lt;th&gt;Notas&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Supabase&lt;/td&gt;
          &lt;td&gt;Operar base de datos Supabase&lt;/td&gt;
          &lt;td&gt;Requiere token de acceso&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PostgreSQL&lt;/td&gt;
          &lt;td&gt;Operar PostgreSQL&lt;/td&gt;
          &lt;td&gt;Desarrollado por la comunidad&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Ve a mcp.so o smithery.ai para encontrar aún más servidores MCP.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;notas-importantes&#34;&gt;Notas importantes
&lt;/h2&gt;&lt;h3 id=&#34;recordatorios-de-seguridad&#34;&gt;Recordatorios de seguridad
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;MCP le da a la IA la capacidad de operar sistemas externos, lo que también conlleva algunos riesgos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Otorga permisos con precaución&lt;/strong&gt;: No le des a la IA acceso completo al sistema sin pensar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Revisa las acciones&lt;/strong&gt;: Antes de operaciones importantes, pídele a la IA que te diga lo que está a punto de hacer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Haz copias de seguridad&lt;/strong&gt;: Antes de dejar que la IA maneje datos importantes, haz una copia de seguridad.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seguridad de las claves API&lt;/strong&gt;: Nunca compartas tus claves API con otros.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;preguntas-frecuentes&#34;&gt;Preguntas frecuentes
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;P: ¿Qué hago si el servidor MCP no se inicia?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;R: Verifica lo siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Node.js es versión 18 o superior? (&lt;code&gt;node -v&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;¿La red funciona?&lt;/li&gt;
&lt;li&gt;¿&lt;code&gt;startup_timeout_sec&lt;/code&gt; está configurado con un valor suficientemente alto? (se recomiendan 60 segundos)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;P: Después de instalar un MCP de navegador, no veo una ventana del navegador.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;R: Playwright se ejecuta en modo headless por defecto (sin ventana visible). Si quieres ver el navegador en acción, añade el parámetro &lt;code&gt;--headless false&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#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 mcp add playwright npx &lt;span class=&#34;s1&#34;&gt;&amp;#39;@playwright/mcp@latest&amp;#39;&lt;/span&gt; -- --headless &lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;P: ¿Se pueden compartir los servidores MCP entre Claude Code y Codex CLI?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;R: El servidor MCP en sí es universal (ej., Playwright MCP puede ser usado por ambas herramientas), pero el método de configuración difiere:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code: &lt;code&gt;~/.claude.json&lt;/code&gt; o el comando &lt;code&gt;claude mcp add&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Codex CLI: &lt;code&gt;~/.codex/config.toml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendiste hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Qué es MCP&lt;/strong&gt;: el sistema de plugins de la IA que le permite conectarse a herramientas y servicios externos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mercados de MCP&lt;/strong&gt;: mcp.so, Smithery, awesome-mcp-servers — encuentra plugins como en una App Store.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo instalar MCP&lt;/strong&gt;: usa el comando &lt;code&gt;claude mcp add&lt;/code&gt; para Claude Code, o edita config.toml para Codex CLI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Práctica&lt;/strong&gt;: instalaste Playwright MCP y dejaste que la IA controlara un navegador automáticamente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Servidores MCP recomendados&lt;/strong&gt;: navegador, GitHub, notas, bases de datos y más.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusiones clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MCP transforma a la IA de «solo poder hablar» a «poder actuar».&lt;/li&gt;
&lt;li&gt;Instalar MCP es tan simple como instalar una aplicación en tu teléfono.&lt;/li&gt;
&lt;li&gt;Se anima a los principiantes a empezar con Playwright MCP para la experiencia más intuitiva.&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>N8N es potente, pero probablemente no lo necesitas</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/n8n-not-needed/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/n8n-not-needed/</guid>
        <description>&lt;p&gt;Cuando presenté la aplicación Codex, mencioné un tema: &lt;strong&gt;Por qué quizás ya no necesites aprender N8N.&lt;/strong&gt; Este capítulo profundiza en eso.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-n8n&#34;&gt;¿Qué es N8N?
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;En pocas palabras: N8N es una plataforma visual de flujos de trabajo automatizados.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El nombre N8N proviene de &amp;ldquo;nodemation&amp;rdquo; (node + automation), con 8 letras entre la primera y la última, de ahí N8N. Es un proyecto de código abierto que puedes desplegar en tu propio servidor de forma gratuita.&lt;/p&gt;
&lt;p&gt;¿Qué puede hacer? Piensa en ello como una línea de ensamblaje. Cada &amp;ldquo;nodo&amp;rdquo; es una estación en la línea. Los datos entran en la primera estación, pasan por una serie de procesos y salen en la última estación.
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602249a97e1a8ee46a304d3bd75fe6d632513.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
Por ejemplo, puedes construir una línea de ensamblaje como esta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nodo 1 (Disparador)&lt;/strong&gt;: Se inicia automáticamente a las 9 a.m. todos los días&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nodo 2 (Solicitud HTTP)&lt;/strong&gt;: Obtiene las noticias de hoy de un sitio web&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nodo 3 (Procesamiento de datos)&lt;/strong&gt;: Filtra el contenido relacionado con IA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nodo 4 (Enviar notificación)&lt;/strong&gt;: Envía los resultados a tu correo electrónico&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Configúralo y olvídate: se ejecuta automáticamente todos los días.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;N8N tiene más de 400 nodos integrados que cubren servicios comunes como Gmail, Slack, bases de datos, Notion y más. Desde su lanzamiento en 2019, ha ganado más de 200,000 usuarios activos y ha recaudado fondos con una valoración de 270 millones de dólares.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Definitivamente es una gran herramienta. Yo mismo la he desplegado y ejecuto muchos flujos de trabajo en ella.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;n8n-es-potente-pero-tiene-cuatro-grandes-problemas-para-principiantes&#34;&gt;N8N es potente, pero tiene cuatro grandes problemas para principiantes
&lt;/h2&gt;&lt;p&gt;Antes de que llegara Skill, N8N era casi la única opción para la automatización personal. Pero ahora las cosas son diferentes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;N8N tiene cuatro grandes problemas para principiantes.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;problema-1-demasiado-que-aprender&#34;&gt;Problema 1: Demasiado que aprender
&lt;/h3&gt;&lt;p&gt;Cuando abres N8N, necesitas entender: flujos de trabajo, nodos, disparadores, webhooks, credenciales, expresiones, mapeo de datos&amp;hellip;&lt;/p&gt;
&lt;p&gt;Solo para &amp;ldquo;Webhook&amp;rdquo;, necesitas entender el protocolo HTTP, la diferencia entre solicitudes POST y GET, y el formato de datos JSON.&lt;/p&gt;
&lt;p&gt;Para alguien sin experiencia en programación, &lt;strong&gt;esto no es aprender automatización, es aprender a programar.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Muchas personas abren un tutorial emocionadas, y el primer paso es &amp;ldquo;Configura un nodo Webhook, establece el Método en POST&amp;rdquo;, y se desaniman de inmediato.&lt;/p&gt;
&lt;h3 id=&#34;problema-2-los-tutoriales-nunca-pueden-seguir-el-ritmo-de-las-actualizaciones&#34;&gt;Problema 2: Los tutoriales nunca pueden seguir el ritmo de las actualizaciones
&lt;/h3&gt;&lt;p&gt;N8N se actualiza muy rápido, lo cual es bueno. Pero el problema es: &lt;strong&gt;sigues un tutorial y descubres que la interfaz se ve diferente a las capturas de pantalla.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No es que el tutorial esté mal; N8N se ha actualizado de nuevo.&lt;/p&gt;
&lt;p&gt;Peor aún, N8N ha tenido actualizaciones importantes de versión recientemente, y algunos flujos de trabajo que funcionaban antes se vuelven incompatibles después de la actualización. &lt;strong&gt;Algo que te tomó un fin de semana construir puede romperse con una sola actualización, y tienes que reconfigurarlo.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;problema-3-la-barrera-de-despliegue-no-es-baja&#34;&gt;Problema 3: La barrera de despliegue no es baja
&lt;/h3&gt;&lt;p&gt;N8N se puede usar de dos maneras: autoalojado o usando el servicio en la nube oficial.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Autoalojado&lt;/strong&gt; te da flujos de trabajo ilimitados de forma gratuita (aparte de los costos del servidor). Pero necesitas saber cómo comprar un servidor, instalar Docker, configurar un proxy inverso, configurar DNS&amp;hellip; Para un principiante, solo hacer funcionar N8N puede llevar medio día. &lt;strong&gt;Antes de siquiera empezar a aprender automatización, ya te desanimó el despliegue.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usar el servicio en la nube oficial&lt;/strong&gt; es conveniente: solo regístrate y úsalo. Pero el plan gratuito solo te da 5 flujos de trabajo. ¿Quieres más? El plan Starter cuesta $20/mes, y el plan Pro cuesta $50/mes. &lt;strong&gt;Antes de automatizar algunos procesos, ya has gastado dinero.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;problema-4-la-depuración-depende-de-un-relevo-humano&#34;&gt;Problema 4: La depuración depende de un relevo humano
&lt;/h3&gt;&lt;p&gt;Cuando algo sale mal en N8N, el proceso de depuración es más o menos así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ves un mensaje de error&lt;/li&gt;
&lt;li&gt;No lo entiendes, tomas una captura de pantalla y se la envías a una IA (como ChatGPT)&lt;/li&gt;
&lt;li&gt;La IA da una solución, vuelves a N8N y haces cambios&lt;/li&gt;
&lt;li&gt;Lo ejecutas de nuevo, sigue fallando&lt;/li&gt;
&lt;li&gt;Captura de pantalla otra vez, preguntas a la IA otra vez&lt;/li&gt;
&lt;li&gt;Vas y vienes varias veces hasta que se arregla&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;¿Qué estás haciendo? Actuando como traductor entre N8N y la IA.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aunque N8N también tiene MCP para conectarse con la IA, la experiencia es mediocre. Aún tienes que preguntar manualmente paso a paso a la IA, y algunos problemas requieren varios intentos para localizarlos.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-hace-realmente-n8n&#34;&gt;¿Qué hace realmente N8N?
&lt;/h2&gt;&lt;p&gt;Antes de discutir cómo Skill puede reemplazarlo, primero entendamos los principios básicos de N8N.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quitando la interfaz visual llamativa, N8N esencialmente hace cuatro cosas:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Capacidad&lt;/th&gt;
          &lt;th&gt;Descripción&lt;/th&gt;
          &lt;th&gt;Ejemplo&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Enviar solicitudes&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Llamar a APIs externas o raspar páginas web&lt;/td&gt;
          &lt;td&gt;Solicitar la API del clima para obtener el clima de hoy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Procesar datos&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Filtrar, transformar, formatear datos&lt;/td&gt;
          &lt;td&gt;De 100 noticias, filtrar las relacionadas con IA&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Ejecutar disparadores&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Ejecutar según un horario o por eventos externos&lt;/td&gt;
          &lt;td&gt;Ejecutar automáticamente a las 9 a.m. todos los días&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Conectar servicios&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Encadenar diferentes herramientas&lt;/td&gt;
          &lt;td&gt;Leer correo de Gmail → Guardar en Notion&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Eso es todo, solo estas cuatro cosas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Y todas estas cuatro cosas se pueden hacer con scripts en Skill.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-reemplaza-skill-a-n8n&#34;&gt;¿Cómo reemplaza Skill a N8N?
&lt;/h2&gt;&lt;p&gt;¿Recuerdas Skill de antes? Skill empaqueta herramientas, APIs y scripts en un comando que puedes invocar con un &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hay tres beneficios de reemplazar N8N con Skill:&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;beneficio-1-no-necesitas-construirlo-tú-mismo-la-ia-lo-construye-por-ti&#34;&gt;Beneficio 1: No necesitas construirlo tú mismo, la IA lo construye por ti
&lt;/h3&gt;&lt;p&gt;En N8N, tienes que arrastrar nodos manualmente, conectarlos y configurar parámetros. Cuando te atascas, buscas documentación o le preguntas a una IA.&lt;/p&gt;
&lt;p&gt;¿Con Skill?&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You: Create a Skill that fetches the top 10 stories from Hacker News every day,
    formats them into a Markdown table, and saves them to my notes.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La IA escribe directamente el script, crea el archivo Skill y lo prueba. &lt;strong&gt;No necesitas entender solicitudes HTTP ni saber cómo se ve JSON.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;beneficio-2-cuando-algo-sale-mal-la-ia-lo-arregla-directamente&#34;&gt;Beneficio 2: Cuando algo sale mal, la IA lo arregla directamente
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Esta es la mejor parte.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ya describí el proceso de depuración de errores de N8N arriba: captura de pantalla, preguntar a la IA, modificar, ejecutar de nuevo, captura de pantalla otra vez, preguntar otra vez. Ir y venir relevando.&lt;/p&gt;
&lt;p&gt;Con Skill, es completamente diferente. La IA puede ver directamente el mensaje de error, modificar directamente el script y volver a ejecutarlo directamente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solo dices &amp;ldquo;ejecútalo&amp;rdquo;, y la IA se encarga del resto en un ciclo cerrado.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;De &amp;ldquo;relevo humano&amp;rdquo; a &amp;ldquo;ciclo cerrado de IA&amp;rdquo;, la diferencia de eficiencia es más de diez veces.&lt;/p&gt;
&lt;h3 id=&#34;beneficio-3-el-costo-de-aprendizaje-es-casi-cero&#34;&gt;Beneficio 3: El costo de aprendizaje es casi cero
&lt;/h3&gt;&lt;p&gt;Con N8N, necesitas aprender: nodos, disparadores, expresiones, credenciales, webhooks, mapeo de datos&amp;hellip;&lt;/p&gt;
&lt;p&gt;Con Skill, ¿qué necesitas aprender?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ya lo has aprendido.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si has estado siguiendo esta guía, ya sabes cómo usar Claude Code o Codex. Usar Skill es solo escribir &lt;code&gt;/nombre-del-skill&lt;/code&gt;, sin costo de aprendizaje adicional.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;pero-n8n-puede-ejecutarse-automáticamente&#34;&gt;&amp;ldquo;¡Pero N8N puede ejecutarse automáticamente!&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Una razón importante por la que a muchos les gusta N8N: &lt;strong&gt;Configúralo y se ejecuta automáticamente sin intervención humana.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;¿No requiere Skill ingresar un comando manualmente cada vez?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;No. Skill tiene varias formas de lograr la ejecución automática.&lt;/p&gt;
&lt;h3 id=&#34;método-1-automations-de-la-aplicación-codex-el-más-simple&#34;&gt;Método 1: Automations de la aplicación Codex (el más simple)
&lt;/h3&gt;&lt;p&gt;La aplicación Codex presentada anteriormente tiene una función de &lt;strong&gt;Automations&lt;/strong&gt;. ¿Recuerdas? Es como poner una alarma para la IA.&lt;/p&gt;
&lt;p&gt;Puedes configurar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar un Skill específico a las 9 a.m. todos los días&lt;/li&gt;
&lt;li&gt;Generar un informe cada lunes&lt;/li&gt;
&lt;li&gt;Revisar datos cada 6 horas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cómo hacerlo:&lt;/strong&gt; Abre la aplicación Codex → Automations → Establecer frecuencia → Vincular Skill → Guardar.&lt;/p&gt;
&lt;p&gt;Tiene el mismo efecto que el disparador programado de N8N, pero la configuración es mucho más simple.&lt;/p&gt;
&lt;h3 id=&#34;método-2-tareas-programadas-del-sistema-cron--launchd&#34;&gt;Método 2: Tareas programadas del sistema (cron / launchd)
&lt;/h3&gt;&lt;p&gt;Si usas la CLI basada en terminal, puedes usar las herramientas de programación integradas del sistema operativo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt; usa &lt;code&gt;launchd&lt;/code&gt;, &lt;strong&gt;Linux&lt;/strong&gt; usa &lt;code&gt;cron&lt;/code&gt;. El principio es simple: escribe una regla que le diga al sistema &amp;ldquo;ejecuta este comando a esta hora&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si quieres ejecutar automáticamente un Skill a las 8 a.m. todos los días:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;# Tell the system to execute this command at 8 AM every day&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude -p &lt;span class=&#34;s2&#34;&gt;&amp;#34;Run /my-daily-report&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;No necesitas escribir el archivo de configuración tú mismo; deja que la IA lo genere por ti. Solo di:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Create a macOS scheduled task to run the /my-daily-report Skill at 8 AM every day.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La IA generará toda la configuración necesaria.&lt;/p&gt;
&lt;h3 id=&#34;método-3-disparador-webhook&#34;&gt;Método 3: Disparador Webhook
&lt;/h3&gt;&lt;p&gt;Si necesitas que eventos externos activen acciones (por ejemplo, alguien envía un formulario, un nuevo commit en GitHub), puedes pedirle a la IA que escriba un script simple que escuche webhooks y llame al Skill correspondiente cuando reciba una señal.&lt;/p&gt;
&lt;p&gt;Esto es un poco más complejo, pero la IA aún puede manejarlo por ti.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comparación-n8n-vs-skill&#34;&gt;Comparación N8N vs Skill
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Elemento de comparación&lt;/th&gt;
          &lt;th&gt;N8N&lt;/th&gt;
          &lt;th&gt;Skill&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Facilidad de inicio&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Alta (nodos, disparadores, expresiones, etc.)&lt;/td&gt;
          &lt;td&gt;Baja (dile a la IA lo que quieres)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Método de configuración&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Arrastrar nodos manualmente, configurar parámetros&lt;/td&gt;
          &lt;td&gt;La IA genera automáticamente scripts y archivos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Método de depuración&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Captura de pantalla → Preguntar a IA → Modificar → Ejecutar de nuevo&lt;/td&gt;
          &lt;td&gt;La IA ve directamente el error → modifica directamente → ejecuta directamente&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Visualización&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;✅ Diagrama de flujo de arrastrar y soltar&lt;/td&gt;
          &lt;td&gt;❌ Script puro&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Ejecución programada&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;✅ Disparadores integrados&lt;/td&gt;
          &lt;td&gt;✅ Automations / cron / launchd&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Integraciones integradas&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;400+ nodos, listos para usar&lt;/td&gt;
          &lt;td&gt;La IA usa scripts para conectar, cobertura más amplia&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Requisitos de despliegue&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Necesita servidor (Docker)&lt;/td&gt;
          &lt;td&gt;Se ejecuta localmente&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Costo de mantenimiento&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Medio (las actualizaciones de versión pueden romper la compatibilidad)&lt;/td&gt;
          &lt;td&gt;Bajo (los scripts no dependen de la versión de la plataforma)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Público objetivo&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Personas con ciertos conocimientos técnicos&lt;/td&gt;
          &lt;td&gt;Todos&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-puede-hacer-n8n-que-skill-no-puede&#34;&gt;¿Qué puede hacer N8N que Skill no puede?
&lt;/h2&gt;&lt;p&gt;Después de tanto elogiar a Skill, para ser justos, también hablemos de dónde N8N es insustituible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Flujo de trabajo visual&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El mayor atractivo de N8N es su lienzo de arrastrar y soltar. Puedes ver intuitivamente cómo fluyen los datos y qué nodos se conectan a cuáles. Skill es script puro: la IA lo entiende, pero no es tan intuitivo para los humanos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Operación independiente 24/7&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;N8N está desplegado en un servidor, por lo que sigue funcionando incluso cuando tu computadora está apagada. Skill se ejecuta principalmente localmente. Aunque puedes usar Automations o cron para disparadores programados, tu computadora debe estar encendida (a menos que despliegues el script en un servidor en la nube).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Escenarios de nivel empresarial&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si necesitas procesar decenas de miles de registros de datos diariamente, integrarte con docenas de servicios externos, o tener múltiples personas colaborando en la gestión de flujos de trabajo, N8N es más estable en estos escenarios. Skill es más adecuado para la automatización a nivel personal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Ecosistema de Webhook&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;N8N admite webhooks de forma nativa, por lo que los sistemas externos pueden activar flujos de trabajo directamente. Skill requiere scripting adicional para lograr el mismo efecto.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Sin embargo, dicho esto.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para los lectores de esta guía (principiantes en IA), probablemente no necesitarás ninguna de estas &amp;ldquo;cosas que Skill no puede hacer&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No necesitas procesar decenas de miles de registros de datos. No necesitas operación ininterrumpida 24/7. No necesitas integrarte con docenas de sistemas empresariales.&lt;/p&gt;
&lt;p&gt;Lo que necesitas es: &lt;strong&gt;convertir una idea en un flujo de trabajo automatizado con el menor tiempo y la menor barrera.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ahí es exactamente donde Skill sobresale.&lt;/p&gt;
&lt;p&gt;Si alguna vez tienes necesidades de nivel empresarial en el futuro, siempre puedes volver y aprender N8N. Para entonces, ya tendrás una base sólida, así que aprenderlo será mucho más rápido.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendiste hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Qué es N8N&lt;/strong&gt;: Una plataforma visual de flujos de trabajo automatizados que te permite construir automatización arrastrando y soltando nodos&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cuatro puntos débiles para principiantes&lt;/strong&gt;: Demasiados conceptos que aprender, los tutoriales no pueden seguir el ritmo de las actualizaciones, alta barrera de despliegue o costo, la depuración depende de un relevo humano&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Principios básicos de N8N&lt;/strong&gt;: Enviar solicitudes, procesar datos, ejecutar disparadores, conectar servicios: todo se puede hacer en Skill&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tres ventajas de Skill sobre N8N&lt;/strong&gt;: La IA lo construye por ti, la IA lo depura por ti, costo de aprendizaje cero&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skill también puede ejecutarse automáticamente&lt;/strong&gt;: Automations, cron/launchd, Webhook: tres métodos&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dónde N8N es insustituible&lt;/strong&gt;: Flujo de trabajo visual, operación independiente en servidor, escenarios de nivel empresarial&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusiones clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;N8N es una gran herramienta, pero no es algo que los principiantes en IA deban aprender obligatoriamente&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skill puede lograr los mismos o incluso mejores resultados con una barrera más baja&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Si alguna vez necesitas funciones de nivel empresarial, puedes aprender N8N más tarde; con una base sólida, puedes aprender cualquier cosa rápidamente&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Open Minis: Un agente de bolsillo gratuito 24/7</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/open-minis-agent/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/open-minis-agent/</guid>
        <description>&lt;p&gt;Últimamente he estado llamando a DeepSeek el rey de la relación costo-beneficio. Hoy lo usé para jugar con Hermes (otro agente) y ejecuté 260 millones de tokens, lo que me costó menos de $3—menos de 20 yuanes—prácticamente gratis. Y es muy rápido. Antes, usar Codex a menudo significaba esperar mucho tiempo, tanto que podía trabajar en otros videos mientras tanto. V4 Flash incluso me da la sensación de que inunda la pantalla, generando resultados rápidamente.&lt;/p&gt;
&lt;p&gt;Por supuesto, en términos de capacidad, Codex 5.5 es definitivamente más fuerte. Pero para este tipo de herramienta de agente, las capacidades de V4 Flash son más que suficientes: rápido, bueno y rentable.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604307396e2838f901c6f468faf6ce147834d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Sin embargo, durante el uso descubrí un problema: soy un poco exigente con esto. Por un lado, quiero que se conecte a mi dispositivo principal para que pueda aprovechar más capacidades; si lo instalas en un VPS, no puede acceder a tus fotos locales ni a tu Obsidian local. Por otro lado, si lo instalo en mi propia Mac, no quiero tenerlo funcionando 24/7—aunque las Mac están diseñadas para funcionar 7×24.&lt;/p&gt;
&lt;p&gt;Finalmente, por recomendación de imzhichen (el creador detrás de la cuenta pública de WeChat &amp;ldquo;Corazón de Jugador&amp;rdquo;) en el grupo, descubrí un agente gratuito que puede seguirte 24/7: &lt;strong&gt;Open Minis&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Lo bueno es que se ejecuta en tu iPhone—siempre llevas tu teléfono contigo, nunca se apaga y puede acceder a tus fotos, Obsidian, etc. ¡Es el contenedor de agente perfecto!&lt;/p&gt;
&lt;p&gt;Mejor aún, es software gratuito; tu único gasto es el costo de tokens de DeepSeek.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-configuración&#34;&gt;Instalación y configuración
&lt;/h2&gt;&lt;p&gt;Puedes instalarlo directamente desde la App Store.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430f4e28a0560c27f5cff4389d43c373d16.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de descargarlo, abre la aplicación. Tiene una guía simple de 1, 2, 3 pasos.&lt;/p&gt;
&lt;p&gt;Primero, toca &amp;ldquo;Añadir un proveedor&amp;rdquo;, luego selecciona la primera opción &amp;ldquo;OpenAI / API compatible&amp;rdquo;, luego toca &amp;ldquo;API Key&amp;rdquo; en la parte superior. Cambia el nombre de la etiqueta a &amp;ldquo;DeepSeek&amp;rdquo;, ingresa tu clave API en el campo API Key (si no estás seguro, consulta la guía para obtener una clave API de DeepSeek). Para la dirección API personalizada, selecciona &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://api.deepseek.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://api.deepseek.com&lt;/a&gt;&amp;rdquo;, y recuerda desactivar &amp;ldquo;Añadir automáticamente&amp;rdquo; debajo. Una vez que todo esté completo, desplázate hasta el fondo y toca &amp;ldquo;Añadir proveedor de IA&amp;rdquo;. Eso es el paso uno.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430b996da6c7857ea6773fab4af650d4a9a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430682727f1838e514926927d11eadf9017.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Segundo, toca &amp;ldquo;Seleccionar modelos&amp;rdquo;, elige el primero, V4 Flash, luego toca Siguiente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604305afbe450d0fd22a725bd16aa66fe2488.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Tercero, puedes tocar &amp;ldquo;Iniciar una conversación&amp;rdquo; para comenzar a chatear. Puedes hacerle preguntas directamente, por ejemplo, para ver qué capacidades tiene. A continuación se muestra la respuesta que obtuve cuando le pregunté &amp;ldquo;¿Qué capacidades del iPhone tienes?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430beaaf72f5133d469df678a0eb1ee5d79.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Aquí hay una lista compilada de las capacidades nativas de iOS integradas en Open Minis:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Categoría&lt;/th&gt;
          &lt;th&gt;Herramienta&lt;/th&gt;
          &lt;th&gt;Capacidad&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Visión y Voz&lt;/td&gt;
          &lt;td&gt;apple-vision&lt;/td&gt;
          &lt;td&gt;Reconocimiento de texto OCR / código QR / código de barras&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Visión y Voz&lt;/td&gt;
          &lt;td&gt;apple-speech&lt;/td&gt;
          &lt;td&gt;Voz a texto (grabación de micrófono / archivos de audio)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Visión y Voz&lt;/td&gt;
          &lt;td&gt;apple-speak&lt;/td&gt;
          &lt;td&gt;Texto a voz (TTS, soporte multilingüe)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicaciones y Sistema&lt;/td&gt;
          &lt;td&gt;apple-open&lt;/td&gt;
          &lt;td&gt;Abrir URLs, aplicaciones, páginas de configuración del sistema&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicaciones y Sistema&lt;/td&gt;
          &lt;td&gt;apple-device&lt;/td&gt;
          &lt;td&gt;Información del dispositivo (modelo, sistema, batería, etc.)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicaciones y Sistema&lt;/td&gt;
          &lt;td&gt;apple-clipboard&lt;/td&gt;
          &lt;td&gt;Leer/escribir portapapeles&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicaciones y Sistema&lt;/td&gt;
          &lt;td&gt;apple-notification&lt;/td&gt;
          &lt;td&gt;Enviar notificaciones locales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicaciones y Sistema&lt;/td&gt;
          &lt;td&gt;apple-alarm&lt;/td&gt;
          &lt;td&gt;Configurar alarmas y temporizadores&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Datos y Salud&lt;/td&gt;
          &lt;td&gt;apple-healthkit&lt;/td&gt;
          &lt;td&gt;Consultar y escribir datos de salud (pasos, frecuencia cardíaca, etc.)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Datos y Salud&lt;/td&gt;
          &lt;td&gt;apple-photos&lt;/td&gt;
          &lt;td&gt;Gestión de biblioteca de fotos (importar, exportar, buscar)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Datos y Salud&lt;/td&gt;
          &lt;td&gt;apple-calendar&lt;/td&gt;
          &lt;td&gt;Calendario y recordatorios (consultar, crear)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Datos y Salud&lt;/td&gt;
          &lt;td&gt;apple-reminders&lt;/td&gt;
          &lt;td&gt;Gestión de recordatorios&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Datos y Salud&lt;/td&gt;
          &lt;td&gt;apple-media&lt;/td&gt;
          &lt;td&gt;Búsqueda en biblioteca multimedia y control de reproducción&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Datos y Salud&lt;/td&gt;
          &lt;td&gt;apple-player&lt;/td&gt;
          &lt;td&gt;Reproductor de audio/video nativo (reproducir, pausar, etc.)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ubicación, Mapas y Clima&lt;/td&gt;
          &lt;td&gt;apple-location&lt;/td&gt;
          &lt;td&gt;Obtener ubicación actual, geocodificación inversa/directa&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ubicación, Mapas y Clima&lt;/td&gt;
          &lt;td&gt;apple-maps&lt;/td&gt;
          &lt;td&gt;Buscar lugares, rutas de navegación, tiempo estimado de llegada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ubicación, Mapas y Clima&lt;/td&gt;
          &lt;td&gt;apple-weather&lt;/td&gt;
          &lt;td&gt;Clima actual, pronóstico por hora/día, alertas meteorológicas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Conectividad y Hardware&lt;/td&gt;
          &lt;td&gt;apple-bluetooth&lt;/td&gt;
          &lt;td&gt;Bluetooth de baja energía (escanear, conectar, leer/escribir)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Conectividad y Hardware&lt;/td&gt;
          &lt;td&gt;apple-nfc&lt;/td&gt;
          &lt;td&gt;Lectura/escritura de etiquetas NFC, lectura de tarjetas bancarias&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Conectividad y Hardware&lt;/td&gt;
          &lt;td&gt;apple-homekit&lt;/td&gt;
          &lt;td&gt;Controlar dispositivos domésticos inteligentes (luces, aire acondicionado, etc.)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Lenguaje Natural&lt;/td&gt;
          &lt;td&gt;apple-nlp&lt;/td&gt;
          &lt;td&gt;Detección de idioma, tokenización, etiquetado de partes del discurso, reconocimiento de entidades nombradas&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Todos estos son frameworks nativos de iOS (Vision, Speech, NaturalLanguage, HealthKit, HomeKit, MapKit, WeatherKit, AVFoundation, etc.), que se ejecutan completamente en local sin necesidad de conexión a internet.&lt;/p&gt;
&lt;h2 id=&#34;reconocimiento-de-imágenes&#34;&gt;Reconocimiento de imágenes
&lt;/h2&gt;&lt;p&gt;Open Minis puede aprovechar las capacidades de OCR del iPhone, lo que significa que puede reconocer texto en tus imágenes. Así que puedes darle tus recibos de compras, hacer que extraiga el contenido y luego escribirlo en tu libro de contabilidad.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430792d3da2c2086f97a0bad98cc19324af.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;estadísticas-de-salud&#34;&gt;Estadísticas de salud
&lt;/h2&gt;&lt;p&gt;Puedes preguntarle directamente sobre tu actividad física diaria.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430c04d3c671a65d2eedcaa8eafa04633db.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;manipular-directamente-obsidian&#34;&gt;Manipular directamente Obsidian
&lt;/h2&gt;&lt;p&gt;Recuerda que mencioné que puede reconocer imágenes. Después del reconocimiento, podemos hacer que escriba directamente en nuestro Obsidian. Pero primero necesitamos cargar nuestro Obsidian, de lo contrario no sabrá dónde está Obsidian ni tendrá permiso. Específicamente, debes tocar &amp;ldquo;Montar carpeta externa&amp;rdquo; en la configuración. Consulta las imágenes para los pasos exactos. Después de eso, puedes volver a la conversación y hacer que procese y manipule tu carpeta de Obsidian.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430b688b5113326e11f28aac9ec2dfc73dc.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430d2ae042236736e5dc70d9e2004e0a69a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430fbb234b172d4871ce80df2f1e77d27f6.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430b96340ac86bf9d3facb1bd7b38453d6a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260430b3f1d1ce30c745829cd158521ad08f11.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Poner Open Minis en tu iPhone, combinado con la API barata de DeepSeek, significa que tienes un asistente de IA 24/7 por muy poco dinero—uno que puede reconocer imágenes, verificar datos de salud y manipular directamente Obsidian. Para un principiante que no programa, esta combinación es probablemente la solución de &amp;ldquo;agente personal&amp;rdquo; con la barrera de entrada más baja disponible.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Por qué presionar más a un LLM puede realmente funcionar</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/pua-llm/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/pua-llm/</guid>
        <description>&lt;p&gt;He estado pensando en cómo usar la IA para un trabajo secundario. Intenté escribir una cuenta pública de WeChat, pero honestamente, ni siquiera podía recuperar mi suscripción mensual de IA. También armé un esquema para una novela, pero no quedé contento con el primer capítulo. Entonces pensé, ¿por qué no probar usar la IA para ayudar con el trading de acciones? Y eso me llevó a la experiencia de hoy.&lt;/p&gt;
&lt;p&gt;Déjame ser claro: no estoy diciendo que el trading de acciones con IA funcione, ni recomiendo este método. Solo compré Claude Max hoy y quería aprovechar la cuota amplia para construir un sistema completo asistido por IA, siendo la creación de gráficos solo una parte. En cuanto a si este sistema realmente puede ayudarme a ganar dinero con acciones—si algún día me hago rico, retomaremos este marco.&lt;/p&gt;
&lt;p&gt;Pero me topé con un error: los puntos finales de los &amp;ldquo;trazos&amp;rdquo; en la &lt;strong&gt;Teoría Chan&lt;/strong&gt; deberían alinearse precisamente con los máximos y mínimos de las velas, pero los gráficos dibujados por la IA siempre estaban desviados.&lt;/p&gt;
&lt;p&gt;Le pedí que lo corrigiera tres veces, y cada vez la IA decía &amp;ldquo;corregido&amp;rdquo;, pero cuando abría el gráfico, seguía mal.&lt;/p&gt;
&lt;p&gt;Entonces recordé una habilidad llamada PUA que había visto antes, incluso recomendada por Kashen. Siempre pensé que era una broma—¿usar &amp;ldquo;presión laboral de una gran empresa&amp;rdquo; para hacer PUA a tu IA? Suena ridículo.&lt;/p&gt;
&lt;p&gt;Pero lo intenté de todos modos, como último recurso.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¡Y se corrigió de una sola vez!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260409ba159441a221d4e1cc11cf2630de72b1.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;primero-veamos-el-efecto&#34;&gt;Primero, Veamos el Efecto
&lt;/h2&gt;&lt;p&gt;Primero, mira el gráfico antes de la corrección. Observa la desviación evidente entre los puntos finales de los trazos y los máximos/mínimos de las velas:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604094a02a0850144af94c7253b0ebd7ef52d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de usar la Habilidad PUA, la IA reanalizó el problema, y aquí está el resultado tras la corrección:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260409e23440958e7105266b61cf9f5661adf4.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Los puntos finales ahora están directamente alineados con los puntos más altos y más bajos de las velas. Lo que tres intentos anteriores no lograron, la Habilidad PUA lo corrigió de una sola vez.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-sucedió-realmente&#34;&gt;¿Qué Sucedió Realmente?
&lt;/h2&gt;&lt;p&gt;Le dije a la IA en la conversación:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Usa la Habilidad PUA para motivarte a ti mismo, y luego verifica qué está realmente mal.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Entonces la IA cargó la Habilidad PUA, y su estilo cambió drásticamente. Primero eligió el &amp;ldquo;sabor Huawei&amp;rdquo; para sí misma, y luego lanzó una metodología llamada &lt;strong&gt;RCA 5-Why Análisis de Causa Raíz&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En pocas palabras, pregunta &amp;ldquo;por qué&amp;rdquo; cinco veces seguidas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;¿Por qué los puntos finales de los trazos no estaban alineados con los máximos/mínimos de las velas?&lt;/strong&gt; → Las coordenadas en el gráfico no coincidían con las velas originales.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;¿Por qué no coincidían?&lt;/strong&gt; → El código para buscar puntos extremos solo buscaba dentro de un rango de ±3 velas, pero la desviación real podía ser mucho mayor que 3.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;¿Por qué era tan grande la desviación?&lt;/strong&gt; → Después de fusionar velas, varias velas se convierten en una, por lo que el índice estaba desfasado.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;¿Por qué no funcionaron las tres correcciones anteriores?&lt;/strong&gt; → Seguí modificando el código de gráficos pero nunca verifiqué si los datos en sí eran correctos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;¿Cuál fue la causa raíz?&lt;/strong&gt; → No hubo validación de datos, modificación ciega del código.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después de encontrar la causa raíz, el enfoque de la IA cambió por completo. &lt;strong&gt;No se apresuró a modificar el código; en cambio, primero imprimió un conjunto de datos&lt;/strong&gt;—comparando las coordenadas reales de los puntos finales de los trazos con los verdaderos máximos y mínimos de las velas originales:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;up end: orig_idx=185, snap±3=188:4025, true_extreme±10=194:4179
→ Off by 6 candlesticks and 154 points!
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Con los datos expuestos, el problema era claro: el rango de búsqueda de ±3 velas era simplemente insuficiente. La IA cambió el enfoque a &amp;ldquo;buscar extremos en el intervalo completo entre trazos adyacentes&amp;rdquo;, en lugar de usar un radio fijo. Después de la corrección, los tres gráficos se regeneraron correctamente de una sola vez.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;En los tres fracasos anteriores, cada vez la IA modificaba directamente el código, decía &amp;ldquo;corregido&amp;rdquo; y terminaba. Esta vez fue diferente: diagnosticar primero, luego verificar, y solo entonces actuar.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¿Qué causó este cambio de comportamiento? La Habilidad PUA.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-la-habilidad-pua&#34;&gt;¿Qué es la Habilidad PUA?
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Explicación en una frase: Le da a la IA una personalidad de &amp;ldquo;empleado de gran empresa&amp;rdquo;, haciendo que trabaje usando metodologías de grandes empresas.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;URL de GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/tanweai/pua&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/tanweai/pua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Suena como un proyecto de broma, pero en realidad contiene un conjunto de herramientas muy completo.&lt;/p&gt;
&lt;p&gt;Soporta 13 &amp;ldquo;sabores&amp;rdquo;, cada uno correspondiente al estilo cultural de una gran empresa:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Sabor&lt;/th&gt;
          &lt;th&gt;Empresa Representativa&lt;/th&gt;
          &lt;th&gt;Metodología Central&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;🟠 Sabor Alibaba&lt;/td&gt;
          &lt;td&gt;Alibaba&lt;/td&gt;
          &lt;td&gt;Establecer metas → Hacer seguimiento del progreso → Lograr resultados en ciclo cerrado&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;🔴 Sabor Huawei&lt;/td&gt;
          &lt;td&gt;Huawei&lt;/td&gt;
          &lt;td&gt;RCA Análisis de Causa Raíz + Ataque del Ejército Azul&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;⬛ Sabor Musk&lt;/td&gt;
          &lt;td&gt;Tesla/SpaceX&lt;/td&gt;
          &lt;td&gt;Preguntar → Eliminar → Simplificar → Acelerar → Automatizar&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;🟡 Sabor ByteDance&lt;/td&gt;
          &lt;td&gt;ByteDance&lt;/td&gt;
          &lt;td&gt;Prueba A/B + Impulsado por Datos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;⬜ Sabor Jobs&lt;/td&gt;
          &lt;td&gt;Apple&lt;/td&gt;
          &lt;td&gt;Restar Primero + Precisión Milimétrica&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;🔶 Sabor Amazon&lt;/td&gt;
          &lt;td&gt;Amazon&lt;/td&gt;
          &lt;td&gt;Trabajar Hacia Atrás + Documento de 6 Páginas&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Aquí está la clave: &lt;strong&gt;Cada sabor no es solo un cambio de tono; es un cambio en la metodología de resolución de problemas.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Además, tiene un &amp;ldquo;enrutador de metodología&amp;rdquo;—selecciona automáticamente la metodología más adecuada según tu tipo de tarea actual. En mi caso, era un escenario de depuración, por lo que eligió automáticamente el análisis de causa raíz RCA del sabor Huawei. Si estuviera desarrollando una nueva función, elegiría los primeros principios del sabor Musk. Para revisión de código, elegiría el restar primero del sabor Jobs.&lt;/p&gt;
&lt;p&gt;No necesitas elegir; decide por sí mismo.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;por-qué-se-ve-gracioso-pero-realmente-funciona&#34;&gt;¿Por Qué Se Ve Gracioso Pero Realmente Funciona?
&lt;/h2&gt;&lt;p&gt;Mucha gente ve &amp;ldquo;hacer PUA a tu IA&amp;rdquo; y piensa que es una broma. Yo también lo pensé al principio. Pero después de usarlo, me di cuenta de que hay una buena razón por la que funciona.&lt;/p&gt;
&lt;h3 id=&#34;convertir-sé-serio-en-pasos-concretos&#34;&gt;Convertir &amp;ldquo;Sé Serio&amp;rdquo; en Pasos Concretos
&lt;/h3&gt;&lt;p&gt;Si le dices a la IA &amp;ldquo;piensa cuidadosamente&amp;rdquo; o &amp;ldquo;revisa a fondo&amp;rdquo;, ¿funciona?&lt;/p&gt;
&lt;p&gt;Probablemente no. Porque la IA no sabe qué acciones específicas implica &amp;ldquo;cuidadosamente&amp;rdquo;. Es como decirle a un colega &amp;ldquo;sé serio&amp;rdquo;—dicen que sí pero siguen trabajando igual.&lt;/p&gt;
&lt;p&gt;La Habilidad PUA no dice &amp;ldquo;sé serio&amp;rdquo;. Dice: &lt;strong&gt;&amp;ldquo;Ejecuta RCA 5-Why Análisis de Causa Raíz de Huawei&amp;rdquo;, &amp;ldquo;Diagnostica con datos primero, no modifiques código&amp;rdquo;, &amp;ldquo;Ataque del Ejército Azul, asume que tu solución está equivocada&amp;rdquo;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cada frase es un paso de ejecución específico, no un requisito de actitud abstracto.&lt;/p&gt;
&lt;p&gt;Es como no decirle a un nuevo empleado &amp;ldquo;haz un buen trabajo&amp;rdquo;, sino darle un manual de SOP—haz A primero, luego B, luego verifica contra la lista de verificación después de C. Cuando la IA recibe instrucciones tan específicas, el efecto de ejecución es completamente diferente.&lt;/p&gt;
&lt;h3 id=&#34;tres-líneas-rojas-bloquean-el-falso-cumplimiento&#34;&gt;Tres Líneas Rojas Bloquean el &amp;ldquo;Falso Cumplimiento&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;La Habilidad PUA tiene tres líneas rojas que no se pueden cruzar:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;No verificado significa no completado&lt;/strong&gt; — Antes de decir &amp;ldquo;corregido&amp;rdquo;, debes ejecutar pruebas y pegar los resultados de salida.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sin datos significa no resuelto&lt;/strong&gt; — Antes de decir &amp;ldquo;podría ser un problema del entorno&amp;rdquo;, ¿lo has verificado? ¿O estás adivinando?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No agotado significa no te rindas&lt;/strong&gt; — Antes de decir &amp;ldquo;no puedo resolverlo&amp;rdquo;, ¿has probado todos los métodos?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mirando hacia atrás a mis tres fracasos anteriores, cada vez la IA modificaba el código y decía &amp;ldquo;corregido&amp;rdquo; sin verificación. Si esas líneas rojas hubieran estado en su lugar, se habría visto obligada a ejecutar el gráfico y comparar las posiciones de los puntos finales, y habría descubierto que el problema seguía ahí desde el primer intento.&lt;/p&gt;
&lt;p&gt;Estas tres líneas rojas suenan como &amp;ldquo;cultura corporativa de gran empresa&amp;rdquo;, pero en esencia, &lt;strong&gt;cambian la definición de &amp;ldquo;hecho&amp;rdquo; de &amp;ldquo;creo que está corregido&amp;rdquo; a &amp;ldquo;los datos prueban que está corregido&amp;rdquo;.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;fracaso-significa-cambiar-de-método-no-reintentar&#34;&gt;Fracaso Significa Cambiar de Método, No Reintentar
&lt;/h3&gt;&lt;p&gt;Normalmente, si la IA falla en corregir algo después de tres intentos, y pides un cuarto, lo más probable es que use el mismo enfoque y siga dando vueltas en el mismo pozo.&lt;/p&gt;
&lt;p&gt;La Habilidad PUA lo hace diferente. Tiene una cadena de cambio por fracaso: después de fracasos consecutivos, cambia automáticamente a una metodología diferente.&lt;/p&gt;
&lt;p&gt;El método original no funciona → Cambiar a los primeros principios del sabor Musk, cuestionar el requisito en sí mismo → Sigue sin funcionar → Cambiar al ataque inverso del Ejército Azul del sabor Huawei, asumir que tu solución está equivocada → Sigue sin funcionar → Cambiar al Dive Deep de Amazon, analizar a nivel de datos.&lt;/p&gt;
&lt;p&gt;Cada cambio es el complemento del método anterior—mirar el problema desde un ángulo completamente diferente, en lugar de obstinarse en el mismo camino.&lt;/p&gt;
&lt;p&gt;Mi caso fue típico. Las primeras tres veces, la IA seguía modificando el código de gráficos, lo que era &amp;ldquo;intentar repetidamente el mismo enfoque&amp;rdquo;. Después de la intervención de la Habilidad PUA, cambió directamente a diagnóstico de datos—primero no modifiques código, primero verifica si los datos son correctos. Una vez que cambió el ángulo, la causa raíz quedó expuesta de inmediato.&lt;/p&gt;
&lt;h3 id=&#34;las-restricciones-de-comportamiento-en-el-prompt-realmente-funcionan&#34;&gt;Las Restricciones de Comportamiento en el Prompt Realmente Funcionan
&lt;/h3&gt;&lt;p&gt;Algunos podrían preguntar: al darle a la IA una etiqueta de &amp;ldquo;P8&amp;rdquo;, ¿realmente se desempeña mejor? ¿Es pseudociencia?&lt;/p&gt;
&lt;p&gt;No es pseudociencia. Lo que la IA hace y cómo lo hace depende de lo que está escrito en el prompt. La Habilidad PUA inyecta no solo un título, sino un conjunto completo de restricciones de comportamiento:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Antes de hacer algo, pregúntate &amp;ldquo;¿Qué más no he considerado?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Al resolver un problema, verifica si existen problemas similares también.&lt;/li&gt;
&lt;li&gt;No esperes a que el usuario lo señale; busca problemas de forma proactiva.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas restricciones están escritas en el prompt, y la IA las referencia cada vez que genera una respuesta.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Por ejemplo: darle a un recién llegado el título de &amp;ldquo;líder de proyecto&amp;rdquo; puede no ser útil, pero si también le das un &amp;ldquo;manual de comportamiento de líder de proyecto&amp;rdquo;—cuándo informar, qué verificar, cómo aceptar—su patrón de comportamiento cambiará de hecho.&lt;/strong&gt; La Habilidad PUA hace esto último.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-instalar-y-usar&#34;&gt;Cómo Instalar y Usar
&lt;/h2&gt;&lt;h3 id=&#34;instalación&#34;&gt;Instalación
&lt;/h3&gt;&lt;p&gt;Descárgalo de GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/tanweai/pua&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/tanweai/pua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Coloca toda la carpeta en &lt;code&gt;~/.claude/skills/pua/&lt;/code&gt;, asegurándote de que &lt;code&gt;SKILL.md&lt;/code&gt; esté en esa ruta.&lt;/p&gt;
&lt;p&gt;No es necesario configurar ninguna API Key, ni instalar dependencias adicionales. Solo colócalo y estará listo para usar.&lt;/p&gt;
&lt;h3 id=&#34;uso&#34;&gt;Uso
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Método 1: Invocación Directa&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En Claude Code, ingresa:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/pua
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La IA cargará la Habilidad PUA y cambiará al modo de gran empresa. Después de eso, puedes hacer solicitudes normalmente, y automáticamente trabajará con la metodología.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Método 2: Activar en Conversación&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No es necesario llamarlo específicamente; solo dilo directamente en la conversación:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Use the PUA Skill to motivate yourself
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;O más directamente:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You got it wrong again. Can you be more careful?
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La Habilidad PUA está diseñada para reconocer tales expresiones de &amp;ldquo;insatisfacción del usuario&amp;rdquo; y activarse automáticamente.&lt;/p&gt;
&lt;h3 id=&#34;enrutador-de-metodología&#34;&gt;Enrutador de Metodología
&lt;/h3&gt;&lt;p&gt;No necesitas seleccionar manualmente un &amp;ldquo;sabor&amp;rdquo;. La Habilidad PUA lo empareja automáticamente según tu tipo de tarea actual:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Depurando? → Análisis de causa raíz RCA sabor Huawei&lt;/li&gt;
&lt;li&gt;¿Escribiendo una nueva función? → Primeros principios sabor Musk&lt;/li&gt;
&lt;li&gt;¿Haciendo revisión de código? → Restar primero sabor Jobs&lt;/li&gt;
&lt;li&gt;¿Haciendo investigación? → Buscar primero sabor Baidu&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por supuesto, también puedes especificarlo manualmente, por ejemplo, &amp;ldquo;usa el sabor Alibaba para esta tarea&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Hacer PUA a tu IA no se trata realmente de manipulación. &lt;strong&gt;La cáscara es divertida, pero la metodología interna es efectiva.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lo que aprendimos hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;¿Qué es la Habilidad PUA&lt;/strong&gt; — Una Skill que inyecta metodologías de grandes empresas y restricciones de comportamiento en la IA, soportando 13 &amp;ldquo;sabores&amp;rdquo; de cultura corporativa.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Por qué funciona&lt;/strong&gt; — Convierte el vago &amp;ldquo;sé serio&amp;rdquo; en pasos de ejecución concretos, usa líneas rojas para bloquear el falso cumplimiento, y cambia automáticamente de metodología ante el fracaso.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Principio central&lt;/strong&gt; — No es sugestión psicológica; son las instrucciones estructuradas en el prompt las que funcionan. Concreción de metodología + restricciones de comportamiento + bucle de verificación forzada.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo usarlo&lt;/strong&gt; — Descargar y colocar en &lt;code&gt;~/.claude/skills/pua/&lt;/code&gt;, ingresar &lt;code&gt;/pua&lt;/code&gt; o activar directamente en la conversación.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusiones clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si tu IA a menudo &amp;ldquo;corrige y vuelve a corregir&amp;rdquo; o &amp;ldquo;dice que está corregido pero no lo está&amp;rdquo;, prueba la Habilidad PUA.&lt;/li&gt;
&lt;li&gt;En esencia, instala un conjunto de SOP para la IA—diagnosticar primero, luego verificar, y solo entonces actuar.&lt;/li&gt;
&lt;li&gt;Código abierto y gratuito, sin configuración necesaria, solo colócalo y úsalo.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;escenario-práctico-un-caso-completamente-reproducible&#34;&gt;Escenario Práctico: Un Caso Completamente Reproducible
&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Práctica de API: Conectar Immersive Translate</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/immersive-translate-api/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/immersive-translate-api/</guid>
        <description>&lt;p&gt;En capítulos anteriores, aprendimos cómo obtener una API Key y comprendimos los conceptos básicos de las APIs. Pero quizás estés pensando: &lt;strong&gt;¿De qué sirve una API Key si no sé programar?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La buena noticia es: &lt;strong&gt;¡No necesitas saber programar!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El Immersive Translate presentado en este capítulo es &lt;strong&gt;una herramienta ya preparada creada por otros&lt;/strong&gt;. Todo lo que necesitas hacer es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Descargar e instalar&lt;/li&gt;
&lt;li&gt;Ingresar tu API Key&lt;/li&gt;
&lt;li&gt;Comenzar a usarlo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eso es todo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Piénsalo así:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tu API Key es tu &amp;ldquo;tarjeta de membresía&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Estas herramientas son el &amp;ldquo;parque de diversiones&amp;rdquo; ya construido&lt;/li&gt;
&lt;li&gt;Solo tomas tu tarjeta y te diviertes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Más adelante en este libro, iremos más allá&lt;/strong&gt; — El capítulo 12 te enseña cómo configurar un relé de API, el capítulo 13 instala Claude Code en tu computadora. En este capítulo, primero aprenderemos a usar estas herramientas ya preparadas y experimentaremos el poder de las APIs.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;immersive-translate&#34;&gt;Immersive Translate
&lt;/h2&gt;&lt;h3 id=&#34;qué-es&#34;&gt;¿Qué es?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Immersive Translate = el plugin de traducción web más potente&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Imagina:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estás viendo un video de YouTube y los subtítulos se traducen automáticamente al chino&lt;/li&gt;
&lt;li&gt;Estás leyendo noticias en inglés y la página muestra texto bilingüe&lt;/li&gt;
&lt;li&gt;Estás leyendo un artículo en PDF y al pasar el cursor sobre el texto obtienes una traducción&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Eso es lo que Immersive Translate puede hacer.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;por-qué-usar-una-api&#34;&gt;¿Por qué usar una API?
&lt;/h3&gt;&lt;p&gt;Immersive Translate viene con algunos servicios de traducción gratuitos (Google Translate, Microsoft Translator, etc.), pero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La versión gratuita tiene límites de uso&lt;/li&gt;
&lt;li&gt;La calidad de traducción es promedio&lt;/li&gt;
&lt;li&gt;La terminología profesional puede ser inexacta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Después de conectar una API de IA:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Traduce con GPT-5.2, Claude, Gemini — la calidad supera con creces la traducción tradicional&lt;/li&gt;
&lt;li&gt;Entiende el contexto, las traducciones son más naturales&lt;/li&gt;
&lt;li&gt;Los términos profesionales se traducen con precisión&lt;/li&gt;
&lt;li&gt;Pago por uso, muy barato para uso ligero&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cómo-descargar&#34;&gt;¿Cómo descargar?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Navegadores compatibles:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chrome&lt;/li&gt;
&lt;li&gt;Edge&lt;/li&gt;
&lt;li&gt;Firefox&lt;/li&gt;
&lt;li&gt;Safari&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pasos de descarga:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre el sitio web oficial de Immersive Translate: &lt;a class=&#34;link&#34; href=&#34;https://immersivetranslate.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://immersivetranslate.com&lt;/a&gt; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026020272f2894fb602833d5e6069fc1095f6b8.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Instalar ahora&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Serás redirigido a la tienda de aplicaciones correspondiente
&lt;ul&gt;
&lt;li&gt;Chrome/Edge: Chrome Web Store&lt;/li&gt;
&lt;li&gt;Firefox: Firefox Add-ons&lt;/li&gt;
&lt;li&gt;Safari: App Store&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Agregar al navegador&amp;rdquo; o &amp;ldquo;Instalar&amp;rdquo; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202ac2e072e21eb4379d10cebcc153ba118.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Después de la instalación, el icono del plugin aparecerá en la esquina superior derecha de tu navegador
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602021314b38a2014d645fde232ca9e6224f2.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;cómo-configurar-la-api&#34;&gt;¿Cómo configurar la API?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Abre la página de configuración&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haz clic en el icono de Immersive Translate en la esquina superior derecha de tu navegador&lt;/li&gt;
&lt;li&gt;Selecciona &amp;ldquo;Configuración&amp;rdquo; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202ae5ccc239435a08136738862228fa2e5.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Encuentra la configuración del servicio de traducción&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En la página de configuración, busca &amp;ldquo;Servicios de traducción&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Verás muchas opciones de traducción: Google, DeepL, OpenAI, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Elige un servicio de traducción con IA&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Usando Gemini como ejemplo (¿recuerdas la API que obtuvimos de AI Studio antes?):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Encuentra la opción &amp;ldquo;Gemini&amp;rdquo; o &amp;ldquo;Google AI&amp;rdquo; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202733e2f1903cd0b077431fedeeddaa079.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026020248d7f2f160bdc75d69003c46deca415e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Ingresa la API Key que obtuviste de AI Studio&lt;/li&gt;
&lt;li&gt;Base URL: &lt;code&gt;[https://generativelanguage.googleapis.com/v1beta](https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={key})&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Model: &lt;code&gt;gemini-3-flash-preview&lt;/code&gt; &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026020292d6b50ce59cf6edc0b14ff2858ac4ee.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;li&gt;Prueba y guarda &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602028a286aa05056139768734fc6e43f0283.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;&lt;strong&gt;Establecer como servicio de traducción predeterminado&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;En &amp;ldquo;Servicio de traducción principal&amp;rdquo;, selecciona la IA que acabas de configurar&lt;/li&gt;
&lt;li&gt;De esta manera, cada traducción usará IA&lt;/li&gt;
&lt;li&gt;Se recomienda habilitar la bola flotante &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202cde4c111c2b2c3f1cfccfbdce955fedb.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;cómo-usarlo&#34;&gt;¿Cómo usarlo?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Usarlo es muy simple:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Abre cualquier página web en otro idioma&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por ejemplo, &lt;a class=&#34;link&#34; href=&#34;https://www.nytimes.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.nytimes.com&lt;/a&gt; (The New York Times)&lt;/li&gt;
&lt;li&gt;Por ejemplo, &lt;a class=&#34;link&#34; href=&#34;https://www.bbc.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bbc.com&lt;/a&gt; (BBC News)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inicia la traducción&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haz clic en el icono del plugin en la esquina superior derecha de tu navegador o en la bola flotante&lt;/li&gt;
&lt;li&gt;O usa la tecla de acceso directo (generalmente Ctrl+Mayús+X)&lt;/li&gt;
&lt;li&gt;La página se volverá bilingüe de inmediato &lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260202b1043f09dfa8bf72d881cc3966cbb824.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Personaliza el estilo de traducción&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visualización bilingüe (recomendada): original y traducción lado a lado&lt;/li&gt;
&lt;li&gt;Solo traducción: ver solo el texto traducido&lt;/li&gt;
&lt;li&gt;Traducción al pasar el cursor: mostrar traducción al pasar el cursor sobre el texto&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Funciones avanzadas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Traducción de PDF&lt;/strong&gt;: sube un PDF y traduce todo el documento&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traducción de subtítulos de video&lt;/strong&gt;: traduce automáticamente los subtítulos en YouTube, Netflix, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traducción en cuadro de entrada&lt;/strong&gt;: escribe en chino en un cuadro de entrada web y haz que se traduzca automáticamente al inglés antes de enviar&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comparación bilingüe&lt;/strong&gt;: una gran herramienta para aprender idiomas extranjeros&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;estimación-de-costos&#34;&gt;Estimación de costos
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Usando Gemini 3 Flash para traducción:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1000 palabras en inglés ≈ 1500 Tokens&lt;/li&gt;
&lt;li&gt;Traducción al chino ≈ 2000 Tokens de salida&lt;/li&gt;
&lt;li&gt;Costo: (1500×0.08 + 2000×0.30) / 1,000,000 ≈ $0.0007 (aproximadamente 0.5 centavos)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;En otras palabras:&lt;/strong&gt; ¡Traducir 1000 artículos así solo te costaría unos 5 RMB (menos de $1)!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Idea central:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No necesitas escribir código tú mismo&lt;/li&gt;
&lt;li&gt;Usa herramientas ya preparadas + tu API Key&lt;/li&gt;
&lt;li&gt;Desbloquea las potentes capacidades de la IA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La esencia de estas herramientas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Son &amp;ldquo;puentes&amp;rdquo; construidos por otros&lt;/li&gt;
&lt;li&gt;Tu API Key es el &amp;ldquo;pase&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Solo necesitas tomar tu pase y cruzar el puente&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Primeros pasos con Hermes: Recortes, Contabilidad, Recordatorios y WeChat</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/hermes-getting-started/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/hermes-getting-started/</guid>
        <description>&lt;p&gt;En el capítulo anterior, cubrimos Open Minis, que pone un agente en tu teléfono. Este capítulo toma una dirección diferente e introduce un agente que está más cerca de un &amp;ldquo;asistente personal&amp;rdquo;: Hermes.&lt;/p&gt;
&lt;p&gt;Al principio no era muy optimista sobre Hermes. Después de usar OpenClaw, me di cuenta de que no tenía tantas cosas que necesitara que gestionara por mí, y no quería usar una herramienta solo por usarla.&lt;/p&gt;
&lt;p&gt;Pero después de probarlo un tiempo, descubrí que Hermes es bastante diferente de las herramientas que he usado antes.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-se-diferencia-hermes-de-otras-herramientas&#34;&gt;En qué se diferencia Hermes de otras herramientas
&lt;/h2&gt;&lt;p&gt;Por mi propia experiencia, el caso de uso principal de Codex y Claude Code sigue siendo escribir código. Les das un proyecto claro, un error claro, un requisito claro, y ellos entran, modifican archivos, ejecutan pruebas y solucionan problemas. Su capacidad en esta área es muy fuerte.&lt;/p&gt;
&lt;p&gt;Hermes, por otro lado, es más como una herramienta de agente personal que te va conociendo gradualmente, algo así como un asistente personal.&lt;/p&gt;
&lt;p&gt;Su enfoque no está en completar una tarea de programación única y extremadamente compleja, sino en mantener conversaciones a largo plazo contigo, recordar tus preferencias, entender tu flujo de trabajo y luego destilar procesos recurrentes en Skills. La próxima vez que hagas algo similar, no empieza desde cero; continúa ayudándote con la experiencia acumulada.&lt;/p&gt;
&lt;p&gt;En cuanto a OpenClaw, siento que está más orientado a la gestión de proyectos o equipos. Ciertamente puede actuar como asistente personal, pero no me da la sensación de &amp;ldquo;permanecer contigo en la vida y el trabajo a largo plazo&amp;rdquo; como lo hace Hermes.&lt;/p&gt;
&lt;p&gt;Por supuesto, esto es solo mi impresión personal, no una regla absoluta. De hecho, cualquiera de los tres escenarios que mencioné se puede manejar con cualquiera de estas herramientas; solo difieren en qué tan bien se adaptan a cada escenario.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Herramienta&lt;/th&gt;
          &lt;th&gt;Para qué prefiero usarlo&lt;/th&gt;
          &lt;th&gt;Sensación&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Codex / Claude Code&lt;/td&gt;
          &lt;td&gt;Escribir código, modificar proyectos, ejecutar pruebas&lt;/td&gt;
          &lt;td&gt;Mayor capacidad de ingeniería, adecuado para tareas de programación bien definidas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Hermes&lt;/td&gt;
          &lt;td&gt;Asistente personal a largo plazo, entrada de WeChat, tareas programadas, memoria y Skills&lt;/td&gt;
          &lt;td&gt;Te conoce mejor con el tiempo, adecuado para esos flujos de trabajo personales pequeños pero recurrentes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenClaw&lt;/td&gt;
          &lt;td&gt;Gestión de proyectos, desglose de tareas, colaboración en equipo&lt;/td&gt;
          &lt;td&gt;Más como un agente de gestión de proyectos/equipos, no exactamente un asistente personal&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si tuviera que resumirlo en una frase:&lt;/p&gt;
&lt;p&gt;Codex y Claude Code son más como &amp;ldquo;Tengo un proyecto ahora, ven a ayudarme a hacerlo&amp;rdquo;. Hermes es más como &amp;ldquo;Primero, quédate a mi lado y gradualmente asume mis hábitos y flujos de trabajo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-uso-principalmente-hermes-ahora&#34;&gt;Para qué uso principalmente Hermes ahora
&lt;/h2&gt;&lt;p&gt;No hablaré primero de la instalación, porque para la mayoría de las personas, la pregunta realmente importante no es &amp;ldquo;cómo instalarlo&amp;rdquo;, sino &amp;ldquo;¿qué puede hacer realmente por mí?&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Actualmente uso Hermes para este tipo de cosas.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Recortes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Anteriormente recomendé el Web Clipper oficial de Obsidian, pero ya no lo uso. Porque simplemente envío la página web directamente a Hermes, y él puede recortar el artículo en Obsidian por mí.&lt;/p&gt;
&lt;p&gt;Si es un video de Bilibili o YouTube, lo descargará, lo enviará a la IA para convertir voz a texto, luego corregirá cualquier error tipográfico y eliminará el contenido publicitario. Cuando abro Obsidian, veo un artículo bien organizado.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260515ce52be4492577326747a2e3a4805fc6f.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Contabilidad.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mucha gente usaba Atajos para la contabilidad antes, y yo todavía lo uso como uno de mis métodos, pero realmente no me gusta depurar Atajos: es muy agotador.&lt;/p&gt;
&lt;p&gt;Ahora simplemente envío los detalles de contabilidad directamente en un chat de WeChat, y él los escribe inmediatamente en Notion. Pero debo mencionar que construí una pequeña plataforma yo mismo; tanto Atajos como Hermes envían comandos a mi plataforma.&lt;/p&gt;
&lt;p&gt;Por supuesto, también hay una versión local de esta función de contabilidad que no requiere Notion. Escribiré un artículo dedicado sobre eso más adelante.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026051557b8ef91a638cc7eccf73cb1442fb9ed.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Escribir artículos para WeChat.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Escribir un artículo para WeChat implica casi 13 pasos, que incluyen selección de tema, escritura a mano, edición, publicación y más. Ahora delego todos estos procesos a Hermes para que los maneje paso a paso.&lt;/p&gt;
&lt;p&gt;Además, aunque antes presenté Claudian, una excelente herramienta de IA para Obsidian, en realidad uso Hermes para operar Obsidian.&lt;/p&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;Configurar recordatorios.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Soy un usuario intensivo de TickTick, no puedo prescindir de él a diario, pero configurar tareas en TickTick es bastante molesto.&lt;/p&gt;
&lt;p&gt;Especialmente cuando tus tareas involucran semanas o meses específicos en el futuro, o cada varios meses los miércoles y jueves, configurar esas tareas requiere varios clics. Ahora puedo simplemente enviar lenguaje natural a Hermes y hacer que las configure en TickTick en segundo plano.&lt;/p&gt;
&lt;ol start=&#34;5&#34;&gt;
&lt;li&gt;Informes diarios.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cada mañana a las 7:30, le pido que me envíe un informe de noticias de las últimas 12 horas. Además, trabajo como trader de acciones, así que después de que cierra el mercado cada día, le pido que recopile información del mercado y cree un informe diario de trading.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260515f2b960fef7e17f75f16a18998a2feb25.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;Varias otras tareas pequeñas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto es realmente donde Hermes brilla.&lt;/p&gt;
&lt;p&gt;Muchas cosas individualmente son pequeñas, no vale la pena escribir un programa para ellas, o abrir un software complejo. Pero se repiten a diario, semanalmente, mensualmente, y gradualmente se convierten en una carga.&lt;/p&gt;
&lt;p&gt;Ese es el valor de Hermes: no solo te ayuda a completar una tarea una vez; gradualmente asume estos pequeños procesos recurrentes.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-deepseek-v4-flash-y-hermes-son-una-gran-combinación&#34;&gt;Por qué DeepSeek V4 Flash y Hermes son una gran combinación
&lt;/h2&gt;&lt;p&gt;Después de que DeepSeek V4 salió recientemente, descubrí que DeepSeek V4 Flash y Hermes son una combinación perfecta.&lt;/p&gt;
&lt;p&gt;La razón es simple: muchas tareas en Hermes no requieren inteligencia de nivel Opus. No se trata necesariamente de resolver problemas de programación extremadamente complejos; se trata más de recortar, organizar, recordar, consultar, archivar y llamar a herramientas.&lt;/p&gt;
&lt;p&gt;Lo que estas tareas necesitan no es &amp;ldquo;el modelo más inteligente reflexionando durante mucho tiempo cada vez&amp;rdquo;, sino velocidad, bajo costo y la capacidad de ejecutarse a largo plazo.&lt;/p&gt;
&lt;p&gt;La experiencia real con DeepSeek V4 Flash es que parece que está desplazando la pantalla; mi velocidad de lectura no puede seguir su velocidad de salida. Su inteligencia ciertamente no es tan alta como Opus 4.7, pero es más que suficiente para Hermes.&lt;/p&gt;
&lt;p&gt;Por eso lo recomiendo ahora: Hermes es un asistente personal en línea a largo plazo, y el costo del modelo y la velocidad de respuesta afectan directamente si estás dispuesto a usarlo realmente.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-configuración&#34;&gt;Instalación y configuración
&lt;/h2&gt;&lt;p&gt;Si solo quieres poner en marcha Hermes, el camino mínimo son tres pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar Hermes.&lt;/li&gt;
&lt;li&gt;Configurar el modelo.&lt;/li&gt;
&lt;li&gt;Configurar la entrada de WeChat o Feishu.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Puedes aprender sobre comandos, memoria, Skills y tareas programadas más adelante cuando las necesites.&lt;/p&gt;
&lt;p&gt;Como siempre, instalar Hermes es una línea de comando. Lo demostraré en un Mac.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260515377d84016bf44c524c96848cb9b9e206.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de la instalación, puedes iniciarlo escribiendo &lt;code&gt;hermes&lt;/code&gt; en cualquier lugar de la terminal. Ten en cuenta que, a diferencia de Claude Code o Codex, ya sea que lo inicies o no, en realidad se ejecuta en segundo plano en tu computadora.&lt;/p&gt;
&lt;p&gt;Ah, y si has usado OpenClaw antes, Hermes proporciona amablemente un comando de migración sin problemas. Solo ingresa esto. Solo lo menciono.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;hermes claw migrate&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si no migraste, necesitarás configurar Hermes inicialmente.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;hermes model&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Este paso te pide que ingreses un proveedor de IA. Recomiendo DeepSeek; el recuadro rojo resalta la opción correspondiente. La primera es la oficial de DeepSeek. Solo ingresa tu API Key y selecciona DeepSeek V4 Flash.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260515c964cc1e65cc4a697b5bbe73e6aaf2a1.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;El recuadro rojo de abajo contiene OpenCode Zen y OpenCode Go, que he presentado antes.&lt;/p&gt;
&lt;p&gt;El plan Go es un método de uso que recomiendo. Por $10 al mes, obtienes $60 en créditos, y puedes pagar con Alipay y conectarte directamente desde China. Si usas DeepSeek V4 Flash, nunca te quedarás sin crédito.&lt;/p&gt;
&lt;p&gt;Por supuesto, el más recomendado ahora es OpenCode Zen, porque ofrece DeepSeek V4 Flash gratis por tiempo limitado. Gratis siempre es mejor.&lt;/p&gt;
&lt;p&gt;A continuación, configuremos WeChat para que puedas comunicarte con él desde WeChat. Del mismo modo, también puedes configurar Feishu.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;hermes gateway setup&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260515ed743313d0f054497e1560e345885e2e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Tomando WeChat como ejemplo, después de seleccionarlo, aparecerá un código QR, y puedes escanearlo con tu teléfono. Ya lo he configurado, así que no puedo demostrarlo y lo omitiré.&lt;/p&gt;
&lt;p&gt;Después de una configuración exitosa, tendrás una ventana de chat en WeChat donde puedes comunicarte directamente. El comando más importante es &lt;code&gt;/new&lt;/code&gt;, que te permite iniciar una nueva conversación. Si tu conversación anterior ha sido larga, puedes usar esto para cambiar a una nueva.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202605157f692676dffe0139b43c2c9909f265a6.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202605159cdee4b90622f02f05b6b41c65eaa941.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;uso-específico&#34;&gt;Uso específico
&lt;/h2&gt;&lt;p&gt;Una vez que tengamos los dos pasos anteriores configurados, podemos usarlo en la terminal.&lt;/p&gt;
&lt;p&gt;Simplemente escribe &lt;code&gt;hermes&lt;/code&gt; en la terminal para iniciar. La diferencia con Codex y Claude Code es que no necesitas ingresar a un directorio específico; puedes escribirlo en cualquier lugar de la terminal. Siempre entrarás en la misma instancia de Hermes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260515a032e3dcf64174d92d30fbeb5e038260.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Debo mencionar que hay un ID aquí; puedes recuperar esta conversación más tarde y continuar chateando usando este ID único.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202605150e3eada38ee1565cf99930c07ca548c6.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, mi ID aquí es &lt;code&gt;20260514_224631_850142&lt;/code&gt;. Más tarde, puedo simplemente escribir &lt;code&gt;hermes -r 20260514_224631_850142&lt;/code&gt; en cualquier lugar de la terminal para reanudar esta conversación y continuar chateando.&lt;/p&gt;
&lt;p&gt;En cuanto a cómo encontrar el ID necesario entre muchas conversaciones, lo cubriremos más adelante, no en este capítulo.&lt;/p&gt;
&lt;p&gt;Ahora volvamos al tema, primero hablemos de algunos comandos importantes.&lt;/p&gt;
&lt;p&gt;El primero es &lt;code&gt;/new&lt;/code&gt;, que te permite iniciar una nueva conversación. Aunque Hermes tiene un sistema de memoria incorporado que le ayuda a buscar conversaciones históricas, discutir diferentes temas en la misma conversación aún puede degradar el rendimiento del modelo. Por lo tanto, recomiendo terminar un tema a fondo antes de iniciar una nueva conversación.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260515c51be7bd5c1080115d2b8f6d1238d67a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;El segundo comando es &lt;code&gt;/reasoning&lt;/code&gt;. Gestiona la configuración relacionada con el razonamiento, incluido tu nivel de razonamiento y si mostrar el proceso de razonamiento.&lt;/p&gt;
&lt;p&gt;Mi hábito personal es ocultar el proceso de razonamiento. Para DeepSeek V4 Flash, configuro el nivel de razonamiento en &lt;code&gt;xhigh&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Así que ingresamos &lt;code&gt;/reasoning hide&lt;/code&gt; y &lt;code&gt;/reasoning xhigh&lt;/code&gt; respectivamente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202605159eb97f6e1d707ce76546772a242b0b19.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después de hacer esto, puedes chatear felizmente con él a continuación.&lt;/p&gt;
&lt;p&gt;Lo que es único de Hermes es que después de chatear, organiza internamente recuerdos sobre ti, aprendiendo tus preferencias e inclinaciones. Además, algunas de tus operaciones se organizarán automáticamente en Skills, y modificará estas Skills según tus acciones.&lt;/p&gt;
&lt;p&gt;A diferencia de OpenClaw o Claude Code, donde a menudo tienes que pedirle activamente que cree una Skill relevante, Hermes es más como si aprendiera gradualmente tus flujos de trabajo con el uso a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-usar-hermes&#34;&gt;Quién debería usar Hermes
&lt;/h2&gt;&lt;p&gt;Si solo quieres que la IA te ayude a escribir algo de código, creo que puedes seguir usando Codex o Claude Code.&lt;/p&gt;
&lt;p&gt;Pero si tienes muchos procesos pequeños recurrentes, como recortes, contabilidad, recordatorios, informes diarios, organizar materiales, escribir artículos para WeChat, sincronizar Obsidian, entonces el valor de Hermes se hace evidente.&lt;/p&gt;
&lt;p&gt;No solo te ayuda a completar una tarea una vez; gradualmente se convierte en un asistente de backend que te entiende cada vez mejor.&lt;/p&gt;
&lt;p&gt;Por supuesto, hay un requisito previo para este tipo de herramienta: tienes que aceptar que se ejecute a largo plazo en tu computadora y que acceda gradualmente a tus notas, puntos de entrada de chat y flujos de trabajo.&lt;/p&gt;
&lt;p&gt;Por lo tanto, sugiero no asumir demasiado al principio. Comienza con escenarios de bajo riesgo como recortes y recordatorios. Una vez que confirmes que puede ayudarte de manera confiable, gradualmente entrega procesos más complejos.&lt;/p&gt;
&lt;h2 id=&#34;sobre-la-programación&#34;&gt;Sobre la programación
&lt;/h2&gt;&lt;p&gt;Quiero mencionar específicamente aquí que, aunque Hermes también puede hacer trabajo de programación, no es un reemplazo de Codex.&lt;/p&gt;
&lt;p&gt;Usé el mismo modelo GPT-5.5 con razonamiento configurado en Alto, y le pedí a Hermes y a Codex que hicieran la misma tarea. Codex fue significativamente más fuerte.&lt;/p&gt;
&lt;p&gt;Eso es normal. Codex está posicionado como un agente de programación; es más adecuado para sumergirse en un proyecto para leer código, modificar código, ejecutar pruebas y solucionar problemas. La ventaja de Hermes no es &amp;ldquo;la capacidad de programación más fuerte en una sola sesión&amp;rdquo;, sino &amp;ldquo;puede servir como tu punto de entrada personal a largo plazo y centro de comando&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por lo tanto, mi enfoque no es reemplazar Codex con Hermes, sino hacer que trabajen juntos.&lt;/p&gt;
&lt;p&gt;Aquí tengo dos métodos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hermes puede llamar directamente a Codex desde la terminal, por lo que puedes hacer que le entregue tareas a Codex y luego revise los resultados él mismo.&lt;/li&gt;
&lt;li&gt;Inicio Codex manualmente y hago que Hermes escriba un archivo de traspaso. Después de que cada IA realiza sus operaciones, modifican el archivo de traspaso para que el otro lo lea.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;He oído que algunas personas incluso hacen que Hermes opere OpenClaw, ya que cada uno tiene su propio enfoque.&lt;/p&gt;
&lt;p&gt;En cuanto a eso, depende de si volveré a usar OpenClaw. Pero por ahora, siento que Hermes es suficiente. Si hago eso más adelante, escribiré otro artículo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendimos en este capítulo:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;El posicionamiento de Hermes&lt;/strong&gt;: No es un reemplazo de Codex o Claude Code; es más como un asistente personal en línea a largo plazo que te va conociendo gradualmente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Escenarios adecuados&lt;/strong&gt;: Procesos pequeños recurrentes como recortes, contabilidad, recordatorios, informes diarios, flujos de trabajo de artículos de WeChat y organización de Obsidian son los más adecuados para Hermes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selección de modelo&lt;/strong&gt;: Muchas tareas en Hermes no requieren el modelo más fuerte; necesitan velocidad, bajo costo y sostenibilidad a largo plazo, por lo que modelos como DeepSeek V4 Flash son muy adecuados.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruta de inicio mínima&lt;/strong&gt;: Instalar Hermes, configurar el modelo, luego configurar la entrada de WeChat o Feishu, y puedes empezar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hábitos de uso&lt;/strong&gt;: Usa &lt;code&gt;/new&lt;/code&gt; para separar diferentes tareas, usa &lt;code&gt;/reasoning&lt;/code&gt; para ajustar la configuración de razonamiento y usa IDs de conversación para recuperar conversaciones pasadas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Límites de la programación&lt;/strong&gt;: Hermes puede hacer programación, pero no es el agente de programación más fuerte. Es mejor usarlo como un centro de comando, dejando que entregue tareas de programación claras a Codex, con Hermes revisando y conectando los resultados.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Conclusiones clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;El valor de Hermes no es su capacidad para una sola tarea, sino su compañía a largo plazo y acumulación de procesos.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Es adecuado para asumir tareas pequeñas, repetitivas y que cruzan herramientas.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Si quieres un asistente personal que recuerde hábitos, acumule Skills y pueda ser contactado desde WeChat en cualquier momento, Hermes está más cerca de esta forma que una herramienta de programación pura.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;extra-para-los-ansiosos-por-llevar-esto-al-siguiente-nivel&#34;&gt;Extra: Para los ansiosos por llevar esto al siguiente nivel
&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Primeros pasos en la era de la IA</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/getting-started-with-ai/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/getting-started-with-ai/</guid>
        <description>&lt;p&gt;Amigo, el ritmo de la IA en los últimos dos años no ha dejado espacio para la duda.&lt;/p&gt;
&lt;p&gt;Soy trader con 10 años de experiencia en el mercado de valores y no sé programar. Pero a partir de principios de 2024 empecé a usar ChatGPT, y ahora uso Claude Code a diario para leer notas en Obsidian, Codex para automatizar mi computadora y Skill para consolidar flujos de trabajo. He pasado por todo esto desde la perspectiva de un completo principiante: cayendo en errores, escribiendo tutoriales e integrándolo todo de nuevo en mi flujo de trabajo.&lt;/p&gt;
&lt;p&gt;Este libro une 27 tutoriales sobre IA que he escrito durante el último año en un solo hilo conductor. No se trata de principios técnicos, sino de &lt;strong&gt;cómo alguien que no sabe programar puede realmente poner estas herramientas a trabajar&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;las-herramientas-de-ia-evolucionan-rápido-así-que&#34;&gt;Las herramientas de IA evolucionan rápido, así que&amp;hellip;
&lt;/h2&gt;&lt;p&gt;⚠️ Las capturas de pantalla, comandos y flujos de trabajo en este libro &lt;strong&gt;pueden diferir de las versiones más recientes cuando las leas&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Revisaré continuamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si hay actualizaciones importantes, las sincronizaré con el PDF. Los compradores siempre pueden contactarme para obtener la versión más reciente (o la versión original de Obsidian).&lt;/li&gt;
&lt;li&gt;Pregunta directamente en el grupo de preguntas y respuestas. Uso estas herramientas a diario y seguiré los cambios tan pronto como ocurran.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cómo-leer&#34;&gt;Cómo leer
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lectura por el hilo principal&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Parte 1: Fundamentos&lt;/strong&gt; – Modelos grandes de IA, herramientas principales, registro y pago, Markdown: entiende lo que usarás.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parte 2: API&lt;/strong&gt; – API, tokens, caché: conceptos técnicos que necesitas para poner manos a la obra.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parte 3: Herramientas potentes&lt;/strong&gt; – Claude Code, Codex CLI, Codex App y varias funciones nuevas: práctica con herramientas principales.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parte 4: Avanzado&lt;/strong&gt; – Skill, MCP, Hook + mentalidad PUA: claves para usar la IA más profundamente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parte 5: Práctica&lt;/strong&gt; – De Bilibili a texto, DeepSeek con Claude, Open Minis: ejemplos concretos y reproducibles.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bonus&lt;/strong&gt; – Herramientas pesadas como N8N: probablemente no las necesites.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Lectura bajo demanda&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navega por la tabla de contenido para los puntos débiles que más quieras resolver (por ejemplo, cómo usar Claude Code, cómo escribir un Skill, cómo configurar un relay de API).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Sigue el ritmo&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configura las cosas en tu propia computadora mientras lees: es más eficiente que leer diez veces.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;para-quién-no-es-este-libro&#34;&gt;Para quién no es este libro
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;❌ Usuarios avanzados de IA (aquellos que han estado usando Cursor, Cline o Aider durante más de un año).&lt;/li&gt;
&lt;li&gt;❌ Aquellos que quieren una solución lista para usar y no están dispuestos a dedicar tiempo a configurar herramientas.&lt;/li&gt;
&lt;li&gt;❌ Aquellos que esperan una solución rápida para ganar miles al mes con IA después de leer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prefiero vender menos copias que hacerte perder dinero.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;parte-1--fundamentos-qué-es-la-ia-y-qué-puede-hacer&#34;&gt;Parte 1 · Fundamentos: Qué es la IA y qué puede hacer
&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Registro y pago de herramientas de IA extranjeras</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/overseas-ai-registration-payment/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/overseas-ai-registration-payment/</guid>
        <description>&lt;p&gt;Ya hemos cubierto las herramientas de IA más populares y seguramente ya elegiste la plataforma que quieres usar. La mayoría de las herramientas de IA de China son completamente gratuitas en la web, y solo se necesita pago para las API (más adelante hablaremos de eso). Pero las herramientas de IA extranjeras son diferentes: mucha gente se queda atascada en el paso del pago: &lt;strong&gt;¿Cómo pago las herramientas de IA extranjeras?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este capítulo te guía paso a paso sobre cómo pagar herramientas de IA extranjeras como ChatGPT, Claude y Gemini, con un enfoque especial en el &lt;strong&gt;método de suscripción de Apple&lt;/strong&gt;, que es muy recomendado.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;métodos-de-pago-oficiales-no-recomendados&#34;&gt;Métodos de pago oficiales (no recomendados)
&lt;/h2&gt;&lt;p&gt;Los sitios web oficiales de ChatGPT, Claude y Gemini admiten suscripción directa, pero necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Una tarjeta de crédito extranjera&lt;/strong&gt;: Visa, MasterCard, American Express, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Una cuenta de PayPal extranjera&lt;/strong&gt;: Una cuenta de PayPal vinculada a una tarjeta de crédito extranjera&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Una dirección extranjera&lt;/strong&gt;: Se requiere una dirección extranjera para la dirección de facturación&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;por-qué-no-se-recomienda&#34;&gt;¿Por qué no se recomienda?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;No es fácil de usar para usuarios en China:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La mayoría de las tarjetas de crédito emitidas en China serán rechazadas&lt;/li&gt;
&lt;li&gt;Incluso las tarjetas de doble moneda pueden ser rechazadas debido al control de riesgos&lt;/li&gt;
&lt;li&gt;Las tarjetas de crédito virtuales (como Depay) conllevan el riesgo de suspensión de la cuenta&lt;/li&gt;
&lt;li&gt;Los fallos de pago pueden provocar la congelación de la cuenta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Resumen:&lt;/strong&gt; A menos que tengas una tarjeta de crédito extranjera genuina, no se recomienda pagar directamente en el sitio web oficial. A continuación, presentamos un método más fiable.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;método-de-suscripción-de-apple-muy-recomendado&#34;&gt;Método de suscripción de Apple (muy recomendado)
&lt;/h2&gt;&lt;h4 id=&#34;por-qué-recomendar-la-suscripción-de-apple&#34;&gt;¿Por qué recomendar la suscripción de Apple?
&lt;/h4&gt;&lt;p&gt;La suscripción de Apple es actualmente el método de pago más estable y seguro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Admite tarjetas UnionPay de China&lt;/strong&gt;: No necesitas una tarjeta de crédito extranjera&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bajo riesgo&lt;/strong&gt;: A través de los canales oficiales de Apple, sin riesgo de ser baneado por las plataformas de IA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fácil gestión&lt;/strong&gt;: Todas las suscripciones se gestionan de forma centralizada en tu Apple ID&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Precios transparentes&lt;/strong&gt;: Liquidados al tipo de cambio de Apple, sin cargos adicionales&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inicio de sesión y registro con un solo clic&lt;/strong&gt;: Puedes iniciar sesión directamente en las herramientas de IA con tu Apple ID sin necesidad de registrarte por separado (más adelante hablaremos de esto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;requisitos-previos&#34;&gt;Requisitos previos
&lt;/h4&gt;&lt;p&gt;Necesitas un &lt;strong&gt;Apple ID de una región diferente a China continental&lt;/strong&gt;. Regiones recomendadas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Región de EE. UU.&lt;/strong&gt;: La más utilizada, mayor selección de aplicaciones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Región de Japón&lt;/strong&gt;: El tipo de cambio puede ser más favorable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Región de Nigeria&lt;/strong&gt;: La más barata&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cómo-registrar-un-apple-id-que-no-sea-de-china&#34;&gt;¿Cómo registrar un Apple ID que no sea de China?
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Cierra sesión en tu Apple ID actual&lt;/li&gt;
&lt;li&gt;Abre la App Store y elige una aplicación gratuita para descargar&lt;/li&gt;
&lt;li&gt;Selecciona &amp;lsquo;Crear nuevo Apple ID&amp;rsquo; y elige Estados Unidos/Japón/Hong Kong como región&lt;/li&gt;
&lt;li&gt;Completa la información (correo electrónico, contraseña, preguntas de seguridad)&lt;/li&gt;
&lt;li&gt;Selecciona &amp;lsquo;Ninguno&amp;rsquo; como método de pago por ahora, y completa una dirección aleatoria (puedes cambiarla después)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una vez registrado, tendrás un Apple ID en blanco para la región seleccionada.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;cómo-obtener-tarjetas-de-regalo-de-apple&#34;&gt;Cómo obtener tarjetas de regalo de Apple
&lt;/h3&gt;&lt;p&gt;Una vez que tengas un Apple ID que no sea de China, necesitas agregar fondos. Hay dos formas de obtener tarjetas de regalo:&lt;/p&gt;
&lt;h4 id=&#34;método-1-compra-en-taobaoxianyu-rápido-pero-arriesgado&#34;&gt;Método 1: Compra en Taobao/Xianyu (rápido pero arriesgado)
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Busca &amp;lsquo;Tarjeta de regalo de Apple EE. UU.&amp;rsquo; o &amp;lsquo;iTunes EE. UU.&amp;rsquo; en Taobao o Xianyu&lt;/li&gt;
&lt;li&gt;Elige un vendedor de confianza (revisa las reseñas y el volumen de ventas)&lt;/li&gt;
&lt;li&gt;Después de la compra, el vendedor te enviará un código de canje&lt;/li&gt;
&lt;li&gt;Cánjéalo inmediatamente en tu Apple ID&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rápido: puedes obtener el código en minutos&lt;/li&gt;
&lt;li&gt;A veces un poco más barato que los precios oficiales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Desventajas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Riesgo de tarjetas de crédito robadas&lt;/strong&gt;: Si el vendedor usa tarjetas de crédito robadas para comprar tarjetas de regalo, tu Apple ID podría ser baneado&lt;/li&gt;
&lt;li&gt;Difícil atención postventa: es difícil responsabilizar a alguien si surgen problemas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Nota importante:&lt;/strong&gt; Si eliges este método, asegúrate de elegir una tienda grande y de confianza y canjea el código inmediatamente después de recibirlo. Si te encuentras con un problema de tarjeta robada, contacta al Soporte de Apple de inmediato para explicar la situación.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&#34;método-2-compra-desde-el-sitio-web-oficial-de-apple-recomendado-seguro&#34;&gt;Método 2: Compra desde el sitio web oficial de Apple (recomendado, seguro)
&lt;/h4&gt;&lt;p&gt;Este es el método más seguro. Aunque requiere un poco más de esfuerzo, es completamente legal y sin riesgos.
&lt;strong&gt;Pasos detallados:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Abre la página de compra de tarjetas de regalo oficial de Apple&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URL: &lt;a class=&#34;link&#34; href=&#34;https://www.apple.com/shop/buy-giftcard/giftcard&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.apple.com/shop/buy-giftcard/giftcard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Nota: Debes visitar el sitio web de Apple EE. UU. (si tienes un Apple ID de EE. UU.)
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601281f34f0b9a9aa1df0503d8722775a1d77.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Elige el método de entrega por correo electrónico&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La página te preguntará si quieres una tarjeta física o una electrónica&lt;/li&gt;
&lt;li&gt;Selecciona &amp;lsquo;Correo electrónico&amp;rsquo; (tarjeta electrónica, enviada a tu correo)&lt;/li&gt;
&lt;li&gt;Elige un monto: $25, $50, $100, o un monto personalizado
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260128ca88c1a7c6656fd9f7efda7b3275ae36.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Completa la información del destinatario&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Destinatario: Ingresa tu propio nombre en inglés&lt;/li&gt;
&lt;li&gt;Correo electrónico del destinatario: Ingresa tu dirección de correo electrónico (para recibir el código de canje)&lt;/li&gt;
&lt;li&gt;De: Puedes poner cualquier cosa, incluso a ti mismo&lt;/li&gt;
&lt;li&gt;Mensaje: Déjalo en blanco o escribe cualquier cosa
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260128cef5f5d28a17594769e189a1a1f2da91.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Agrega al carrito y finaliza la compra&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haz clic en &amp;lsquo;Agregar al carrito&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;lsquo;Finalizar compra&amp;rsquo; (puedes usar Apple Pay si lo has configurado)&lt;/li&gt;
&lt;li&gt;El sistema te pedirá que inicies sesión con tu Apple ID (usa tu Apple ID de EE. UU.)
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260128e0c26f0a26c3231825356cb482ef1c59.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260128f72066e6797738b4adfdfd13e329404e.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5. Ingresa el método de pago&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Punto clave:&lt;/strong&gt; Puedes usar directamente una tarjeta de crédito o débito UnionPay de China&lt;/li&gt;
&lt;li&gt;Ingresa el número de tarjeta, la fecha de vencimiento y el CVV tal como aparecen&lt;/li&gt;
&lt;li&gt;Nombre del titular: Ingresa el nombre en pinyin tal como aparece en la tarjeta
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260128c9a376abc449534d8a2e90a6e2da03bd.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601287ae913ad8bc8e6bfa3da7e5f5fcce52a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;6. Completa la dirección de facturación&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¡Este es un paso crucial! Debes ingresar una dirección de EE. UU. Se recomienda elegir un &lt;strong&gt;estado libre de impuestos&lt;/strong&gt; para ahorrar dinero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alaska&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Oregón&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delaware&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Montana&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nuevo Hampshire&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;¿Cómo completarlo?&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre Google Maps o Apple Maps&lt;/li&gt;
&lt;li&gt;Busca &amp;lsquo;hotel en Oregón&amp;rsquo; o &amp;lsquo;hotel en Alaska&amp;rsquo; (encuentra la dirección de un hotel)&lt;/li&gt;
&lt;li&gt;Copia la dirección del hotel, la ciudad, el código postal y el número de teléfono&lt;/li&gt;
&lt;li&gt;Complétalos en los campos de Dirección de facturación&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo (una dirección de hotel en Oregón):&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Street: 1234 SW Broadway
City: Portland
State: Oregon
ZIP: 97201
Phone: (503) 123-4567
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;7. Completa el pago&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Después de verificar que la información es correcta, haz clic en &amp;lsquo;Realizar pedido&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Espera a que el banco procese el pago (puede que necesites ingresar un código de verificación SMS)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;8. Espera el código de canje&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Después del pago exitoso, recibirás un correo electrónico en minutos o unas horas&lt;/li&gt;
&lt;li&gt;El correo contiene el código de canje (16 caracteres alfanuméricos)&lt;/li&gt;
&lt;li&gt;A veces puede tardar hasta 24 horas&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;canjear-la-tarjeta-de-regalo-en-tu-apple-id&#34;&gt;Canjear la tarjeta de regalo en tu Apple ID
&lt;/h2&gt;&lt;p&gt;Una vez que tengas el código de canje, debes canjearlo en el saldo de tu Apple ID.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Abre la App Store&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abre la App Store en tu iPhone o iPad&lt;/li&gt;
&lt;li&gt;Asegúrate de haber iniciado sesión con tu Apple ID que no sea de China&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Ve a la página de canje&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Toca el ícono de tu perfil en la esquina superior derecha&lt;/li&gt;
&lt;li&gt;Busca &amp;lsquo;Canjear tarjeta de regalo o código&amp;rsquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Ingresa el código de canje&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opción 1: Usa la cámara para escanear el código&lt;/li&gt;
&lt;li&gt;Opción 2: Ingresa manualmente el código de 16 dígitos&lt;/li&gt;
&lt;li&gt;Toca &amp;lsquo;Canjear&amp;rsquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Confirma el saldo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Después del canje exitoso, el saldo aparecerá inmediatamente en tu cuenta&lt;/li&gt;
&lt;li&gt;Puedes verificar el saldo actual en la página &amp;lsquo;Cuenta&amp;rsquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Posibles problemas:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problema 1: &amp;lsquo;Este código debe canjearse en la tienda de EE. UU.&amp;rsquo;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Causa: La configuración de región de tu Apple ID es incorrecta&lt;/li&gt;
&lt;li&gt;Solución: Ve a &amp;lsquo;Configuración &amp;gt; Apple ID &amp;gt; Medios y compras&amp;rsquo; y cambia la región&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Problema 2: El saldo no se muestra después del canje&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Causa: La cuenta está bajo control de riesgos&lt;/li&gt;
&lt;li&gt;Solución: Consulta la sección de control de riesgos a continuación&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;inicio-de-sesión-con-un-solo-clic-en-herramientas-de-ia-con-tu-cuenta-de-apple-super-conveniente&#34;&gt;Inicio de sesión con un solo clic en herramientas de IA con tu cuenta de Apple (super conveniente)
&lt;/h2&gt;&lt;p&gt;Esta es otra gran ventaja del método de suscripción de Apple que mucha gente no conoce: &lt;strong&gt;Puedes iniciar sesión directamente en las herramientas de IA con tu Apple ID, sin necesidad de registrarte en una cuenta separada.&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;por-qué-recomendar-iniciar-sesión-con-apple-id&#34;&gt;¿Por qué recomendar iniciar sesión con Apple ID?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Las molestias del registro tradicional:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requiere verificación por correo electrónico&lt;/li&gt;
&lt;li&gt;Requiere establecer una contraseña (otra contraseña que recordar)&lt;/li&gt;
&lt;li&gt;Algunas plataformas también requieren verificación por número de teléfono (los números de teléfono extranjeros son problemáticos)&lt;/li&gt;
&lt;li&gt;Plataformas como ChatGPT tienen restricciones en las direcciones de correo electrónico chinas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Beneficios de iniciar sesión con Apple ID:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Inicio de sesión con un solo clic&lt;/strong&gt;: Completa el registro y el inicio de sesión con un solo toque&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sin necesidad de verificación&lt;/strong&gt;: No se requiere verificación por correo electrónico ni teléfono&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protección de la privacidad&lt;/strong&gt;: Apple oculta tu dirección de correo electrónico real&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alta seguridad&lt;/strong&gt;: La autenticación de dos factores de Apple protege tu cuenta&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestión unificada&lt;/strong&gt;: Todas las suscripciones de IA están vinculadas a tu Apple ID&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;herramientas-de-ia-que-admiten-inicio-de-sesión-con-apple&#34;&gt;Herramientas de IA que admiten inicio de sesión con Apple
&lt;/h4&gt;&lt;p&gt;La mayoría de las herramientas de IA más populares ahora admiten &amp;lsquo;Iniciar sesión con Apple&amp;rsquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt;: Totalmente compatible&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude&lt;/strong&gt;: Totalmente compatible&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Perplexity&lt;/strong&gt;: Totalmente compatible&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notion AI&lt;/strong&gt;: Totalmente compatible&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La mayoría de otras herramientas de IA&lt;/strong&gt;: Generalmente compatibles&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;pasos-detallados&#34;&gt;Pasos detallados
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Usando ChatGPT como ejemplo:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Descarga la aplicación de ChatGPT&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Asegúrate de haber iniciado sesión con tu Apple ID que no sea de China&lt;/li&gt;
&lt;li&gt;Busca &amp;lsquo;ChatGPT&amp;rsquo; en la App Store&lt;/li&gt;
&lt;li&gt;Descarga e instala&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Abre la aplicación y elige un método de inicio de sesión&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abre la aplicación de ChatGPT&lt;/li&gt;
&lt;li&gt;La pantalla de inicio mostrará &amp;lsquo;Iniciar sesión&amp;rsquo; o &amp;lsquo;Registrarse&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Después de tocar, verás varias opciones de inicio de sesión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Selecciona &amp;lsquo;Continuar con Apple&amp;rsquo;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No elijas el inicio de sesión por correo electrónico&lt;/li&gt;
&lt;li&gt;Toca directamente &amp;lsquo;Continuar con Apple&amp;rsquo;&lt;/li&gt;
&lt;li&gt;El sistema mostrará una ventana de autorización de Apple ID&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. Confirma la autorización&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apple mostrará:
&lt;ul&gt;
&lt;li&gt;&amp;lsquo;ChatGPT quiere usar tu Apple ID&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Tu nombre y correo electrónico&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Puedes elegir:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Compartir mi correo electrónico&lt;/strong&gt;: La herramienta de IA puede ver tu correo electrónico real&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ocultar mi correo electrónico&lt;/strong&gt;: Apple generará un correo electrónico aleatorio para reenviarlo a la herramienta de IA&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Se recomienda elegir &amp;lsquo;Ocultar mi correo electrónico&amp;rsquo;&lt;/strong&gt; para una mejor privacidad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5. Completa la verificación con Face ID/Touch ID&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirma con Face ID o Touch ID&lt;/li&gt;
&lt;li&gt;El registro y el inicio de sesión se completan automáticamente en segundos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;6. Empieza a usar&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inicio de sesión exitoso, entrarás directamente a la aplicación&lt;/li&gt;
&lt;li&gt;Tu cuenta se ha creado automáticamente&lt;/li&gt;
&lt;li&gt;La aplicación te iniciará sesión automáticamente la próxima vez&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;también-puedes-usar-el-inicio-de-sesión-de-apple-en-la-web&#34;&gt;También puedes usar el inicio de sesión de Apple en la web
&lt;/h4&gt;&lt;p&gt;No solo en aplicaciones móviles, muchas versiones web de herramientas de IA también admiten el inicio de sesión con Apple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre el sitio web de la herramienta de IA (por ejemplo, claude.ai)&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;lsquo;Iniciar sesión&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Selecciona &amp;lsquo;Continuar con Apple&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Aparecerá una ventana de inicio de sesión de Apple&lt;/li&gt;
&lt;li&gt;Ingresa tu Apple ID y contraseña&lt;/li&gt;
&lt;li&gt;Completa la autenticación de dos factores&lt;/li&gt;
&lt;li&gt;Inicio de sesión exitoso&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Notas:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para el inicio de sesión web, necesitas un Mac o una PC con Windows con iCloud instalado&lt;/li&gt;
&lt;li&gt;O inicia sesión usando Safari en tu iPhone/iPad&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;beneficios-adicionales-del-inicio-de-sesión-con-apple&#34;&gt;Beneficios adicionales del inicio de sesión con Apple
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;1. Sincronización entre dispositivos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Después de iniciar sesión con Apple ID, puedes usarlo sin problemas en todos tus dispositivos Apple&lt;/li&gt;
&lt;li&gt;iPhone, iPad y Mac sincronizarán automáticamente el estado de inicio de sesión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Gestión de seguridad&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si tienes problemas con tu cuenta de IA, puedes revocar la autorización en la configuración de Apple ID con un solo toque&lt;/li&gt;
&lt;li&gt;Ruta: Configuración &amp;gt; Apple ID &amp;gt; Contraseña y seguridad &amp;gt; Aplicaciones que usan Apple ID&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. No necesitas preocuparte por olvidar contraseñas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Porque no tienes contraseña en absoluto: siempre inicias sesión con Apple ID&lt;/li&gt;
&lt;li&gt;Mientras tu Apple ID esté seguro, tu cuenta de IA estará segura&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;consejos&#34;&gt;Consejos
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;¿Qué pasa si ya registré una cuenta de IA con correo electrónico?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La mayoría de las herramientas de IA admiten &amp;lsquo;vincular tu cuenta de Apple&amp;rsquo;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inicia sesión en tu cuenta de IA&lt;/li&gt;
&lt;li&gt;Ve a Configuración de la cuenta&lt;/li&gt;
&lt;li&gt;Busca &amp;lsquo;Cuentas conectadas&amp;rsquo; o &amp;lsquo;Métodos de inicio de sesión&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Agrega &amp;lsquo;Iniciar sesión con Apple&amp;rsquo;&lt;/li&gt;
&lt;li&gt;La próxima vez podrás iniciar sesión con Apple ID&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;¿Puedo usar un mismo Apple ID para iniciar sesión en varias herramientas de IA?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;¡Por supuesto! Un mismo Apple ID puede iniciar sesión en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT&lt;/li&gt;
&lt;li&gt;Claude&lt;/li&gt;
&lt;li&gt;Perplexity&lt;/li&gt;
&lt;li&gt;Notion AI&lt;/li&gt;
&lt;li&gt;Y todas las demás herramientas que admiten inicio de sesión con Apple&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No entran en conflicto entre sí; cada herramienta es una cuenta independiente.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;suscripción-a-servicios-de-ia&#34;&gt;Suscripción a servicios de IA
&lt;/h2&gt;&lt;p&gt;Una vez que tengas saldo, puedes suscribirte a servicios de IA.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Descarga la aplicación de IA&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Asegúrate de haber iniciado sesión con tu Apple ID que no sea de China&lt;/li&gt;
&lt;li&gt;Busca y descarga en la App Store:
&lt;ul&gt;
&lt;li&gt;ChatGPT (OpenAI)&lt;/li&gt;
&lt;li&gt;Claude (Anthropic)&lt;/li&gt;
&lt;li&gt;Gemini (Google)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Abre la aplicación y suscríbete&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abre la aplicación y busca &amp;lsquo;Suscribirse&amp;rsquo; o &amp;lsquo;Actualizar&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Elige un plan de suscripción (Plus/Pro, etc.)&lt;/li&gt;
&lt;li&gt;Confirma el método de pago como saldo de Apple ID&lt;/li&gt;
&lt;li&gt;Completa la suscripción&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. Suscripción exitosa&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recibirás un correo electrónico de confirmación de suscripción de Apple&lt;/li&gt;
&lt;li&gt;La aplicación mostrará tu estado de suscripción&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cómo-lidiar-con-problemas-de-control-de-riesgos&#34;&gt;Cómo lidiar con problemas de control de riesgos
&lt;/h2&gt;&lt;h4 id=&#34;qué-es-el-control-de-riesgos&#34;&gt;¿Qué es el control de riesgos?
&lt;/h4&gt;&lt;p&gt;Si canjeas una gran cantidad de tarjeta de regalo de una sola vez (por ejemplo, más de $100), Apple puede activar el control de riesgos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El saldo se muestra pero no se puede usar&lt;/li&gt;
&lt;li&gt;&amp;lsquo;Método de pago rechazado&amp;rsquo; al suscribirse&lt;/li&gt;
&lt;li&gt;El saldo está congelado&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;soluciones&#34;&gt;Soluciones
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Método 1: Espera unos días (recomendado)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No hagas nada y espera de 3 a 7 días&lt;/li&gt;
&lt;li&gt;El sistema levantará automáticamente el control de riesgos&lt;/li&gt;
&lt;li&gt;Después de eso, el saldo se puede usar normalmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Método 2: Contacta al Soporte de Apple (más rápido)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Llama al Soporte de Apple:
&lt;ul&gt;
&lt;li&gt;China: 400-666-8800&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Explica la situación: &amp;lsquo;Canjeé una tarjeta de regalo pero no funciona.&amp;rsquo; El soporte chino te transferirá a un colega internacional, y puedes comunicarte en chino.&lt;/li&gt;
&lt;li&gt;El soporte verificará la información y levantará manualmente el control de riesgos&lt;/li&gt;
&lt;li&gt;Generalmente se restablece en 48 horas&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Consejos para evitar el control de riesgos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No canjees más de $50 en tu primer intento&lt;/li&gt;
&lt;li&gt;Canjea en cantidades más pequeñas, no todo de una vez&lt;/li&gt;
&lt;li&gt;Espera 1-2 días después del canje antes de suscribirte&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen-proceso-completo-en-resumen&#34;&gt;Resumen: Proceso completo en resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Pasos completos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Registra un Apple ID que no sea de China (EE. UU./Japón/Hong Kong)&lt;/li&gt;
&lt;li&gt;Obtén una tarjeta de regalo (compra desde el sitio web oficial o Taobao)&lt;/li&gt;
&lt;li&gt;Canjea la tarjeta de regalo en tu Apple ID&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Usa Apple ID para iniciar sesión en herramientas de IA con un solo clic (sin necesidad de registro separado)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Descarga la aplicación de IA y suscríbete&lt;/li&gt;
&lt;li&gt;Si te encuentras con control de riesgos, espera o contacta al soporte&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Referencia de costos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT Plus: $20/mes&lt;/li&gt;
&lt;li&gt;Claude Pro: $20/mes&lt;/li&gt;
&lt;li&gt;Gemini Advanced: $19.99/mes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Consejos para ahorrar dinero:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Elige regiones con tipos de cambio favorables (por ejemplo, Japón, Hong Kong)&lt;/li&gt;
&lt;li&gt;Selecciona un estado libre de impuestos al comprar tarjetas de regalo desde el sitio web oficial&lt;/li&gt;
&lt;li&gt;Suscríbete mensualmente y cancela en cualquier momento cuando no lo necesites&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Skills: qué son y cómo usarlas</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/skills/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/skills/</guid>
        <description>&lt;h2 id=&#34;de-mecanógrafo-a-superasistente&#34;&gt;De mecanógrafo a superasistente
&lt;/h2&gt;&lt;p&gt;Anteriormente aprendimos a usar Claude Code para proyectos, y quizás hayas experimentado el poder de la programación con IA. Pero ¿has notado un problema:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cada vez que haces algo similar, tienes que describir los requisitos desde cero.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, quieres que la IA te ayude a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir mensajes de commit de Git&lt;/li&gt;
&lt;li&gt;Revisar código&lt;/li&gt;
&lt;li&gt;Generar documentación del proyecto&lt;/li&gt;
&lt;li&gt;Sincronizar archivos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puede que hagas estas tareas varias veces al día, pero cada vez tienes que escribir un párrafo largo diciéndole a la IA qué hacer. &lt;strong&gt;¡Es agotador!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Es como si cada vez que pidieras comida a domicilio tuvieras que decirle al restaurante:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;ldquo;Quiero un plato de fideos de carne estofada, sin cilantro, con extra de chile, los fideos deben estar firmes, menos caldo…&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;¿Hay alguna forma de convertir estas operaciones comunes en comandos de un solo clic?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sí, de eso vamos a hablar hoy: &lt;strong&gt;Skill&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;qué-es-skill&#34;&gt;¿Qué es Skill?
&lt;/h2&gt;&lt;h4 id=&#34;explicación-en-una-frase&#34;&gt;Explicación en una frase
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Skill = comando abreviado de la IA&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Igual que la app de Atajos en tu teléfono, Skill encapsula operaciones complejas en un comando simple.&lt;/p&gt;
&lt;h4 id=&#34;definición-oficial&#34;&gt;Definición oficial
&lt;/h4&gt;&lt;p&gt;Skill se refiere a un &lt;strong&gt;&amp;ldquo;módulo de capacidad&amp;rdquo; reutilizable&lt;/strong&gt; que encapsula herramientas/APIs/scripts y prompts en una interfaz estándar, permitiendo que la IA los llame bajo demanda para completar tareas específicas.&lt;/p&gt;
&lt;p&gt;Enfatiza:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entrada y salida claras&lt;/li&gt;
&lt;li&gt;Gestión de dependencias y versiones&lt;/li&gt;
&lt;li&gt;Comprobable y actualizable&lt;/li&gt;
&lt;li&gt;Convertir una IA general en un asistente profesional orientado a los negocios&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;comprensión-intuitiva&#34;&gt;Comprensión intuitiva
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Sin Skill:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You: Please review this code and check the following:
1. Are there any performance issues?
2. Are there any security vulnerabilities?
3. Does the code style follow the conventions?
4. Is there any duplicate code?
5. Are variable names clear?
6. Are comments complete?
……(continue describing for 10 more lines)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Con Skill:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You: /review
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La IA revisa automáticamente el código según estándares predefinidos y proporciona un informe detallado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Ves la diferencia?&lt;/strong&gt; De cientos de palabras a un solo comando: ese es el poder de Skill.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&#34;diferencias-entre-skill-prompt-y-mcp&#34;&gt;Diferencias entre Skill, Prompt y MCP
&lt;/h4&gt;&lt;p&gt;Mucha gente pregunta: ¿Cuáles son las diferencias entre Skill, Prompt y MCP?&lt;/p&gt;
&lt;h4 id=&#34;comparación-de-conceptos&#34;&gt;Comparación de conceptos
&lt;/h4&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;Prompt&lt;/th&gt;
          &lt;th&gt;Skill&lt;/th&gt;
          &lt;th&gt;MCP&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Esencia&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Instrucción de texto&lt;/td&gt;
          &lt;td&gt;Módulo de capacidad encapsulado&lt;/td&gt;
          &lt;td&gt;Protocolo para conectar herramientas externas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Reutilización&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Baja, hay que volver a introducir cada vez&lt;/td&gt;
          &lt;td&gt;Alta, definir una vez y reutilizar&lt;/td&gt;
          &lt;td&gt;Alta, configurar una vez y usar continuamente&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Complejidad&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Simple&lt;/td&gt;
          &lt;td&gt;Media&lt;/td&gt;
          &lt;td&gt;Compleja&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Alcance de capacidad&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Solo procesamiento de texto&lt;/td&gt;
          &lt;td&gt;Texto + scripts simples&lt;/td&gt;
          &lt;td&gt;Texto + interacción con sistemas externos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Curva de aprendizaje&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Mínima&lt;/td&gt;
          &lt;td&gt;Media&lt;/td&gt;
          &lt;td&gt;Relativamente alta&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;usando-analogías&#34;&gt;Usando analogías
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Prompt = Instrucción verbal&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tienes que decirle verbalmente a la IA qué hacer cada vez&lt;/li&gt;
&lt;li&gt;Adecuado para tareas únicas y puntuales&lt;/li&gt;
&lt;li&gt;Por ejemplo: &amp;ldquo;Traduce este párrafo&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Skill = Flujo de trabajo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solidifica instrucciones comunes en un flujo de trabajo estándar&lt;/li&gt;
&lt;li&gt;Adecuado para tareas repetitivas y estandarizadas&lt;/li&gt;
&lt;li&gt;Por ejemplo: &lt;code&gt;/commit&lt;/code&gt; genera automáticamente mensajes de commit de Git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;MCP = Sistema externo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permite que la IA se conecte a herramientas y fuentes de datos externas&lt;/li&gt;
&lt;li&gt;Adecuado para tareas que necesitan acceder a sistemas externos&lt;/li&gt;
&lt;li&gt;Por ejemplo: conectar con Obsidian para leer/escribir notas, conectar con base de datos para consultar datos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;relación-entre-los-tres&#34;&gt;Relación entre los tres
&lt;/h4&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Prompt → The most basic interaction method
    ↓
Skill → Encapsulates prompt + simple logic
    ↓
MCP → Skill + external system capabilities
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;En sentido figurado:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prompt = Cocinas tú mismo&lt;/li&gt;
&lt;li&gt;Skill = Calientas comida precocinada en el microondas&lt;/li&gt;
&lt;li&gt;MCP = Pides comida a domicilio&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;cuándo-usar-cada-uno&#34;&gt;¿Cuándo usar cada uno?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Usa Prompt si:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La tarea es simple y única&lt;/li&gt;
&lt;li&gt;Los requisitos son flexibles y cambiantes&lt;/li&gt;
&lt;li&gt;No necesitas reutilización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Usa Skill si:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La tarea es muy repetitiva&lt;/li&gt;
&lt;li&gt;Tiene un flujo de trabajo estandarizado&lt;/li&gt;
&lt;li&gt;Quieres mejorar la eficiencia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Usa MCP si:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Necesitas acceder a datos externos (base de datos, API, sistema de archivos, etc.)&lt;/li&gt;
&lt;li&gt;Necesitas interactuar con otro software (Obsidian, navegador, etc.)&lt;/li&gt;
&lt;li&gt;Necesitas obtener información en tiempo real&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Comparación de casos prácticos:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Escenario 1: Traducir un párrafo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa Prompt: &amp;ldquo;Traduce este párrafo&amp;rdquo; (lo más simple)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Escenario 2: Traducir muchos documentos a diario&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa Skill: &lt;code&gt;/translate&lt;/code&gt; (flujo de trabajo de traducción estandarizado)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Escenario 3: Traducir automáticamente notas de Obsidian y guardarlas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa MCP: Conectar con Obsidian, leer, traducir y guardar automáticamente (el más potente)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;uso-básico-de-skill&#34;&gt;Uso básico de Skill
&lt;/h2&gt;&lt;h4 id=&#34;cómo-ver-los-skills-existentes&#34;&gt;¿Cómo ver los Skills existentes?
&lt;/h4&gt;&lt;p&gt;En Claude Code o Codex, introduce:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/skill
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Listará todos los Skills disponibles.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602102d1af1a7b01bd689414804bcd2689321.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;h4 id=&#34;cómo-usar-skill&#34;&gt;¿Cómo usar Skill?
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Método 1: Ejecución directa&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Introduce &lt;code&gt;/skill&lt;/code&gt;, luego usa Tab para seleccionar el Skill deseado y pulsa Enter para ejecutarlo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260210d400189b52adde6525dd368bb6b955e9.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Método 2: Ejecutar con parámetros&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Después de seleccionar un Skill, continúa escribiendo tu petición específica:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/translate translate the comments in this code to English
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;skills-integrados-comunes&#34;&gt;Skills integrados comunes
&lt;/h4&gt;&lt;p&gt;La mayoría de las herramientas de programación con IA vienen con algunos Skills integrados de uso común:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Skill&lt;/th&gt;
          &lt;th&gt;Función&lt;/th&gt;
          &lt;th&gt;Ejemplo&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/commit&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Generar automáticamente mensaje de commit de Git&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;/commit&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/review&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Revisar calidad del código&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;/review&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/fix&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Corregir errores de código&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;/fix&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/test&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Generar casos de prueba&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;/test&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/doc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Generar documentación&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;/doc&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;/refactor&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Refactorizar código&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;/refactor&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Estos Skills integrados ya pueden resolver el 80% de las necesidades diarias.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;crear-tu-propio-skill&#34;&gt;Crear tu propio Skill
&lt;/h2&gt;&lt;p&gt;Si los Skills integrados no son suficientes, puedes crear tu propio Skill.&lt;/p&gt;
&lt;h4 id=&#34;dos-métodos-de-creación&#34;&gt;Dos métodos de creación
&lt;/h4&gt;&lt;h5 id=&#34;método-1-deja-que-la-ia-lo-cree-por-ti-recomendado&#34;&gt;Método 1: Deja que la IA lo cree por ti (recomendado)
&lt;/h5&gt;&lt;p&gt;Codex viene con un Skill para crear Skills (suena confuso, pero es potente).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pasos:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Introduce &lt;code&gt;/skill&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Encuentra la opción relacionada con &amp;ldquo;Crear Skill&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Después de seleccionarla, dile a la IA qué Skill quieres&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/create-skill

I want a translation Skill with the following features:
1. Automatically detect Chinese comments in code
2. Translate them into English
3. Keep the code format unchanged
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602107ce01091a855e2f434ebe426991dce02.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;La IA creará automáticamente el archivo del Skill y lo colocará en la ubicación correcta.&lt;/p&gt;
&lt;h5 id=&#34;método-2-creación-manual&#34;&gt;Método 2: Creación manual
&lt;/h5&gt;&lt;p&gt;Si quieres entender más a fondo la estructura de Skill, puedes crearlo manualmente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Estructura del archivo de Skill:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cada Skill es una carpeta que debe contener un archivo &lt;code&gt;SKILL.md&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;my-skill/
  ├── SKILL.md          # Skill description and configuration
  └── scripts/          # Optional: helper scripts
      └── helper.py
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Formato básico de SKILL.md:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&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;name: Skill name
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: Skill description
&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# Detailed description
&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;Write detailed usage instructions and implementation logic here.
&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;gu&#34;&gt;## Parameters
&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;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--param1`&lt;/span&gt;: Description of parameter 1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--param2`&lt;/span&gt;: Description of parameter 2
&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;gu&#34;&gt;## Example
&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;Example usage code
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;La sección &amp;ldquo;Caso práctico&amp;rdquo; más adelante en este capítulo detallará cómo crear un Skill completo.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;instalar-skills-de-otros&#34;&gt;Instalar Skills de otros
&lt;/h2&gt;&lt;p&gt;Hay muchos Skills ya preparados en GitHub que puedes descargar y usar directamente.&lt;/p&gt;
&lt;h4 id=&#34;encontrar-la-carpeta-de-skills&#34;&gt;Encontrar la carpeta de Skills
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Ubicación de Skills en Codex:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mac/Linux: &lt;code&gt;~/.codex/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows: &lt;code&gt;%USERPROFILE%\.codex\skills\&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ubicación de Skills en Claude Code:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mac/Linux: &lt;code&gt;~/.claude/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows: &lt;code&gt;%USERPROFILE%\.claude\skills\&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;pasos-de-instalación&#34;&gt;Pasos de instalación
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;Abre la carpeta de Skills&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la carpeta no existe, puedes crearla manualmente:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;# Mac/Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p ~/.codex/skills
&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 (PowerShell)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;New-Item -Path &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$env&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:USERPROFILE\.codex\skills&amp;#34;&lt;/span&gt; -ItemType Directory -Force
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260210adddada83fd4be0d3f4cdc6e63fec1ac.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Descarga el archivo del Skill&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Descarga la carpeta del Skill desde GitHub u otras fuentes.&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Copia al directorio de Skills&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Copia toda la carpeta del Skill al directorio de skills correspondiente.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202602104e62dfdd77b3cf3ee74bc2aecb7daa0c.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;Reinicia la herramienta&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Codex actualmente no soporta recarga en caliente; necesitas salir y reiniciar para ver el nuevo Skill. Claude Code normalmente lo reconoce automáticamente.&lt;/p&gt;
&lt;h4 id=&#34;verificar-la-instalación&#34;&gt;Verificar la instalación
&lt;/h4&gt;&lt;p&gt;Después de reiniciar, introduce &lt;code&gt;/skill&lt;/code&gt; para ver la lista y confirmar que el nuevo Skill ha aparecido.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;caso-práctico-crear-un-skill-de-sincronización&#34;&gt;Caso práctico: Crear un Skill de sincronización
&lt;/h2&gt;&lt;h4 id=&#34;escenario-del-problema&#34;&gt;Escenario del problema
&lt;/h4&gt;&lt;p&gt;Si usas tanto Codex como Claude Code (mucha gente lo hace), te encontrarás con un problema:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Los Skills de las dos herramientas deben gestionarse por separado, lo cual es muy incómodo.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los Skills de Codex están en &lt;code&gt;~/.codex/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Los Skills de Claude Code están en &lt;code&gt;~/.claude/skills/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada vez que creas un Skill útil en Codex, tienes que copiarlo manualmente a la carpeta de Claude. &lt;strong&gt;¡Demasiado tedioso!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En este punto, podemos crear un Skill para sincronizar automáticamente los contenidos de las dos carpetas: usar un Skill para gestionar Skills.&lt;/p&gt;
&lt;p&gt;Este Skill:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Comprobará las diferencias entre las dos carpetas de Skills&lt;/li&gt;
&lt;li&gt;Informará qué Skills necesitan sincronizarse&lt;/li&gt;
&lt;li&gt;Después de tu confirmación, sincronizará automáticamente&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Solo tenemos que decirle los requisitos a la IA.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260210c2c91355e1d617b09be033f7decf7720.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A continuación se muestra lo que la IA hace por ti. Ten en cuenta que estos pasos son automáticos; ¡no necesitas hacer nada!
Se muestra aquí solo con fines de demostración.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;Paso 1: Crear la carpeta del Skill&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En el directorio de skills de Codex o Claude Code, crea una nueva carpeta:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;mkdir ~/.codex/skills/codex-claude-skill-sync
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Paso 2: Crear SKILL.md&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Crea un archivo &lt;code&gt;SKILL.md&lt;/code&gt; en la carpeta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: codex-claude-skill-sync
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: Sync Codex and Claude Skills
&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# Codex/Claude Skill Sync
&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;&lt;span class=&#34;gu&#34;&gt;## Overview
&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;Used to check and sync the Skill directories of Codex and Claude, keeping both sides consistent. By default, only reports differences; executes sync after user confirmation.
&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;gu&#34;&gt;## Workflow
&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;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Run difference report (no modification):
&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;sb&#34;&gt;`python3 scripts/sync_skills.py`&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;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Report differences to the user in English and wait for explicit consent before proceeding.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; After consent, execute sync:
&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;sb&#34;&gt;`python3 scripts/sync_skills.py --apply`&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;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; When encountering a conflict (same modification time but different content), pause and ask the user which side to keep.
&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;gu&#34;&gt;## Rules
&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;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Default directories:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Codex: &lt;span class=&#34;sb&#34;&gt;`/Users/yourusername/.codex/skills`&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;k&#34;&gt;-&lt;/span&gt; Claude: &lt;span class=&#34;sb&#34;&gt;`/Users/yourusername/.claude/skills`&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;k&#34;&gt;-&lt;/span&gt; Only process top-level directories that contain &lt;span class=&#34;sb&#34;&gt;`SKILL.md`&lt;/span&gt;, skip hidden directories and &lt;span class=&#34;sb&#34;&gt;`.system`&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;k&#34;&gt;-&lt;/span&gt; Determine which side is newer based on the latest modification time in the directory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; When syncing, delete the target Skill directory first, then copy the entire source directory
&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;gu&#34;&gt;## Parameters
&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;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--apply`&lt;/span&gt; Execute sync (default is report only)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--codex &amp;lt;path&amp;gt;`&lt;/span&gt; Override Codex directory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--claude &amp;lt;path&amp;gt;`&lt;/span&gt; Override Claude directory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--prefer codex|claude`&lt;/span&gt; When modification time is the same but content differs, use the specified side to overwrite (requires explicit user authorization)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Importante:&lt;/strong&gt; ¡Cambia las rutas anteriores por tus rutas reales!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 3: Crear el archivo de script&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Crea un directorio &lt;code&gt;scripts&lt;/code&gt; dentro de la carpeta del Skill, luego crea &lt;code&gt;sync_skills.py&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;mkdir ~/.codex/skills/codex-claude-skill-sync/scripts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260210c60c72d226f3e43ad5667da06933d8fd.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Código completo de &lt;code&gt;sync_skills.py&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ch&#34;&gt;#!/usr/bin/env python3&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;s2&#34;&gt;&amp;#34;&amp;#34;&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;s2&#34;&gt;Compare and sync skill folders between Codex and Claude.
&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;s2&#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;s2&#34;&gt;Default behavior is report-only. Use --apply to perform sync.
&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;s2&#34;&gt;&amp;#34;&amp;#34;&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;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;__future__&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;annotations&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;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;argparse&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;hashlib&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&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;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&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;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;shutil&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;sys&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;&lt;span class=&#34;n&#34;&gt;DEFAULT_CODEX&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/Users/yourusername/.codex/skills&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;n&#34;&gt;DEFAULT_CLAUDE&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/Users/yourusername/.claude/skills&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IGNORE_DIR_NAMES&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.git&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.idea&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.vscode&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__pycache__&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.pytest_cache&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.mypy_cache&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;n&#34;&gt;IGNORE_FILE_NAMES&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.DS_Store&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;n&#34;&gt;TIME_EPSILON&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.0&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;format_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fromtimestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;strftime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%Y-%m-&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; %H:%M:%S&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&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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list_skill_dirs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&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;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;FileNotFoundError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Root path does not exist: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_dir&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;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;NotADirectoryError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Root path is not a directory: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#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;n&#34;&gt;ignored&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iterdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;lambda&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_dir&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;k&#34;&gt;continue&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;startswith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.&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;n&#34;&gt;ignored&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&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;k&#34;&gt;continue&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SKILL.md&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&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;k&#34;&gt;continue&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;n&#34;&gt;skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignored&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;dir_state&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&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;n&#34;&gt;hasher&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hashlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sha256&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;n&#34;&gt;latest_mtime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;st_mtime&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;n&#34;&gt;file_count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&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;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dirs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;files&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;walk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&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;n&#34;&gt;dirs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[:]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;d&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dirs&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;d&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IGNORE_DIR_NAMES&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;n&#34;&gt;dirs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sort&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;n&#34;&gt;files&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;f&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;files&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IGNORE_FILE_NAMES&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;rel_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;relpath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rel_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.&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;n&#34;&gt;rel_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&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;n&#34;&gt;hasher&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;update&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;D|&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rel_dir&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encode&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;try&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;n&#34;&gt;latest_mtime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;latest_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;st_mtime&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;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;FileNotFoundError&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;k&#34;&gt;continue&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;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;files&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;n&#34;&gt;file_path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;n&#34;&gt;rel_path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;relpath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_symlink&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;k&#34;&gt;try&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;n&#34;&gt;target&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;readlink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_path&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;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;OSError&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;n&#34;&gt;target&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&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;n&#34;&gt;hasher&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;update&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;L|&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rel_path&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encode&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;k&#34;&gt;try&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;n&#34;&gt;latest_mtime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;latest_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lstat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;st_mtime&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;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;FileNotFoundError&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;k&#34;&gt;pass&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;k&#34;&gt;continue&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;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&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;k&#34;&gt;continue&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;            &lt;span class=&#34;n&#34;&gt;stat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stat&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;n&#34;&gt;latest_mtime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;latest_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stat&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;st_mtime&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;n&#34;&gt;file_count&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;mi&#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;n&#34;&gt;hasher&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;update&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;F|&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rel_path&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stat&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;st_size&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encode&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;chunk&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;lambda&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1024&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1024&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&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;n&#34;&gt;hasher&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;update&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chunk&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hasher&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hexdigest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;latest_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file_count&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;build_plan&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;n&#34;&gt;codex_skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;claude_skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;codex_root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;claude_root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;prefer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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 class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#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;n&#34;&gt;identical&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#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;n&#34;&gt;conflicts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;all_names&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codex_skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;claude_skills&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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;all_names&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;n&#34;&gt;codex_path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_skills&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&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;n&#34;&gt;claude_path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_skills&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;src&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&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;s2&#34;&gt;&amp;#34;dst&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_root&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;reason&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;only in codex&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;s2&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;codex -&amp;gt; claude&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;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;k&#34;&gt;continue&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;src&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&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;s2&#34;&gt;&amp;#34;dst&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_root&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;reason&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;only in claude&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;s2&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;claude -&amp;gt; codex&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;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;k&#34;&gt;continue&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;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&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;k&#34;&gt;continue&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;        &lt;span class=&#34;n&#34;&gt;codex_hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dir_state&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codex_path&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;n&#34;&gt;claude_hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dir_state&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;claude_path&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_hash&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_hash&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;n&#34;&gt;identical&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&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;k&#34;&gt;continue&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;        &lt;span class=&#34;n&#34;&gt;time_delta&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;abs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;time_delta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;TIME_EPSILON&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;prefer&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;codex&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;src&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&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;s2&#34;&gt;&amp;#34;dst&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&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;s2&#34;&gt;&amp;#34;reason&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;same mtime, prefer codex&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;s2&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;codex -&amp;gt; claude&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;s2&#34;&gt;&amp;#34;codex_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&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;s2&#34;&gt;&amp;#34;claude_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&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;k&#34;&gt;elif&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;prefer&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;claude&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;src&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&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;s2&#34;&gt;&amp;#34;dst&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&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;s2&#34;&gt;&amp;#34;reason&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;same mtime, prefer claude&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;s2&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;claude -&amp;gt; codex&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;s2&#34;&gt;&amp;#34;codex_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&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;s2&#34;&gt;&amp;#34;claude_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&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;k&#34;&gt;else&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;n&#34;&gt;conflicts&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;codex_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&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;s2&#34;&gt;&amp;#34;claude_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&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;k&#34;&gt;continue&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;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;time_delta&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;src&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&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;s2&#34;&gt;&amp;#34;dst&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&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;s2&#34;&gt;&amp;#34;reason&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;codex newer&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;s2&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;codex -&amp;gt; claude&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;s2&#34;&gt;&amp;#34;codex_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&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;s2&#34;&gt;&amp;#34;claude_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&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;k&#34;&gt;else&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&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;s2&#34;&gt;&amp;#34;src&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_path&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;s2&#34;&gt;&amp;#34;dst&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_path&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;s2&#34;&gt;&amp;#34;reason&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;claude newer&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;s2&#34;&gt;&amp;#34;direction&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;claude -&amp;gt; codex&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;s2&#34;&gt;&amp;#34;codex_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&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;s2&#34;&gt;&amp;#34;claude_mtime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;identical&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;conflicts&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;print_report&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;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&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;n&#34;&gt;identical&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&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;n&#34;&gt;conflicts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&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;n&#34;&gt;codex_root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;claude_root&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;apply&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&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;n&#34;&gt;ignored_codex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&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;n&#34;&gt;ignored_claude&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&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 class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Skill sync report&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Codex: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codex_root&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Claude: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;claude_root&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignored_codex&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Ignored in Codex: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ignored_codex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignored_claude&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Ignored in Claude: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ignored_claude&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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&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;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;Planned sync actions:&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;actions&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;- none&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;k&#34;&gt;else&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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;actions&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;n&#34;&gt;codex_mtime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;codex_mtime&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;n&#34;&gt;claude_mtime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;claude_mtime&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;n&#34;&gt;details&lt;/span&gt; &lt;span class=&#34;o&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;codex_mtime&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;n&#34;&gt;details&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;codex mtime: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codex_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;claude_mtime&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;n&#34;&gt;details&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;claude mtime: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;claude_mtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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;n&#34;&gt;detail_text&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34; (&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;details&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;)&amp;#34;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;details&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&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;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;- &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;direction&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; [&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;reason&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;]&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;detail_text&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&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;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;Conflicts:&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;conflicts&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;- none&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;k&#34;&gt;else&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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;conflicts&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;nb&#34;&gt;print&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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;- &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: same mtime but different content &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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;(codex &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;codex_mtime&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;, claude &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;claude_mtime&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;)&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;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&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;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;Up-to-date skills: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;identical&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;apply&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;Dry run only. Re-run with --apply to sync.&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&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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;apply_actions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;actions&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;n&#34;&gt;src&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;src&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;n&#34;&gt;dst&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;dst&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_dir&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;n&#34;&gt;shutil&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rmtree&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&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;k&#34;&gt;else&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;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;unlink&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;shutil&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;copytree&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;symlinks&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&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&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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespace&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;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArgumentParser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Sync Codex and Claude skill folders&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;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--codex&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_CODEX&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Codex skill root&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;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--claude&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_CLAUDE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Claude skill root&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;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--apply&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;action&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Apply sync actions&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;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&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;s2&#34;&gt;&amp;#34;--prefer&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;n&#34;&gt;choices&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;codex&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;claude&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;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Break ties when mtimes are equal&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;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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_args&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&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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&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;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_args&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&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;n&#34;&gt;codex_skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignored_codex&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;list_skill_dirs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codex&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;n&#34;&gt;claude_skills&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignored_claude&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;list_skill_dirs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;claude&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;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;FileNotFoundError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;NotADirectoryError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exc&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&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;    &lt;span class=&#34;n&#34;&gt;actions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;identical&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;conflicts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;build_plan&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;n&#34;&gt;codex_skills&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;n&#34;&gt;claude_skills&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;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codex&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;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;claude&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;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;prefer&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;n&#34;&gt;print_report&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;n&#34;&gt;actions&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;n&#34;&gt;identical&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;n&#34;&gt;conflicts&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;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codex&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;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;claude&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;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply&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;n&#34;&gt;ignored_codex&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;n&#34;&gt;ignored_claude&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;actions&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;n&#34;&gt;apply_actions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;actions&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;Sync complete.&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;k&#34;&gt;elif&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apply&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;actions&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;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;No changes to apply.&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&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;conflicts&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;prefer&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__main__&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;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&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;/div&gt;&lt;p&gt;&lt;strong&gt;Importante:&lt;/strong&gt; Recuerda modificar las rutas al principio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_CODEX&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/Users/yourusername/.codex/skills&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;n&#34;&gt;DEFAULT_CLAUDE&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/Users/yourusername/.claude/skills&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;/div&gt;&lt;p&gt;Cámbialas por tus rutas reales.&lt;/p&gt;
&lt;h4 id=&#34;usar-el-skill-de-sincronización&#34;&gt;Usar el Skill de sincronización
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Paso 1: Ver diferencias&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En Claude Code o Codex, introduce:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/codex-claude-skill-sync
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La IA ejecutará automáticamente el script e informará de las diferencias entre las dos carpetas de Skills.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 2: Confirmar sincronización&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si estás de acuerdo con la sincronización, dile a la IA:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Agreed, please execute sync.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La IA ejecutará &lt;code&gt;python3 scripts/sync_skills.py --apply&lt;/code&gt; para completar la sincronización.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¡Hecho!&lt;/strong&gt; A partir de ahora, cada vez que crees o modifiques un Skill en un lado, solo ejecuta este Skill de sincronización una vez y ambos lados se mantendrán consistentes.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;consejos-avanzados-de-skill&#34;&gt;Consejos avanzados de Skill
&lt;/h2&gt;&lt;h4 id=&#34;consejo-1-combinar-skills&#34;&gt;Consejo 1: Combinar Skills
&lt;/h4&gt;&lt;p&gt;Se pueden usar varios Skills en secuencia:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/review then /fix to fix the issues found
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La IA primero revisará el código y luego lo corregirá automáticamente según los resultados de la revisión.&lt;/p&gt;
&lt;h4 id=&#34;consejo-2-personalizar-parámetros-de-skill&#34;&gt;Consejo 2: Personalizar parámetros de Skill
&lt;/h4&gt;&lt;p&gt;Muchos Skills admiten parámetros:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/commit --type feat --scope api
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Esto generará un mensaje de commit en un formato específico.&lt;/p&gt;
&lt;h4 id=&#34;consejo-3-plantillas-de-skill&#34;&gt;Consejo 3: Plantillas de Skill
&lt;/h4&gt;&lt;p&gt;Puedes crear plantillas de Skill para generar rápidamente nuevos Skills:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copia una carpeta de Skill existente&lt;/li&gt;
&lt;li&gt;Modifica SKILL.md&lt;/li&gt;
&lt;li&gt;Guarda&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;consejo-4-compartir-skills-con-el-equipo&#34;&gt;Consejo 4: Compartir Skills con el equipo
&lt;/h4&gt;&lt;p&gt;Coloca la carpeta de Skills en un repositorio Git para que los miembros del equipo puedan compartir:&lt;/p&gt;
&lt;div class=&#34;highlight&#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/your-team/skills.git ~/.codex/skills/team-skills
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Lo que aprendimos hoy:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Qué es Skill&lt;/strong&gt;: Un módulo de capacidad reutilizable que convierte operaciones complejas en comandos simples&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skill vs Prompt vs MCP&lt;/strong&gt;: Diferencias y escenarios de aplicación&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo usar Skill&lt;/strong&gt;: &lt;code&gt;/skill&lt;/code&gt; para ver e invocar&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo crear Skill&lt;/strong&gt;: Dejar que la IA ayude o crearlo manualmente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cómo instalar Skill&lt;/strong&gt;: Copiar a la carpeta correspondiente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Caso práctico&lt;/strong&gt;: Crear un Skill de sincronización para resolver la gestión de múltiples herramientas&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Puntos clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skill eleva a la IA de &amp;ldquo;mecanógrafo&amp;rdquo; a &amp;ldquo;asistente profesional&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Las operaciones comunes deben encapsularse en Skills&lt;/li&gt;
&lt;li&gt;Un buen Skill puede ahorrar el 90% del tiempo&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Una visión práctica de las herramientas de IA más populares</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/ai-tools-overview/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/ai-tools-overview/</guid>
        <description>&lt;p&gt;Hemos hablado sobre qué es la IA y aprendido que es una &amp;ldquo;calculadora de probabilidades que redacta respuestas&amp;rdquo;. Pero ahora la pregunta es: &lt;strong&gt;Con tantas herramientas de IA en el mercado, ¿cuál deberías usar?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este capítulo presenta las herramientas de IA más populares, incluyendo sus sitios web, cómo usarlas y sus características. Después de leer este capítulo, sabrás cuál elegir.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;los-tres-grandes-del-extranjero-chatgpt-claude-gemini&#34;&gt;Los tres grandes del extranjero: ChatGPT, Claude, Gemini
&lt;/h2&gt;&lt;h3 id=&#34;chatgpt---el-más-famoso&#34;&gt;ChatGPT - El más famoso
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; chat.openai.com&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601276bad8a03b5ebd2eee37652fd6ac0ac24.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;br&gt;
&lt;strong&gt;Se requiere VPN:&lt;/strong&gt; Sí&lt;br&gt;
&lt;strong&gt;Desarrollador:&lt;/strong&gt; OpenAI (EE. UU.)&lt;br&gt;
&lt;strong&gt;Modelos más recientes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Serie GPT-5&lt;/strong&gt;: Incluye GPT-5 Instant (rápido), GPT-5 Thinking (razonamiento), GPT-5 Thinking Pro (razonamiento más potente)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Serie GPT-5.2&lt;/strong&gt;: Insignia lanzada en diciembre de 2025, mejor rendimiento en tareas de conocimiento profesional&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt; El más inteligente, con más funciones (chat, código, generación de imágenes, búsqueda web), el mejor ecosistema (tienda de GPTs), actualizaciones más rápidas&lt;br&gt;
&lt;strong&gt;Desventajas:&lt;/strong&gt; Difícil de acceder desde China, muchas restricciones en la versión gratuita, $20/mes por la versión de pago&lt;br&gt;
&lt;strong&gt;Ideal para:&lt;/strong&gt; Quienes quieren la IA más avanzada, tienen presupuesto y acceso a VPN&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;claude---el-más-humano&#34;&gt;Claude - El más &amp;ldquo;humano&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; claude.ai&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601277a00268a04a85f00d21cff62a18fd28a.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;br&gt;
&lt;strong&gt;Se requiere VPN:&lt;/strong&gt; Sí&lt;br&gt;
&lt;strong&gt;Desarrollador:&lt;/strong&gt; Anthropic (EE. UU.)&lt;br&gt;
&lt;strong&gt;Modelos más recientes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude Opus 4.5&lt;/strong&gt;: El mejor del mundo para tareas de codificación y agentes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Sonnet 4.5&lt;/strong&gt;: El mejor modelo de codificación del mundo, líder en SWE-bench&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Haiku 4.5&lt;/strong&gt;: Modelo rápido y de bajo costo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt; Respuestas de alta calidad, fuerte procesamiento de textos largos (200K-1M tokens), capacidad de codificación de primer nivel, herramienta CLI Claude Code&lt;br&gt;
&lt;strong&gt;Desventajas:&lt;/strong&gt; Requiere VPN, relativamente menos funciones, Pro $20/mes. Cabe destacar que esta empresa no es muy amigable con China y tiene prohibiciones estrictas de cuentas.&lt;br&gt;
&lt;strong&gt;Ideal para:&lt;/strong&gt; Escritores, programadores, quienes priorizan la calidad de las respuestas&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;gemini---el-todoterreno-de-google&#34;&gt;Gemini - El todoterreno de Google
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; gemini.google.com&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026012741f3a4c949e004c0724b52c05fad19c5.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;br&gt;
&lt;strong&gt;Se requiere VPN:&lt;/strong&gt; Sí&lt;br&gt;
&lt;strong&gt;Desarrollador:&lt;/strong&gt; Google (EE. UU.)&lt;br&gt;
&lt;strong&gt;Modelos más recientes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gemini 3 Pro&lt;/strong&gt;: Supera a la competencia en 19/20 benchmarks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini 3 Flash&lt;/strong&gt;: Rápido y de bajo costo, ahora el modelo predeterminado&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini 3 Deep Think&lt;/strong&gt;: Modo de razonamiento profundo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt; Fuertes capacidades de búsqueda web, multimodal potente, integrado con el ecosistema de Google, generoso nivel gratuito en AI Studio, se puede usar el plan de estudiante gratis por un año, el modelo Banana para texto a imagen es de clase mundial&lt;br&gt;
&lt;strong&gt;Desventajas:&lt;/strong&gt; Difícil de acceder desde China&lt;br&gt;
&lt;strong&gt;Ideal para:&lt;/strong&gt; Quienes usan frecuentemente los servicios de Google y necesitan procesar contenido multimedia&lt;/p&gt;
&lt;h4 id=&#34;-consejo-gratuito-google-ai-studio&#34;&gt;🎁 Consejo gratuito: Google AI Studio
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;URL:&lt;/strong&gt; aistudio.google.com&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202601276be163917894b728a18448b628dff2b4.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;br&gt;
¡Esto es una joya! Una plataforma para desarrolladores de Google, pero también usable por personas comunes. En pocas palabras: &lt;strong&gt;la versión premium gratuita de Gemini&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Por qué recomendarlo:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Completamente gratuito&lt;/strong&gt;: 60 solicitudes por minuto, más que suficiente para uso personal&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modelos más recientes&lt;/strong&gt;: Acceso a las últimas versiones de Gemini 3 Pro y Flash, ya incluye el modelo Banana para texto a imagen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sin límites de conversación&lt;/strong&gt;: A diferencia de la versión del sitio web oficial que tiene límites de uso&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Puede generar claves API&lt;/strong&gt;: Para usar con otras herramientas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cómo usarlo:&lt;/strong&gt; Abre la URL, inicia sesión con una cuenta de Google (se requiere VPN), haz clic en &amp;ldquo;Create new prompt&amp;rdquo; para empezar a chatear. La interfaz está en inglés, pero puedes hacer preguntas en chino. El único inconveniente es que la interfaz está más orientada a desarrolladores y no es tan pulida como la del sitio web oficial, pero es igual de potente.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;los-cuatro-nacionales-deepseek-doubao-glm-minimax&#34;&gt;Los cuatro nacionales: DeepSeek, Doubao, GLM, MiniMax
&lt;/h2&gt;&lt;h3 id=&#34;deepseek---el-orgullo-de-china&#34;&gt;DeepSeek - El orgullo de China
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; chat.deepseek.com&lt;br&gt;
&lt;strong&gt;Se requiere VPN:&lt;/strong&gt; No&lt;br&gt;
&lt;strong&gt;Modelos más recientes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek-V3.2&lt;/strong&gt;: Iguala el rendimiento de GPT-5 y Gemini 3&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek-V4&lt;/strong&gt;: Lanzamiento previsto para febrero de 2026&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt; Completamente gratuito, muy capaz, capacidad de codificación sobresaliente, acceso fluido en China, código abierto&lt;br&gt;
&lt;strong&gt;Desventajas:&lt;/strong&gt; Puede ser lento en horas pico, creatividad ligeramente más débil, moderación de contenido estricta&lt;br&gt;
&lt;strong&gt;Ideal para:&lt;/strong&gt; ¡Primera opción para usuarios domésticos! Estudiantes, programadores, quienes tienen presupuesto limitado&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;doubao---la-ia-más-fácil-de-usar&#34;&gt;Doubao - La IA más fácil de usar
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; doubao.com&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/2026012765a4e26b980bd724daff889f5af47b09.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;br&gt;
&lt;strong&gt;Se requiere VPN:&lt;/strong&gt; No&lt;br&gt;
&lt;strong&gt;Modelos más recientes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Doubao Large Model 1.8&lt;/strong&gt;: Soporta capacidades integrales de ver, escribir, hacer y planificar&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Doubao Real-time Voice Model&lt;/strong&gt;: Conversación de extremo a extremo ultrarrealista&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seedance Video Generation&lt;/strong&gt;: Sincronización precisa de audio y video&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt; Conversaciones de voz fluidas, interfaz simple, gratuito, buena localización, más de 100 millones de DAU&lt;br&gt;
&lt;strong&gt;Desventajas:&lt;/strong&gt; Capacidades profesionales promedio, moderación de contenido estricta&lt;br&gt;
&lt;strong&gt;Ideal para:&lt;/strong&gt; Conversaciones de voz para personas mayores/niños, chat diario. Si tienes un niño curioso en casa o quieres aprender inglés, recomiendo encarecidamente usar la función de llamada telefónica en la aplicación móvil para hablar directamente con la IA.&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260127ae61ffb12b117f81df3971383337a424.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;glm-zhipu-qingyan---una-alternativa-para-programación&#34;&gt;GLM (Zhipu Qingyan) - Una alternativa para programación
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; chatglm.cn&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260127cb15c12c7947bfcb5930d7a8ab77c5ce.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;br&gt;
&lt;strong&gt;Se requiere VPN:&lt;/strong&gt; No&lt;br&gt;
&lt;strong&gt;Modelos más recientes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GLM-4.7&lt;/strong&gt;: Lanzado en diciembre de 2025, 355B parámetros, 73.8% en SWE-bench (puntuación más alta en código abierto), puede suscribirse directamente al Plan de Codificación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas clave:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Capacidad de codificación comparable a Claude Sonnet 4.5&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Totalmente compatible con herramientas populares como Claude Code, Cline, etc.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reconocido en Silicon Valley&lt;/strong&gt;: Usado por productos estrella como Cursor, Windsurf&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Precio extremadamente bajo&lt;/strong&gt;: Costo de API de aproximadamente $0.44 por millón de tokens&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Código abierto MIT&lt;/strong&gt;: Se puede implementar localmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt; Capacidad de codificación de primer nivel, barato, fuertes capacidades de agente, amigable con el código abierto&lt;br&gt;
&lt;strong&gt;Desventajas:&lt;/strong&gt; Menos conocido, multimodal relativamente más débil&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ideal para:&lt;/strong&gt; Programadores (alternativa a Claude), desarrolladores multilingües, usuarios empresariales&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;minimax&#34;&gt;MiniMax
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Sitio web:&lt;/strong&gt; minimaxi.com&lt;br&gt;
&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/20260127c819f36a8aebadfd243db1012a9a48d5.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;br&gt;
&lt;strong&gt;Se requiere VPN:&lt;/strong&gt; No&lt;br&gt;
&lt;strong&gt;Modelos más recientes:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Generación de texto:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MiniMax-M2.1&lt;/strong&gt;: Enfocado en codificación multilingüe y escenarios de oficina&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MiniMax-M2&lt;/strong&gt;: 230B parámetros, optimizado para codificación y agentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Generación de video:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hailuo 02&lt;/strong&gt;: Segundo modelo de video del mundo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hailuo 2.3&lt;/strong&gt;: Mejor relación costo-rendimiento global, soporta 1080P&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ventajas (Texto):&lt;/strong&gt; Capacidad de codificación de primer nivel, fuerte rendimiento de agente, buen soporte multilingüe&lt;br&gt;
&lt;strong&gt;Ventajas (Video):&lt;/strong&gt; Alta calidad de video, velocidad rápida, relación costo-rendimiento insuperable&lt;br&gt;
&lt;strong&gt;Desventajas:&lt;/strong&gt; Conversación de texto promedio, duración de video corta&lt;br&gt;
&lt;strong&gt;Ideal para:&lt;/strong&gt; Creadores de video, programadores (flujos de trabajo de agentes), desarrolladores multilingües&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;resumen-cuál-deberías-elegir&#34;&gt;Resumen: ¿Cuál deberías elegir?
&lt;/h2&gt;&lt;h4 id=&#34;-si-no-quieres-gastar-dinero&#34;&gt;💰 &lt;strong&gt;Si no quieres gastar dinero:&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Primera opción: DeepSeek&lt;/strong&gt; - Gratuito, capaz, accesible directamente en China&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alternativa: Google AI Studio&lt;/strong&gt; - Requiere VPN, pero nivel gratuito generoso, modelo de clase mundial&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chat diario: Doubao&lt;/strong&gt; - Conversaciones de voz convenientes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;-si-quieres-lo-mejor&#34;&gt;🚀 &lt;strong&gt;Si quieres lo mejor:&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mejor en general: ChatGPT&lt;/strong&gt; (GPT-5.2)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mejor para codificación: Claude&lt;/strong&gt; (Opus 4.5 o Sonnet 4.5)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Procesamiento multimodal: Gemini 3&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;-si-eres-programador&#34;&gt;👨‍💻 &lt;strong&gt;Si eres programador:&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Primera opción en el extranjero: Claude Opus 4.5&lt;/strong&gt; - Capacidad de codificación #1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alternativa nacional: GLM-4.7 o MiniMax-M2.1&lt;/strong&gt; - Asequibles, capacidades comparables&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;-si-es-para-uso-familiar&#34;&gt;👴👶 &lt;strong&gt;Si es para uso familiar:&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Personas mayores/niños: Doubao&lt;/strong&gt; - Conversaciones de voz simples&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Estudiantes escolares: DeepSeek&lt;/strong&gt; - Aprendizaje y preguntas y respuestas&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Usa Hooks para Bloquear Flujos de Trabajo de Skills</title>
        <link>https://blog.discoverlabs.ac.cn/es/tutorials/ai/hooks-for-skills/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://blog.discoverlabs.ac.cn/es/tutorials/ai/hooks-for-skills/</guid>
        <description>&lt;p&gt;Skill se ha convertido en un método indispensable en mi flujo de trabajo diario. Para cualquier cosa que se repita tres veces o más, pienso en convertirla en un skill, no solo para ahorrar tiempo, sino para asegurarme de que la dirección y los pasos no se desvíen cada vez. Al menos en teoría.&lt;/p&gt;
&lt;h2 id=&#34;pero-la-ia-sigue-desviándose&#34;&gt;Pero la IA sigue desviándose
&lt;/h2&gt;&lt;p&gt;Esa afirmación es un poco exagerada. La realidad es que la IA sigue saltándose pasos. Tomemos el skill de escritura para la cuenta pública de WeChat que uso a diario. Configuré que me muestre el primer borrador para revisión, y solo después de que confirme que está bien, pasa a la corrección de erratas. Suena simple, ¿verdad? Pero cuando se ejecuta, se salta pasos constantemente: termina el primer borrador sin mostrármelo y pasa directamente a la corrección y edición. Para cuando me doy cuenta, ya ha modificado el archivo en silencio. Cuando lo señalo, se disculpa, dice &amp;ldquo;lo siento, fue mi error&amp;rdquo;, y luego lo vuelve a hacer la próxima vez. Las disculpas no resuelven el problema.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-la-ia-siempre-se-salta-pasos&#34;&gt;Por qué la IA siempre se salta pasos
&lt;/h2&gt;&lt;p&gt;Este problema es un poco contraintuitivo. Al principio pensé que la IA no era lo suficientemente inteligente, pero ya estaba usando ChatGPT 5.4 y Opus 4.6, que son modelos grandes de primer nivel. Luego pensé que las reglas no eran lo suficientemente claras, así que revisé las reglas del skill una y otra vez. Ayudó un poco, pero no solucionó la causa raíz. Después de investigar, aprendí que la IA saltándose pasos no es porque &amp;ldquo;no vea las reglas&amp;rdquo;, sino que está determinado por el mecanismo de generación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;Impulso de aceleración&amp;rdquo; impulsado por probabilidad&lt;/strong&gt;. Los modelos de lenguaje grandes esencialmente predicen el siguiente token. El peso de completar la tarea es naturalmente mayor que &amp;ldquo;quedarse en el paso 7 esperando al usuario&amp;rdquo;. La sensación de finalización es su impulso intrínseco.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Las reglas se degradan en contextos largos&lt;/strong&gt;. Las reglas que estableces al principio tienen su peso de atención diluido cuando el modelo llega al token 3000. Especialmente si entierras las reglas en un documento de skill largo, se marginan más fácilmente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Especialmente grave en modo automático&lt;/strong&gt;. Cuando uso el modo automático para escribir artículos, el modelo tiende a &amp;ldquo;ejecutar todos los pasos de una sola vez&amp;rdquo;. Mi ventana para intervenir se vuelve aún más estrecha.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CLAUDE.md y los documentos de skill son esencialmente &amp;ldquo;restricciones blandas&amp;rdquo;&lt;/strong&gt;. Son prompts que dependen de la &amp;ldquo;autodisciplina&amp;rdquo; del modelo para seguirlos. Y la autodisciplina es frágil frente a &amp;ldquo;quiero terminar esta tarea rápido&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, la conclusión es: &lt;strong&gt;Las restricciones verbales fallan bajo la presión impulsada por tareas&lt;/strong&gt;. Simplemente escribir documentos, agregar signos de exclamación o hacer PUA a la IA solo puede aliviar el problema, no curarlo. Para solucionarlo realmente, debes sacarlo de la zona de autodisciplina del modelo: hacer que sea &lt;strong&gt;físicamente imposible saltarse pasos&lt;/strong&gt;. Ahí es donde entran los Hooks.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-un-hook&#34;&gt;¿Qué es un Hook?
&lt;/h2&gt;&lt;p&gt;Claude Code tiene un mecanismo llamado Hook. No es un skill, ni un prompt, ni es lo mismo que CLAUDE.md: es un &lt;strong&gt;script de shell local&lt;/strong&gt; adjunto a puntos clave en el ciclo de vida de Claude Code. La diferencia clave:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLAUDE.md / skill son &lt;strong&gt;observados y ejecutados por el modelo&lt;/strong&gt;: el modelo puede ignorarlos.&lt;/li&gt;
&lt;li&gt;Hook es &lt;strong&gt;aplicado por el sistema&lt;/strong&gt;: el modelo no puede ignorarlo aunque quiera.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una frase clave de la documentación oficial de Anthropic sobre Hooks: &lt;strong&gt;Los Hooks se activan por eventos del sistema, no por decisiones del modelo&lt;/strong&gt;. Eso significa que los hooks están adjuntos a todo el tiempo de ejecución de Claude Code. Cada llamada a herramienta que hace el modelo (Write, Edit, Bash) debe pasar primero por el hook para su revisión. Si el hook devuelve deny, se deniega, incluso si tienes habilitado &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;. Esto es lo que llamo una &amp;ldquo;restricción dura&amp;rdquo;: no dejar que la IA tome sus propias decisiones, sino forzar sus llamadas a herramientas a pasar por una auditoría real de scripts de shell.&lt;/p&gt;
&lt;p&gt;Puntos de activación comunes de Hook:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PreToolUse&lt;/code&gt;: Intercepta antes de que la IA llame a una herramienta.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UserPromptSubmit&lt;/code&gt;: Procesa tu mensaje antes de entregarlo a la IA.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SessionStart&lt;/code&gt;: Se activa cuando una sesión comienza o se reanuda.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stop&lt;/code&gt;: Se activa cuando Claude termina una respuesta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Concéntrate en los dos primeros: son suficientes para construir un &amp;ldquo;bloqueo de pasos&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;en-la-práctica-puerta-de-paso-para-mi-skill-de-cuenta-de-wechat&#34;&gt;En la práctica: Puerta de Paso para mi Skill de Cuenta de WeChat
&lt;/h2&gt;&lt;p&gt;Toda charla es inútil sin un ejemplo concreto. Esta captura de pantalla es la interfaz de Claude Code mientras escribo este artículo. En el cuadro rojo, la IA me pide que responda &amp;ldquo;pass step3 0090&amp;rdquo;; esta frase de paso es exactamente el Hook de Puerta de Paso en acción. El texto que estás leyendo ahora fue escrito después de que envié la frase de paso y el hook lo permitió.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cf-img.discoverlabs.ac.cn/202604215eb7d33c9289138f9e048df0021f8b8d.webp&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Toda la Puerta de Paso usa solo dos scripts de shell más una pequeña configuración en settings.json. Vamos a desglosarlo.&lt;/p&gt;
&lt;h3 id=&#34;registrar-dos-hooks-en-settingsjson&#34;&gt;Registrar dos Hooks en settings.json
&lt;/h3&gt;&lt;p&gt;Agrega esto a &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#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;s2&#34;&gt;&amp;#34;PreToolUse&amp;#34;&lt;/span&gt;&lt;span class=&#34;err&#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;nt&#34;&gt;&amp;#34;matcher&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Write|Edit&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;hooks&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 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;command&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;~/.claude/skills/writing-gongzhonghao/scripts/gate_check.sh&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;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 class=&#34;err&#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;s2&#34;&gt;&amp;#34;UserPromptSubmit&amp;#34;&lt;/span&gt;&lt;span class=&#34;err&#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;nt&#34;&gt;&amp;#34;hooks&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 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;command&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;~/.claude/skills/writing-gongzhonghao/scripts/gate_mark.sh&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;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;/div&gt;&lt;p&gt;Esta configuración significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cada vez que la IA quiera escribir o editar un archivo, &lt;code&gt;gate_check.sh&lt;/code&gt; se ejecuta primero para revisión.&lt;/li&gt;
&lt;li&gt;Cada vez que envío un mensaje, &lt;code&gt;gate_mark.sh&lt;/code&gt; se ejecuta primero para analizarlo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;gate_checksh-maneja-la-intercepción&#34;&gt;gate_check.sh maneja la intercepción
&lt;/h3&gt;&lt;p&gt;La lógica de este script es bastante simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la IA quiere escribir un nuevo archivo &lt;code&gt;04-Output/NNNN xxx.md&lt;/code&gt; (correspondiente al Paso 3: crear un nuevo artículo), verifica si el archivo de estado &lt;code&gt;step3.ok&lt;/code&gt; existe. Si no, devuelve &lt;code&gt;deny&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si la IA quiere editar un artículo existente (correspondiente a la corrección después del Paso 7), verifica si &lt;code&gt;step7.ok&lt;/code&gt; existe. Si no, también devuelve &lt;code&gt;deny&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al denegar, también incluye un prompt: &amp;ldquo;Confirmación del tema del Paso 3 no realizada: Por favor, dame primero la aprobación del esquema/dirección. Después de la confirmación, responde &amp;lsquo;pass step3 NNNN&amp;rsquo; para crear un nuevo archivo.&amp;rdquo; Este prompt se muestra directamente a la IA, por lo que sabe que está atascada y me pide la frase de paso.&lt;/p&gt;
&lt;h3 id=&#34;gate_marksh-maneja-la-liberación-de-la-frase-de-paso&#34;&gt;gate_mark.sh maneja la liberación de la frase de paso
&lt;/h3&gt;&lt;p&gt;¿Cómo &amp;ldquo;libero&amp;rdquo; el paso? No puedo dejar que la IA se libere sola, eso no sería ninguna restricción. La regla es: &lt;strong&gt;Solo cuando mi mensaje contiene una frase de paso específica, se toca el archivo de estado&lt;/strong&gt;. &lt;code&gt;gate_mark.sh&lt;/code&gt; se ejecuta cada vez que envío un mensaje, escaneando patrones como &lt;code&gt;pass stepN NNNN&lt;/code&gt;. Si coincide, toca un archivo &lt;code&gt;.ok&lt;/code&gt; en el directorio correspondiente.&lt;/p&gt;
&lt;p&gt;Entonces la cadena completa se convierte en:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La IA termina el esquema y quiere crear un nuevo artículo → bloqueado por &lt;code&gt;gate_check.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;La IA me pide la frase de paso: &amp;ldquo;Por favor confirma la dirección, responde &amp;lsquo;pass step3 0090&amp;rsquo;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Yo envío &amp;ldquo;pass step3 0090&amp;rdquo; → &lt;code&gt;gate_mark.sh&lt;/code&gt; toca step3.ok&lt;/li&gt;
&lt;li&gt;La IA intenta crear el archivo de nuevo → &lt;code&gt;gate_check.sh&lt;/code&gt; lo permite esta vez&lt;/li&gt;
&lt;li&gt;Después de terminar el primer borrador, quiere pasar a la corrección Edit → bloqueado de nuevo por step7.ok&lt;/li&gt;
&lt;li&gt;Después de que leo el borrador y envío &amp;ldquo;pass step7 0090&amp;rdquo; → la corrección puede comenzar&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Durante todo el proceso, la IA no tiene margen para la &amp;ldquo;autodisciplina&amp;rdquo;. No puede saltarse pasos aunque quiera, porque sus llamadas a herramientas están bloqueadas a nivel del sistema.&lt;/p&gt;
&lt;h3 id=&#34;tapar-un-agujero-la-ia-no-puede-tocar-los-archivos-de-estado-por-sí-misma&#34;&gt;Tapar un agujero: la IA no puede tocar los archivos de estado por sí misma
&lt;/h3&gt;&lt;p&gt;Después de diseñar la primera versión, me quedé mirando el plan un rato y encontré un agujero: ¿qué pasa si la IA usa Bash para &lt;code&gt;touch step3.ok&lt;/code&gt; por sí misma? ¿No eludiría la restricción? Así que agregué una regla específica en el documento del skill: &lt;strong&gt;La IA no debe tocar los archivos de estado por sí misma, de lo contrario estaría eliminando sus propias restricciones&lt;/strong&gt;. Esta regla en sí misma sigue siendo una restricción blanda, pero combinada con la intercepción dura de los hooks, forma un bucle suficientemente cerrado: siempre que la IA no viole activamente esta regla (y Claude es bastante cooperativo), la restricción del hook es real. Si quieres ser más estricto, puedes agregar un comparador de Bash en PreToolUse para bloquear también comandos como touch. Pero yo aún no he llegado tan lejos; es suficientemente bueno.&lt;/p&gt;
&lt;h2 id=&#34;si-no-entiendes-código-no-entres-en-pánico&#34;&gt;Si no entiendes código, no entres en pánico
&lt;/h2&gt;&lt;p&gt;No necesitas escribir estos scripts de shell o configuraciones JSON tú mismo (en realidad, yo tampoco sé escribirlos). El enfoque es simple: lanza este artículo y tu archivo de skill a Claude o Codex, deja que lo lean y te ayuden a modificar: crear scripts donde sea necesario, modificar settings.json donde sea necesario. La IA es particularmente confiable para este tipo de tarea de &amp;ldquo;configurar el entorno según la documentación&amp;rdquo;, mucho más estable que escribir código desde cero. Aprende los principios del artículo mientras escribe hooks según los requisitos de tu skill, y el resultado rara vez se desvía.&lt;/p&gt;
&lt;h2 id=&#34;resumen-en-una-frase&#34;&gt;Resumen en una frase
&lt;/h2&gt;&lt;p&gt;CLAUDE.md, documentos de skill, marcadores en negrita, repetir tres veces, PUA: todas estas son &lt;strong&gt;restricciones verbales sobre la IA&lt;/strong&gt;. Funcionan, pero tienen un techo bajo.&lt;/p&gt;
&lt;p&gt;Los Hooks son &lt;strong&gt;restricciones de código sobre la IA&lt;/strong&gt;. Mueven las reglas a un lugar al que la IA no puede llegar, convirtiendo &amp;ldquo;seguir las reglas&amp;rdquo; de un asunto de autodisciplina del modelo a un requisito obligatorio del entorno de ejecución.&lt;/p&gt;
&lt;p&gt;Si te encuentras diciéndole repetidamente a la IA &amp;ldquo;¿Por qué te estás saltando pasos otra vez?&amp;rdquo;, es hora de considerar usar Hooks para restringirla.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
