Remix.run Logo
willm a day ago

Hi. Will McGugan here. I built Toad. Ask me anything.

lemming 7 hours ago | parent | next [-]

Toad looks really nice, I will definitely try it out. I have some ACP questions if you don't mind.

First, from my reading of the ACP doc, one thing that seems pretty janky is if the ACP client wants to expose a tool to the agent, e.g. if Toad wanted to add the ability for the agent to display pretty diffs. In the doc they recommend stdio to the ACP server, then stdio to an MCP server, and then some out of band network request back to the ACP client. Have you thought about this, or found a better solution working on Toad?

Similarly, it would be useful to be able to expose a tool which runs a subagent using ACP using a different agent, e.g. if I'm using Claude for coding but I'd like to invoke codex for code review. Have you thought about doing anything like this? Is it feasible over the protocol?

willm 6 hours ago | parent [-]

I don’t follow your first question. Toad already displays pretty diffs. MCP works in the same way as the native CLI.

One of the advantages of Toad is that it is vendor agnostic. In the future Toad will be able to run sub agents, and allocate any agent to any job. Still to figure out the UX for that.

anentropic 2 hours ago | parent | prev | next [-]

Just installed it...

How are new agents added? Do you have to write a dedicated plugin for each one? Or there's some kind of discovery mechanism?

(I was looking for Copilot, but I guess that will depend on https://github.com/github/copilot-cli/issues/222 ?)

NSPG911 2 hours ago | parent [-]

It's more like just a simple toml file. https://github.com/batrachianai/toad/tree/main/src%2Ftoad%2F... gets you the currently supported ACP clients

And Copilot isn't supported for now because, well, there is no ACP support

joshka an hour ago | parent | prev | next [-]

Hey Will, just wanted to say this looks pretty damn spectacular. No notes. :)

Cannabat 6 hours ago | parent | prev | next [-]

Hi Will,

I was about to try opencode after using claude code for quite a while.

I think understand the fundamental difference in how they work (acp against existing agentic loops with toad vs a single agentic loop for all models with opencode) but I’m curious why we might want toad over something like opencode, which lets me use any model under the sun.

I suppose toad gets to use the highly specialized agentic loops for each cli. And has a nicer (? opencode is pretty slick from my brief usage…).

Curious to hear about why you chose to built this way and what advantages you see.

willm 6 hours ago | parent [-]

That’s pretty much it. You can bring your own agent. Including OpenCode by the way. I doubt they will mind as they still get paid for the tokens.

You get a nice UI that is only going to get better as time goes on.

It’s far better model to separate the agent from the UI. The current situation is like building a browser for a single website.

jswny 14 hours ago | parent | prev | next [-]

Very interesting project! I have 2 questions:

1. How has it been working with ACP? Is it anywhere near feature parity with Claude code’s native interface?

2. I see your repo is written in Python which is interesting to me for a responsive TUI. Is it snappy and performant and if so what gave you done to make it feel native? And why did you choose Python?

willm 14 hours ago | parent [-]

ACP is will designed. It will always be a few features behind the native CLIs as the protocol catches up. But there is very little that you can't do with ACP. A lot can be done with slash commands that are passed through to the agent verbatim.

Python is more than capable of running a TUI. It is just text manipulation after all. Toad uses Textual, which is currently the best TUI library around. I may be biased saying that as I built it...

_ache_ 6 hours ago | parent | prev | next [-]

I'm using ollama with local LLM for completion (tabby-ml) and Open WebUI for chat. What will be the goto local ACP server working with ollama ?

Ideally working with toad to experiment with it.

evalstate 4 hours ago | parent | next [-]

fast-agent has ACP support and works well with ollama. Once installed you can just use `toad acp "fast-agent-acp --model generic.<ollama-model>"`.

willm 5 hours ago | parent | prev [-]

You may be confusing Agent Communication Protocol with Agent Client Protocol. Yeah, 2 ACP protocols. I had no hand in the naming.

If an agent can be configured to use Ollama, then you could use it from a Toad. It might be possible right now.

bunsenhoneydew 17 hours ago | parent | prev | next [-]

Sorry, not a question, just wanted to say congrats on putting this together. I am so the target market for a nice terminal interface. I can’t wait to try this out!

willm 17 hours ago | parent [-]

Thanks. Hope you like it.

dc_giant 7 hours ago | parent | prev [-]

Cool idea but why python?! Rust please and I’m all ears.

NSPG911 2 hours ago | parent | next [-]

The creator of Toad, made a TUI framework in Python (Textual). What is so special about Rust, aside from it being blazingly fast and compiled, that you want from it?

Hasnep 4 hours ago | parent | prev [-]

The author is also the creator of the textual Python library for creating TUIs. The performance benefits of Rust don't seem very useful in a tool where you spend a few seconds typing in a prompt and then 90% of your time is spent waiting. As long as the UI is responsive when typing there wouldn't be much of a difference.