1 puntos por GN⁺ 2025-10-14 | 1 comentarios | Compartir por WhatsApp
  • agent-shell es un shell nativo basado en comint-mode que permite controlar directamente agentes de IA desde Emacs
  • Usa ACP (Agent Client Protocol), lo que le da la flexibilidad de comunicarse con distintos agentes sin depender de uno en particular
  • Incluye análisis de tráfico en tiempo real y una función de replay con agentes falsos (fake) para mejorar la eficiencia en pruebas y desarrollo
  • Aunque todavía no implementa todas las funciones del protocolo, ya muestra un nivel de implementación que puede usarse rápidamente en la práctica
  • Tanto agent-shell como acp.el están publicados en GitHub, y se agradece la retroalimentación de los usuarios sobre funciones adicionales o errores

Introducción

  • Recientemente, gracias a acp.el, implementado en Emacs Lisp, se volvió posible integrarse con Agent Client Protocol (ACP), desarrollado en conjunto por Zed y Google
  • Antes solo se ofrecía integración básica con LLM como chatgpt-shell, pero el uso más completo de agentes de IA avanzaba con lentitud
  • Con la introducción de ACP, creció la demanda de integración de agentes dentro del entorno Emacs, lo que llevó al inicio del desarrollo de agent-shell, nativo para Emacs

Resumen de agent-shell

  • agent-shell está basado en comint-mode y funciona dentro del conocido sistema de buffers de Emacs
  • Ofrece un entorno que puede usarse igual que un shell normal de Emacs, sin cambios separados entre modo de caracteres y modo de línea

Agent-agnostic (independiente del agente)

  • Gracias a ACP, es posible ofrecer una experiencia de usuario consistente para comunicarse con distintos agentes usando un solo protocolo
  • Mediante ejemplos de configuración, se pueden aplicar distintos agentes como Gemini CLI o Claude Code con cambios mínimos en el código
    • Código de ejemplo: explica la autenticación, los comandos y la configuración de variables de entorno para cada agente
  • Otros agentes también pueden integrarse fácilmente de la misma manera

Función de visualización de tráfico

  • Como aún no había familiaridad con el uso del protocolo ACP, surgió la necesidad de analizar el tráfico de comunicación en tiempo real
  • agent-shell ofrece un buffer visor de tráfico independiente, y con el comando M-x agent-shell-view-traffic se puede revisar visualmente el tráfico basado en JSON

Fake agents (agentes falsos y replay)

  • Debido al costo y la ineficiencia de tiempo al desarrollar con agentes reales de pago, se introdujo una función de replay con agentes falsos
  • Al reproducir (replay) los datos de comunicación guardados a través del buffer de tráfico, se pueden hacer pruebas rápidas múltiples veces
  • Aunque hay algunas restricciones y límites, el proceso de depuración y desarrollo se vuelve mucho más eficiente

Planes futuros y estado actual

  • Solo se ha implementado una parte del esquema de Agent Client Protocol, por lo que todavía quedan partes incompletas
  • Están en marcha experimentos de UX innovadores, como un buffer rápido de diff basado en las teclas n/p y un permission dialog
  • Está previsto comprender por completo las funciones del protocolo e implementar más características

Publicación en GitHub y guía de uso

  • Tanto agent-shell como acp.el están publicados en GitHub
    • agent-shell: paquete para usuarios de agentes
    • acp.el: biblioteca para desarrolladores que quieran crear paquetes de integración relacionados con agentes
  • Ambos proyectos están en una etapa muy temprana (beta), por lo que se recomienda enviar reportes de errores y solicitudes de funciones
  • El uso de servicios LLM en la nube genera costos adicionales, y el desarrollo de software de código abierto también requiere costos y esfuerzo
  • Si el proyecto te resulta útil, se anima a brindar apoyo (patrocinio)

1 comentarios

 
GN⁺ 2025-10-14
Opiniones de Hacker News
  • Xenodium está haciendo cosas geniales en Emacs; si te interesa Emacs, te recomiendo mucho que revises el blog de Xenodium. Journelly fue la primera app de iOS que compré por recomendación de otros usuarios de Emacs; es un espacio portátil para guardar enlaces o notas fácilmente y exportarlos como archivos org (al parecer pronto también tendrá soporte para Markdown). No tengo ninguna relación con Xenodium. Ha sido muy disfrutable ver sus contribuciones mientras me he metido de lleno en Emacs este año.
    • Muchísimas gracias; este tipo de comentarios me alegran el día. También da gusto saber que eres fan de Journelly, y gracias por comprarla. Seguir desarrollando apps de nicho de forma sostenida es un gran reto.
  • agent-shell ofrece una experiencia nativa para usar directamente en Emacs varios agentes de IA impulsados por ACP (Agent Client Protocol). Actualmente puede integrarse con Claude Code, Gemini CLI, Codex y Goose, pero técnicamente cualquier agente compatible con ACP podría usarse. Para que el desarrollo sea sostenible hacen falta más patrocinadores; se puede apoyar en GitHub Sponsors.
    • Muy interesante. Había usado claude-code-ide, pero como no usa comint-mode resultaba bastante incómodo. Definitivamente quiero probar agent-shell. Tengo una pregunta: ¿la especificación de ACP también cubre funciones relacionadas con el “IDE” (por ejemplo, posición del cursor o integración con diff, como en Claude code ide), o realmente está enfocada solo en funciones básicas?
  • Agent shell es justo lo que siempre había querido. He probado varios paquetes de integración con Claude code, pero tenían la molestia de ejecutarse dentro de un emulador de terminal. Agent shell se siente mucho más natural e integrado. Me entusiasma especialmente la función para leer la configuración desde archivos. Ojalá hubiera capturas de pantalla para ver cómo funciona realmente agent-shell-sidebar.
  • Xenodium está haciendo un gran trabajo para la comunidad de Emacs. Ahora mismo estoy usando agent-shell, pero no me gusta el encabezado que se agrega en la parte superior del búfer. Toda la información que quiero ya está abajo. Estaría bien poder desactivar opcionalmente la línea inferior para quienes prefieren una interfaz minimalista.
  • He usado agent-shell unas cuantas veces y, a pesar de ser un paquete en sus primeras etapas, ofrece una experiencia muy fluida.
  • Es la primera vez que oigo hablar de ACP. Me pregunto en qué se diferencia de AG-UI. Claro, entiendo que ACP está más enfocado en programación y AG-UI es mucho más general, pero me interesan las demás diferencias.
    • Es la misma lógica que LSP, pero aplicada a agentes de IA. Es un dolor tener que volver a implementar wrappers una y otra vez para cada editor con Claude, Codex, Gemini, aider, etc. Por eso el equipo de Zed empezó a estandarizar el protocolo.
  • También existe un proyecto llamado ECA: GitHub de ECA. ECA es un protocolo de agentes de programación estilo LSP para varios front-ends y editores. Soporta directamente distintos modelos. En cambio, parece que agent protocol permite usar varios agentes como Gemini CLI, Claude Code y otros desde distintos front-ends dependiendo de si cada uno soporta el protocolo. Parece posible que varios agentes de programación también adopten el protocolo ECA.
    • Exacto, el proyecto ECA también tiene un paquete para Emacs. Lo he estado usando recientemente. Estuve revisando la documentación del protocolo ECA y de ACP mientras depuraba un problema de Emacs, y ambos son bastante parecidos y están bien documentados. Fue una reinvención duplicada no intencional.
    • He usado ambos y la descripción de arriba es correcta. Hay que volver a configurar los MCPs, y ECA ejecuta su propio servidor en segundo plano. Por eso agent-shell me gustó más. Cada agente tiene un formato y una ubicación de configuración distintos, además de diferencias entre configuración a nivel de proyecto y de usuario, así que la simplicidad de agent-shell es una gran ventaja. Ojalá más adelante también aparezca un estándar para la configuración.
  • Me pregunto por qué usar agent-shell en vez de simplemente usar Claude Code directamente.
    • Por la experiencia de UI nativa unificada y totalmente integrada en el editor de texto. Y no solo con Claude Code: también puedes usar del mismo modo Gemini CLI, Codex, Goose y otros agentes compatibles con ACP.
    • Ese es exactamente el estilo de Emacs: Emacs es una entidad que devora el mundo.
  • Estoy esperando que alguien haga esto para Neovim; ojalá aparezca pronto algún héroe anónimo. Y gracias también al equipo de Zed y a Google por crear la especificación.
    • Vente al lado de Emacs, también tiene soporte completo para bindings de Vim.
    • Code Companion para Neovim ya soporta ACP desde hace bastante tiempo; aquí puedes ver más información