{"slug": "agent-shell-0-78-updates", "title": "agent-shell 0.78 updates", "summary": "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.", "body_md": "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).\n\nAs 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.\n\n`agent-shell`?\n[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/)).\n\nTwo agents join the family, available as usual via `M-x agent-shell`, or explicitly as follows:\n\n`M-x agent-shell-start-antigravity-agent`.` M-x agent-shell-start-qoder-agent`.\nLikely the most impactful feature in the release. It's highly discoverable and plenty useful, so I'm expecting a fair amount of uptake.\n\nA 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.\n\nDeriving from `comint-mode`, `agent-shell` was no different. That is, until now.\n\nAs 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.\n\nWhile 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.\n\nThe 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:\n\n```\n(setopt agent-shell-persistent-prompt-enabled nil)\n```\n\nThe viewport's compose buffer is there either way, and submitting from it mid-turn routes through exactly the same logic.\n\nAs 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.\n\nSteering 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.\n\nHuge thanks to [@OSadovy](https://github.com/OSadovy), who took on the legwork for steering in [#777](https://github.com/xenodium/agent-shell/pull/777).\n\nWith `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:\n\n```\n(setopt agent-shell-busy-submit-default-function\n        #'agent-shell-busy-submit-steer)\n(setopt agent-shell-busy-submit-override-function\n        #'agent-shell-busy-submit-queue)\n```\n\nBoth 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.\n\nWhile 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.\n\nThank 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)).\n\nAfter 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.\n\nThanks to [@dustinfarris](https://github.com/dustinfarris) for the tip!\n\nIf 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.\n\nCurrently off by default, so opt in with:\n\n```\n(setopt agent-shell-show-cost-indicator t)\n```\n\nKeep 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).\n\n`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`.\n\nSearching 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.\n\nSlash 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).\n\nFile completion after `@` is unchanged.\n\nWe 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.\n\nLinks got a handful of fixes/improvements worth mentioning:\n\n`code` spans are now linked (`dired`.\n`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).\n\nFollowing 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).\n\n`agent-shell-session-list-page-limit` takes a positive integer.`agent-shell-session-id`\n`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.\n\n`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:\n\n```\n(setopt agent-shell-opencode-default-config-options\n        '((\"model\" . \"anthropic/claude-opus-4-5\")\n          (\"effort\" . \"high\")\n          (\"mode\" . \"plan\")))\n```\n\nOptions 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).\n\nFour more joining the lot:\n\nWith the new renderer offering a richer Markdown experience for some time now, the deprecated `markdown-overlays` renderer is gone.\n\nIf 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).\n\nZooming out a little, here's how the backlog has tracked since March:\n\nSide note: this chart was generated using the `/github-activity` skill shared in my [emacs-skills](https://github.com/xenodium/emacs-skills) repo.\n\nFrom 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.\n\nAll of this requires daily attention 👉 [hint hint](https://github.com/sponsors/xenodium) 👈\n\nThese 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 ;)\n\n`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.\n\nGitHub 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/).\n\nThank you to all contributors for these improvements!\n\n`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 (\nLiking `agent-shell`? Would like to see it evolve? Consider [sponsoring](https://github.com/sponsors/xenodium) the effort.", "url": "https://wpnews.pro/news/agent-shell-0-78-updates", "canonical_source": "https://xenodium.com/agent-shell-0-78-updates", "published_at": "2026-09-22 00:00:00+00:00", "updated_at": "2026-09-22 12:27:38.838167+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["agent-shell", "Emacs", "Agent Client Protocol", "Antigravity", "Qoder", "Claude", "Codex", "@OSadovy"], "alternates": {"html": "https://wpnews.pro/news/agent-shell-0-78-updates", "markdown": "https://wpnews.pro/news/agent-shell-0-78-updates.md", "text": "https://wpnews.pro/news/agent-shell-0-78-updates.txt", "jsonld": "https://wpnews.pro/news/agent-shell-0-78-updates.jsonld"}}