agent-shell 0.78 updates Agent-shell released version 0.78, adding a persistent writable prompt, mid-turn prompt queueing and steering, and two new agents, Antigravity and Qoder, to the Emacs mode for interacting with AI agents over the Agent Client Protocol (ACP). The persistent prompt is enabled by default via agent-shell-persistent-prompt-enabled, with RET queueing and M-RET steering configurable through agent-shell-busy-submit-default-function and agent-shell-busy-submit-override-function. Steering requires the _session/steering ACP extension, which the author says Claude and Codex currently support, and the release also adds drag-and-drop of files from external file managers onto shell or viewport buffers. Another month, another agent-shell https://github.com/xenodium/agent-shell update. If you missed the last post, have a look at the 0.73 update https://xenodium.com/agent-shell-0-73-updates . As usual, this post showcases highlights, but please check out the full list of changes https://github.com/xenodium/agent-shell/compare/v0.73.2...v0.78.2 if you're after the nitty-gritty. agent-shell ? agent-shell https://github.com/xenodium/agent-shell is a native Emacs https://www.gnu.org/software/emacs/ mode to interact with AI agents powered by ACP Agent Client Protocol https://agentclientprotocol.com/ . Two agents join the family, available as usual via M-x agent-shell , or explicitly as follows: M-x agent-shell-start-antigravity-agent . M-x agent-shell-start-qoder-agent . Likely the most impactful feature in the release. It's highly discoverable and plenty useful, so I'm expecting a fair amount of uptake. A typical shell experience offers a prompt. Users type and submit their commands and wait for the command to finish before the shell prompt is offered again. Deriving from comint-mode , agent-shell was no different. That is, until now. As of v0.78, agent-shell offers a writeable prompt at the end of the buffer at all times. Submit, and the prompt comes right back while the agent is busy handling the turn. Type and submit again and agent-shell will automatically queue your request if necessary. While queueing itself isn't a new feature, the shell prompt queueing route offers a freebie in terms of cognitive load. Submit prompts as you used to via RET binding , and let agent-shell decide whether to handle now or queue for later. The persistent prompt is enabled by default via agent-shell-persistent-prompt-enabled . If this isn't your cup of tea, it can be easily disabled with: setopt agent-shell-persistent-prompt-enabled nil The viewport's compose buffer is there either way, and submitting from it mid-turn routes through exactly the same logic. As of this release, agent-shell can also steer turns provided the agent supports the session/steering ACP extension . Steering enables you to course correct in-flight prompts without cancelling or waiting for the prompt processing to finish. As of today, I'm aware of Claude and Codex handling ACP steering, but please reach out if you know of others. Steering an in-flight turn via M-x agent-shell-prompt-steer offers a similar experience to the existing M-x agent-shell-prompt-queue . That is, prompting the user for text in the minibuffer. Having said that, we now have a new and shiny persistent prompt, and as we now know, the RET binding automatically queues if needed. From the same prompt you can now also steer by submitting via the M-RET binding. Huge thanks to @OSadovy https://github.com/OSadovy , who took on the legwork for steering in 777 https://github.com/xenodium/agent-shell/pull/777 . With RET and M-RET respectively queueing and steering as needed, the default behaviour is configurable via agent-shell-busy-submit-default-function queues by default while the M-RET or C-u RET route uses agent-shell-busy-submit-override-function steers by default . Both customizations accept a function, so swapping would offer RET steering and M-RET queueing with something like: setopt agent-shell-busy-submit-default-function 'agent-shell-busy-submit-steer setopt agent-shell-busy-submit-override-function 'agent-shell-busy-submit-queue Both apply wherever a prompt is submitted mid-turn, the shell prompt and the viewport's compose buffer alike. As emacsers, we want all sorts of customizations, so custom functions can be used too, if you'd like something a little different from what's offered. While we could already C-y paste screenshots from the clipboard, we can now drag and drop files from external file managers onto either shell or viewport buffers. Images get a preview, anything else is attached as an @path link. Thank you @dustinfarris https://github.com/dustinfarris for 825 https://github.com/xenodium/agent-shell/pull/825 . While on topic, @dustinfarris https://github.com/dustinfarris fixed file mentions carrying whitespace in paths 824 https://github.com/xenodium/agent-shell/pull/824 . After all this time, I had no idea the temporary thumbnail generated by macOS's screenshot utility is draggable, and so you can now drop it straight into your agent-shell session. Thanks to @dustinfarris https://github.com/dustinfarris for the tip If you'd like to keep an eye on token cost, headers can now show the session's cumulative cost, right after the context usage indicator. Currently off by default, so opt in with: setopt agent-shell-show-cost-indicator t Keep in mind cost is displayed for agents reporting cost via ACP. Thank you @mrcnski https://github.com/mrcnski for 834 https://github.com/xenodium/agent-shell/pull/834 . agent-shell folds lots away by default tool calls, thinking, groups , requiring additional help if we want closer isearch integration. Thanks to @mrcnski https://github.com/mrcnski 's contribution in 832 https://github.com/xenodium/agent-shell/pull/832 , folded fragments now respect search-invisible . Searching also folds back what it expanded once you're done, groups included. Also thanks to @Gleek https://github.com/Gleek for 827 https://github.com/xenodium/agent-shell/pull/827 : expanding a fragment no longer clobbers isearch 's match data. Slash command completion is now offered more idiomatically across all three surfaces shell prompt, viewport compose buffer, minibuffer : it only kicks in when whitespace alone precedes the / . Thank you @izeigerman https://github.com/izeigerman for 810 https://github.com/xenodium/agent-shell/pull/810 . File completion after @ is unchanged. We now have M-x agent-shell-copy-last-output , which grabs the most recent output regardless of point location, so you can pull the latest response from anywhere in buffer. Links got a handful of fixes/improvements worth mentioning: code spans are now linked dired . C-u N on next/previous page now moves N interactions instead of one, and a negative prefix pages the other way. Moving forward past the newest interaction restores a parked compose snapshot, so C-u N does what pressing the key N times does, rather than stopping short of your draft. Thank you @liaowang11 https://github.com/liaowang11 for 813 https://github.com/xenodium/agent-shell/pull/813 . Following on from last month's table work, plain data rows now get a face of their own, and every table face inherits from one base face. If you'd like to restyle tables wholesale, you now have a single place to do it. Thank you @mrcnski https://github.com/mrcnski for 822 https://github.com/xenodium/agent-shell/pull/822 . agent-shell-session-list-page-limit takes a positive integer. agent-shell-session-id agent-shell-session-id returns the current ACP session ID. On that note, there's also M-x agent-shell-copy-session-id for when you just want it in your kill ring. agent-shell-opencode-default-model-variant was a bit narrow, so it's been replaced by agent-shell-opencode-default-config-options , an alist of whatever OpenCode advertises under "Available config options" when starting a new shell: setopt agent-shell-opencode-default-config-options ' "model" . "anthropic/claude-opus-4-5" "effort" . "high" "mode" . "plan" Options are applied in the order listed, and order matters. Thank you @nhojb https://github.com/nhojb for 739 https://github.com/xenodium/agent-shell/pull/739 . Four more joining the lot: With the new renderer offering a richer Markdown experience for some time now, the deprecated markdown-overlays renderer is gone. If you peeked at the commit logs https://github.com/xenodium/agent-shell/compare/v0.73.2...v0.78.2 for the period, you'll see it's been another busy month. Since the last post, 153 commits shipped, 32 issues have been closed and 25 pull requests merged. As of this writing, the backlog sits at 16 open issues and 6 open PRs versus 11 and 5 last time around . Zooming out a little, here's how the backlog has tracked since March: Side note: this chart was generated using the /github-activity skill shared in my emacs-skills https://github.com/xenodium/emacs-skills repo. From the graph, it's evident when I became a father https://xenodium.com/and-then-there-were-three , but you can also see I managed to bring things back down, hovering at a fairly stable level since. All of this requires daily attention 👉 hint hint https://github.com/sponsors/xenodium 👈 These days especially at the workplace , vendor-neutral tooling matters more than ever, and there are a couple of ways to help keep agent-shell going. Some cost money, others just a click. All are appreciated ; agent-shell is built and maintained by me, an indie dev, while the tools it often competes with at the workplace have well-funded teams behind them. Time spent on agent-shell is time away from other work that pays the bills, so if it's useful to you, please consider sponsoring https://github.com/sponsors/xenodium the project. And if your employer benefits from your agent-shell use, nudge them to chip in too, they can typically contribute at a scale individuals can't. GitHub stars help with exposure, attracting new users and potential sponsors. Starring agent-shell https://github.com/xenodium/agent-shell/ costs nothing and can potentially help bring in more funding, so if you don't mind a couple of clicks, the project can really use another GitHub star https://github.com/xenodium/agent-shell/ . Thank you to all contributors for these improvements comint-highlight-prompt agent-shell-antigravity agent-shell-queue link Package-Requires floors agent-shell-org-config to Related projects search-invisible agent-shell-queue-transient link to README Liking agent-shell ? Would like to see it evolve? Consider sponsoring https://github.com/sponsors/xenodium the effort.