Windsurf Cascade vs. Cursor Composer Agent Side-by-Side Comparison

I've been using Cursor for a very long time and their "Agent" feature in Composer is fairly new, so I'm still getting used to it. But since Windsurf recently got onto the stage with their Cascade agent, they've slowly been gaining the mind share on the UX for coding agents. I decided to put them to the test by putting Windsurf and Cursor on the exact same screen side by side trying to accomplish the same task and to see which workflow I would prefer. I've been a diehard Cursor user for over a year now, so it's going to take a lot for me to switch to a different IDE. But I just have to say, even from this simple demo, Windsurf is looking pretty nice.

This lesson is just going to walk through creating a CLI using both tools to print out inspirational quotes and to explore how they approach the step-by-step of installing packages and running commands and setting up all the files we need to get this running.

Share with a coworker

Transcript

[00:00] On the left is WinSurf, on the right is Cursor. We'll use Cascade versus Composer Agent. Make sure that's selected. With a prompt to create a CLI tool for an inspirational quote from this specific API. Quote C for quote Cursor and quote W for quote WinSurf.

[00:15] And we'll let these run. Submit here and submit here. I did already try this before just a second ago. Everything failed because it both of them tried to use an API which didn't exist and I had to really correct it way too much on each side which derailed a lot of things. So I started over here.

[00:32] All right looks like cursor went with Python and we did use Cloud 3.5 Sonnet on each of these so I'm kind of surprised that this went with Python. I'm going to accept all over here and it went down to this step to run command to make quote executable. And now click to run command here. This seems pretty sporadic in Cursor's Composer agent, whether or not you get that run command button or not. I'm not sure what the criteria are.

[00:57] It seems to sometimes work. All right, looks like it's making a sim link so that this can be somewhere where it's on my path and I can't type my password into this. I guess I'm okay with this solution so I'm going to pop out terminal and type my password and if I type quote c no module named requests. All right let's pause over here and switch over to Windsurf. So this wants to make index.js executable.

[01:22] And it looks like we're going to install node fetch and chalk, node fetch for fetching and chalk for formatting. And then we can go ahead and npm link this, which should link quote W. And it says we should be able to type quote W in our terminal. So let's try running this command. Command output.

[01:40] If you want more luck, something, take more chances. All right so it looks like windsurf was able to one-shot this on the conditions that npm was installed and I could install it globally. Let's check by opening a terminal. If I go into like my home directory and type quote w we'll still get a nice quote and the formatting is actually pretty nice thanks to Chalk's formatting here. So let's hop back over to Cursor and fix this up.

[02:04] I do like in Cursor you can debug with AI when something goes wrong in the terminal. So I'm going to click that. I swear I clicked pip install earlier as a command, but I'll go ahead and run this. We are in chat mode now when it's debugging an issue rather than composer mode. And one thing I like about Cascade over here is that there's no real concept of composer, it's kind of chat mode and write mode with this little toggle down here where write mode allows you to make changes, whereas you actually have to think about what you're doing with chat and composer.

[02:33] But I'll go ahead and run this and now let's see if quote C works. Let's see, it says requirement already satisfied. I don't think I'm using pip3. I don't use Python too often. We'll try quote C again and looks like we got it that time.

[02:48] So from this extremely simple demo I did prefer the workflow of Cascade. I have found the running commands to be more consistent and work as expected and if something errors out, response to it inline. Currently I found a lot of situations where the Composer agent asks you to run a command and then something fails and you bring it into chat and you try and fix it. You kind of get into loops there. And I have no real feedback on the code quality.

[03:10] They're both very basic straightforward solutions to the problem. I guess you could say they both avoided over-architecting this. And for what it's worth I do like the little flair of using chalk to make this a bit more colorful, whereas this one is a plain old white text. But I never quite know whether to chalk that one up to the system prompts of the IDEs or just the model at the time and what it responded with. So extremely simple CLI quote generator thing.

[03:38] The winner is Windsurf.