Disfruta conmigo de Linux y del Open Source. Aquí encontrarás como sacarle el máximo partido a tu entorno de escritorio Linux, hasta como montar un servidor web, un WordPress, un proxy inverso, una base de datos o cualquier otro servicio que puedas imaginar. Y todo ello, lo puedes montar en una Raspberry Pi, en un VPS, en tu propio ordenador o en cualquier servidor. Vamos, cualquier cosa que quieras hacer con Linux, seguro, seguro, que la encontrarás aquí.

Similar Podcasts

Thinking Elixir Podcast

Thinking Elixir Podcast
The Thinking Elixir podcast is a weekly show where we talk about the Elixir programming language and the community around it. We cover news and interview guests to learn more about projects and developments in the community.

Rocket

Rocket
Countdown to excitement! Every week Christina Warren, Brianna Wu and Simone de Rochefort have accelerated geek conversation. Tech, comics, movies, games and books, no galaxy is off limits! Hosted by Christina Warren, Brianna Wu, and Simone De Rochefort.

 Rustacean Station

Rustacean Station
Come journey with us into the weird, wonderful, and wily world of Rust.

ATA 829 Skills imprescindibles para tu agente IA

September 07, 2026 00:20:31 3.67 MB ( 8.17 MB less) Downloads: 0

Hoy te traigo un episodio que llevaba tiempo queriendo grabar. Y es que muchos estáis usando agentes de IA, pero los tenéis desnudos. Sin skills. Y un agente sin skills es como un Linux sin comandos: técnicamente funciona, tienes el kernel, tienes la shell, pero sin ls, sin grep, sin systemctl, no puedes hacer nada útil. El mejor modelo del mundo sin herramientas solamente es texto bonito.En este episodio te cuento qué son exactamente las skills, por qué transforman un modelo de lenguaje en un asistente que hace cosas, y cuáles son las tres skills imprescindibles que todo agente debería tener. Una skill no es ni más ni menos que un prompt. Un conjunto de instrucciones que le dice a tu agente cómo tiene que hacer algo. No es un programa ni un script, es una receta de comportamiento. Y no necesitas ser programador para crearlas.Te hablo de skills del sistema: leer archivos, ejecutar comandos, navegar por tu equipo. Skills de búsqueda: búsqueda web con SearXNG (que tengo montado en un Slimbook One y devuelve resultados en JSON que es una maravilla), búsqueda local con RipGrep que es increíblemente rápida, y búsqueda semántica con SQLite. Y skills de automatización: tareas programadas, webhooks que responden a eventos como un git push, o scripts orquestados que pueden hacer casi cualquier cosa.Pero no me quedo ahí. Te doy las tres reglas de oro para crear tus propias skills. Porque los mejores skills son los que escribes para ti mismo. Primera regla: no digas "revisa el sistema", sino "ejecuta systemctl status --failed". Cuanto más específico, mejor. Segunda: define los límites. Qué puede hacer y qué no. Lo que no puede hacer es casi tan importante como lo que puede hacer. Tercera: ponle ejemplos. Cómo tiene que quedar el resultado, qué formato tiene que usar. Con estas tres cosas todo rueda mucho mejor.También te cuento cómo organizar tus skills. Cada agente guarda los skills donde le da la gana: OpenCode en .config/opencode/skills, Hermes en .hermes/skills. Yo cada vez los guardo más en .agents/skills porque la mayoría de los agentes ya saben encontrarlos ahí. Y te hablo de los hubs de skills, donde puedes instalar skills creados por la comunidad con un solo comando.Si usas OpenCode, Hermes Agent u Open Web y sientes que tu agente responde preguntas pero no hace cosas, este episodio te va a cambiar el día a día. Vamos directos al turrón.Capítulos del episodio:0:00 - Introducción: tu agente está desnudo1:45 - ¿Qué es una skill? De un prompt a un asistente que hace cosas4:15 - Skills del sistema: leer archivos, ejecutar comandos, navegar7:30 - Skills de búsqueda: web con SearXNG, local con RipGrep, semántica con SQLite11:00 - Skills de automatización: tareas programadas, webhooks, scripts orquestados13:45 - Las 3 reglas de oro para crear tus propias skills18:30 - El ecosistema de skills: dónde guardarlas y cómo organizarlas21:00 - Ejemplo práctico: la skill del tiempo meteorológico23:15 - Conclusión: un agente sin skills es Linux sin comandosMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 828 De Docker a tu Cerebro Digital, el roadmap de IA para Linuxeros

September 03, 2026 00:31:36 5.03 MB ( 11.01 MB less) Downloads: 0

Este episodio 828 es la carta de presentación de la Temporada 9 de atareao con Linux. Treinta y cuatro episodios ya guionizados, siete etapas, y un objetivo claro: construir tu cerebro digital sobre Linux con herramientas locales, sin depender de nubes ni suscripciones.Pero antes de mirar adelante, toca hacer balance. La T08 empezó prometiendo Docker, selfhosting y Android, y sí, hablé de todo eso. Pero en abril de 2025 la IA local irrumpió con fuerza y la temporada viró hacia Ollama, modelos locales, RAG, MCP. Fue un giro desordenado, lo reconozco. Pero también fue el germen de todo lo que viene ahora.De eso va esta T09: de poner orden al caos. Siete etapas, de menos a más, para que sigas el hilo hagas el nivel que hagas.Etapa 1 — Recursos básicos: los cimientos de tu laboratorio de IA. Skills para tu agente, herramientas de publicación, el botiquín del explorador.Etapa 2 — Skills y MCPs: el pegamento. El Model Context Protocol ha madurado hasta ser un estándar abierto — lo soportan Claude, ChatGPT, VS Code, Cursor. Ya no es un experimento, es el USB-C de la IA. Y de paso, herramientas del ecosistema atareao como watchbeat (monitor de uptime en Rust) y alloy (dashboard Docker con OIDC).Etapa 3 — GraphRAG, el gran hito: de RAG vectorial a grafos de conocimiento. Mientras el RAG clásico devuelve fragmentos sueltos y tú unes los puntos, GraphRAG construye un grafo con entidades y relaciones. Preguntas como "qué contenedores están detrás de Traefik" pasan a ser una consulta directa a tu mapa de conocimiento. Usaremos LightRAG, que con 39.000 estrellas ya superó al Microsoft GraphRAG original. Esto ocupa tres episodios.Etapa 4 — Multimedia: Whisper para speech-to-text, TTS local, ffmpeg, visión artificial, y el pipeline de YouTube a conocimiento con yt-dlp. Rematamos con RAG multimodal.Etapa 5 — Orquestación: systemd timers, asyncio, just, y CrewAI para montar equipos de agentes.Etapa 6 — Proyecto final: dos episodios para construir El Asistente que te Conoce y ponerlo en producción con Quadlets.Etapa 7 — El futuro: mantenimiento de tu cerebro digital y hacia dónde va todo esto.Entre medias, herramientas Linux: shuul, sqlite-utils, yq + jq, Rust en el kernel, Wayland vs X11, la guerra de los filesystems.No necesitas una GPU de 3000 euros ni un doctorado. Con 16 GB de RAM y un CPU decente ejecutas modelos de 7B a 14B. Esto es IA local, en tu máquina, con tus datos.Capítulos del episodio:00:00 — Introducción y bienvenida a la Temporada 901:47 — Balance T08: de Docker y Selfhosting al boom de la IA04:37 — El momento adecuado para cada tecnología06:46 — El gran objetivo: tu cerebro digital08:44 — Roadmap T09: 30 episodios ya guionizados11:28 — Skills y MCPs imprescindibles12:43 — GraphRAG: de RAG a grafos de conocimiento14:01 — RAG vs GraphRAG: el mapa de tu conocimiento17:28 — Herramientas del ecosistema: alloy, populater, watchbeat20:08 — ¿Para quién es esto? De veteranos a escépticos22:08 — No es hype: es un cambio de paradigma24:30 — El momento perfecto para el linuxeroToda la info y el roadmap completo en atareao.es/828.Más información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 827 No Necesitas una GPU de 3000€ para IA Local

August 31, 2026 00:22:36 3.87 MB ( 10.16 MB less) Downloads: 0

Cerramos la octava temporada con un episodio que me apetecía grabar desde hace meses. Igual te ha pasado como a mí: empecé hablando de un laboratorio de IA para cualquiera, y terminé recomendando GPUs de 3000 euros. Me fui creciendo, pero no hace falta. Te cuento cómo montar un laboratorio de IA local con el equipo que ya tienes. Da igual si tienes 8 GB de RAM o 16, CPU modesta o sin GPU. La clave está en elegir los modelos adecuados. Muchas veces nos perdemos buscando el modelo más grande, cuando con uno pequeño y bien cuantizado tenemos de sobra para el 80% de las tareas.Te hablo de Ollama, el gestor de modelos estándar para ejecutar modelos locales. Más de 180.000 estrellas en GitHub, API compatible con OpenAI, modelos para todos los presupuestos: desde Phi 3.5 con 3.8B parámetros hasta Qwen 1.5B que ocupa 1 GB. También la cuantización: reduces la precisión numérica de los pesos para que ocupen menos y vayan más rápido. El punto dulce es Q4_K_M, que reduce el tamaño a menos de un tercio. Para 8 GB de RAM, Q3_K_S puede ser tu salvación.También te hablo de Open WebUI, la interfaz que le da mil vueltas a ChatGPT. No solo chateas: tiene RAG local, Whisper integrado para transcribir voz (75 MB en CPU), TTS con Kokoro-82M para que el modelo te hable en tiempo real, búsqueda web, plugins y memoria persistente. Todo en un contenedor Docker que levantas con un solo comando.Y de SQLite Vec, extensión de SQLite sponsorizada por Mozilla para búsqueda semántica sin servidores vectoriales. Ni ChromaDB, ni Qdrant, ni Milvus. C puro que funciona hasta en Raspberry Pi. Creas tablas virtuales para vectores de 768 dimensiones, generas embeddings con nomic-embed-text, y buscas por similitud coseno en milisegundos. RAG local sin complicaciones.Y te explico cómo organizarlo todo con Docker o Podman. Un docker-compose.yml que levanta Ollama y Open WebUI en segundos, con healthchecks, redes separadas y volúmenes persistentes. También a limitar recursos con --memory y --cpus. He preparado scripts: inicialización que comprueba requisitos, crea directorios y descarga modelos; otro para descargar por niveles según tu hardware (nivel 1 para 8 GB, nivel 2 para 16 GB, nivel 3 para 32 GB); y uno de respaldo.Y la estrategia híbrida local + nube, que es lo que realmente tiene sentido. El enfoque Minions del Stanford Hazy Research Lab: el modelo local hace el trabajo pesado, y solo consulta al grande en la nube para tareas complejas. El 90% de las consultas se resuelven localmente. Ahorras dinero, mantienes privacidad de tus datos, y cuando necesitas potencia, la tienes.Con 16 GB de RAM y un SSD te sobra para el 80% de las tareas: traducciones, resúmenes, código, asistentes, RAG, transcripción de audio, texto a voz... Todo en tu máquina, sin enviar datos a servidores, sin suscripciones, sin depender de internet. Con 8 GB también puedes, con modelos más pequeños. Cerramos temporada, la novena arranca en el episodio 828. Capítulos del episodio:0:00 - Introducción — cierre de temporada 8 y replanteamiento2:30 - Hardware mínimo: 8-16 GB RAM + SSD obligatorio5:00 - Software base: instalar Ollama en tu distribución7:30 - Contenedores: Docker vs Podman para el laboratorio10:00 - Modelos pequeños: Phi 3.5, Qwen 1.5B y cuantización13:00 - Herramientas complementarias: SQLite Vec, Whisper, TTS16:00 - Organización del laboratorio: script y estructura de directorios19:00 - Demo: probando Ollama en local con modelos ligeros22:00 - Combinación local + nube: lo mejor de ambos mundos24:30 - Cierre, avance temporada 9 y despedidaMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 826 Nushell, la shell que entiende tus datos y tu IA

August 27, 2026 00:31:21 5.26 MB ( 13.24 MB less) Downloads: 0

Si llevas años usando Bash, Zsh o Fish y piensas que los pipes de Unix son lo más parecido a la perfección, este episodio te va a hacer tambalear los cimientos. Porque existe un shell que no pasa texto entre comandos: pasa estructuras de datos. Tablas, listas, registros, fechas, tamaños de archivo con tipo real. Y encima habla con Ollama sin que tengas que escribir ni una línea de Python.Ese shell es Nushell. Está escrito en Rust, tiene más de 40.000 estrellas en GitHub, y su filosofía es sencilla: los pipes deberían transportar datos con tipo, no texto que luego parseas con awk, sed o jq.En este episodio te cuento mi experiencia pasando de Fish a Nushell con ejemplos reales. Cuando escribes ls no obtienes texto: obtienes una tabla con columnas tipadas. Puedes hacer ls | where size > 1mb | sort-by size sin recurrir a awk ni números mágicos. El shell entiende qué es un filesize, qué es una fecha, qué es un número.Y luego está open, que entiende el formato por la extensión: JSON, YAML, TOML, CSV, SQLite... todo se convierte en datos estructurados. Abres un SQLite y ejecutas consultas con query db. Y todo combinable: http get a una API, filtrar con where y guardar con save — en un solo pipeline, sin archivos temporales.La guinda es la integración con IA. Como Nushell entiende JSON y Ollama habla JSON, se entienden a la perfección. Te enseño un pipeline que lista procesos, filtra los que consumen más de 100MB de RAM, se los manda a un modelo local, y mata el que más memoria usa. Todo en una línea. También te hablo de ai.nu, un módulo que envuelve Ollama, OpenAI y DeepSeek, con function calling desde el shell.También hago una comparativa: Bash, Zsh, Fish y Nushell cara a cara. Bash funciona en cualquier sitio pero el manejo de datos es arcaico. Zsh es Bash con esteroides pero los pipes siguen siendo texto. Fish es moderno pero no entiende de tipos. Nu es el único con estructuras de datos de verdad. PowerShell fue el primero en pasar objetos, pero Nu es lo que PowerShell debería haber sido.Capítulos del episodio:0:00 — Introducción: de Bash a Fish, la evolución de las shells2:30 — El problema del texto plano: por qué Nushell es diferente5:00 — La trifecta: ls, where y select, SQL en tu terminal7:30 — Tipos reales: la shell entiende fechas, tamaños y números10:00 — Open: abrir JSON, CSV, YAML y SQLite sin herramientas externas13:00 — Procesamiento avanzado: $in, save, append y par-each15:30 — HTTP GET: APIs de GitHub y meteorología desde la shell18:00 — Comparativa de shells: Bash vs ZSH vs Fish vs Nushell21:00 — Nushell e IA: integración nativa con Ollama sin Python24:00 — Instalación, casos de uso y conclusiones finalesMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 825 Qué hay en el motor de un agente de IA

August 24, 2026 00:31:10 6.07 MB ( 12.8 MB less) Downloads: 0

Hoy te voy a contar una historia que empieza con una idea brillante y termina con una buena dosis de frustración. Resulta que se me ocurrió construir mi propio agente de inteligencia artificial. Lo llamé Anacleto, está escrito en Rust, y la idea era tener un coordinador de agentes que delegara tareas según lo que le pidieras. El tiempo, el tiempo, y un puñado de bugs después, me he encontrado con que estoy aprendiendo mucho más de lo que pasa entre bambalinas que de lo que el agente realmente llega a hacer.Y es que cuando le das una instrucción a un agente de IA —ya sea OpenCode, Claude, Hermes o el que tú quieras— no hay magia. Lo que hay es una coreografía compleja de mensajes que van y vienen, eventos que se disparan, herramientas que se invocan y un modelo de lenguaje que procesa todo después de que el agente lo haya pretratado. En este episodio abro la caja negra y te cuento exactamente qué hay dentro.Te explico el viaje completo de un mensaje: desde que escribes el prompt hasta que obtienes la respuesta. Cómo funciona el streaming, cómo el modelo "piensa en voz alta" con los reasoning events, cómo decide qué herramientas usar con las tool calls, y cómo todo se monta en una batidora que reconstruye la información antes de enviarla al modelo. Y sí, el modelo no razona, simplemente predice. Pero la gracia está en que ahora no solo habla, también actúa. El modelo recibe una lista de herramientas disponibles y decide por sí mismo cuál usar según el contexto. No es programación tradicional de "si pasa A, usa la herramienta A". Es el modelo el que, basándose en su entrenamiento, predice qué herramienta le dará la mejor respuesta.Y luego está el problema. El bucle. El modelo devuelve tool calls, el agente ejecuta las herramientas, vuelve a llamar al modelo, y así una y otra vez hasta que se alcanza el máximo de pasos y todo se para. No sé si es un problema de cómo he definido las llamadas, del motor o de las skills. Llevo días toqueteando, probando, cambiando cosas, y todavía no tengo claro dónde está el fallo. Lo que sí tengo claro es que unas skills bien preparadas dan mejores resultados que un modelo más potente. Y esa lección, por sí sola, ya ha valido la pena. Porque al final, la calidad de las instrucciones que le das al agente importa más que el modelo que uses por debajo.Te cuento también por qué elegí Rust y Ratatui para la interfaz, en lugar de lo típico en Python o TypeScript. Spoiler: me lié más con el lenguaje que con el objetivo final, como suele pasar. Y te presento a los subagentes de Anacleto: uno para el tiempo, otro para noticias, otro para chistes, otro para investigar... cada uno con su propia personalidad y herramientas.Capítulos del episodio:Capítulos del episodio:0:00 - Introducción: abriendo la caja negra de los agentes de IA2:19 - El viaje de un mensaje: del prompt al modelo de lenguaje3:49 - Arquitectura de agentes: coordinador, subagentes y la TUI en Rust6:11 - El motor como director de orquesta: roles system, user, assistant y tool8:27 - System prompt y optimización: delegación en subagentes especializados11:13 - Streaming y server-sent events: cómo se construye la respuesta token a token14:20 - Razonamiento y tool calls: el modelo predice, no piensa, pero actúa17:59 - El bucle de herramientas: el problema de la delegación infinita en Anacleto20:56 - Skills, subagentes desechables y sistema de permisos25:16 - Demostración práctica de Anacleto: tiempo, chistes y noticias29:22 - Conclusiones, redes y despedidaMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 824 Busca como un rayo y alimenta a tu IA

August 20, 2026 00:22:05 13.53 MB Downloads: 0

¿Sigues usando find y grep como en los 90? Hace unas semanas me puse a buscar un archivo en un repositorio con git, lancé el find de toda la vida, y cuando volví de tomarme un café —literalmente— todavía seguía buscando. El problema es que find se mete en el .git, en los binarios, en sitios donde no debería. Y grep, pues lo mismo, sobre todo si trabajas con Unicode o con repositorios grandes. Así que llevo un tiempo usando fd y ripgrep, dos herramientas escritas en Rust que son órdenes de magnitud más rápidas. Pero lo mejor no es solo la velocidad: es que puedes combinarlas para crear pipelines que alimenten directamente a tu IA local.fd (44.1k estrellas en GitHub) es un reemplazo directo de find. En los benchmarks oficiales, buscar archivos con fd -u tarda 0.8 segundos donde find necesita 11 segundos con -iname y casi 20 segundos con -iregex. 23 veces más rápido. Y no solo es velocidad: fd respeta .gitignore por defecto, soporta expresiones regulares directamente, y tiene placeholders como {}, {.}, {/} y {//} que te permiten ejecutar comandos sobre cada resultado con -x o pasarlos en lote con -X.ripgrep (67.4k estrellas) es lo mismo pero para buscar texto. En el kernel de Linux, rg tarda 0.08 segundos donde grep tarda 2.67 segundos. 32 veces más rápido. Y tiene superpoderes que grep ni sueña: salida en JSON con --json, búsqueda en archivos comprimidos con -z, soporte PCRE2 con -P para lookaheads, y un flag --passthru que te muestra también las líneas que no coinciden. Desde la versión 15 también soporta hyperlinks OSC 8 y respeta repositorios de Jujutsu.Pero lo que realmente me tiene enganchado es combinarlos. El patrón es sencillo: fd encuentra los archivos que te interesan, ripgrep extrae el contexto relevante, y todo eso se lo pasas a Ollama para que lo procese. Te enseño la función aresumen que me he montado en Bash, y su equivalente en Fish, para preguntarle a mi documentación local sin salir de la terminal. Cosas como "resume todo lo que he escrito sobre Ollama en el último mes" se resuelven con un pipeline de tres comandos. Sin RAG, sin bases de datos vectoriales, sin complicaciones. Solo con un pipe bien puesto y el modelo adecuado.También te cuento cómo usar jq para procesar la salida JSON de ripgrep, cómo montar un buscador interactivo con fzf y bat, y los errores más comunes al construir estos pipelines. Si alguna vez has pensado "ojalá pudiera preguntarle a mis propias notas desde la terminal", este episodio te va a gustar. Y si todavía usas find y grep, te aseguro que después de oír los benchmarks no vuelves atrás.Capítulos del episodio:0:00 — Introducción: fd y ripgrep para alimentar a tu IA2:30 — El problema con find y grep tradicionales5:00 — fd: el find que siempre quisiste tener8:00 — Placeholders y expresiones regulares en fd11:00 — ripgrep: el grep con superpoderes14:00 — Salidas estructuradas con JSON y jq16:30 — La combinación estrella: fd + ripgrep con -x19:00 — Pipelines avanzados para filtrar archivos21:30 — Integración con IA local: fd + rg + Ollama24:30 — Alias, funciones y trucos del día a día27:00 — Despedida y conclusionesRecursos mencionados:- fd (sharkdp/fd): https://github.com/sharkdp/fd- ripgrep (BurntSushi/ripgrep): https://github.com/BurntSushi/ripgrep- Ollama: https://ollama.com- jq: https://jqlang.github.io/jq/- fzf: https://github.com/junegunn/fzf- bat: https://github.com/sharkdp/batMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 823 OpenCode multi agente: cómo convertir la IA en tu equipo de redacción

August 17, 2026 00:30:44 18.22 MB Downloads: 0

Hoy toca dar un paso más. Hasta ahora usabas OpenCode como un asistente personal, le pedías algo y lo hacía. Pero, ¿y si necesitas algo más potente? ¿Alguien que investigue, alguien que escriba, alguien que lo optimice para SEO y alguien que lo revise todo? La respuesta no es un agente, es un equipo de agentes. En este episodio te cuento cómo he montado un sistema multi agente con OpenCode usando el patrón supervisor, y cómo coordino cinco agentes especializados sin que se pisen.Te explico el pipeline completo de cinco fases. Primero la planificación, donde el coordinador define la estructura y los pasos a seguir. Luego la investigación, que corre a cargo del bibliotecario, un agente que solo busca información, no escribe, no opina, solo trae datos con sus fuentes. Después viene el redactor, que coge esos datos y escribe el artículo en Markdown con el tono de la casa. La cuarta fase es el SEO, donde un agente especializado pone el título, la meta descripción y las etiquetas sin tocar el fondo del artículo. Y por último la revisión, donde el editor verifica que todo está correcto y, si algo falla, lo devuelve al coordinador para que repita la fase que haya fallado. Todo esto forma un bucle de retroalimentación que diferencia un sistema multi agente bien hecho de cualquier otro.Cada agente tiene su propio modelo, su propia temperatura y sus propios permisos. El investigador usa un modelo pequeño y barato porque solo necesita buscar. El redactor necesita un modelo más grande porque tiene que escribir con calidad. El revisor usa temperatura muy baja para ser lo más objetivo posible.También te cuento los errores que me he encontrado. El más común es que el coordinador no delega. Le pides algo y en lugar de llamar al investigador, investiga él. En lugar de llamar al redactor, escribe él. Y el resultado es lo peor, porque el coordinador no es especialista en nada. La solución pasa por describirlo muy claro, con exclusiones en mayúscula: NO PUEDES HACER NADA, SOLO PUEDES DELEGAR. Otro error es dar permisos de más. Si todos pueden invocar Task, el investigador llama al revisor, este al SEO y se monta un follón. Además hago una demo en vivo creando un artículo sobre FD, una herramienta en Rust que sustituye a find. Ves cómo el coordinador recibe la petición, planifica, lanza al investigador, luego al redactor, luego al SEO, luego al revisor, y en una sola iteración el artículo está aprobado. Con su título SEO, su meta descripción, sus etiquetas y su estructura en Markdown. Y todo esto no es programación. Es escribir artículos, preparar presentaciones o lo que se te ocurra. OpenCode no es solo un asistente para programar, es mucho más que eso. Y al final te cuento cuándo merece la pena usar multi agente y cuándo no. Porque para cambiar una bombilla no necesitas un equipo de cinco personas, necesitas un electricista.Capítulos del episodio:0:00 - Introducción: de ChatGPT a los agentes multi-propósito2:28 - De asistente personal a equipo de agentes especializados3:52 - Patrón supervisor: el jefe de obra que coordina sin ejecutar4:50 - Pipeline de 5 fases: planificación, investigación, redacción, SEO y revisión6:37 - La herramienta Task: delegación, contexto aislado y ventajas9:17 - Demo en vivo: creando un artículo sobre FD con subagentes13:07 - Agentes especializados: investigador, redactor y SEO18:56 - Control de calidad: el revisor y el bucle de retroalimentación23:22 - El coordinador: la no ejecución como clave del éxito24:58 - Errores comunes, cuándo usar multi-agente y despedidaMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 822 PowerPoint HA MUERTO! Genera presentaciones con IA en 15 segundos

August 13, 2026 00:28:23 17.33 MB Downloads: 0

Hace unos meses empecé a usar presentaciones para grabar el podcast, y enseguida me di cuenta de que el verdadero problema no es pensar el contenido, sino maquetarlo. Pasaba más tiempo ajustando fuentes, colores y transiciones que preparando lo que realmente quería contar. Así que me puse a buscar una solución, y lo que encontré me ha cambiado el flujo de trabajo por completo.En este episodio te cuento cómo he montado typst-ia, un script en Python que genera presentaciones completas en segundos. Le dices un tema, la inteligencia artificial se encarga del contenido, y Typst lo convierte en un PDF impecable. Todo desde la terminal, sin abrir PowerPoint ni Google Slides, sin suscripciones mensuales, y con un control total sobre el resultado.Typst es un sistema de composición moderno escrito en Rust que compila en milisegundos. Sí, has leído bien, milisegundos. Comparado con LaTeX Beamer, que tarda 5 o 10 segundos en compilar, Typst es un antes y un después. Además, su sintaxis es mucho más limpia y fácil de aprender. En el episodio lo comparo con LaTeX y con Markdown, y te cuento por qué creo que Typst se está convirtiendo en el estándar para presentaciones técnicas.La clave del proceso está en el system prompt. Incrusto el template real de la presentación dentro del prompt que le envío a OpenRouter, y la IA genera código Typst válido sin necesidad de retoques. Uso DeepSeek Chat por defecto —cuesta unos 14 céntimos por millón de tokens de entrada, que vienen a ser cientos de presentaciones por menos de un euro—, pero también puedes usar Claude Sonnet, Gemini Flash o Llama 3.3 si necesitas más calidad o prefieres un modelo concreto.El script completo son unas 200 líneas de Python sin frameworks, solo con la librería requests. Te explico paso a paso cómo funciona el pipeline: lee el template, construye el prompt, llama a OpenRouter, limpia la respuesta, escribe el archivo .typ, lo compila a PDF y lo abre en el visor. Y todo con flags para personalizar el número de diapositivas, el modelo, el nombre del archivo y hasta los reintentos si la compilación falla.Para rematar, hago una demo en vivo generando una presentación desde cero. Ves cómo en cuestión de segundos pasamos de una idea a un PDF listo para proyectar. Y lo mejor es que el resultado es texto plano, versionable con Git, editable con cualquier editor, y sin ningún tipo de lock-in. Si mañana quieres cambiar algo, abres el .typ y lo tocas.Si eres de los que hacen presentaciones técnicas, charlas, workshops, o simplemente quieres automatizar una tarea tediosa, este episodio te va a gustar. Y si nunca has oído hablar de Typst, te vas a llevar una sorpresa.Capítulos del episodio:0:00 - Introducción: presentaciones con Typst e IA2:52 - El problema de las presentaciones tradicionales5:20 - Typst: el sistema de composición moderno7:34 - Typst vs LaTeX vs Markdown8:31 - Instalación de Typst9:28 - Plantillas para presentaciones con Typst12:52 - OpenRouter y el prompt para la IA15:28 - El script Python: el pipeline completo17:41 - Demo en vivo: generando una presentación24:17 - Conclusiones y despedida

ATA 821 Como buscar en tu cerebro digital con IA

August 10, 2026 00:29:57 17.94 MB Downloads: 0

¿Alguna vez te has dado cuenta de que la búsqueda exacta se queda corta cuando tu base de conocimiento crece? Buscar por palabras exactas con grep o FTS5 es rápido y preciso, pero es literal y no entiende contexto ni sinónimos. Por otro lado, la búsqueda semántica pura con embeddings a veces falla con términos muy específicos como rutas de archivos o comandos exactos.En este episodio te muestro cómo solucionar este problema combinando lo mejor de ambos mundos mediante tres técnicas avanzadas de RAG:Búsqueda Híbrida (Hybrid Search): Cómo combinar FTS5 y embeddings semánticos utilizando un equilibrio ponderado (parámetro alpha).Re-ranking con Cross-Encoder: Refinamiento de resultados pasando de un bi-encoder rápido a un cross-encoder preciso para priorizar la máxima relevancia.HyDE (Hypothetical Document Embeddings): La técnica de generar un documento hipotético con un LLM local (Ollama) para encontrar notas mediante conceptos abstractos.Además, repasamos cómo integrar todo esto en tu flujo de trabajo diario mediante herramientas CLI creadas en Python y Rust, así como la integración en Neovim con sqlite.lua.Enlaces y recursos del episodio:Gist con los scripts en Python (Hybrid Search, Reranker y HyDE)Gist con la implementación del CLI en Rust (cerebro-cli)Notas completas del episodio en: atareao.es

ATA 820 Herramientas para Linuxeros Vagos

August 06, 2026 00:23:45 14.03 MB Downloads: 0

Este episodio va de ser vago. Pero vago en el buen sentido, eh. De esos que prefieren que una herramienta haga el trabajo pesado mientras tú te quedas con lo divertido. Resulta que hay todo un ecosistema de herramientas TUI con el prefijo "lazy" que te evitan tener que memorizar cientos de flags y opciones de comandos como git, docker, rsync o SQL. Y no, no es cutrez: son interfaces de terminal que funcionan a golpe de tecla, sin ratón, sin salir de la terminal, y encima molan.Te cuento cómo nació todo esto, quién es Jesse Duffield (el creador de lazygit y lazydocker, con más de 80K y 52K estrellas en GitHub respectivamente) y por qué esta filosofía de "una tecla, una acción" ha enganchado a tanto linuxero. Y lo mejor: te hago demo de las cuatro herramientas principales para que veas cómo funcionan en vivo y en directo, con sus paneles, sus atajos y sus trucos.Empezamos con lazygit, el rey indiscutible del ecosistema. 80.900 estrellas en GitHub, escrito en Go, y con una comunidad que no para de crecer. Desde stage línea a línea hasta rebase interactivo, pasando por undo/redo vía reflog. Te enseño cómo hacer commits, gestionar ramas, stash y hasta cherry-pick sin tener que acordarte de los flags raros de git.Seguimos con lazysql, el gestor de bases de datos en terminal de Jorge Rojas. Soporta MySQL, PostgreSQL, SQLite, MongoDB, MSSQL y Oracle. Navegación por teclado, autocompletado de queries, exportación a CSV y configuración por proyecto. Ideal para cuando no te apetece abrir DataGrip o DBeaver solo para hacer una consulta rápida.Luego viene lazyrsync, escrito en Rust con ratatui, y con una filosofía muy clara: que no se te olvide el flag ese que evita que borres todo. Perfiles reutilizables, dry-run con previsualización, protección contra --delete accidentales y paths dinámicos con variables. Perfecto para backups sin sustos.Y cerramos con lazydocker, también de Jesse Duffield. Cuatro paneles: contenedores, métricas, imágenes y logs en vivo. Con un vistazo ves qué contenedor consume más CPU, entras en el terminal de uno con una tecla, o ejecutas docker-compose sin acordarte del comando. Y sí, también funciona con Podman.Además te menciono otras herramientas del ecosistema: lazyssh, lazyjj para Jujutsu, lazykube, lazyprune para limpiar node_modules olvidados... Vamos, que hay lazy para todo.Capítulos del episodio:0:00 — Introducción: el problema de memorizar comandos2:05 — La filosofía lazy: scripts, TUIs y el ecosistema lazy4:30 — LazyGit: historia, filosofía "una tecla una acción" y +80K estrellas6:45 — LazyGit: demo de paneles, stage, commits, ramas y stash9:10 — LazySQL: Jorge Rojas, 4K estrellas y soporte multi-base de datos11:30 — LazySQL: demo con autocompletado, consultas y exportación CSV14:00 — LazyRsync: dry-run, perfiles y protección contra errores16:30 — LazyRsync: demo con columnas de estado y confirmación de borrado19:10 — LazyDocker: Jesse Duffield, 52K estrellas y soporte para Podman21:45 — Otras herramientas lazy: lazy-ssh, lazy-jj, lazy-kube, lazy-npm23:15 — Cierre: sé un vago inteligente, valoración y despedidaMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 819 RAG I con SQLite y Ollama, base de conocimiento desde cero

August 03, 2026 00:26:46 16.02 MB Downloads: 0

Llevo 15 años escribiendo notas, artículos y tutoriales. El resultado: unos 5000 archivos markdown repartidos por mi disco duro. Y, como te puedes imaginar, encontrar algo ahí dentro es como buscar una aguja en un pajar. Por eso en este episodio me he puesto manos a la obra para montar un sistema RAG (Retrieval-Augmented Generation) 100% local, sin depender de APIs externas, sin enviar tus datos a la nube, y con herramientas que ya conoces: SQLite, Ollama y Python.Este es el primero de dos episodios sobre RAG. Aquí nos centramos en construir la base de conocimiento: un pipeline que escanea tus documentos, los trocea en fragmentos manejables, extrae los metadatos del frontmatter YAML, genera embeddings con el modelo bge-m3 de Ollama, y lo guarda todo en una base de datos SQLite con búsqueda FTS5. Todo esto, además, con detección incremental de cambios: la primera ejecución tarda lo que tenga que tardar, pero las siguientes son cuestión de segundos porque solo reprocesa lo que ha cambiado.El stack es sencillo pero potente. SQLite con FTS5 para búsqueda textual, Ollama con bge-m3 para los embeddings, y seis scripts Python que suman unas 1300 líneas. Nada de LangChain, nada de frameworks pesados. Código limpio, comentado y que entiendes de un vistazo. El chunking respeta las cabeceras markdown, usa tiktoken para contar tokens con precisión, y los embeddings se almacenan como BLOBs en la propia SQLite. En el próximo episodio (el 821) usaremos esta base de conocimiento para hacer búsqueda semántica con similitud de coseno, búsqueda híbrida combinando FTS5 con embeddings, y hasta un plugin para Neovim.Puntos clave del episodio:- El problema: 15 años de notas, 5000 archivos, cero capacidad de búsqueda- La solución: RAG local con SQLite + FTS5 + Ollama, todo en tu máquina- Chunking híbrido que respeta cabeceras markdown y usa tiktoken- Pipeline incremental con detección de cambios mediante MD5- Embeddings con bge-m3 (568M parámetros, 1024 dimensiones)- Búsqueda FTS5 con snippet(), colores ANSI y sintaxis avanzada- Errores comunes y cómo solucionarlosSi te gusta el contenido, ya sabes: dale a seguir, compártelo con quien creas que le puede interesar, y déjame un comentario si tienes dudas o sugerencias. La semana que viene, en el episodio 821, montamos la búsqueda semántica y el plugin para Neovim. No te lo pierdas.Capítulos del episodio:0:00 - Introducción: RAG y base de conocimiento local2:12 - El problema: 15 años de notas sin buscar4:58 - La solución: SQLite + FTS5 + Ollama, 100% local7:00 - Escaneo de archivos y extracción de front matter10:20 - Preparación del entorno: Ollama, uv y dependencias12:00 - Chunking: cómo trocear los documentos15:45 - Estructura de la base de datos SQLite17:46 - Pipeline incremental con detección de cambios19:22 - Demo en vivo: consultas y resultados22:44 - Errores comunes y cómo solucionarlos24:10 - Resumen y adelanto del episodio 82125:15 - Despedida y cierreMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 818 Olvídate de Termius y MobaXterm, SSHUB es lo que necesitas

July 30, 2026 00:20:28 12.27 MB Downloads: 0

¿Tienes 5, 10 o 20 servidores SSH y no sabes cómo gestionarlos sin tener mil terminales abiertas? En este episodio te hablo de SSHub, una TUI open source escrita en Rust que unifica hosts, sesiones, túneles, SFTP y auditoría en una sola interfaz. Todo desde la terminal, sin salir de ella y sin necesidad de instalar nada más que un único binario compilado con cargo install de Rust.Te cuento cómo pasé de un script en Bash que usaba desde 2019 para conectarme a mis servidores, a esta herramienta moderna que lee tu ~/.ssh/config y lo combina con una base de datos SQLite propia. Sin migraciones, sin complicaciones, sin tener que cambiar nada de lo que ya tienes configurado. Además la comparo con Termius y MobaXterm, que son de pago y cerradas, frente a SSHub que es gratis, multiplataforma y con licencia AGPL-3.0.Voy paso a paso: instalación con cargo install sshub, navegación con atajos estilo Vim (teclas j/k), el cliente SFTP de doble panel con cola de transferencia y barra de progreso, la gestión de túneles con reconexión automática y backoff exponencial, el registro de auditoría que te salva de conectar al servidor equivocado, y hasta el modo broadcast para ejecutar comandos en varios servidores a la vez. También te explico cómo importar hosts desde Termius, PuTTY o mRemoteNG de forma sencilla.Lo mejor de todo es que SSHub respeta tu configuración SSH existente. No la sustituye, la complementa. Detecta cambios al vuelo con un file watcher, así que cualquier modificación que hagas en tu config aparece al instante en la interfaz. Y si eres de los que prefiere la línea de comandos, tiene modo headless: sshub list, sshub connect, sshub sftp get/put... todo sin abrir la interfaz.Si gestionas más de 10 servidores, usas túneles habitualmente o vienes de Termius buscando una alternativa open source, este episodio te va a interesar. Y si además te gusta hacer las cosas desde la terminal sin depender de aplicaciones gráficas, SSHub te va a encantar. Dale una oportunidad, que es gratis y no tienes nada que perder. Te espero dentro.Capítulos del episodio:0:00 — Introducción: el problema de gestionar múltiples servidores SSH1:50 — El script de 2019 y la necesidad de una herramienta moderna3:40 — SSHub: la TUI open source que lo unifica todo5:30 — Características principales: hosts, túneles, claves y auditoría7:30 — Instalación de SSHub con Cargo9:30 — Navegación y atajos de teclado11:30 — SFTP de doble panel y transferencia de archivos13:30 — Gestión de túneles y claves SSH15:15 — Auditoría de conexiones17:00 — Importación, exportación y personalización18:45 — ¿Para quién es SSHub? DespedidaMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 817 Creando tu cerebro digital, busqueda con IA local

July 27, 2026 00:31:24 18.21 MB Downloads: 0

¿Sabías que puedes convertir cualquier texto en coordenadas de 1024 dimensiones y hacer búsquedas inteligentes, clasificación automática o detección de duplicados sin depender de servicios en la nube? En este episodio te enseño a utilizar los embeddings con Ollama para potenciar tus documentos, correos y apuntes desde tu propio equipo Linux.Los embeddings son una de las tecnologías más fascinantes de la inteligencia artificial actual. Básicamente, convierten palabras, frases o párrafos enteros en vectores numéricos que capturan su significado. Esto permite que un ordenador entienda que "gato" está más cerca de "felino" que de "nevera", y mucho más: desde búsqueda semántica hasta clasificación sin entrenamiento, pasando por deduplicación de documentos y sistemas de recomendación.Lo mejor de todo es que no necesitas una GPU potente ni una cuenta en ningún servicio externo. Con Ollama ejecutándose en local y el modelo BGE-M3 (multilenguaje, con soporte para español), puedes generar embeddings desde la terminal con una simple llamada curl o con unas pocas líneas de Python. Y si necesitas escalar, ChromaDB te ofrece una base de datos vectorial completa con persistencia en disco y filtros por metadatos.Capítulos del episodio:0:00 - Introducción y concepto de embeddings2:42 - ¿Qué son los embeddings exactamente?5:13 - Modelos de embeddings: BGE-M3, all-MiniLM-L6-v27:25 - Cómo generar embeddings con Ollama y curl8:01 - Búsqueda semántica: más allá de grep11:57 - Búsqueda semántica con Python y NumPy14:29 - Bases de datos vectoriales para escalar14:53 - Clasificación sin entrenar el modelo18:20 - Clasificación de sentimientos y categorías20:02 - Deduplicación de documentos con embeddings24:50 - Sistema de recomendaciones con similitud semántica27:15 - ChromaDB: base de datos vectorial persistente29:02 - Casos de uso y próximos episodios sobre RAGMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 816 jc, jq y gron, el tridente JSON para Linux

July 23, 2026 00:25:34 15.37 MB Downloads: 0

¿Todavía usando awk para extraer información de ps aux o df? En 2026 hay herramientas mucho mejores. En este episodio te presento tres herramientas que forman un tridente imbatible para trabajar con información del sistema en formato JSON: jc, jq y gron.jc es un conversor de comandos Linux a JSON. Se instala con pip y un simple pipe convierte la salida de ps, df, free, ss, systemctl, lsblk y hasta 60 comandos más en JSON estructurado. Olvídate de awk y de los scripts frágiles que se rompen cuando cambia el orden de las columnas. Con jc, el JSON no depende del formato de salida. Tiene parsers específicos para cada comando, incluyendo crontab, last, lsof, pip list, lsmod, date y más. Si no encuentra el parser que necesitas, puedes crear el tuyo. Está escrito en Python y tiene licencia MIT.jq es la navaja suiza de los JSON. Te permite filtrar, ordenar, agrupar, seleccionar y transformar cualquier JSON con una sintaxis potente. Está escrito en Go y es maduro, estable y rapidísimo. Combinado con jc, puedes listar los procesos que más RAM consumen, los discos por encima del 80% de ocupación o los servicios que han fallado, todo en una sola línea. Si la sintaxis te parece liosa, puedes pedirle a cualquier modelo de lenguaje que te genere la expresión que necesitas.gron es el menos conocido pero igual de útil. Aplana un JSON convirtiendo cada valor en una línea independiente con su ruta completa. ¿Para qué sirve? Para poder usar grep directamente sobre un JSON. Si alguna vez has hecho un curl a una API y has intentado hacer grep sobre el resultado, sabes que no funciona porque todo está en una línea. Con gron, cada valor tiene su propia línea y puedes buscar con grep. Además permite la operación inversa con --ungron: modificas el JSON aplanado con sed y lo reconstruyes.En el episodio presento sysreport.py, un script en Python que junta toda la información del sistema en un solo JSON usando jc y luego te permite hacer preguntas en lenguaje natural usando Llama 3.2 con Ollama. Le preguntas qué procesos consumen más RAM, qué servicios están caídos o si hay algún disco lleno, y él te responde en lenguaje natural. Todo corriendo en local, sin gastar un euro en APIs.El script se puede usar como API local, se combina con watch para monitorización en tiempo real y con notify-send para notificaciones en el escritorio. Además se integra directamente con el nightly-runner del episodio 815 para incluir el estado del sistema en el resumen matutino.Capítulos:0:00 - Introducción: el problema de la salida en texto plano2:30 - jc: convierte comandos Linux a JSON5:00 - jq: la navaja suiza de los JSON8:00 - gron: haz greppable cualquier JSON10:30 - Combinando jc y jq para consultas del sistema13:00 - sysreport.py: el script que lo junta todo16:00 - Preguntando al sistema en lenguaje natural19:00 - Monitorización con watch y notificaciones21:00 - Ventajas: local, sin coste y sin dependencias23:00 - Cierre: el tridente JSONMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao

ATA 815 Olvídate de n8n, automatiza con Python y IA en Linux

July 20, 2026 00:26:21 15.5 MB Downloads: 0

¿Cansado de perder 15 minutos cada mañana revisando el tiempo, las noticias, las ofertas y el estado de tu servidor? En este episodio te muestro cómo automatizar todo ese proceso con un script en Python, un timer de systemd y un modelo de lenguaje local. Sin n8n, sin agentes, sin servicios externos de pago.Mucha gente piensa que para automatizar cualquier cosa necesitas un agente con montones de herramientas MCP, skills y configuración. Pero la realidad es que para muchas tareas cotidianas, un agente es como usar un lanzamisiles para matar una mosca. Consume demasiado contexto, demasiados recursos y al final no es la solución más eficiente.En este episodio te presento el patrón de las tres capas: un script que hace el trabajo, un timer que lo ejecuta a una hora determinada y un sistema de notificaciones que te envía el resultado. Con esto puedes automatizar cualquier cosa de forma sencilla, eficiente y completamente bajo tu control.Te explico cómo he creado el nightly-runner, un script en Python que cada madrugada recopila información de cuatro fuentes distintas. Primero consulta el tiempo en wttr.in, que te devuelve un JSON con la temperatura, el viento, la humedad y los rayos ultravioleta. Luego hace scraping con IA de tus fuentes de noticias favoritas, extrayendo titulares y valorando su relevancia. Después busca ofertas de zapatillas de running en varias tiendas, comparando los precios con los del día anterior. Y por último recoge información del sistema con df, free, uptime y ps aux para saber si tu disco se está llenando o te estás quedando sin RAM.Toda esa información se guarda en archivos JSON y luego se pasa por un modelo de lenguaje local, Llama 3.2 con Ollama, que genera un resumen en lenguaje natural. El resultado es un mensaje de Telegram con un tono cercano que te da los buenos días, te cuenta el tiempo que va a hacer, te destaca las noticias importantes, te avisa si hay una oferta que no puedes dejar pasar y te informa del estado de tu servidor. Todo en un solo mensaje.El timer de systemd con Persistent=true se asegura de que si tu equipo estaba apagado a las 4 de la mañana, el script se ejecute en cuanto se encienda. Y cada capa es tolerante a fallos: si wttr.in está caído, el script simplemente omite el tiempo y el resumen dice que no hay información meteorológica disponible. Si no hay ofertas nuevas, no las menciona. Si Ollama no responde, envía el resumen sin procesar.Lo mejor de todo es que no necesitas saber Python para montar esto. Puedes usar Open Code o Gemini para que te genere el script con solo explicarle lo que quieres. Y para ejecutarlo, Llama 3.2 en local es más que suficiente. Sin gastar un euro en APIs.Capítulos:0:00 - Crítica a los agentes como solución universal2:00 - El problema: 15 minutos perdidos cada mañana4:00 - La solución: tres capas (script, timer, notificación)5:30 - wttr.in: el tiempo en JSON con un curl7:30 - Noticias: scraping con IA para extraer titulares9:30 - Zapatillas: comparativa de precios contra caché11:00 - Sistema: df, free, uptime y ps aux13:00 - El resumen: todos los JSONs pasan por Llama 3.216:00 - Systemd timer con Persistent=true18:00 - Notificaciones a Telegram y notify-send20:00 - Tolerancia a fallos en cada capa21:30 - Genera el script con IA aunque no sepas Python23:00 - Comparación con Hermes: menos es másEste podcast pertenece a la red de Sospechosos Habituales. Más información en atareao.esMás información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao