Hey there, coder! π So, youβve been loving Cursor, that sweet AI-powered code editor, but your free trial just ended, and youβre not ready to commit to a paid plan. No stress!
Hereβs a chill, step-by-step guide to keep using Cursor for free on your MacOS/Linux machine. Weβll use a simple script and a disposable email to reset your trial like a pro. Donβt worry, Iβll explain what the script does, why itβs safe, and how to make it all work.
Later I'll update this blog to make it usefull in windows as well
I haven't tried it on linux but i speculate it will work there as well go give it a try
Letβs dive in! π
Follow me on X
What Youβll Need
- A MacOS computer (Intel or Apple Silicon, doesnβt matter, we got you covered).
- Basic familiarity with the Terminal (donβt worry, itβs super easy).
- An internet connection to grab a temporary email and download the scriptβs goodies.
- A vibe for keeping things simple and free. π
Step-by-Step Guide to Keep Cursor Free
Step 1: Sign Out of Cursor
Once your free trial is over, open the Cursor app and sign out of your account. This clears the slate for a fresh start. Close the app completely when youβre done.
Step 2: Clear Cursorβs Data
To reset the trial, we need to remove some local data Cursor stores on your Mac. Open your Terminal (you can find it in Applications > Utilities or search for it with Spotlight). Run these commands one by one:
sudo rm -rf ~/Library/Application\ Support/Cursor
sudo rm -rf ~/Library/Application\ Support/cursor-updater
Whatβs happening here?
These commands delete Cursorβs local data, like cached settings and trial info. The sudo
part means youβre running it with admin privileges, so youβll need to enter your Mac password. Donβt worry, this is totally safeβitβs just clearing out app-specific files, not touching anything critical to your system. Itβs like wiping the appβs memory so it thinks itβs being installed fresh.
Step 3: Close Cursor
Make sure the Cursor app is fully closed. You can do this by right-clicking its icon in the Dock and selecting Quit, or use Command + Q
when the app is active.
Step 4: Create the Magic Script
Now, weβre gonna create a script called install.sh
that automates downloading and setting up a fresh Cursor install. Open Terminal and create the file by typing:
nano install.sh
Copy and paste the following script into the Terminal window:
You can get the script form here as well -
https://github.com/yeongpin/cursor-free-vip
The script
#!/bin/bash
# Color definitions
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
# Logo
print_logo() {
echo -e "${CYAN}"
cat << "EOF"
ββββββββββ ββββββββββ ββββββββ βββββββ βββββββ βββββββ βββββββ βββββββ
βββββββββββ ββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββ
βββ βββ ββββββββββββββββββββββ βββββββββββ βββββββββββββββββββ βββ
βββ βββ ββββββββββββββββββββββ βββββββββββ βββββββ βββββββββββ βββ
ββββββββββββββββββββ βββββββββββββββββββββββ βββ βββ βββ ββββββββββββ
βββββββ βββββββ βββ βββββββββββ βββββββ βββ βββ βββ βββ βββ βββββββ
EOF
echo -e "${NC}"
}
# Get download folder path
get_downloads_dir() {
if [[ "$(uname)" == "Darwin" ]]; then
echo "$HOME/Downloads"
else
if [ -f "$HOME/.config/user-dirs.dirs" ]; then
. "$HOME/.config/user-dirs.dirs"
echo "${XDG_DOWNLOAD_DIR:-$HOME/Downloads}"
else
echo "$HOME/Downloads"
fi
fi
}
# Get latest version
get_latest_version() {
echo -e "${CYAN}βΉοΈ Checking latest version...${NC}"
latest_release=$(curl -s https://api.github.com/repos/yeongpin/cursor-free-vip/releases/latest) || {
echo -e "${RED}β Cannot get latest version information${NC}"
exit 1
}
VERSION=$(echo "$latest_release" | grep -o '"tag_name": ".*"' | cut -d'"' -f4 | tr -d 'v')
if [ -z "$VERSION" ]; then
echo -e "${RED}β Failed to parse version from GitHub API response:\n${latest_release}"
exit 1
fi
echo -e "${GREEN}β
Found latest version: ${VERSION}${NC}"
}
# Detect system type and architecture
detect_os() {
if [[ "$(uname)" == "Darwin" ]]; then
# Detect macOS architecture
ARCH=$(uname -m)
if [[ "$ARCH" == "arm64" ]]; then
OS="mac_arm64"
echo -e "${CYAN}βΉοΈ Detected macOS ARM64 architecture${NC}"
else
OS="mac_intel"
echo -e "${CYAN}βΉοΈ Detected macOS Intel architecture${NC}"
fi
elif [[ "$(uname)" == "Linux" ]]; then
# Detect Linux architecture
ARCH=$(uname -m)
if [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then
OS="linux_arm64"
echo -e "${CYAN}βΉοΈ Detected Linux ARM64 architecture${NC}"
else
OS="linux_x64"
echo -e "${CYAN}βΉοΈ Detected Linux x64 architecture${NC}"
fi
else
# Assume Windows
OS="windows"
echo -e "${CYAN}βΉοΈ Detected Windows system${NC}"
fi
}
# Install and download
install_cursor_free_vip() {
local downloads_dir=$(get_downloads_dir)
local binary_name="CursorFreeVIP_${VERSION}_${OS}"
local binary_path="${downloads_dir}/${binary_name}"
local download_url="https://github.com/yeongpin/cursor-free-vip/releases/download/v${VERSION}/${binary_name}"
# Check if file already exists
if [ -f "${binary_path}" ]; then
echo -e "${GREEN}β
Found existing installation file${NC}"
echo -e "${CYAN}βΉοΈ Location: ${binary_path}${NC}"
# Check if running as root
if [ "$EUID" -ne 0 ]; then
echo -e "${YELLOW}β οΈ Requesting administrator privileges...${NC}"
if command -v sudo >/dev/null 2>&1; then
echo -e "${CYAN}βΉοΈ Starting program with sudo...${NC}"
sudo chmod +x "${binary_path}"
sudo "${binary_path}"
else
echo -e "${YELLOW}β οΈ sudo not found, trying to run normally...${NC}"
chmod +x "${binary_path}"
"${binary_path}"
fi
else
# Already running as root
echo -e "${CYAN}βΉοΈ Already running as root, starting program...${NC}"
chmod +x "${binary_path}"
"${binary_path}"
fi
return
fi
echo -e "${CYAN}βΉοΈ No existing installation file found, starting download...${NC}"
echo -e "${CYAN}βΉοΈ Downloading to ${downloads_dir}...${NC}"
echo -e "${CYAN}βΉοΈ Download link: ${download_url}${NC}"
# Check if file exists
if curl --output /dev/null --silent --head --fail "$download_url"; then
echo -e "${GREEN}β
File exists, starting download...${NC}"
else
echo -e "${RED}β Download link does not exist: ${download_url}${NC}"
echo -e "${YELLOW}β οΈ Trying without architecture...${NC}"
# Try without architecture
if [[ "$OS" == "mac_arm64" || "$OS" == "mac_intel" ]]; then
OS="mac"
binary_name="CursorFreeVIP_${VERSION}_${OS}"
download_url="https://github.com/yeongpin/cursor-free-vip/releases/download/v${VERSION}/${binary_name}"
echo -e "${CYAN}βΉοΈ New download link: ${download_url}${NC}"
if ! curl --output /dev/null --silent --head --fail "$download_url"; then
echo -e "${RED}β New download link does not exist${NC}"
exit 1
fi
elif [[ "$OS" == "linux_x64" || "$OS" == "linux_arm64" ]]; then
OS="linux"
binary_name="CursorFreeVIP_${VERSION}_${OS}"
download_url="https://github.com/yeongpin/cursor-free-vip/releases/download/v${VERSION}/${binary_name}"
echo -e "${CYAN}βΉοΈ New download link: ${download_url}${NC}"
if ! curl --output /dev/null --silent --head --fail "$download_url"; then
echo -e "${RED}β New download link does not exist${NC}"
exit 1
fi
else
exit 1
fi
fi
# Download file
if ! curl -L -o "${binary_path}" "$download_url"; then
echo -e "${RED}β Download failed${NC}"
exit 1
fi
# Check downloaded file size
local file_size=$(stat -f%z "${binary_path}" 2>/dev/null || stat -c%s "${binary_path}" 2>/dev/null)
echo -e "${CYAN}βΉοΈ Downloaded file size: ${file_size} bytes${NC}"
# If file is too small, it might be an error message
if [ "$file_size" -lt 1000 ]; then
echo -e "${YELLOW}β οΈ Warning: Downloaded file is too small, possibly not a valid executable file${NC}"
echo -e "${YELLOW}β οΈ File content:${NC}"
cat "${binary_path}"
echo ""
echo -e "${RED}β Download failed, please check version and operating system${NC}"
exit 1
fi
echo -e "${CYAN}βΉοΈ Setting executable permissions...${NC}"
if chmod +x "${binary_path}"; then
echo -e "${GREEN}β
Installation completed!${NC}"
echo -e "${CYAN}βΉοΈ Program downloaded to: ${binary_path}${NC}"
echo -e "${CYAN}βΉοΈ Starting program...${NC}"
# Run program directly
"${binary_path}"
else
echo -e "${RED}β Installation failed${NC}"
exit 1
fi
}
# Main program
main() {
print_logo
get_latest_version
detect_os
install_cursor_free_vip
}
# Run main program
main
Save the file by pressing Ctrl + O
, hit Enter
, then Ctrl + X
to exit nano
.
What does this script do?
This install.sh
script is a helper that automates downloading the latest version of a free Cursor binary from a GitHub repo (yeongpin/cursor-free-vip
). Hereβs the breakdown:
- Prints a cool logo: Just for vibes, it displays a fancy ASCII art logo.
- Finds your Downloads folder: It figures out where your Downloads folder is on your Mac.
- Checks the latest version: It hits up GitHubβs API to grab the latest release version of the Cursor binary.
- Detects your Macβs architecture: It checks if youβre on an Apple Silicon (arm64) or Intel Mac to download the right file.
- Downloads the binary: It pulls the correct Cursor binary for your Mac from GitHub and saves it to your Downloads folder.
- Makes it executable: It sets permissions so you can run the downloaded file.
- Runs the app: It launches the freshly downloaded Cursor app.
Is it safe?
Totally! The script only deletes Cursorβs local data (nothing system-critical), downloads a file from a public GitHub repo, and runs it. It doesnβt mess with your system files, install malware, or do anything shady. Just make sure youβre cool with downloading from the yeongpin/cursor-free-vip
repoβcheck it out on GitHub if you wanna be extra sure. The script also checks the file size to ensure itβs a legit executable, not some random error message.
Step 5: Run the Script
Now, letβs execute the script. In Terminal, run:
sudo bash install.sh
Youβll need to enter your Mac password again because sudo
is used to set executable permissions. The script will download the Cursor binary, make it runnable, and launch it.
Step 6: Interact with the Script
When the script runs, it might prompt you with a menu (depending on the binary). When prompted, press 8 and hit Enter
. This likely selects an option to set up a free version of Cursor. After that, when prompted again, press 0 to exit the script.
Step 7: Reopen Cursor
Open the Cursor app again (it should be in your Downloads folder or wherever the script saved it). Itβll act like a fresh install, ready for a new trial.
Step 8: Get a Disposable Email
Head over to temp-mail.org in your browser. This site gives you a temporary, disposable email address that self-destructs after a whileβperfect for signing up without spamming your real inbox.
- Click to generate a new email address (itβs instant, no registration needed).
- Copy the temporary email address.
Step 9: Create a New Cursor Account
In the Cursor app, sign up for a new account using the temporary email from temp-mail.org. Follow the prompts to create the account, and log in with it. Boom, youβre back in with a fresh trial! π
Step 10: Enjoy Cursor for Free
Youβre all set! You can now use Cursor as if itβs a brand-new install. Note that some features, like Cloud Sonnet 4, might be locked to pro users, but youβll still get the core Cursor experienceβAI code suggestions, sleek editor, all the good stuff.
Why Use a Disposable Email?
Using a temp email (like from temp-mail.org) is clutch because:
- No spam: Your real email stays clean from promotional emails or potential data breaches.
- Privacy: You donβt have to share your personal email with every service.
- Easy resets: If you need to reset your trial again, just grab another temp email and repeat the process.
Temp-mail.org is super user-friendly, anonymous, and doesnβt require any signup. Itβs like a burner phone for your emailβuse it, ditch it, no strings attached.
Tips for Smooth Sailing
- Repeat as needed: If your trial runs out again, just repeat the steps: clear the data, run the script, get a new temp email, and sign up again.
-
Check the GitHub repo: The script pulls from
yeongpin/cursor-free-vip
. If youβre curious, peek at the repo to see whatβs up. - Stay safe: Only run scripts from sources you trust. This oneβs straightforward, but always double-check GitHub repos for sketchy stuff.
- Backup your work: Cursor might reset settings or local data, so save your projects elsewhere before running the script.
Is This Ethical?
This method is about resetting your trial by clearing local data and using a new account with a disposable email. Itβs a gray areaβtechnically, youβre not breaking anything, but youβre extending the trial beyond what the devs might expect. If you love Cursor and can afford it, consider supporting the devs with a paid plan. For now, this is a chill way to keep coding without spending a dime. π
What You Get
With this setup, youβll get Cursorβs core featuresβAI-powered code completion, error detection, and a slick VS Code-like interface. Some premium features (like advanced AI models) might be locked, but youβll still have plenty to work with for coding, debugging, and building dope projects.
Thatβs it, fam! Youβre now ready to keep rocking Cursor for free on your Mac. Hit up the Terminal, run that script, grab a temp email, and code like a boss. If you run into any snags, lemme know, and Iβll help you sort it out. Happy coding! πβ¨
Top comments (0)