Este artículo muestra paso a paso cómo usar IPython como sustituto de la shell tradicional del sistema, integrando capacidades que normalmente requerirían varias herramientas separadas. El autor, Nathan Cooper, explica primero cómo evitar el prefijo "!" al ejecutar comandos de bash: gracias a la magic %rehashx, IPython crea automáticamente un alias para cada ejecutable presente en el PATH, de modo que órdenes como echo, ls o vim funcionan de forma nativa.
A continuación, el texto detalla cómo renderizar imágenes directamente en la terminal mediante el protocolo gráfico TGP de Kitty, compatible con emuladores modernos como Kitty, Ghostty o WezTerm. Para ello se emplea el paquete kittytgp, creado por su compañero Jeremy, junto con la extensión ipythonng, que también mejora el historial de salidas y permite visualizar Markdown con la librería rich. El resultado es que gráficos de Matplotlib aparecen como imágenes reales dentro del terminal, no como arte ASCII.
La parte más ambiciosa del tutorial convierte IPython en una shell "inteligente" gracias a FastLLM, una librería desarrollada por su colega Kerem que admite distintos proveedores de modelos. Usando AsyncChat, el usuario puede mantener conversaciones con un modelo de lenguaje configurado con un system prompt a medida. Para que el modelo sea realmente útil, el artículo explica cómo aprovechar el HistoryManager de IPython: las variables In y Out, los atajos i y , y, sobre todo, history_manager.outputs, que almacena salidas, prints, imágenes y errores en formato MIME. De este modo, el asistente recibe como contexto el código ejecutado recientemente y sus resultados, lo que le permite responder con conocimiento real del entorno.
El texto incorpora además salvaguardas de seguridad: los proyectos safepyrun y safecmd, ambos de AnswerDotAI, permiten definir listas blancas de comandos permitidos antes de dejar que el modelo ejecute código Python o bash, evitando acciones destructivas. El autor cierra con la broma recurrente de llamar a la shell "bash buddy" y presentarla como una comunidad pequeña pero entusiasta de usuarios avanzados.
