I strongly resonate with the problem statement, but this implementation was very far off the mark for me. Every interaction feels bad.
I fired it up, and the first thing I notice is that the arrow keys don't work. I can't select Claude Code. Oh, apparently it's in a different control, so I have to press Tab, and then the arrow keys work. Wow, this list of buttons has a slow scrolling animation when navigating it. Can I turn that off? Press enter on Claude, now I'm in a tiny modal window. Press enter, because I want to do the obvious thing, but apparently the obvious thing is "show in launcher", so the background of the modal is weirdly changing while a tiny single character inside the button is indicating that this is the part I'm supposed to be focusing on. No, I want to do the obvious thing of running Claude code. You could easily fit the 4 actions of this form on my screen, but by choosing to use a tiny modal window you're now forcing yourself to use another modal drop-down control to choose the action and a separate "yes actually do it" button, so the OBVIOUS ACTION of RUN THIS AGENT requires pressing tab, enter, down, down, down, enter, tab, enter. Great. Now I'm at a chat interface with an error screen, because it isn't installed. Quit the program, restart, enter, tab, enter, down, down, enter, tab, enter to install. It shows a successful run of the "ACP adapter" for claude. Shift-tab, enter, down, enter, tab, enter. Now I'm back at exactly the same error screen because apparently the install didn't work. Now, I know that you need to be running "npx @zed-industries/claude-code-acp", so I check the docs and apparently I can "toad run COMMAND". But it doesn't work for multi-word commands. And my trial with toad comes to an end.
So I can't test it for anything actually useful right now, but I'll add this to my list of projects to watch. Hopefully, being a UX-focused project, the creator actually focuses on the UX and fixes some of these silly decisions.
This has been my experience also, so far. I like a lot about this and want to start using it, but beyond the initial awkwardness of key bindings feeling wrong, it just seems a bit too early for me. For example, most of the agents I tried to get working on my Arch system failed to connect, only Claude Code and Vibe worked. Most worked on MacOS (except Codex, even though it's installed on my system). But I need to be able to set the agent into Bypass Permissions mode, and when I do, I'm still constantly prompted with permissions checks. There also seem to be weird errors caused by fish shell. I'd also really like to be able to define my own custom agents (eg one use case I'd like is to be able to launch Claude Code but swapping out the Anthropic endpoint for OpenRouter's so I can try new models using CC's agent harness).
It's possible this is just part of the learning curve, but it is making me think I'll have to come back to this project in a month or two to see if there are fewer pain points. Great work so far though.
Very excited to see this come out - though coding agents are impressive their UIs are a bit of a mixed bag.
Textual offers incredibly impressive terminal experiences so I'm very much looking forward to this.
I wonder how much agentic magic it'll be able to include though - Claude Code often seems like a lot of its intelligence comes from the scaffolding, not just the LLM. I'm excited to see!
Hope you like it. It is still Claude Code doing the work. Toad talks to the agent, and is the agent that works with the LLM. So the results should be identical to the native CLI.
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?
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?
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.
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!
Check out vibecommander - it’s a young tool in this space with a different take that wraps around CLI coding assistants with IDE-style file and git panels that compliment the experience by letting the human do the code review part of the task seamlessly.
Will add Toad support ASAP, I’m sure they’ll be great together.
You could also consider checking out vim, which solved this 50yrs ago ;) in all seriousness, you have terminals, splits, lazygit… so to me, it seems like this is a case of “not invented here”
This is absolutely awesome but the little jokey captions that Claude did (Discombobulating... Laminating...) all that stuff, they were a little annoying but cute enough, but whatever is running this one (I did not murder him... I thought I was special....) they are genuinely offputtingly bad. This great app doesn't need clunky humour front and centre, I'm not sure if it's Claude or toad but it seems markedly worse than Claude used to be.
I’m not a big fan of the name Toad, but the Textual framework is fantastic. I’ve been using it for years in a small project and it’s just a wonderful tool - it makes it really easy to get a super fast little UI for scripts.
CGamesPlay|2 months ago
I fired it up, and the first thing I notice is that the arrow keys don't work. I can't select Claude Code. Oh, apparently it's in a different control, so I have to press Tab, and then the arrow keys work. Wow, this list of buttons has a slow scrolling animation when navigating it. Can I turn that off? Press enter on Claude, now I'm in a tiny modal window. Press enter, because I want to do the obvious thing, but apparently the obvious thing is "show in launcher", so the background of the modal is weirdly changing while a tiny single character inside the button is indicating that this is the part I'm supposed to be focusing on. No, I want to do the obvious thing of running Claude code. You could easily fit the 4 actions of this form on my screen, but by choosing to use a tiny modal window you're now forcing yourself to use another modal drop-down control to choose the action and a separate "yes actually do it" button, so the OBVIOUS ACTION of RUN THIS AGENT requires pressing tab, enter, down, down, down, enter, tab, enter. Great. Now I'm at a chat interface with an error screen, because it isn't installed. Quit the program, restart, enter, tab, enter, down, down, enter, tab, enter to install. It shows a successful run of the "ACP adapter" for claude. Shift-tab, enter, down, enter, tab, enter. Now I'm back at exactly the same error screen because apparently the install didn't work. Now, I know that you need to be running "npx @zed-industries/claude-code-acp", so I check the docs and apparently I can "toad run COMMAND". But it doesn't work for multi-word commands. And my trial with toad comes to an end.
So I can't test it for anything actually useful right now, but I'll add this to my list of projects to watch. Hopefully, being a UX-focused project, the creator actually focuses on the UX and fixes some of these silly decisions.
dovin|2 months ago
It's possible this is just part of the learning curve, but it is making me think I'll have to come back to this project in a month or two to see if there are fewer pain points. Great work so far though.
willm|2 months ago
[deleted]
SoftTalker|2 months ago
taude|2 months ago
pjmlp|2 months ago
jefflinwood|2 months ago
mark_undoio|2 months ago
Textual offers incredibly impressive terminal experiences so I'm very much looking forward to this.
I wonder how much agentic magic it'll be able to include though - Claude Code often seems like a lot of its intelligence comes from the scaffolding, not just the LLM. I'm excited to see!
willm|2 months ago
_whiteCaps_|2 months ago
mark_l_watson|2 months ago
delichon|2 months ago
willm|2 months ago
willm|2 months ago
lemming|2 months ago
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?
jswny|2 months ago
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?
Cannabat|2 months ago
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.
anentropic|2 months ago
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 ?)
_ache_|2 months ago
Ideally working with toad to experiment with it.
bunsenhoneydew|2 months ago
joshka|2 months ago
dc_giant|2 months ago
fatliverfreddy|2 months ago
Check out vibecommander - it’s a young tool in this space with a different take that wraps around CLI coding assistants with IDE-style file and git panels that compliment the experience by letting the human do the code review part of the task seamlessly.
Will add Toad support ASAP, I’m sure they’ll be great together.
https://github.com/AvitalTamir/vibecommander
joshribakoff|2 months ago
adammarples|2 months ago
willm|2 months ago
It literally is using Claude under the hood. Should be no different than Claude’s own CLI.
jarbus|2 months ago
wasted_intel|2 months ago
NSPG911|2 months ago
D13Fd|2 months ago
cdecker|2 months ago
phanimahesh|2 months ago
stuaxo|2 months ago
Reading the article I felt like the "sickos: yes!" meme.
fcarraldo|2 months ago
browningstreet|2 months ago
It worked perfectly and looked splendid doing so.
Excited to dig in further.
glitch253|2 months ago
willm|2 months ago
SamvitJ|2 months ago
willm|2 months ago
unknown|2 months ago
[deleted]
wey-gu|2 months ago
dc_giant|2 months ago
[deleted]
shevy-java|2 months ago