DEV Community

Cover image for Cursor has a problem, and it's not just the price
Chris Watson
Chris Watson

Posted on

Cursor has a problem, and it's not just the price

Cursor is a controversial AI code editor forked from VS Code and backed by Y Combinator. The controversies range from the $20-a-month price tag for a limited number of queries, to the closed-source nature of the editor, which was forked from an open-source project, and, of course, to the broader controversy around AI itself. However, this post isn't about any of that.

Surprisingly, one issue I haven't seen discussed much is how Cursor seems to treat Linux as a second-class citizen. To understand what I mean by that, it's important to understand the AppImage format. So let's dive into that for a moment.

The AppImage

In simple terms, AppImages are a "build once, run anywhere" package format for Linux. They bundle all the necessary files, including shared libraries, into a virtual filesystem and add a runtime layer that makes launching your app straightforward. If this sounds similar to Flatpak and Snap, that's because it is. The key difference is that you don't need to install anything to run an AppImage—everything is self-contained.

AppImages, however, come with their own set of issues. One major drawback is that they can't be easily installed like applications from your distribution's package manager. While you can download and run them without much hassle, they lack desktop integration unless you put in extra effort. Tools like AppImagePool and Gear Lever help alleviate this, but at that point, you might as well use Flatpak or Snap to benefit from their built-in sandboxing capabilities.

Cursor on Linux

When you download Cursor for Linux, you get an AppImage. If you're using a distribution like Arch, this isn't as much of an issue because the AUR provides a way for users to make the installation process easier (though it's not perfect, as we'll discuss). For the majority of other distributions, however, you're stuck dealing with the AppImage format and its limitations. Now we can finally get to the part that's been the biggest pain for me.

Coming from VS Code, I had certain expectations when using Cursor. Call it a first-world problem, but I want to be able to launch the editor from the command line, just like you can with VS Code's shell command. You can get part of the way there by renaming cursor.AppImage to cursor and adding it to your PATH, but this approach is flawed. The biggest issue—at least from my perspective—is that it takes over the terminal, making the window/tab unusable while Cursor is open. It also means you have to keep the terminal open.

To address this, you can run the process in the background using cursor . &, but this still results in occasional logs appearing in your terminal. To suppress these, you can pipe the output to /dev/null by running cursor >/dev/null 2>&1 &. While this mostly resolves the problem, it's not a very convenient command to run every time you open Cursor.

Ultimately, installing Cursor on Linux is cumbersome, and using it remains a hassle compared to alternatives like VS Code or Zed.

The Solution

One potential solution is to add a cursor function to your shell profile to handle launching Cursor. This is the workaround I've been using, but it's still far from ideal. Not only do I have to write the script myself, but I also need to set it up on every system where I want to use Cursor. Moreover, I still have to deal with manually installing the AppImage, and updating it requires re-downloading from the Cursor website.

So I did what I do best—I wrote some code. Specifically, I created a few bash scripts and made them available for anyone to use. You can find the project at github.com/watzon/cursor-linux-installer, and it can be installed with a single CURL command:

curl -fsSL https://raw.githubusercontent.com/watzon/cursor-linux-installer/main/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Since all of the code is public, I encourage you to audit it before running it, and please let me know if you encounter any issues. I'm fully aware that this is a solution looking for a problem, but it has been a personal annoyance for me, and until the Cursor team decides to create distro-specific installers or a Flatpak version, this is the method I'll continue using.

Thanks for reading!

Top comments (0)