Ask HN: How much better are AI IDEs vs. copy pasting into chat apps?

139 points by lopatin ↗ HN
I just wanted to hear peoples experiences with AI IDEs.

For context, I'm a heavy user of Gemini / ChatGPT for coding and Copilot. But I haven't used Cursor / Windsurf / etc..

Copy pasting into chat apps is a first world problem: it will do the work for you, but you have to give it all the context in the prompt, which for a larger project, gets tedious.

The issue with Copilot is that it's not as smart as the "thinking" chat apps.

This makes it clear why there's such a need for AI IDEs. I don't want to construct my context to a chat app. The context is already in my codebase, so the AI should pick up on it. But I also hear that it gets expensive because of the pay-per-use pricing, as opposed to effectively unlimited prompts for a thinking chat app if you pay the monthly subscription.

So I just wanted to get the lay of the land. How good are these IDEs on constructing your context to the LLMs? How much more expensive is it, and is it worth it for you?

139 comments

[ 3.7 ms ] story [ 198 ms ] thread
If it is a single function or a class I most of the time prefere copy/paste from the chat. If multiple files needs to be updated then there is a lot of convinience with using a AI IDE.

For writting code the old fashion way. You type the code the intellisense/auto-complete build in to the like of cursor AI is the most annoying thing i have ever seen in a IDE. You constantly sitting hitting the escape key try to get their auto-complete suggestion to go away. Most of the time is it guessing where wrong and is mostly useless.

The biggest issue is when you try to use a class that has properties. When you press the dot after the class name normally the IDE will list the public properties on the class.

Now you have to battle that the list now longer contains just the properties found on the class but also non-existing properties invented by the AI IDE. As clever as this AI autocomplete can be, i really hate it because I can no longer rely on that my IDE is telling the truth about what properties and functions there is exist on a class.

and if you are the type of programmer that like to put empty lines in your code for readability. Then moment you hit enter you now get an often completly irrelevnat code suggestion and need to battle that suggestion to go away. I just want an blank line for crying out loud.

PS: my AI IDE is cursor

I definitely agree with the points about empty lines of code and properties on classes. Same problem with Copilot and VSCode.
I’ve built multiple apps just for myself using the API and honestly it sucked. The chat remembers context and talks to you like a real conversation. The API is crazy expensive and painfully slow. It’s best for one-shot queries where you ask one thing and expect nearly identical results every time. Anything beyond that and it struggles.

With ChatGPT Canvas I’ve completed small projects like WordPress plugins, handy personal Python scripts, chrome extensions (my favorite use of ChatGPT) and most importantly debugged faster than any tool I’ve ever used. Sure, my customer-facing GPT API apps are burning credits like a rocket on full throttle but at least I’m billing them for it. The API speed is wildly inconsistent so you can’t rely on it for everything.

One key tip is you can’t keep a single chat going forever. It gets sluggish, especially when you paste long code blocks. My method is simple. I ask for the final clean code, then request a complete detailed summary of what we built and what the functions do. Then I start a fresh chat, paste the summary and code, and continue clean. Think of it like making a commit, just a very crude version.

I've gone through a few AI IDEs / agents and CLI tools now, currently on Cline with Gemini 2.5 Pro which is doing a pretty good job at my web app code with a decent .clinerules file in the repo.

To answer why I don't use chat at all for coding anymore, some benefits of IDE / CLI agents: Copy pasting into chat apps don't allow for agentic runs (ie run bash commands, edit code, validate with linting / testing before marking task as 'complete'). I can mostly just write my descriptive task (usually with code references if they aren't already there in clinerules / claude.md, etc.) and come back after a short walk or drinking some tea and check the code or just check at runtime to ask it to fix up the code. This is honestly very similar to "waiting for code to compile."

For reference, I've used the following to make production code changes:

- Cursor: which when Claude 3.5 was out seemed to be the best AI IDE, but the changes they've made around agent mode and 3.7 haven't really worked super well for me. Migrated to claude code after 3.7 came out.

- Claude Code: Very good, I generally just ran it in dangerous mode and it could accomplish tasks fairly well. Wrote a decent Claude.md file as well. Only con is that it got expensive quickly. On the order of $3-5 per session which would accomplish a single task.

- Cline with Gemini 2.5 Pro: Moved to it yesterday, it's been doing a good job and is effectively free right now using my own API key for Gemini. Seems a bit verbose at times although that might just be Cline's prompts.

I haven't tried Aider or Windsurf, but have heard good things about Windsurf's agentic mode. Although I might not move to Windsurf at all since Cline with Gemini works pretty well & is free to use.

> is effectively free right now using my own API key for Gemini.

I think the cost is/was a big factor preventing many from switching from Chat-based coding to Cline/Cursor/Aider.

For my hobby projects I don't want to spend 3 USD to get some assistance which I can get for free through a monthly subscription (and some extra pasting).

Google is smart to offer a free use tier on API-usage which seems enough for agentic coding.

I've been using Windsurf for a few weeks. I'm a novice programmer trying to build a web app using React and NextJS.

The "context-in-the-codebase" thing for AI-based IDEsis overrated IMO. To extract the most from it, you have to remember to @mention the files.

If you don't remember to @mention specific files, the agent simply tries to perform searches (i.e., it has access to that tool) on the files and folders until it gets some results... and will usually keep broadening the search until it does.

It works well enough I suppose. But I still find myself beginning new chats (for example, per feature) because the model still loses its place, and with all the code/lint fixes it does, it starts to lose context.

Then you're right back having to @mention more files to ensure the model knows how to structure your front end, back end, etc.

(Please excuse any misnamed development terms.) :-)

In VS Code, you automatically get the current file context and you can add all open files, specific files, etc. just before you hit send.
I don't think you're quite right about this, as I've noticed (at least in Cursor) that appropriate context tends to be pulled in automatically.

What I do notice is that the AI systems seem to forget to pull in a lot of context as the project size grows. It's almost as if there's something of a limit to the amount of input data, either to manage costs or compute cycles or something like that.

When I start "vibecoding" it goes really well in the beginning but then when the project grows in complexity, asking it to do something relatively simple falls apart as the AI "forgets" to do that really simple thing in every applicable place (e.g., removing a feature that is no longer needed).

I wish there was a plugin / cli / TUI that would grab what you are doing and copy it into your clipboard for a chat app. That way I don't need to worry about tokens and usage limits.
I use copilot through VSCode. The copilot plugin lets me either ask questions or ask for edits to my code. I can choose which files to include as an additional context to the prompt. I can additionally choose which model to use. Some models are unlimited, others have some monthly quota. GPT-4o is unlimited and quite good with short tasks.

It has also shortcuts for instance fixing errors in the code by just selecting "fix with copilot". Its a bit hit or miss but for simple things work well.

It is very good and seamless. Cannot think of ever copy pasting multiple files of code to some web chats and back.

But you aren't just asking for edits to your code, right? Copilot will actively suggest code completion as you type. This is the real benefit over chat as it's like pair programming.

That, and the way it generates commit comments, I don't think I will write another commit message even again.

The first paragraph implies that they are. I’m doing the same, works really well for writing new code or refactoring. Then polish it up by pointing out bad parts in the chat. At the end I step in and do some manual polish.
I use VS Code too and in agent mode I can say things like “move the database querias into a new module called models.py and convert the SQL into SQLModel classes”. It’s pretty awesome to do chores.
I think the Coplit plugin is probably the closest thing to an AI IDE that actually works. As per my other comment, I don't actually use any IDE to begin with, but one of my coworkers who uses VSCode has been very fond of the latest iteration of the Copilot plugin.

From your description of how this plugin works, I see why it works so well. It is basically just focusing on the essentials (populating the appropriate context) and then does as best as it can to get out of the way ( <- this part is really important I think)

Well the smarty pants people think its $3B and $9B dollars worth of "choosing what to shove in the context for you"

I guess they try to do things to give better results: give the context a list of file names, give the context the full class graph of the Classes in the current working file (not sure about any specifics really) Reality is they don't do a whole bunch... but without doing what they do, it would be infuriating to figure that all out yourself , over and over and over for each thing you want to work on.

But dont worry, we just have to wrap layers of LLMs around layers of LLMs around loops of retrying and testing around loops of detecting when the censorship starts evolving and breaking until we finally just all decide to become farmers

I use Claude Code (cli tool) and it's on another level. Not even comparable to code autocomplete à la Copilot or copy/pasting into a LLM chat app. It knows about your whole code base, can use external tools, read documentation, run tests, etc. Even as an experienced developer, it's been a huge productivity boost. The main downside is that it can quickly get expensive.
Does it really know about the whole codebase? How big are we talking about? Last I tried, some time ago, llm didn't work very well "in the large". But I have never tried Claude Code.
I have tried claude code on a few different size code bases and so far very impressed. The code it generates is usually in the same fashion and tone as the rest of the code base.
I guess I should have said that it has access to all your code. But I think it tries to be smart about which files it reads depending on the task at hand.
No it doesn’t, it tries to be smart about how it loads context that it thinks it needs to perform a task. In reality, in a large codebase I’ve found manual supplying the exact context to Aider with Anthropic’s models to work better.
Same. It's usually very good at generating greenfield projects from scratch, but once you get going you have to manually provide all context to get good results.
You get the same experience inside VS Code with Copilot these days, as long as you select agent mode. Yesterday I even asked it to read documentation off a URL and it asked me permission to fetch the page, summarized it, and applied the API changes needed.
Not really. This is an example of something that Claude Code handles very easily and for Github Copilot, is not even an starter (because can't read SQLite files)

>Read the Sqlite file in this directory and create an UX that would visualize and manage the data. The application should be responsive (so it can be use on mobiles) and should have some graphs when appropiate.

Actually, it can. I've just gone and checked. Agent Mode executed sqlite on the terminal, got the schema, and issued the relevant changes.
Claude Code is by far the most expensive tool I used so far. I generally use it for fronted stuff since it's wonderful there !
I don't use IDEs to begin with. I use a text editor, since I am a UNIX man. So, I don't even have a reason to look at the "AI" flavor of an IDE. The closest thing to an AI IDE that I have tried out were tools like AIDER and Jack's "goose" agent. Neither of those specialized tools has been satisfactory. They all performed worse than just the LLM IMO. I am sticking to crafting my own context that I supply to the LLM. Tools like Simon W's `llm` tool help A LOT to be more efficient at using LLMs in a daily setting.
I didn't know Unix users were not able to use IDEs. The more you know /s

Edit : Sarcastic

Not true and if only then by choice.

VSCode/Cursor run natively under Linux.

I use VS Code on Fedora Silverblue.
It obviously wasn't obvious enough but I was being sarcastic. My fault anyway, pre coffee.
Fair enough... Honestly, I wasn't using Cursor for a long time because I thought that, as a MS project, it wouldn't be available on Linux.
I don't know about Unix users, but perhaps, instead, it is they are able to not use IDEs.
I like to laugh at myself a lot but this made me really giggle. Well phrased!
I'm mostly on the same page, but jumping into a new project with a not-so-familiar language has been made much less painful with Cursor. Regular anthropic chats spew nonsense most of the time and are disappointing, but Cursor really seems to be useful.

Of course it also gets stuff wrong and everything needs to be properly validated, but it's a nice tool to try out.

I'm not a developer. I use Claude and copy paste which works fine for me. Just picking up on one thing it's not unlimited use, Claude stops working for me after a certain amount of usage and offers me access to the max plan. I also would add that chat based code seems to bloat, the llm will add in a bunch of stuff that's not needed and that ultimately reduces the time it can work on my problems.
I've finally settled on this:

- A custom vscode plugin to help me copy file contents from the tree view, along with file paths

- A chat based ide (LibreChat, but anything will do)

- An agent that syncs code back, once I'm happy with the conversation (https://github.com/codespin-ai/codebox)

Sometimes I add the agent right at the beginning. Sometimes I do that when I feel the code is ready to be written back. Another thing with the codebox agent is that it lets the agent run unit tests (even inside a docker compose environment, if you want integration tests); so in some cases it can be fire-and-forget.

How "easy" is it is to scaffold a personal vscode plugin?
Not that trivial to hand code, I just had this feature (copying) in another larger plugin I wrote.

However, I think it can be "vibe coded"these days.

Thanks, overall I should make something like that, but generally optimistic that vscode will soon provide all that's necessary, so laziness prevails.
Why use an external tool if you now have agent mode in VS Code?
I rolled out Claude Code and Cursor to my whole company. They’re really much better than copy paste. And very affordable compared to professional developer wages.

Wrote about it: https://ghiculescu.substack.com/p/nobody-codes-here-anymore

I'm relatively ignorant in this respect, but how do you "roll out Cursor"? Does that mean developers must now switch to using the Cursor IDE? That's quite an ask. I really don't think I'd like having to switch IDEs at this point.
What's so difficult to understand? How do you get your other software at work?

The developers now have access to the license to the software, probably via their work email address.

I don't think the person you're replying to necessarily said that they are forcing their developers to use the tool.

We didn’t mandate it. We just told everyone they can buy if they want to.
I'm a staff software engineer doing a mix of front-end and back-end with emphasis on front-end.

I use both Cursor on Claude 3.7 and ChatGPT on 4o/o3. Cursor seems kind of "dumb" compared to 4o, but it's a good workhorse.

I let Cursor handle the basics - basically acting as a glorified multi-file autocomplete. I think through common problems with 4o, tough problems with o3, I copy all of Svelte's docs into 4o (https://svelte-llm.khromov.se/) to get good Svelte 5-focused feedback, I have 4o code-review what Cursor writes from time to time, I have 4o, sometimes o3, generate "precise" prompts that I'll give to Cursor when me talking off-the-cuff to Cursor doesn't get good results after a few attempts.

I don't consider myself an expert in these areas yet so I might be misusing Cursor, or not making enough use of its rules system, or something. I feel like I get good value for my ChatGPT subscription. I don't feel like I get good value for my Cursor subscription, but I also still feel like keeping it because $20 to type a lot less is still pretty nice. I would be upset if I only had a Cursor subscription and no access to ChatGPT. I am pretty hesitant to pay for AI à la carte. I feel much better about working within the limitations of a known subscription cost.

> Cursor seems kind of "dumb" compared to 4o

What do you mean by that? You can use 4o model in Cursor?

Cursor tries to save more money on context than ChatGPT. So when both are targeting GPT 4o, the ChatGPT App will incorporate more context history and memories than Cursor.
I think part of the reason is, ChatGPT has additional system prompt in chat, API doesn't have.

even if both companies use same model (OpenAI and Cursor), system prompt has a huge impact on results

>I let Cursor handle the basics - basically acting as a glorified multi-file autocomplete.

Same experience. I'm in no need to let the AI write large, real working code. But it's amazing for fast refactoring, function signatures, boilerplate, etc. The real boring parts. I only wish it wouldn't be so eager to try to dump a 50 lines of bullshit code every time. But for small changes, super cool.

I honestly believe they do this BS shit so you waste tokens and pay more.

Engagement, after all.

When you say fast refactoring, etc. can I ask if you've used visual studio?(and I assume the Java equivalents)

As they have had for over a decade fast refactoring (extract method, boilerplate generation, change function signatures everywhere, suggested code refactoring due to language improvements, one click refactoring based on linting suggestions, etc.).

Without AI.

I'm just confused as the stuff you've mentioned already existed and doesn't need an AI to do it.

So can it do something more or are you using AI tokens to do something most decent IDEs can already do without AI?

Can you please elaborate on how you're copying Svelte's docs into 4o?
I just download the Svelte + SvelteKit (Recommended - LLM Distilled) file from the link mentioned in my original comment and drag-and-drop upload it into the chat context when I'm talking to 4o about coding. Nothing magical. It takes a second to read through the document, but then the LLM works significantly better. It stops suggesting invalid Svelte 4 syntax and prioritizes using Runes.
same experience. Editor agents with basic level tasks and boilerplate. Problem solving and decomposition of it in the chat apps seems to be better. What I've noticed is the agent modes of these editors use the embeddings API of ChatGPT and how the LLM model maps the context of the codebase. Often what has happened is the LLM's in Agent mode ignore the default setup of the codebase example package managers and use the package managers which would be popular throughout their training data.

To summarise the Agent Mode editors don't try to fill in their context gaps and be aware of the environment they operate it unless explicitly specified by the prompter to first review the codebase, understand it's structure and then proceed with implementing features.

> The issue with Copilot is that it's not as smart as the "thinking" chat apps.

Upgrade to a paid plan and you can use many of the same “thinking” models.

Honestly, your entire question is best answered by signing up for a free trial of one of these tools and using it. Not the free tier, a trial or a paid plan.

Copy and pasting into another app is extremely inefficient. You really need to try a tool that integrates your model of choice into the editor.

I built a tool that helps with copy pasting code into chat UI called 16x Prompt.

https://prompt.16x.engineer/

It is used by quite a lot of people. So the problem is definitely there.

The app supports API integration as well. From usage stats, still there are more people using the copy pasting flow instead of API flow.

I suspect it is because people are already have a subscription so they can basically use that for free, versus via API where they have to pay.

With that said, Cursor's $20/month unlimited usage is really too good to miss. I will wait for it to end soon.

I use 16x for the copy-paste workflow. Really useful tool. Thanks.
I thought Cursor was pointless until trying out Google's latest coding GPT, which blows everything else out of the water. I may switch from VSCode to cursor for the next few months just because of that.
Do you mean Google Code Assist plugin for IDEs or something else?
I meant the GPT Gemini 2.5 pro exp. but I see now it's available in VS code too. Guess I missed it because I was always using Claude
Why not just switch Copilot to use Google Gemini 2.5 Pro as the model?

With every update to the Copilot extension, I see less and less of a need to switch away from VS Code to some “dedicated AI editor du jour”.

Maybe I’m missing something, or maybe people aren’t keeping up with Copilot’s capabilities?

⁽¹⁾ https://code.visualstudio.com/docs/copilot/reference/copilot...

⁽²⁾ https://code.visualstudio.com/docs/copilot/chat/chat-agent-m...

⁽³⁾ https://code.visualstudio.com/docs/copilot/chat/copilot-edit...

Good point. I suppose I'd missed that they added it. Trying it now and it's fantastic.
Cursor has a free trial. Give it a try. AI is kinda personal, lots of people benefit, lots of people dislike it for many valid reasons.

VS Code is very quickly catching up to Cursor as well (added tab-driven completions).

Also you don’t have to be right on the edge of things. You can be, or you can wait for the dust to settle. Claude Code / OpenAI Codex and the agent modes are probably the edge now.

Also if you’re still using a terminal (who isn’t), try Warp. It’s improved a ton over the last year, support more niche shells like Fish now. It’s actually a really “fluid” AI chat integration, because it smartly figures out when what you’re typing is not a command but a prompt. (It’s probably also on the edge, I haven’t figured out how to tell it “you’re wrong” when it asks for a permission for example, I have to “cancel” the chat).

I use Windsurf. I thought I could potentially cancel my ChatGPT subscription after a while but now concluding that that likely isn't possible. Windsurf is good for some things, but can take a lot of prompting and honestly does a lot of dumb stuff. It is also very slow. It can sometimes arrive at a solution faster than you can when very tired but most of the time I feel like I am just being lazy.

That being said, it is worth the price as it can be helpful sometimes. I pay $15 per month and haven't gone over the token limit yet. ChatGPT is still fundamentally more useful however.

The user patterns are a bit different in each case. When I'm copy-pasting from GPT, I'm forced to define the problem better and be specific on the output I'm looking for.

Compared to Cursor with full codebase context where I can get away with less, so I typically fall back to the lazy prompting patterns of "not like that, do better". Which likely eats up more time than had I prompted well to begin with.

AI IDEs get in my way. I like copy and paste.

The big secret to success?

JetBrains IDEs have “compare with clipboard” - essential tool to verify what the LLM changed.

What about projects where secrecy matters? How do hedge funds use these? Are you comfortable feeding the secret sauce to Cursor?
Code is nowhere near as valuable as most people imagine....
It is in some projects, OP gave a good example: hedge funds.
No, code becomes less valuable with the passage of time.
I'd day that hedge funds and quant trading firms are an exception to this rule. If you get access to their model training code, order execution code, and especially their trading strategies, then that is literally valuable since you'd be able to replicate their success.

This is unlike most other companies, say Spotify, where if you get access to their source, there's still not much that you can do with it.

Especially if it can be generated with a prompt.
self hosting via litellm or olama isn't as hard as you think. If you have company kind of money it shouldn't be a problem.
Related to this. ChatGPT, a lot of times provides “bare” diffs (ie. not complete unified diffs - they lack proper headers and line numbers)

They are a pain to apply manually. I’ve tried several visual studio code extensions that apply patches from clipboard or provide an input for it, even saving them to a file and running command line tools - but they all fail

Anyone has a good system, extension or application to easily copy these diffs from ChatGPT and apply them to the code on visual studio (or some other editor)?

Aider is basically asking for diffs and applying them automatically
I tried to vibe code a web app with windsurf and found it appeared to do really well in the beginning. But I had to harsh the vibes in two types of scenarios it couldn’t understand or solve on its own: performance and css animation.

When I copy paste via ChatGPT I direct the model on what to do and retain responsibility and understanding of all code getting saved.

I do really like Cascade in windsurf because it does a decent job of parsing the entire codebase and finding the spot to make changes. But I think I’ll probably be most successful combining my approaches and using Cascade at a coding level not a “vibe” level

As a solo-founder of https://flowyBoard.com, I've used heavily Cursor and chatgpt. My app is very heavy on the front-end side and especially css animations. Here is my conclusion, Cursor is very good duplicate and extend your current structure in the project. So in the beginning you need to be careful about the solutions suggested by Cursor. When the problem is deep, you have to do tests and ask cursor multiple times to reform it. Chatgpt is good when the problem is deep and you know which part of the code is the problem.
I use thisismy and thisismy-desktop to combine code - full repos + and specifications as Megaprompts into the LLM - mostly currently Gemini 2.5 Pro as we are talking ~500k tokens

full files, JIRA tickets with is/should, DRY/KISS refactorings and root cause analysis are done this way

full files are usually just copy/pasted, everything else added for cursor as in insttuctions