What Is Cursor?

Basically, Cursor is a fork of VSCode with deeply integrated AI features! I’ve been using Cursor almost exclusively for 4 months now in both my day job as a software engineer, and in my personal projects. This post will serve as both a review of Cursor from my perspective, and a sort of guide to help other .NET Developers navigate the world of creating software exclusively in this fork of VSCode.

This post was written in early 2025, with Cursor 0.48 being the latest release at the time.

Competitors

Cursor has a few competitors, the most prominent of which is Windsurf. I tried windsurf briefly, and it seemed comparable to Cursor, although I prefer Cursor’s UI - so this post will remain focused on only Cursor. (Who knows, this whole post is likely to be outdated in 2 months anyways)

Pricing

As of the writing of this post, Cursor costs $20 a month, which includes 500 fast requests to the “premium” models, and unlimited fast requests to some of the smaller models. Once you hit this limit, you can enable usage-based pricing to pay for more fast requests - and you can set up a quota so you don’t exceed a certain price per month.

For both my personal and work licenses, I’ve only exceeded the base cost by $2-5 a month. I think the cost of Cursor is well worth the boost in productivity that it provides.

Features

Being a fork of VSCode, it has most of the features as the base VSCode (with one notable exception that we’ll get to later). The vast library of VSCode extensions mostly work right out of the box, which is a huge benefit.

Cursor Tab

This is Cursor’s AI-powered autocomplete. It runs while you’re editing a file, and suggests code to complete what you’re writing - but, based on other changes you’ve made recently, not just what’s at the start of the current line.

Cursor will then predict where you want to change next, and pop up a little indicator that you can hit Tab to jump there. Hit Tab again to make whatever Cursor thinks is the appropriate change at that new location! This is excellent for making repetitive changes in a file that are more involved than just a copy/paste.

Agent Mode

This is the bread and butter of these new AI-powered IDEs. Cursor includes a chat window where you can interact with the AI using natural language. There are three built-in modes that you can use, “Ask”, “Manual”, and “Agent”. Ask and Manual are essentially just stripped down subsets of Agent mode, and Agent is what I use 99% of the time, so that’s what I’m going to focus on here.

Editing Files

When you ask the AI Agent to do something to your codebase, it will take into account all of the provided context, including any files attached to your message, and then attempt to make that change. If it discovers that it needs a file that wasn’t attached, it can search through your codebase to find any relevant files.

The agent will then edit the files, and provide a convenient diff that you can walk through, and either accept or reject it on a block-by-block basis.

One important note: when the AI makes changes, it directly changes the files on your disk. Even though you have the chance to review and either accept or reject them, the changes are already made, and you essentially just have the chance to reject them (this is important so the agent can continue working against its own changes). This also means that proper git discipline is extremely important!

Once the agent has made those changes, it can then see any linter errors in the file it just edited. In the case of C#, these will be your compiler errors and warnings. Next comes the fun part.

It can keep going!

That’s what sets the Agent mode apart from the other modes - it can keep looping and making more changes! So, if the agent sees linter errors, it will continue editing the file and try to fix the linter errors, and then repeat the whole process again until either the linter errors are gone, the model decides to stop, or it hits the 25 sequential call limit in place by Cursor (so it doesn’t just churn away forever).

Vibe Coding

Vibe Coding is the idea of taking this AI Agent loop to its natural extreme: just let the AI do everything with as little human intervention as possible!

If you know me, it will be no surprise that I am not a vibe coder. I care about code quality too much for that! We’ll get more into how I balance the unsupervised power of the AI Agent with code quality in a little bit.

Running Commands

One of the other amazing things that this agent can do is run commands. Yes, on your system. And yes, that is scary.

But it’s also extremely powerful! The agent can run your build command, it can run your test command, it can make folders, it can commit your code, it can find and kill processes, it can find out the current date and time, it can SSH into a remote machine, and literally anything else you can do with a terminal command - which is pretty much just “anything”.

Here’s how the agent loop goes for me when working on .NET:

  • I make a request
  • The agent makes changes
  • The agent fixes linter errors in the files it changed
  • The agent runs the dotnet build command
  • The agent fixes any other compilation errors
  • The agent runs the dotnet test command
  • The agent fixes any issues with tests
  • I review the changes, and ask for modifications if necessary
  • I ask the agent to commit (and make a PR if I’m at work)
  • The agent commits my code and makes a PR

That is game-changing, and this isn’t even the most aggressive example of using an AI agent.

This is all done with Cursor’s “Auto-run” mode enabled. If you’re feeling hesitant, you can disable that, and the agent will ask before running any commands. You can also use Auto-run mode with an allowlist, and Cursor will only run commands that you have pre-approved (this is what I do).

Indexed Documentation

Another powerful addition to Cursor’s chat is the ability to add custom documentation for the AI to reference. Enter a URL in Cursor’s settings, Cursor will index it, and then you can reference it in your chat using the @ symbol! The AI can then look through that indexed documentation and use that information when making changes.

Searching the Web

Just like you and me, if the AI needs to find out something that it doesn’t know, it can search the internet for it!

MCP Servers

MCP is a standardized protocol for providing tools and data to AI models. There are many, many MCP servers out there that can augment what the AI can do.

  • Features
    • Agent Mode

    • Multiple Models
    • Rules
      • User Rules
      • Project Rules mdc
  • Migrating from Visual Studio proper
    • Theme and Syntax Highlighting
    • Samsung .Net Debugger
    • Forked Unit Testing extension
    • Resharper replacement?
  • Stability
  • Helpful Tips/My Setup
    • Aegis Framework
    • Custom slash commands
    • Browser Tools MCP
  • Can it replace developers?
  • My stance on AI