My Honest Opinion of Cursor
I've been hearing about Cursor for a while from fellow A.I. enthusiasts like Will Blackburn, and I finally decided to give it a try for a React Native side project. After diving into it, here are my initial thoughts and lessons I learned.
How I got started with cursor
Download and Installation
The process began with a slow download from the Cursor website. Likely a consequence of being at a busy coffee shop during peak hours. Once downloaded, I placed the Cursor installer in my Applications folder and launched it with the familiar macOS shortcut (Command + Space). The installation was straightforward, setting the stage for exploring its features.
Launching Cursor from the Terminal
After watching various tutorials and noticing how they were manually uploading projects inside cursor, I wondered if I could open a project via a terminal command like I usually do with VS code. After launching cursor I found my answer after noticing the option to install the cursor command in my path variable.
If you decide you don’t want to install the cursor command in your path variable during setup, no worries! You can use the Command Palette (Shift + Command + P + type shell) within Cursor to run the shell command installation at a later time.
🚀Dev knowledge
The purpose of adding the cursor executable to your path is so you can save time. With the cursor executable in your path variable, you can simply type ‘cursor’ instead of /usr/local/bin/cursor in your terminal
🚀Dev tip
You can use the which command to verify if the proper path to execute the cursor command has been added to your path variable. Or test it out with a project
Cursor sees all
One of Cursor’s standout features is its ability to semantically index your entire codebase. This means it can answer questions using the full context of your code and potentially help write better code by referencing existing implementations. Below are my current thoughts on this feature.
Amazing Potential:
I suspect most humans can’t keep the entire context of a large codebase in their mind. This means as your code base grows, cursor should be able to see edge cases and avoid them by making adjustments in your code. This is a potentially game changer.Potential Pitfalls:
If your codebase is messy or if modifications aren’t carefully managed, the results could be confusing or even detrimental. Fortunately, Cursor includes checkpoints, so you can revert to previous states if something goes wrong.
Security and File Management Concerns
Handling Sensitive Files
According to their docs:
While a .cursorignore file can prevent files from being indexed, those files may still be included in AI requests, such as if you recently viewed a file and then ask a question in the chat. We are considering adding a .cursorban file to address the use case of wanting to block files from being sent up in any request
For medium to large companies, this is critical since security should be paramount. Since I'm working on a side project with minimal security concerns, I’m comfortable moving forward with Cursor as it stands. However, organizations with more stringent security needs should watch for updates addressing this file exposure issue.
Final Thoughts
Overall, my experience with Cursor has been positive. It’s a promising tool that could revolutionize how we interact with and understand our codebases. While the potential security and file management issues are something to be aware of, the benefits of semantic indexing and easy integration with your development environment make it a compelling choice for developers. I’m excited to see how Cursor evolves and whether it can become a staple in both small projects and enterprise environments.
What do you think?
Have you had similar experiences with Cursor, or do you have any concerns about its features?
Let’s discuss!