<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Saif Warraich</title>
    <description>The latest articles on DEV Community by Saif Warraich (@saifwarraich).</description>
    <link>https://dev.to/saifwarraich</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3448332%2Ff8c3c20b-d1ba-4bd0-b1e7-9845058c52da.png</url>
      <title>DEV Community: Saif Warraich</title>
      <link>https://dev.to/saifwarraich</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saifwarraich"/>
    <language>en</language>
    <item>
      <title>How to Install Cursor AI Code Editor on Ubuntu Linux: A Complete Step-by-Step Guide</title>
      <dc:creator>Saif Warraich</dc:creator>
      <pubDate>Wed, 20 Aug 2025 18:54:21 +0000</pubDate>
      <link>https://dev.to/saifwarraich/how-to-install-cursor-ai-code-editor-on-ubuntu-linux-a-complete-step-by-step-guide-1289</link>
      <guid>https://dev.to/saifwarraich/how-to-install-cursor-ai-code-editor-on-ubuntu-linux-a-complete-step-by-step-guide-1289</guid>
      <description>&lt;p&gt;Cursor is an AI-powered code editor built as a fork of Visual Studio Code, bringing advanced AI capabilities directly into your coding workflow. If you're running Ubuntu or any Debian-based Linux distribution, this guide will walk you through the complete installation process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ubuntu 22.04 or any Debian-based Linux distribution&lt;/li&gt;
&lt;li&gt;Terminal access with sudo privileges&lt;/li&gt;
&lt;li&gt;Basic familiarity with command-line operations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Download Cursor
&lt;/h2&gt;

&lt;p&gt;First, visit &lt;a href="https://cursor.com/downloads" rel="noopener noreferrer"&gt;cursor.com/downloads&lt;/a&gt; and download the Linux version. The download will be an AppImage file (approximately named &lt;code&gt;Cursor-1.4.5-x86_64.AppImage&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Make the AppImage Executable
&lt;/h2&gt;

&lt;p&gt;Navigate to your downloads directory and make the AppImage executable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod a+x Cursor-1.4.5-x86_64.AppImage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this step?&lt;/strong&gt; AppImage files need executable permissions to run. By default, downloaded files don't have execute permissions for security reasons.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Install FUSE Library
&lt;/h2&gt;

&lt;p&gt;Install the required FUSE library that AppImages need to function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install libfuse2t64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this step?&lt;/strong&gt; AppImages use FUSE (Filesystem in Userspace) to mount and run applications. Without this library, the AppImage won't execute properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Move Cursor to a Permanent Location
&lt;/h2&gt;

&lt;p&gt;Move the AppImage to a system directory for easier access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mv Cursor-1.4.5-x86_64.AppImage /opt/cursor.AppImage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this step?&lt;/strong&gt; Placing the application in /opt/ follows Linux conventions for optional software packages and ensures it's available system-wide rather than cluttering your downloads folder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Create a Desktop Entry (Optional but Recommended)
&lt;/h2&gt;

&lt;p&gt;Create a desktop entry so Cursor appears in your applications menu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo vi /usr/share/applications/cursor.desktop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We're using Vim here (the terminal text editor that's either your best friend or your worst nightmare). Add the following content to the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Desktop Entry]
Name=Cursor
Exec=/opt/cursor.AppImage
Icon=/path/to/cursor/logo.png
Type=Application
Categories=Development;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhzv7sy2fs1yjc7xgz41.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhzv7sy2fs1yjc7xgz41.png" alt="Creating the Cursor desktop entry file in Vim editor with the configuration that adds Cursor to the applications menu" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;First time using Vim? Here's your survival guide:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Press i to enter Insert mode (now you can type)&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Press Esc to exit Insert mode&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Type :wq and press Enter to save and quit&lt;/em&gt;&lt;br&gt;
&lt;em&gt;If you mess up, type :q! to quit without saving&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Why this step?&lt;/strong&gt; Desktop entries allow you to launch applications from your desktop environment's application menu instead of always using the terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can download a Cursor logo or use any icon you prefer. Just update the Icon path accordingly, or omit this line if you don't want a custom icon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Create a Wrapper Script
&lt;/h2&gt;

&lt;p&gt;Create a convenient command-line launcher:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo vi /usr/local/bin/cursor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add this content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash
/opt/cursor.AppImage "$@" &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5xvh0etez4oy458dpp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5xvh0etez4oy458dpp8.png" alt="Adding the bash wrapper script content in Vim that allows launching Cursor from terminal with clean output" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make the script executable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod +x /usr/local/bin/cursor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this step?&lt;/strong&gt; This wrapper script allows you to launch Cursor from anywhere in your terminal by simply typing cursor. It also runs the application in the background and suppresses output to keep your terminal clean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Configure AppArmor Security Profile
&lt;/h2&gt;

&lt;p&gt;Create a security profile for AppArmor (Ubuntu's security system):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo vi /etc/apparmor.d/cursor-appimage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add this content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;tunables/global&amp;gt;

profile cursor /opt/cursor.AppImage flags=(unconfined) {
    #include &amp;lt;abstractions/base&amp;gt;

    /opt/cursor.AppImage mr,
    owner @{HOME}/** rw,
    /tmp/** rwk,
    /proc/sys/kernel/yama/ptrace_scope r,
    /sys/devices/system/cpu/cpufreq/policy*/cpuinfo_max_freq r,
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ellwyhqwq2a2bwnw8ce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ellwyhqwq2a2bwnw8ce.png" alt="Configuring the AppArmor security profile in Vim to define system resource access permissions for Cursor" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Load the security profile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apparmor_parser -r /etc/apparmor.d/cursor-appimage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this step?&lt;/strong&gt; This creates a security profile that defines what system resources Cursor can access. Recent Ubuntu versions may block AppImages without proper AppArmor profiles, so this prevents potential security errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Launch Cursor
&lt;/h2&gt;

&lt;p&gt;Now you can launch Cursor in several ways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;From terminal:&lt;/strong&gt; Simply type cursor . (the dot opens current directory)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From applications menu:&lt;/strong&gt; Look for Cursor in your development applications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct execution:&lt;/strong&gt; Run /opt/cursor.AppImage&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Troubleshooting Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If you encounter permission issues, ensure all files have correct permissions&lt;/li&gt;
&lt;li&gt;For older Ubuntu versions, you might need libfuse2 instead of libfuse2t64&lt;/li&gt;
&lt;li&gt;If AppArmor blocks execution, verify the security profile is correctly loaded&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Installing Cursor on Ubuntu is straightforward once you understand each step's purpose. The installation process might seem involved, but each step serves a specific purpose in creating a robust, secure, and user-friendly setup.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Have you tried Cursor on Linux? Share your experience in the comments below! If this guide helped you, please give it a like and share it with other developers.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cursor</category>
      <category>ubuntu</category>
      <category>linux</category>
      <category>debian</category>
    </item>
  </channel>
</rss>
