1 pontos por GN⁺ 2025-10-14 | 1 comentários | Compartilhar no WhatsApp
  • agent-shell é um shell nativo baseado em comint-mode que permite controlar agentes de IA diretamente no Emacs
  • Usa o ACP (Agent Client Protocol), o que traz flexibilidade para se comunicar com vários agentes sem depender de um agente específico
  • Recursos de análise de tráfego em tempo real e replay de agentes falsos (fake) aumentam a eficiência de testes e desenvolvimento
  • Ainda não implementa todas as funcionalidades do protocolo, mas já mostra uma implementação que pode ser usada na prática com rapidez
  • Tanto o agent-shell quanto o acp.el estão disponíveis publicamente no GitHub, e feedback dos usuários sobre recursos adicionais ou bugs é bem-vindo

Introdução

  • Recentemente, passou a ser possível integrar com o Agent Client Protocol (ACP), desenvolvido em conjunto pela Zed e pelo Google, por meio do acp.el implementado em Emacs Lisp
  • Antes, havia apenas integração básica com LLMs, como no chatgpt-shell, e o uso mais completo de agentes de IA ainda avançava lentamente
  • Com a adoção do ACP, a demanda por integração com agentes dentro do ambiente Emacs cresceu, levando ao início do desenvolvimento do agent-shell nativo para Emacs

Visão geral do agent-shell

  • O agent-shell é baseado em comint-mode e funciona dentro do já familiar sistema de buffers do Emacs
  • Ele oferece um ambiente que pode ser usado como um shell normal do Emacs, sem necessidade de alternar entre modos de caractere e de linha

Agent-agnostic (independente de agente)

  • Graças ao ACP, é possível implementar uma experiência de usuário consistente para se comunicar com vários agentes usando um único protocolo
  • Pelos exemplos de configuração, é possível aplicar vários agentes, como Gemini CLI e Claude Code, com apenas pequenas mudanças no código
    • Exemplo de código: explicação de como configurar autenticação, comandos e variáveis de ambiente para cada agente
  • Outros agentes também podem ser integrados facilmente da mesma forma

Recurso de visualização de tráfego

  • Como ainda não havia familiaridade com o uso do protocolo ACP, surgiu a necessidade de analisar o tráfego de comunicação em tempo real
  • O agent-shell oferece um buffer visualizador de tráfego separado, permitindo verificar visualmente o tráfego baseado em JSON com o comando M-x agent-shell-view-traffic

Fake agents (agentes falsos e replay)

  • Como desenvolver com agentes pagos reais traz problemas de custo e ineficiência de tempo, foi introduzido o recurso de replay de agentes falsos
  • Ao reproduzir (replay) os dados de comunicação salvos pelo buffer de tráfego, torna-se possível realizar testes rápidos várias vezes
  • Embora existam algumas restrições e limitações, o processo de depuração e desenvolvimento se torna muito mais eficiente

Planos futuros e estado atual

  • Apenas parte do Schema do Agent Client Protocol foi implementada, então ainda restam partes incompletas
  • Estão em andamento experimentos de UX inovadores, como buffers rápidos de diff com teclas n/p e permission dialog
  • Está prevista a compreensão completa das funcionalidades do protocolo e a implementação dos recursos adicionais

Publicação no GitHub e orientações de uso

  • Tanto o agent-shell quanto o acp.el estão disponíveis publicamente no GitHub
    • agent-shell: pacote para usuários de agentes
    • acp.el: biblioteca para desenvolvedores que querem criar pacotes de integração relacionados a agentes
  • Ambos os projetos ainda estão em estágio muito inicial (beta), e recomenda-se enviar bugs e pedidos de funcionalidades
  • O uso de serviços de LLM em nuvem gera custos adicionais, e o próprio desenvolvimento open source também exige custo e esforço
  • Se o projeto for útil, a participação com apoio (patrocínio) é incentivada

1 comentários

 
GN⁺ 2025-10-14
Comentários do Hacker News
  • Xenodium está fazendo coisas incríveis no emacs; se você se interessa por emacs, recomendo muito dar uma olhada no blog do Xenodium. O primeiro app para iOS que comprei por recomendação de outros usuários de emacs foi o Journelly, um espaço portátil para salvar links ou notas com facilidade e exportar para arquivos org (e parece que no futuro também terá suporte a markdown). Não tenho nenhuma relação com o Xenodium, mas tem sido muito divertido ver as contribuições dele enquanto mergulho no emacs este ano.
    • Muito obrigado, esse tipo de feedback faz meu dia ficar mais feliz. Também fico contente em saber que você é fã do Journelly; obrigado pela compra. Continuar desenvolvendo apps de nicho é um grande desafio.
  • O agent-shell oferece uma experiência nativa que permite usar diretamente no emacs vários agentes de IA movidos por ACP (Agent Client Protocol). No momento ele pode se integrar com Claude Code, Gemini CLI, Codex e Goose, mas tecnicamente qualquer agente com suporte a ACP pode ser usado. Para um desenvolvimento sustentável, mais patrocinadores seriam bem-vindos; é possível apoiar em github sponsors.
    • Muito interessante. Eu tinha usado o claude-code-ide, mas como ele não usa comint-mode, isso era bem incômodo. Quero muito experimentar o agent-shell. Tenho uma pergunta: a especificação do ACP também cobre recursos relacionados a “IDE” (por exemplo, posição do cursor, integração com diff como no Claude code ide), ou ela foca só em funcionalidades bem básicas?
  • O Agent shell era exatamente o que eu sempre quis. Já usei vários pacotes de integração com Claude code, mas sempre havia o incômodo de precisar rodar tudo em um emulador de terminal. O agent shell parece muito mais natural e integrado. Estou especialmente animado com o recurso de ler a configuração a partir de arquivos. Gostaria que houvesse screenshots para mostrar como o agent-shell-sidebar funciona na prática.
  • O Xenodium está fazendo um trabalho incrível para a comunidade emacs. Estou usando o agent-shell agora, mas não gosto do header adicionado no topo do buffer. Todas as informações que eu quero já estão na parte de baixo. Seria ótimo para os minimalistas se fosse possível desativar opcionalmente a linha inferior.
    • Se você não gosta do header, seria ótimo abrir um feature request. Seria bom tornar opcional ligar e desligar o header gráfico.
  • Usei o agent-shell algumas vezes e, apesar de ser um pacote ainda no começo do lançamento, ele oferece uma experiência muito fluida.
  • Foi a primeira vez que ouvi falar de ACP. Fiquei curioso sobre como ele difere do AG-UI. Claro, eu entendo que o ACP é focado em código e o AG-UI é muito mais genérico, mas queria saber que outras diferenças existem além disso.
    • É a mesma lógica do LSP, mas aplicada a agentes de IA. Implementar wrappers de novo e de novo para cada editor com claude, codex, gemini, aider etc. é um sofrimento, então o time do Zed começou a padronizar o protocolo.
  • Também existe um projeto chamado ECA, GitHub do ECA. O ECA é um protocolo de agentes de código no estilo LSP para vários front-ends e editores. Ele oferece suporte direto a diversos modelos. Já o agent protocol parece permitir usar vários agentes, como Gemini CLI e Claude Code, em diferentes front-ends, dependendo de cada um dar suporte ao protocolo. Parece possível que vários agentes de código também adotem o protocolo do ECA.
    • Exato, o projeto ECA também tem um pacote para emacs. Tenho usado recentemente. Enquanto depurava problemas no emacs, dei uma olhada rápida na documentação do protocolo ECA e do ACP; os dois são bem parecidos e ambos estão bem documentados. Foi uma reinvenção redundante não intencional.
    • Já usei os dois, e a explicação acima está certa. É preciso configurar os MCPs de novo, e o ECA roda com seu próprio servidor em segundo plano. Por causa disso, acabei gostando mais do agent-shell. Cada agente tem um formato e um local diferentes para configuração, além da diferença entre configuração por projeto e por usuário, então a simplicidade do agent-shell é uma grande vantagem. Seria realmente ótimo se no futuro surgisse também um padrão de configuração.
  • Fico curioso por que alguém usaria o agent-shell em vez de simplesmente usar o Claude Code diretamente.
    • Por causa da experiência de UI nativa unificada, totalmente integrada ao editor de texto. E não só para Claude Code: também dá para usar da mesma forma vários agentes com suporte a ACP, como Gemini CLI, Codex e Goose.
    • Esse é exatamente o estilo do emacs; o emacs é a entidade que devora o mundo.
  • Estou esperando alguém fazer isso para Neovim; tomara que um herói sem nome apareça logo. E obrigado ao time do Zed e ao Google por terem criado a spec.
    • Venha para o lado do emacs, ele também suporta todos os bindings do vim.
    • O Code Companion para neovim já oferece suporte a ACP há bastante tempo; mais informações aqui