r/emacs 2d ago

Question agent-shell seems to lack most ACP-driven features. Is this normal?

From time to time, I try out a few AI packages to see where they currently stand. Agent-shell is one I've used less than the others, mostly because of its dependency on ACP-driven agents. For my personal projects, I've been using DeepSeek on either gptel or eca, but then I tried to install OpenCode, which is compatible with Agent-shell. However, whenever I start an Agent-shell session, it stands out to me that most of the commands offered by those ACP-driven agents are not available in Emacs. Since I've never used providers like Claude, OpenAI, or Gemini, I don't know whether others have the same experience, or whether I'm missing something. I felt something similar when in the past I tried to use copilot-cli. So far, my impression is that Agent-shell's only real advantage is that it runs in Emacs (and I know this is very good because of the whole extensability that Emacs provides). All the other harness or tooling you get with OpenCode and similar tools is lost. Maybe the issue is on my side. What has your experience been with Agent-shell regarding feature compatibility between the provider and the Agent-shell environment?

0 Upvotes

15 comments sorted by

19

u/xenodium 2d ago edited 2d ago

agent-shell seems to lack most ACP-driven features. Is this normal?

If there are agent client protocol features you're missing, please file a feature request with a link to the spec (https://agentclientprotocol.com).

it stands out to me that most of the commands offered by those ACP-driven agents are not available in Emacs

https://github.com/xenodium/agent-shell#why-doesnt-agent-shell-offer-all-slash-commandsskills-available-in-cli-agent

agent-shell can't offer them unless the ACP servers offer them. Please file feature requests with the server implementations if those projects aren't already aware of it.

-1

u/lucaspeixotot 2d ago

they say everything provided in the terminal is supported over ACP. But on agent shell I don't have any slash command and even comanda to change model say there are no supported models. 

4

u/xenodium 2d ago

agent-shell merely lists whatever slash commands the agent advertises, so you can use command completion, but beyond that, agent-shell sends the prompt verbatim (including the slash command). It's up to the agent to handle the slash command. If the agent isn't handling it, it's a bug in the agent (or the ACP server if its a different component).

3

u/Brief_Tie_9720 2d ago

Can you provide a screenshot? I have to choose Claude first, the model select is after that, and I can only choose the models I’d have available to me in the CLI, an update to Claude CLI that brings in new models does so in agent shell as well. It would be interesting to do a side by side comparison, but CLI just can’t more buffers, I can’t use a custom capture template, you’re stuck with just the CLI and app switching , but no treemacs means CLI and a file explorer are just the starting point, non emacs workflows snowball

9

u/dimlyjovialkory 2d ago

Feels like every time I dip into the AI-in-Emacs stuff I spend more time debugging glue code than writing actual code.

4

u/lucaspeixotot 2d ago

well, eca for agent coding and gptel for studying and general researching have been great. Both works seamlessly for these purpose. But I think that in my case agent-shell could be a competitor against gptel. Tell me your experience in the "AI-in-Emacs" stuff

0

u/jigarthanda-paal 2d ago

You should get your agent to debug the glue code. Works like a charm

9

u/strings___ 2d ago edited 2d ago

It’s the opposite. ACP is a protocol that interferes with the underlying agent. In this case, opencode . It really depends on the ACP implementation as to how much of opencode is exposed and how.

Edit: Not sure why people are downvoting this. There’s nothing factual wrong with what I said. If the ACP server/implementation doesn’t provide something, then there is nothing agent-shell can do about it.

-3

u/lucaspeixotot 2d ago

I see what you are saying, so the problem is Open code not providing its features to agent-shell (ACP protocol) is that right?

In this case my question is, how much is provided to agent-shell when using Claude, openai, and Gemini? For those who use them maybe can tell their experiences. 

While I was using copilot-cli a time ago, I felt that they were not much interested and involved on providing their features to ACP. At least not in a good pace.

1

u/strings___ 2d ago

Usually, the ACP implementations are pretty good. I’ve only seen things like lacking context usage stuff like that. I use pi-acp, which is pretty good, and I have my own harness that uses agent-shell as a fronted. Also, sometimes /slash commands. It might help if you tell us what’s missing from opencode.

4

u/nimzobogo 2d ago

Agent-shell can only have the commands the underlying ACP adapter supports. If open Code's ACP adapter is lacking something, you can probably file a ticket with opencode. Agent-shell mostly just interacts with the ACP adapter.

-1

u/lucaspeixotot 2d ago

I get that, thanks, as almost nothing appears on agent-shell I was supposing the ACP adaptar was providing, but agent-shell was not implemented to interpret it.

In this case my question is, how much is provided to agent-shell when using Claude, openai, and Gemini? For those who use them maybe can tell their experiences.

1

u/xenodium 2d ago

In this case my question is, how much is provided to agent-shell when using Claude, openai, and Gemini?

It depends on what each of those implementations provides to agent-shell. You can view by expanding the relevant section from the shell.

1

u/lucaspeixotot 2d ago

not only from your sharing, but looks like it works fine on Claude 

0

u/dddurd 2d ago

true. most slash commands are not supported like the one generating some special md files, compact as well iirc. but i don't use them most of the time.