Ask HN: Cursor or Windsurf?

316 points by skarat ↗ HN
Things are changing so fast with these vscode forks I m barely able to keep up. Which one are you guys using currently? How does the autocomplete etc, compare between the two?

409 comments

[ 52.8 ms ] story [ 950 ms ] thread
Personally copilot/code assist for tab autocomplete, if I need longer boilerplate I request it to the LLM. Usually VIM with LSP.

Anything that’s not boilerplate I still code it

Zed! I find it to be less buggy and generally more intuitive to use.
Using cursor.. pretty good tool. Pick one and start.
I’d just wait a bit. At current rate of progress winner will be apparent sooner rather than later.
Cline?
I love Cline and use it every day. It works the way I think and makes smart decisions about features.
... if you can afford it. Pay per token can get expensive with large context.
I really like Zed. Have not tried any of the mentioned by op. Zed I feel like is getting somewhere that can replace Sublime Text completely (but not there yet).
Zed is an editor firslty.. The Ops has mentioned options which are AI development "agents" basically.
AI aided development has first class support in Zed.

Ie. it's not a "plugin" but built-in ecosystem developed by core team.

Speed of iterations on new features is quite impressive.

Their latest agentic editing update basically brought claude code cli to the editor.

Most corporations don't have direct access to arbitrary LLMs but through Microsoft's Github's Copilot they do – and you can use models through copilot and other providers like Ollama – which is great for work.

With their expertise (team behind pioneering tech like electron, atom, teletype, tree sitter, building their own gpu based cross platform ui etc.) and velocity it seems that they're positioned to outpace competition.

Personally I'd say that their tech is maybe two orders of magnitude more valuable than windsurf?

I don't dispite Zed is great, I actually am using it myself, but it's an editor first and foremost. The OP, to me at least seems to be asking more-so about the AI agent comparisons.
Cursor and Windsurf are both forks of VS Code, an editor.
Yes very observant, modified forks with their agents built in. Zed does not have any built in, sublime does not have agents built in but if you like you can continue this disingenuous discussion.
I was under impression Zed had native LLM integration, built into the editor?
yes, its now built in. i haven't had a chance to use it much yet, it was released fairly recently.
Agentic editing was released recently yes, llm integration was there for much longer. It supported editing but it was more manual – context of conversation from chat was basically available in in-line editing so you could edit code based on llm output but it was more manual process, now it's agentic.
Zed has it built in, it's called "agentic editing" [0] and behaves like claude code cli and other agents – mcp based editing, iterating on tests until they pass etc. – where you leave it in a background window and can do something else waiting for completion notification or you can follow it to see what changes it is doing.

It's not only that they have it built in but it seems to be currently the best open replacement for tools like claude code cli because you can use arbitrary llm with it, ie. from ollama and you have great extension points (mcp servers, rules, slash commands etc).

[0] https://zed.dev/agentic

Thank you for your kind offer, I shall take you up on it. Zed does have it built in. Now, please continue your disingenuous conversation by repeatedly claiming something that is demonstrably not true.
Hello? You're not going to continue?
Nah, I can see a losing argument when I see one. In my eyes, the OP was asking about the LLM/AI side and not the editor. But okay, zed now has one built in. I know now.
Zed. They've upped their game in the AI integration and so far it's the best one I've seen (external from work). Cursor and VSCode+Copilot always felt slow and janky, Zed is much less janky feels like pretty mature software, and I can just plug in my Gemini API key and use that for free/cheap instead of paying for the editor's own integration.
Does it have Cursor’s “tab” feature?
It would be great if there was an easy way to run their open model (https://huggingface.co/zed-industries/zeta) locally ( for latency reasons ).

I don't think Zeta is quite up to windsurf's completion quality/speed.

I get that this would go against their business model, but maybe people would pay for this - it could in theory be the fastest completion since it would run locally.

Running models locally is very expensive in terms of memory and scheduling requirements, maybe instead they should host their model on the Cloudflare AI network which is distributed all around the world and can have lower latency
> the fastest completion since it would run locally

We are living in a strange age that local is slower than the cloud. Due to the sheer amount of compute we need to do. Compute takes hundreds of milliseconds (if not seconds) on local hardware, making 100ms of network latency irrelevant.

Even for a 7B model your expensive Mac or 4090 can't beat, for example, a box with 8x A100s running FOSS serving stack (sglang) with TP=8, in latency.

Sort of. The quality is light and day different (cursor feels like magic, Zed feels like a chore).
I can second this. I really do want to move to Zed full time but the code completion is nowhere near as useful or "smart" as cursor's yet.
Yep I want Zed to win but it has not yet become my daily driver
Consumes lots of resources on an M4 Macbook. Would love to test it though. If it didn’t freeze my Macbook.

Edit:

With the latest update to 0.185.15 it works perfectly smooth. Excellent addition to my setup.

I'll second the zed recommendation, sent from my M4 macbook. I don't know why exactly it's doing this for you but mine is idling with ~500MB RAM (about as little as you can get with a reasonably-sized Rust codebase and a language server) and 0% CPU.

I have also really appreciated something that felt much less janky, had better vim bindings, and wasn't slow to start even on a very fast computer. You can completely botch Cursor if you type really fast. On an older mid-range laptop, I ran into problems with a bunch of its auto-pair stuff of all things.

Yeah, same. Zed is incredibly efficient on my M1 Pro. It's my daily driver these days, and my Python setup in it is almost perfect.
Are you running ollama local model or one of the zed llms?
I gave Zed an in-depth trial this week and wrote about it here: https://x.com/vimota/status/1921270079054049476

Overall Zed is super nice and opposite of janky, but still found a few of defaults were off and Python support still was missing in a few key ways for my daily workflow.

ooc what python support was missing for you? I'm debating Zed
Zed doesn't even run on my system and the relevant github issue is only updated by people who come to complain about the same issue.
Don’t use windows? I don’t feel like that’s a terribly uncommon proposition for a dev.
Windows? If so, you can run it, you just have to build it.
Debian latest stable.
Oh, then what's the issue? I'm using Zed on Mint and so far I've only had one issue, the window being invisible (which I fixed by updating GPU drivers)
I am using Zed too, it still has some issues but it is comparable to Cursor. In my opinion they iterate even faster than the VSCode forks.
Yep not having to build off a major fork will certainly help you move fast
But can they surpass Cursor?
I just wish they'd release a debugger already. Once its done i'll be moving to them completely.
Why are the Zeds guys so hung up on UI rendering times....? I don't care that the UI can render at 120FPS if it takes 3 seconds to get input from an LLM. I do like the clean UI though.
I am betting on myself.

I built a minimal agentic framework (with editing capability) that works for a lot of my tasks with just seven tools: read, write, diff, browse, command, ask and think.

One thing I'm proud of is the ability to have it be more proactive in making changes and taking next action by just disabling the `ask` tool.

I won't say it is better than any of the VSCode forks, but it works for 70% of my tasks in an understandable manner. As for the remaining stuff, I can always use Cursor/Windsurf in a complementary manner.

It is open, have a look at https://github.com/aperoc/toolkami if it interests you.

Nearly all of your comments have been self promo, I would chill out a bit
Currently using cursor. I've found cursor even without the AI features to be a more responsive VS Code. I've found the AI features to be particularly useful when I contain the blast radius to a unit of work.

If I am continuously able to break down my work into smaller pieces and build a tight testing loop, it does help me be more productive.

How do you define a unit of work for your purposes?
Both, most times one works better than the other.
Neither. VS Code or Zed.
Aider! Use the editor of your choice and leave your coding assistant separate. Plus, it's open source and will stay like this, so no risk to see it suddenly become expensive or dissappear.
I used to be religiously pro-Aider. But after a while those little frictions flicking backwards and forwards between the terminal and VS Code, and adding and dropping from the context myself, have worn down my appetite to use it. The `--watch` mode is a neat solution but harms performance. The LLM gets distracted by deleting its own comment.

Roo is less solid but better-integrated.

Hopefully I'll switch back soon.

I suspect that if you're a vim user those friction points are a bit different. For me, Aider's git auto commit and /undo command are what sells it for me at this current junction of technology. OpenHands looks promising, though rather complex.
The (relative) simplicity is what sells aider for me (it also helps that I use neovim in tmux).

It was easy to figure out exactly what it's sending to the LLM, and I like that it does one thing at a time. I want to babysit my LLMs and those "agentic" tools that go off and do dozens of things in a loop make me feel out of control.

I like your framing about “feeling out of control”.

For the occasional frontend task, I don’t mind being out of control when using agentic tools. I guess this is the origin of Karpathy’s vibe coding moniker: you surrender to the LLM’s coding decisions.

For backend tasks, which is my bread and butter, I certainly want to know what it’s sending to the LLM so it’s just easier to use the chat interface directly.

This way I am fully in control. I can cherry pick the good bits out of whatever the LLM suggests or redo my prompt to get better suggestions.

How do get you out the "good bits" without a diff/patch file? or do you ask the LLM for that and apply it manually?
Basically what antirez described about 4 days ago in this thread https://news.ycombinator.com/item?id=43929525.

So this part of my workflow is intentionally fairly labor intensive because it involves lots of copy-pasting between my IDE and the chat interface in a browser.

From the linked comment: > Mandatory reminder that "agentic coding" works way worse than just using the LLM directly

just isn't true. If everything was equal, that might possibly be true, but it turns out that system prompts are quite powerful in influencing how an LLM behaves. ChatGPT with a blank user entered system prompt behaves differently (read: poorer at coding) than one with a tuned system prompt. Aider/Copilot/Windsurf/etc all have custom system prompts that make them more powerful rather than less, compared to using a raw web browser, and also don't involve the overhead of copy pasting.

I like to be the human in the loop and everytime it does something I don't like, I will add a rule in conventions.md. Overtime, I watch it less and less.
Yup, choose your model and pay as you go, like commodities like rice and water. The others played games with me to minimize context and use cheaper models (such as 3 modes, daily credits etc, using most expensive model etc).

Also the --watch mode is the most productive interface of using your editor, no need of extra textboxes with robot faces.

fwiw. Gemini-*, which is available in Aider, isn't Pay As You Go (payg) but post paid, which means you get a bill at the end of the month and not the OpenAI/others model of charging up credits before you can use the service.
I guess this is a good reason to consider things like openrouter. Turns it into a prepaid service.
Approximately how much does it cost in practice to use Aider? My understanding is that Aider itself is free, but you have to pay per token when using an API key for your LLM of choice. I can look up for myself the prices of the various LLMs, but it doesn't help much, since I have no intuition whatsoever about how many tokens I am likely to consume. The attraction of something like Zed or Cursor for me is that I just have a fixed monthly cost to worry about. I'd love to try Aider, as I suspect it suits my style of work better, but without having any idea how much it would cost me, I'm afraid of trying.
Depends entirely on the API.

With deepseek: ~nothing.

is deepseek fast enough for you? For me the API is very slow, sometimes unusable
To be honest I'm using windsurf with openAI/google right now and used deepseek with aider when it was still less crowded.

My only problem was deepseek occasionally not answering at all, but generally it was fast (non thinking that was).

I'm using Gemini 2.5 Pro with Aider and Cline for work. I'd say when working for 8 full hours without any meetings or other interruptions, I'd hit around $2. In practice, I average at $0.50 and hit $1 once in the last weeks.
This is very inexpensive. What is your workflow and savings techniques! I can spend $10/h or more with very short sessions and few files.
Huh, I didn't configure anything for saving, honestly. I just add the whole repo and do my stuff. How do you get to $10/h? I probably couldn't even provoke this.

I assume we have a very different workflow.

do you use any tool to add the whole repo?
What is your workflow? Mine is add minimal files (2-5), keep sessions short, and ask for specific tasks generally in 1 file.
I'd be really keen to know more about what you're using it for, how you typically prompt it, and how many times you're reaching for it. I've had some success at keeping spend low but can also easily spend $4 from a single prompt so I don't tend to use tools like Aider much. I'd be much more likely to use them if I knew I could reliably keep the spend down.
I'll try to elaborate:

I'm using VSC for most edits, tab-completion is done via Copilot, I don't use it that much though, as I find the prediction to be subpar or too wordy in case of commenting. I use Aider for rubber-ducking and implementing small to mid-scope changes. Normally, I add the required files, change to architect or ask mode (depends on the problem I want to solve), explain what my problem is and how I want it to be solved. If the Aider answer satisfies me, I change to coding mode and allow the changes.

No magic, I have no idea how a single prompt can generate $4. I wouldn't be surprised if I'm only scratching on the surface with my approach though, maybe there is a better but more costly strategy yielding better results which I just didn't realize yet.

Wow my first venture into Claude Code (which completely failed for a minor feature addition on a tiny Swift codebase) burned $5 in about 20 minutes.

Probably related to Sonnet 3.7’s rampant ADHD and less the CLI tool itself (and maybe a bit of LLMs-suck-at-Swift?)

In my testing aider tends to spend about 1/10th the money as claude code. I assume because, in aider, you are explicit about /add and everything
Not sure how that’s possible? Do you ask it one question every hour or so?
It will tell you how much each request cost you as well as a running total.

You your /tokens to see how many tokens it has in its context for the next request. You manage it by dropping files and clearing the context.

I love Aider, but I got frustrated with its limitations and ended up creating Brokk to solve them: https://brokk.ai/

Compared to Aider, Brokk

- Has a GUI (I know, tough sell for Aider users but it really does help when managing complex projects)

- Builds on a real static analysis engine so its equivalent to the repomap doesn't get hopelessly confused in large codebases

- Has extremely useful git integration (view git log, right click to capture context into the workspace)

- Is also OSS and supports BYOK

I'd love to hear what you think!

I evaluated Windsurf at a friend's recommendation around half a year ago and found that it could not produce any useful behaviors on files above a thousand lines or so. I understand this is mostly a property of the model, but certainly also a property of the approach used by the editor of just tossing the entire file in, yeah? I haven't tried any of these products since then, but it might be worth another shot because Gemini might be able to handle these files.
A year is a long time. Even in the past few months it has improved a lot.
Windsurf has improved a lot in the last few months.
Windsurf at the moment. It now can run multiple "flows" in parallel, so I can set one cascade off to look into a bug somewhere while another cascade implements a feature elswhere in the code base. The LLMs spit out their tokens in the background, I drop in eventually to reveiew and accept or ask for further changes.
We are truly living in the future
Cursor offers this too - open different tabs in chat and ask for different changes; they’ll run in parallel.
Until you change model in one of the tabs and all other tabs (and editor instances!) get model changed, stop what they're doing, lose context etc. There is also a bug where if you have two editors working on two codebases they get lost and start working on same thing, I suppose there is some kind of a background workspace that gets mixed up.
Cursor for personal projects and Just Pycharm for work projects.
Amp.

Early access waitlist -> ampcode.com

I'd love to try it, could you please share an invite? My email is on my profile page.
Interesting! Do you have an invite to spare? My email is in my bio
This is a product by Sourcegraph https://sourcegraph.com who already have a solution in this space.

Is this something wildly different to Cody, your existing solution, or just a "subtle" attempt to gain more customers?

VS Code with Copilot.
This is the way.

Getting great results both in chat, edit and now agentic mode. Don’t have to worry about any blocked extensions in the cat and mouse game with MS.

I've had trials for both running and tested both on the same codebases.

Cursor works roughly how I've expected. It reads files and either gets it right or wrong in agent mode.

Windsurf seems restricted to reading files 50 lines at a time, and often will stop after 200 lines [0]. When dealing with existing code I've been getting poorer results than Cursor.

As to autocomplete: perhaps I haven't set up either properly (for PHP) but the autocomplete in both is good for pattern matching changes I make, and terrible for anything that require knowledge of what methods an object has, the parameters a method takes etc. They both hallucinate wildly, and so I end up doing bits of editing in Cursor/Windsurf and having the same project open in PhpStorm and making use of its intellisense.

I'm coming to the end of both trials and the AI isn't adding enough over Jetbrains PhpStorm's built in features, so I'm going back to that until I figure out how to reduce hallucinations.

0. https://www.reddit.com/r/Codeium/comments/1hsn1xw/report_fro...

Amazon Q. Claude Code is great (the best imho, what everything else measures against right now), and Amazon Q seems almost as good and for the first week I've been using it I'm still on the free tier.

The flat pricing of Claude Code seems tempting, but it's probably still cheaper for me to go with usage pricing. I feel like loading my Anthropic account with the minimum of $5 each time would last me 2-3 days depending on usage. Some days it wouldn't last even a day.

I'll probably give Open AI's Codex a try soon, and also circle back to Aider after not using it for a few months.

I don't know if I misundersand something with Cursor or Copilot. It seems so much easier to use Claude Code than Cursor, as Claude Code has many more tools for figuring things out. Cursor also required me to add files to the context, which I thought it should 'figure out' on its own.

this is the first time I am seeing someone says good things about Amazon Q

Do they publish any benchmark sheet on how it compares against others?

It is currently at top3 in swe bench verified.

It went through multiple stages of upgrades and I would say at this stage it is better than copilot. Fundamentally it is as good as cursor or windsurf but lacks some features and cannot match their speed of release. If you re on aws tho its a compelling offering.

> I don't know if I misundersand something with Cursor or Copilot. It seems so much easier to use Claude Code than Cursor, as Claude Code has many more tools for figuring things out. Cursor also required me to add files to the context, which I thought it should 'figure out' on its own.

Cursor can find files on its own. But if you point it in the right direction it has far better results than Claude code.

I remember asking Amazon Q something and it wouldn’t reply cuz of security policy or something. It was as far as I can remember a legit question around Iam policy which I was trying to configure. I figured it out back in Google search.
Still on codeium lol! Might give aider another spin. It is never been quite good for my needs but tech evolves.
Trae.ai actually, otherwise Windsurf
For the agentic stuff I think every solution can be hit or miss. I've tried claude code, aider, cline, cursor, zed, roo, windsurf, etc. To me it is more about using the right models for the job, which is also constantly in flux because the big players are constantly updating their models and sometimes that is good and sometimes that is bad.

But I daily drive Cursor because the main LLM feature I use is tab-complete, and here Cursor blows the competition out of the water. It understands what I want to do next about 95% of the time when I'm in the middle of something, including comprehensive multi-line/multi-file changes. Github Copilot, Zed, Windsurf, and Cody aren't at the same level imo.

If we’re talking purely auto complete I think Supermaven does it the best.
Cursor bought Supermaven last year.
It still works
Do they actually improve the model you can get without cursor? Or in reality all the development goes to cursor's autocomplete without making this available to supermaven subscribers? It is hard to make sure of that from their website and lack of info online.
I’m using Github Copilot in VScode Insiders, mostly because I don’t want yet another subscription. I guess I’m missing out.