While it's only been a few weeks since the last agent-shell post, there are plenty of new updates to share.What's agent-shell again? A native Emacs shell to interact with any LLM agent powered by ACP (Agent Client Protocol).Thank you sponsorsBefore getting to the latest and greatest, I'd like to say thank you to new and existing sponsors backing my projects.While the work going in remains largely unsustainable, your contributions are indeed helping me get closer to sustainability. Thank you!If you benefit from my content and projects, please consider sponsoring to make the work sustainable.More productive at work?Work paying for your LLM tokens and other tools? Why not get your employer to sponsor agent-shell also?MELPANow on to the very first update… Both agent-shell and acp.el are now available on MELPA. As such, agent-shell installation now boils down to:(use-package agent-shell :ensure t)New providersOpenCode and Qwen Code are two of the latest agents to join agent-shell. Both accessible via M-x agent-shell and M-x agent-shell-new-shell through the agent picker, but also directly from M-x agent-shell-opencode-start-agent and M-x agent-shell-qwen-start.Send files - Thanks to Ian DavidsonAdding files as context has seen quite a few improvements in different shapes. Thank you Ian Davidson for contributing embedded context support.Send screenshotsInvoke M-x agent-shell-send-screenshot to take a screenshot and automatically send it over to agent-shell.Activity IndicatorA little side-note, did you notice the activity indicator in the header bar? Yep. That's new too.@ completion (experimental)While @ file completion remains experimental, you can enable via:(setq agent-shell-file-completion-enabled t)Send files or regionsFrom any file you can now invoke M-x agent-shell-send-file to send the current file to agent-shell. If region is selected, region information is sent also. Fancy sending a different file other than current one? Invoke M-x agent-shell-send-file with C-u prefix, or just use M-x agent-shell-send-other-file.Send dired filesM-x agent-shell-send-file, also operates on dired files (selection or region), DWIM style ;-)Shorter paths in titlesYou may have noticed paths in section titles are no longer displayed as absolute paths. We're shortening those relative to project roots.Shell creation / handlingWhile you can invoke M-x agent-shell with C-u prefix to create new shells, M-x agent-shell-new-shell is now available (and more discoverable than C-u).Cancelling sessionsCancelling prompt sessions (via C-c C-c) is much more reliable now. If you experienced a shell getting stuck after cancelling a session, that's because we were missing part of the protocol implementation. This is now implemented.Shell commandsUse the new M-x agent-shell-insert-shell-command-output to automatically insert shell (ie. bash) command output.Markdown transcripts (experimental) - Thanks to Elle NajtInitial work for automatically saving markdown transcripts is now in place. We're still iterating on it, but if keen to try things out, you can enable as follows:(setq agent-shell--transcript-file-path-function #'agent-shell--default-transcript-file-path)ConfigurationTurn off ASCII welcome banners(setq agent-shell-show-welcome-message nil)Turn off graphical headerText header(setq agent-shell-header-style 'text)No header(setq agent-shell-header-style nil)Inline display of historical changes - Thanks to Elle NajtApplied changes are now displayed inline.Session mode - Thanks to Elle NajtThe new M-x agent-shell-cycle-session-mode and M-x agent-shell-set-session-mode can now be used to change the session mode.Agent capabilitiesYou can now find out what capabilities and session modes are supported by your agent. Expand either of the two sections.Accepting/rejecting changes from diff bufferTired of pressing q and y to accept changes from the diff buffer? Now just press y from the diff viewer to accept all hunks.Same goes for rejecting. No more q and n. Now just press C-c C-c from the diff buffer.Transient menuWe get a new basic transient menu. Currently available via M-x agent-shell-help-menu.ContributionsWe got lots of awesome pull requests from wonderful folks. Thank you for your contributions!Arthur Heymans: Add a Package-Requires header (PR).Elle Najt: Execute commands in devcontainer (PR).Elle Najt: Fix Write tool diff preview for new files (PR).Elle Najt: Inline display of historical changes (PR).Elle Najt: Live Markdown transcripts (PR).Elle Najt: Prompt session mode cycling and modeline display (PR).Fritz Grabo: Devcontainer fallback workspace (PR).Guilherme Pires: Codex subscription auth (PR).Hordur Freyr Yngvason: Make qwen authentication optional (PR).Ian Davidson: Embedded context support (PR).Julian Hirn: Fix quick-diff window restoration for full-screen (PR).Ruslan Kamashev: Hide header line altogether (PR).festive-onion: Show Planning mode more reliably (PR).Lots of other work ❤️😅Beyond what's been showcased here, much love and effort's been poured into polishing the agent-shell experience. Interested in the nitty-gritty? Have a look through the 173 commits since the last blog post.Support this workIf agent-shell or acp.el are useful to you, please consider sponsoring its development. LLM tokens aren't free, and neither is the time dedicated to building this stuff ;-)