# Agent-Shell 0.55 Updates

> Source: <https://xenodium.com/agent-shell-0-55-updates>
> Published: 2026-06-11 17:17:57+00:00

It's been a little while since my [last agent-shell update](https://xenodium.com/agent-shell-0-47-1-updates), so let's go through the latest highlights as of v0.55.

`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/)).

If you noticed slower project activity in April, [this is why](https://xenodium.com/and-then-there-were-three). I'm getting better at the [new 24-hour job](https://xenodium.com/and-then-there-were-three), so [I've resumed working on agent-shell](https://github.com/xenodium/agent-shell/commits/main/).

I'm still chipping away at the backlog that built up while I was away, but if there's anything in particular you'd like me to look at, feel free to ping.

With Anthropic's [SDK subscription support changing](https://zed.dev/blog/anthropic-subscription-changes), Google's [Gemini CLI deprecation](https://developers.googleblog.com/an-important-update-transitioning-gemini-cli-to-antigravity-cli/), and [Antigravity's unclear support for the Agent Client Protocol (ACP)](https://github.com/google-antigravity/antigravity-cli/issues/31), vendor-neutral tools matter more than ever.

Luckily, `agent-shell`

is built on [ACP](https://agentclientprotocol.com/), which sidesteps the problem. When a vendor changes course, you can swap providers and keep using your preferred tool. No need to reshape that hard-earned muscle memory.

On that note, the list of agents supported by `agent-shell`

continues to grow.

Here's a list of the latest agents now supported by `agent-shell`

.

Speaking of vendor-neutral tools being more important than ever, there are a couple of ways to help keep `agent-shell`

going. Some cost money, others just a click. All are appreciated ;)

`agent-shell`

has been attracting quite a few users. It's nice to hear folks are using `agent-shell`

on a daily basis. They are often relieved `agent-shell`

exists as an alternative to AI-tools commonly mandated at work. Those tools have well-funded engineering teams behind them, while `agent-shell`

is just me, an indie dev ;) Time spent on `agent-shell`

is time away from work that pays the bills, so if it's useful to you, please consider [sponsoring](https://github.com/sponsors/xenodium) the project.

Every individual sponsorship genuinely helps keep the project going. And if your employer benefits from your `agent-shell`

use, they're typically in a position to contribute at a scale individuals can't, so nudge them to chip in too.

Hey, I'm looking at you, folks at **Google**, **GitHub**, **GitLab**, **NVIDIA**, **Oracle**, **Red Hat**, Yelp, Venmo, **ARM**, **Spotify**, **Augment Code**, Hinge, Mercury, Nubank, Veeva… Some of you are using `agent-shell`

. Nudge your employer ;)

[Anthropic offers 6 months of free Claude Max 20x](https://claude.com/contact-sales/claude-for-oss) for qualifying open-source projects with at least 5,000+ GitHub stars. [Starring agent-shell](https://github.com/xenodium/agent-shell/) costs nothing and can save me some money. We're only a 5th of the way there ;) so if you don't mind a couple of clicks, the project can really use [another GitHub star](https://github.com/xenodium/agent-shell/).

Speaking of GitHub stars, `agent-shell`

is now my most popular Emacs package, recently overtaking [chatgpt-shell](https://github.com/xenodium/chatgpt-shell/).

agent-shell now ships with a brand new, more performant inline markdown renderer. This is the [biggest internal change](https://github.com/xenodium/agent-shell/pull/597) in some time. Enabled by default via `agent-shell-markdown-render-function`

(moving away from the overlay-based renderer in shell-maker).

Table content is now accessible. Point can land on any cell, which wasn't possible with the previous overlay implementation. In addition, tables are now also navigable: `TAB`

and `S-TAB`

move between cells.

Source-block syntax highlighting is now on by default. The per-snippet copy button is now keyboard-accessible too (previously mouse-click only, due to the overlay implementation).

Blockquotes now render in both shell and viewport. More importantly, you can select text in either a viewport page (or the shell itself), press `r`

(for reply) and the selection becomes a blockquote in a fresh prompt.

Viewport

Shell

Session restoration got a meaningful overhaul ([#605](https://github.com/xenodium/agent-shell/pull/605) by [@nhojb](https://github.com/nhojb)), now exposed via `agent-shell-session-restore-verbosity`

, with four levels:

`minimal`

(default): title only, so restore is fast and quiet (needs `session/resume`

support).`last`

: render the last prompt turn (needs `session/load`

support).`first-last`

: render the first and last prompt turns (needs `session/load`

support).`full`

: replay the whole conversation (needs `session/load`

support).Feature availability is agent-specific, requiring either `session/resume`

or `session/load`

request support. `agent-shell`

degrades as needed, ultimately falling back to creating a new session.

Note that anything but `minimal`

verbosity is fairly new, so please [report bugs or rough edges](https://github.com/xenodium/agent-shell/issues).

Relatedly, `agent-shell-session-strategy`

now defaults to `'prompt`

, and `'new-deferred`

has been retired.

You can now fork the current session, starting a new shell that shares the conversation history so far and diverges from there. Invoke via `M-x agent-shell-fork`

.

You can now restart the current shell anew (drop history) via `M-x agent-shell-restart`

or reload (keep history) via `agent-shell-reload`

.

The new `agent-shell-new-downloads-shell`

and `agent-shell-new-temp-shell`

commands create agents anchored at either `~/Downloads`

or a temp directory. Both are also reachable via `C-u M-x agent-shell`

.

[acp.el #20](https://github.com/xenodium/acp.el/pull/20) by [@martenlienen](https://github.com/martenlienen) landed support for ACP connections over TRAMP, now making it possible to drive remote agents from `agent-shell`

. Pair it with [agent-shell-tramp](https://github.com/junyi-hou/agent-shell-tramp) for the user-facing integration.

Viewport interaction `(setq agent-shell-prefer-viewport-interaction t)`

continues to be my primary way to interact with agents. It is focused (see only the latest interaction), fast (single-key bindings: `y`

= yes, `c`

= continue, `m`

= more…), and offers a richer editing experience (dedicated prompt-crafting buffer).

The viewport is just a viewport to shell content. You can have your cake and eat it too, by jumping to the related shell buffer if needed.

From a viewport, you can press `r`

to reply to the latest agent response. In the past, you could only reply to idle agents. You can now press `r`

to reply to busy agents too, automatically queuing requests on submission.

A new (basic) `agent-shell-list-edit-mode`

lets you edit list-style content inside the viewport.

Some commands prompt you to pick one of your active shell buffers (e.g. `M-x agent-shell-send-region-to`

). The picker now shows extra context for each buffer to help you choose.

The same mechanism is now used by the new `M-x agent-shell-switch-buffer`

command. More on the underlying API later.

Folding got smarter ([#608](https://github.com/xenodium/agent-shell/pull/608) by [@codeluggage](https://github.com/codeluggage)):

`M-x agent-shell-ui-toggle-fragment`

toggles the fragment at or near point (DWIM).`M-x agent-shell-ui-toggle-all-fragments`

cycles globally between all-expanded and all-collapsed.Together they replace the previous `agent-shell-ui-toggle-fragment-at-point`

, which is now an internal primitive.

`c`

joins the viewport reply gangYou can now press `c`

from a viewport to quickly send a "continue" request, joining the rest of the single-key reply shortcuts:

`c`

: replies "continue" (new)`y`

: replies "yes"`m`

: replies "more"`a`

: replies "again"`1`

… `9`

: replies with the corresponding numbered choice`r`

: opens the reply compose buffer`R`

: same as `r`

, with the agent response quotedTool call status is now rendered as a compact icon-based label by default (`agent-shell--inverse-icon-status-kind-label`

). `agent-shell-styles.el`

ships several alternatives, picked via `agent-shell-status-kind-label-function`

.

To get the previous word-based label back:

```
(setq agent-shell-status-kind-label-function
      #'agent-shell--inverse-label-status-kind-label)
```

You can now set a default model and session mode for Codex via `agent-shell-openai-default-model-id`

and `agent-shell-openai-default-session-mode-id`

([#405](https://github.com/xenodium/agent-shell/pull/405) by [@robjgray](https://github.com/robjgray)). Both must match an ID from Codex's "Available models" / "Available modes" listings.

Headers had a few rendering hiccups on Emacs 31. These are now fixed ([#588](https://github.com/xenodium/agent-shell/pull/588) and [#590](https://github.com/xenodium/agent-shell/pull/590) by [@nhojb](https://github.com/nhojb), [#463](https://github.com/xenodium/agent-shell/pull/463) by [@ftlio](https://github.com/ftlio)). Warnings from deprecated `when-let`

usage were also cleared.

`wl-paste`

is now a supported clipboard handler for pasting images on Wayland ([#461](https://github.com/xenodium/agent-shell/pull/461) by [@martenlienen](https://github.com/martenlienen)).

Similarly, pasting clipboard images now works on Windows via PowerShell ([#572](https://github.com/xenodium/agent-shell/pull/572) by [@repelliuss](https://github.com/repelliuss)).

The graphical header got minor tweaks here and there. For example, thought level is now displayed in the header. It can be changed via `M-x agent-shell-viewport-set-session-thought-level`

as well as menus ([#601](https://github.com/xenodium/agent-shell/pull/601) by [@martenlienen](https://github.com/martenlienen)).

agent-shell now supports ACP session config options ([#553](https://github.com/xenodium/agent-shell/pull/553) by [@greggroth](https://github.com/greggroth) and [#613](https://github.com/xenodium/agent-shell/pull/613) by [@catern](https://github.com/catern)). Bind `C-c C-s`

(or call `agent-shell-set-session-config-option`

) to pick from the options the agent advertises. Broadcasted as `config-option-update`

and available externally via `agent-shell-subscribe-to`

.

You can now skip interrupt confirmations by unsetting `agent-shell-confirm-interrupt`

([#424](https://github.com/xenodium/agent-shell/pull/424) by [@emil-e](https://github.com/emil-e)).

You can now resume an existing session by its ID via `M-x agent-shell-resume-session`

([#332](https://github.com/xenodium/agent-shell/pull/332)). Primarily useful for external integrations.

You can now use `agent-shell-outgoing-request-decorator`

to tag or transform outgoing requests.

`agent-shell-subscribe-to`

now broadcasts `idle`

events ([#509](https://github.com/xenodium/agent-shell/pull/509) by [@arthurgleckler](https://github.com/arthurgleckler)).

`agent-shell-shell-buffer`

returns the underlying shell buffer for the current context.

`agent-shell-goto-last-interaction`

jumps to the latest prompt/response pair, while `agent-shell-interaction-at-point`

returns the interaction at point as data.

`agent-shell-status`

returns `'busy`

, `'blocked`

, or `'ready`

status for any shell buffer.

The agent-supplied session title is now exposed via the `session-title-changed`

event (delivered via `agent-shell-subscribe-to`

) ([#559](https://github.com/xenodium/agent-shell/pull/559) by [@smagnuso](https://github.com/smagnuso)). Can be handy for buffer names, bookmarks, or recent listings.

The `agent-shell`

family of third-party packages keeps growing. Recent additions:

`agent-shell`

via `agent-shell`

events.`agent-shell`

status overlay via a floating dashboard.`agent-shell`

.Thank you to all contributors for these improvements!

`agent-circus`

to README.org (`agent-shell-idle-alert-functions`

(`R`

(`agent-shell-list`

(`/`

completion regression in viewport buffers (`agent-shell-restore-context`

defcustom (`agent-shell-hermes-acp-command`

(`.agent-shell/`

to `.git/info/exclude`

instead of `.gitignore`

(`agent-shell-hermes--ascii-art`

(`.agent-shell/`

directory at risk when switching git branches`agent-shell-viewport-reply-1`

errors with "Text is read-only"`agent-shell-mode-hook`

timing makes subscribing to events difficult`xclip`

clipboard handler silently saves text as PNG in terminal mode`session/prompt`

response`image-type`

: Invalid image type `'svg`

on calling agent-shell`font-get :size`

returns 0`agent-shell-diff-accept-all`

/ `-reject-all`

now focus the originating shell`wl-paste-image-handler`

breaks pasting text`insert`

editing mode while pressing up/down arrows`agent-shell-get-config`

does not work in an `agent-shell-command-prefix`

function`request_permission`

arrives before `tool_call_update`

populates `rawInput`

Beyond what's showcased, I've poured much love and effort into polishing the `agent-shell`

experience. Interested in the nitty-gritty? Have a look through [my regular commits](https://github.com/xenodium/agent-shell/commits/main/).

If [agent-shell](https://github.com/xenodium/agent-shell) is useful to you, please consider [sponsoring](https://github.com/sponsors/xenodium) the project. I'm now back to working on `agent-shell`

daily.

LLM tokens aren't free, and neither is the time dedicated to building this stuff (especially as an indie dev). I also have bills to pay ;)

Unless I can make this work sustainable, I will have to shift my focus to work on something else that is.

powered by [LMNO.lol](https://LMNO.lol)
