It hasn't been long since the 0.55 update, but plenty has landed since. Let's go through the highlights as of v0.63.
agent-shell
?agent-shell is a native Emacs mode to interact with AI agents powered by ACP (Agent Client Protocol).
The roster keeps growing. This cycle adds two new agents:
Additionally:
agent acp
). Note a recent CLI is required, as the acp
subcommand was only added in 2026.The new markdown renderer introduced in 0.55 is now extensible. Third-party packages can claim and render specific markdown constructs (source blocks, inline code ranges, and more) through a set of now-public helpers.
Thanks to Andrea Alberti for driving the first integration in agent-shell-math-renderer, which renders LaTeX math equations as SVGs.
If you've wanted more theming control over agent-shell
buffers, this is now possible via agent-shell-faces.el
. Additionally, check out agent-shell-markdown.el
for Markdown theming.
If your agent session requires lots of tool use (fairly typical), you may notice that shell output is fairly verbose or chatty. This can be quite distracting, so from now on, tool usage as well as thinking are grouped together under an "Activity" section (collapsed by default). If you're a fan of the chatty output, not to worry. Use agent-shell-activity-group-expand-by-default
to expand the lot by default.
The new "Activity" section has customisable headers (via agent-shell-activity-group-header-label-function
). You now have three ways of rendering the activity header:
Collapsed
Expanded
(setq agent-shell-activity-group-header-label-function
#'agent-shell-activity-group-descriptive-label)
Collapsed
Expanded
(setq agent-shell-activity-group-header-label-function
#'agent-shell-activity-group-count-label)
Collapsed
Expanded
(setq agent-shell-activity-group-header-label-function
#'agent-shell-activity-group-tally-label)
agent-shell
can now render agent-supplied image content inline, whether base64-encoded, a remote URL, or a resource_link=/=resource
content block (#676 by @melito). Audio and other binary resources now render as links you can open externally.
You can now attach MCP servers to a specific agent through its config's :mcp-servers
entry, rather than sharing one global list across every agent, as requested in #593.
Section titles now summarize lines added and removed.
In addition, pressing RET
in a diff buffer jumps to the file location where the change would apply, while multi-diff permission requests are now supported.
Some agents emit notifications outside of the usual prompt session request/response turn. Historically, these have been dropped by agent-shell
. These out-of-turn notifications should now render as expected. Please file a bug if you continue to run into issues.
A few new commands for grabbing hidden content out of the shell buffer:
M-x agent-shell-copy-as-markdown
copies buffer text as markdown.M-x agent-shell-copy-source-block-at-point
copies the source block at point.M-x agent-shell-copy-link-url-at-point
copies the URL of the link at point.The viewport picked up a few refinements:
agent-shell-viewport-dismiss-on-send
dismisses the viewport once you send.C-u C-c C-c
now enables you to continue queuing additional requests.The new agent-shell-session-choices-function
lets you customize what options are presented when starting a new shell. This is useful if you'd like to hide some of these options:
A new notification-adapter mechanism enables agent-specific logic to preprocess notifications before handing back to agent-agnostic handling, starting with a Cursor notification adapter (#702 by @aburtsev).
M-x agent-shell-narrow-to-block
narrows the buffer to the most recent N blocks (defaulting to 1), handy for focusing on the latest exchange (#672 by @arthurgleckler).
To keep a long agent turn from being cut short by idle sleep, agent-shell
now keeps the system awake while an agent is busy, releasing it as soon as the turn finishes (the display may still blank). It won't override a hard sleep such as closing a laptop lid. This needs the system-sleep
library (Emacs 31.1+) and can be disabled via agent-shell-inhibit-system-sleep
. Thanks to @shipmints for proposing the idea.
M-x agent-shell-artist-insert-text-drawing
lets you sketch simple text drawings to drop into a prompt. Check out Bending Emacs episode 14 for a demo, crafting iOS UI.
The agent-shell
package family keeps expanding. Recent additions:
agent-shell
.agent-shell
.agent-shell
sessions.Keeping up with the project requires daily work. Luckily, I'm getting a bit better at time management since my new 24-hour job, so I've been catching up on general project maintenance, delivering bugfixes and feature requests, merging pull requests, and general bookkeeping.
At its most backed-up period, in mid-May, agent-shell
's open issues peaked at 75 while pending PRs peaked at 29.
As of today, we are down to 13 open issues and 4 open PRs.
Side note: this chart was generated using the /github-activity
skill shared in my emacs-skills repo.
Vendor-neutral tooling matters, 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 just me, an indie dev, while the tools it competes with have well-funded teams behind them. If this project is useful to you, please consider sponsoring 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.
Anthropic offers 6 months of free Claude Max 20x for qualifying open-source projects with at least 5,000+ GitHub stars. Starring agent-shell costs nothing and can save me some money, so if you don't mind a couple of clicks, the project can really use another GitHub star.
Thank you to all contributors for these improvements!
.agent-shell/
to .git/info/exclude
instead of .gitignore
(agent-shell-hermes--ascii-art
(Liking agent-shell
? Would like to see it evolve? Consider sponsoring the effort.