$catMANUAL||~46 min

Cursor AI IDE: 3 Months In — An Honest Review After Daily Use

advertisement

Cursor AI IDE: 3 Months In — An Honest Review After Daily Use

I've been using Cursor as my primary code editor for the past three months. It started as curiosity — I kept seeing people rave about it on Twitter — and turned into a daily dependency. Here's what it's actually like to live with, warts and all.

The short version

Cursor is the best AI coding tool I've used so far. Not because it's perfect — it has real problems — but because the good parts are good enough that I tolerate the bad parts.

If you code more than 4 hours a day and your projects have any real complexity, Cursor is worth trying. If you only code occasionally or work on simple scripts, GitHub Copilot at half the price makes more sense.

What Cursor actually is

Cursor is a VS Code fork with AI baked into every layer. It's not VS Code with an AI plugin slapped on top. The team rebuilt parts of the editor so that AI is part of the core workflow — autocomplete, multi-file editing, code understanding, terminal commands, all of it.

The model stack includes Claude 3.5 Sonnet, GPT-4o, and Gemini. Autocomplete runs on Supermaven, which is noticeably faster than what Copilot offers.

I first heard about Cursor in late 2025 when my Twitter feed was full of people saying things like "can't go back" and "2x productivity." I figured that was just hype. Then I tried it. Yeah, it's not hype.

The features I actually use

Tab autocomplete: the real killer feature

Cursor's autocomplete uses Supermaven, and once you get used to it, everything else feels slow. It doesn't just complete the current line — it predicts whole blocks of code.

I was writing a React component the other day. After I typed the function signature and a comment, it filled in the entire return statement with JSX structure and event handlers. Maybe 70-80% accurate, which means I only needed minor tweaks.

The auto-import feature is subtle but saves real time. When you use a new package or module, it adds the import statement automatically. No manual work. A small thing, but it adds up over a day.

There's also a predictive cursor feature. When you finish writing one case in a switch statement, it jumps to where the next case should go. Little details like this tell me the Cursor team actually uses their own product.

Composer: multi-file editing done right

Composer is one of Cursor's core features. You select multiple files, describe what you want to change in plain language, and it modifies all relevant files at once.

This is incredible for refactoring. I migrated a project from REST to GraphQL recently — touched maybe 15 files. With Composer, I described the migration rules and it updated resolvers, schemas, frontend queries, all of it. Was it perfect? No. But it gave me an 80% correct starting point, and I only needed to tweak the rest. Way faster than doing it file by file.

The workflow is: select files, write your request in the chat, review the diff preview, accept or reject changes per file. The control granularity is good — you can accept individual lines if you want.

The most complex thing I did with Composer was migrating an auth system from JWT to session-based. Backend middleware, frontend request interceptors, database schema, route protection logic — maybe a dozen files. Manual work would've taken a full day. Composer got it done in about two hours, and it handled details I hadn't even thought of, like cleaning up the token refresh logic.

Agent Mode: let the AI figure it out

Agent Mode is newer and more controversial. Turn it on, and the AI decides which files to create or modify, which commands to run, and keeps working until the task is done.

I asked it to "build a Next.js app with user authentication." It actually did it — created files, installed dependencies, wrote code, and got it running. The code quality was mediocre, but as a starting point it worked.

The problem: Agent Mode burns through credits fast. One moderately complex task can eat several days' worth of quota. I only use it when I really need to, sticking with Composer and Tab for daily work.

Agent Mode is best for repetitive, well-defined tasks: adding tests to existing modules, batch style changes, generating CRUD endpoints. These have clear rules and the AI rarely messes them up.

@Codebase: understanding the whole project

Type @Codebase in Cursor's chat and the AI understands your entire project structure. Ask it "where is the auth middleware defined" or "which files handle payment processing" and it finds them fast.

This is better than grep because it understands semantic relationships, not just string matching. When you remember roughly what something does but can't recall the file name, this finds it instantly.

I use it constantly when onboarding onto unfamiliar codebases. "What's the main entry point?" "How's the database configured?" "What's the error handling strategy?" It gives you a solid overview way faster than reading through files one by one.

Inline Editing: quick fixes

Select a block of code, hit Cmd+K (Mac) or Ctrl+K (Windows/Linux), describe your change. Good for small edits: "convert this loop to reduce," "add error handling," "rename this variable to something clearer."

Fast, low friction, no context switching to Composer.

Real problems I've hit

Performance on large projects

This is my biggest complaint. My main project is around 50,000 lines. Cursor occasionally stutters, especially during indexing. Sometimes AI responses slow down or the editor freezes.

I was doing an urgent bug fix once and Cursor locked up for about 30 seconds. By the time it recovered, I'd already fixed the bug manually. Infuriating.

If you're working on an enterprise monorepo with hundreds of thousands of lines, expect worse. I've seen reports of Cursor freezing entirely on large monorepos. No great solution yet — just have to wait for the team to optimize.

To be fair, VS Code itself gets sluggish on big projects. But the AI features definitely add to the resource burden.

Unpredictable credit consumption

In August 2025, Cursor switched from simple request limits to a usage-based credit system. The community was not happy.

The problem is opacity. Simple tasks use a few credits. Complex tasks or Agent Mode can burn through a lot. You can't easily predict your monthly spend.

I'm on Pro at $20/month — 500 fast requests plus unlimited slow requests. Daily development is fine, but heavy refactoring months stretch the quota. When I hit the limit, I switch to slow requests and wait longer.

My advice: start with Free to understand your usage patterns. If daily usage is light, Free might be enough. If it's heavy, upgrade to Pro.

One trick: you can choose which model to use in settings. Some models cost more credits than others. If you don't have a strong preference, pick a cheaper one.

AI makes mistakes

This isn't Cursor's fault specifically, but it matters. AI-generated code isn't 100% correct. It misses edge cases. It gets logic wrong.

I've had multiple instances where code compiled fine, passed lint, but had runtime bugs. A sorting function that broke on empty arrays. A database query where AND/OR precedence was wrong, returning completely incorrect results. The kind of logic errors that are hard to spot without careful review.

Don't drop your review habits just because AI wrote the code. AI helps you write code. It doesn't take responsibility for it.

Learning curve

Cursor is based on VS Code, so basic usage is familiar. But getting the most out of it takes practice. You need to figure out when to use Tab, when to use Composer, when to use Agent Mode, and how to write prompts that actually work.

Early on I wrote vague prompts like "optimize this function" and got results that were either too aggressive or not what I wanted. Learning to be specific made a huge difference.

Another common mistake: over-relying on AI for every single line. I've seen people wait for AI suggestions on trivial code. That's slower than just typing. AI is for acceleration, not replacement. Simple code: write it yourself. Complex code: let AI help.

Pricing

Cursor's current plans:

  • Free: $0, includes a 2-week Pro trial, 2,000 completions, 50 slow requests
  • Pro: $20/month, unlimited completions, 500 fast requests, unlimited slow
  • Ultra: $200/month, priority features, maximum quota
  • Business: $40/user/month, team features, admin controls

Is $20/month expensive? Depends on how you count. If you code 4 hours a day and Cursor saves you 1-2 hours, that's 30-60 hours a month. At $50/hour, that's $1,500-3,000 in time value. $20 is a bargain.

If you code occasionally on simple projects, $20 is probably not worth it. GitHub Copilot at $10/month handles basic scenarios fine.

The Ultra plan at $200/month is for heavy users and teams. Individual developers rarely need it.

How it compares to other tools

Cursor vs GitHub Copilot

Copilot is a VS Code extension. Cursor is a standalone IDE. Feature-wise, Cursor is stronger, especially for multi-file editing and project understanding. But Copilot is cheaper and doesn't require switching editors.

My take: simple projects or occasional coding, use Copilot. Full-time developer with complex projects, try Cursor.

Copilot is adding Agent features recently, so the gap is narrowing. But right now, Cursor's overall experience is still ahead.

Cursor vs Claude Code

Claude Code is a terminal-based AI coding agent — completely different approach. Claude Code excels at deep thinking tasks: architecture design, complex debugging, large-scale analysis. Cursor is better for daily code writing and editing.

I use both. Cursor for everyday coding, Claude Code when I hit something complex that needs deeper analysis. They're complementary, not competitive.

Claude Code's advantage is that it can run commands, read files, and do more thorough analysis. But the terminal interface isn't as intuitive as Cursor's GUI.

Cursor vs Windsurf

Windsurf is also a VS Code-based AI IDE with similar features. It's cheaper ($15/month) and reportedly more stable for enterprise use.

Cursor's advantages: larger community, faster updates, more model options. If you're torn between them, try both free versions and see which fits your workflow better.

I used Windsurf for a while. Its Cascade feature (similar to Cursor's Composer) is decent. But Cursor's Tab autocomplete is more accurate, and the community resources are more extensive, so I switched back.

Tips from three months of daily use

Write specific prompts

Don't write "optimize this function." Write "convert this function's loop to map, add error handling, change the return type to Result." The more specific, the better the output.

Give context too. If you want an API endpoint, tell it what ORM you use, your error handling strategy, your response format. The generated code will match your project conventions much better.

Use @ symbols

Cursor's chat supports @ symbols for context. @Codebase for the whole project, @file for specific files, @symbol for specific functions or variables. Using these makes the AI much more accurate.

Break big tasks into steps

Don't ask the AI to do everything at once. Split it into small steps, verify each one. Fewer errors, easier debugging.

Building a full CRUD API? Don't ask for all of it. First create the data model. Then write the endpoint logic. Then add validation and error handling. Step by step.

Use Composer for refactoring

Refactoring is Composer's sweet spot. Converting a function from sync to async? The caller needs changes too? Composer handles all related files at once.

I use Composer most for renaming and style unification. Changing var to const/let across a project, converting callbacks to async/await — Composer handles these batch changes well.

Review everything

AI-generated code needs review. Not because AI is bad, but because it doesn't understand your business logic and edge conditions. Quick scan for obvious issues — conditionals, error handling, boundary cases. Don't skip this.

My habit: glance at the diff before accepting. Focus on conditionals, error handling, and edge cases. These are where AI screws up most often.

Set up .cursorrules

Cursor supports a .cursorrules file in your project root to define AI behavior. Code style, design patterns, things to avoid. Strongly recommended — it makes generated code match your conventions and reduces review work.

Lots of templates online. Start with one and customize it for your project.

Real scenarios where Cursor helped

Rapid prototyping

PM needed a data dashboard prototype in two days. Previously: project structure, routes, components, data connections — a day and a half minimum. With Cursor: Agent Mode for the skeleton, Composer for feature modules, Inline Editing for styling tweaks. Done in one day, with half a day left for testing.

Cursor shines here. It handles boilerplate — CRUD operations, route configs, component structures — so you can focus on core business logic.

Debugging a nasty bug

Users were getting randomly logged out, but I couldn't reproduce locally. Asked Cursor's @Codebase "where's the token refresh logic?" It found the relevant files and functions. Then it analyzed possible causes and listed several, including a timing issue between token expiration and refresh requests.

That was the actual cause. Cursor saved me at least two hours of investigation. In this scenario it worked more like a smart code search and analysis tool than a code generator.

Code review assistance

PR reviews with lots of file changes are tedious to do manually. I tried pasting PR diffs into Cursor and asking it to flag potential issues. It caught things I'd missed: unhandled edge cases, swallowed errors, inconsistent variable naming.

Not everything it flagged was a real problem — some were false positives. But as an assistant, it caught several genuine issues I'd overlooked.

Learning a new tech stack

I needed Python's asyncio for a project but wasn't familiar with it. Asked Cursor to write an async crawler example, then questioned the code line by line: "what does this await mean?" "why asyncio.gather?" "how should error handling work?"

Way faster than reading docs, because it explains based on your actual code rather than abstract concepts. You do need programming basics though — if you can't read the generated code, this approach won't help.

Things people often ask

Does Cursor need internet? Yes, for AI features. The models run in the cloud. Basic editing works offline.

What languages does Cursor support? All major ones — Python, JavaScript, TypeScript, Java, Go, Rust, C++, etc. VS Code's language support plus trained AI models covers a lot.

Does Cursor use my code to train models? Pro and Business plans: no, according to Cursor's official policy. Free plan: possibly for service improvement. Check their privacy policy for details.

Can I use Cursor and Copilot together? Technically yes, but there's no point. Overlapping features, potential conflicts, wasted resources. Pick one.

How often does Cursor update? Frequently — small updates weekly, major updates monthly. The AI field moves fast and Cursor's team keeps pace.

The privacy question

Cursor's AI features send code to the cloud for processing. Your code passes through Cursor's servers.

For personal and open source projects, this is usually fine. For company projects with trade secrets, think carefully.

Cursor's Business plan promises not to use your code for training, with enterprise-grade security. But if your company has strict code privacy requirements, you might need local models or fully offline solutions.

My approach: personal and open source projects use Cursor freely. Company projects depend on sensitivity. Internal tools and non-core code? Cursor is fine. Core business logic and algorithms? I write those manually.

Background Agents

Cursor recently launched Background Agents — you can start an AI task in the background and keep working on other things. Tell it "write unit tests for this module," switch to another window, and get notified when it's done.

Still early days. I've tried it a few times and the experience isn't polished yet. Sometimes it gets stuck and needs manual intervention. But the direction is right — AI coding is clearly moving toward more autonomy.

Background Agents work best for independent, well-defined tasks: writing tests, generating docs, batch refactoring. Tasks that don't need much contextual understanding and where AI rarely makes mistakes.

For complex, interactive tasks, Composer or Agent Mode are still more reliable. Background Agents are more like "background runners" for repetitive work.

Cursor and VS Code

Cursor is a VS Code fork, but not a thin wrapper. It modifies VS Code's core to deeply integrate AI.

What this means in practice:

  • VS Code extensions mostly work, but not 100%. Some have minor issues.
  • VS Code shortcuts and habits carry over. Low learning cost.
  • VS Code updates get incorporated, but sometimes with a delay.
  • Cursor has features VS Code doesn't: Composer, Agent Mode, @Codebase.

Switching from VS Code is low cost. Install Cursor, import your config, done.

I keep both installed. Daily development in Cursor, simple edits and code reading in VS Code. They coexist fine.

Who should use Cursor

Good fit:

  • Developers coding 4+ hours daily
  • Projects with real complexity and multi-file coordination
  • Willing to invest time learning AI-assisted workflows
  • $20/month isn't a problem

Not ideal:

  • Programming beginners who need to build fundamentals first
  • Simple scripts and small projects
  • Projects with extreme code privacy requirements
  • Budget-conscious where $20 feels expensive

What's next

I want to try Cursor's Background Agents more thoroughly once it matures. Also planning to explore .cursorrules customization to make the AI better match my code style and project conventions. If I figure that out well, I'll write another post about it.

Questions? Drop them in the comments. If you're also using Cursor, I'd love to hear about your experience.

advertisement

Cursor AI IDE: 3 Months In — An Honest Review After Daily Use — AI Hub