Getting Started
Relevant source files
The following files were used as context for generating this wiki page:
This document provides a guide for installing and running the cursor-free-vip tool. The project is a multi-functional utility designed for educational purposes to manage the Cursor AI editor. It provides features for resetting configurations, managing machine IDs, handling account registration, and bypassing certain application limitations. The tool is a command-line application that supports Windows, macOS, and Linux.
The main application, executed via main.py, presents a menu of available operations. These operations range from resetting the application's trial state to managing updates and configuration settings.
Installation
The primary method for getting started is through automated installation scripts tailored for different operating systems. These scripts handle version checking, downloading the appropriate binary, and executing the program.
Sources: README.md:80-92
Windows Installation
For Windows, a PowerShell command is used to download and execute the installation script.
irm https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/scripts/install.ps1 | iex
Sources: README.md:91-92
The script performs the following actions:
- Sets the security protocol to TLS 1.2.
- Fetches the latest release version from the GitHub repository API.
- Constructs the asset name for the Windows executable (e.g.,
CursorFreeVIP_<version>_windows.exe). - Checks if the executable for the latest version already exists in the user's
Downloadsfolder. - If the file exists, it requests administrator privileges and runs the executable.
- If the file does not exist, it downloads the asset from the GitHub release, showing a progress bar.
- Once downloaded, it starts the program.
Sources: scripts/install.ps1:68-210
The diagram below illustrates the Windows installation flow.
Sources: scripts/install.ps1
Linux & macOS Installation
For Linux and macOS, a curl command downloads and executes a shell script.
curl -fsSL https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/scripts/install.sh -o install.sh && chmod +x install.sh && ./install.sh
Sources: README.md:83-85
The script performs the following actions:
- Fetches the latest version tag from the GitHub repository API.
- Detects the operating system (Linux/macOS) and CPU architecture (x64/ARM64).
- Determines the user's
Downloadsdirectory. - Constructs the binary name based on OS, architecture, and version (e.g.,
CursorFreeVIP_<version>_linux_x64). - Checks if the binary already exists. If so, it requests
sudoprivileges and runs it. - If the binary does not exist, it downloads the correct file from the GitHub release.
- Sets executable permissions on the downloaded file and runs it.
Sources: scripts/install.sh:65-176
The diagram below illustrates the Linux/macOS installation flow.
Sources: scripts/install.sh
Arch Linux
Users on Arch Linux can install the tool from the Arch User Repository (AUR).
yay -S cursor-free-vip-git
Sources: README.md:87-90
Main Application Flow
Once installed and executed, the main.py script serves as the entry point. It orchestrates the application's lifecycle, from initialization to presenting the user with a menu of operations.
The startup sequence is as follows:
- Admin Check (Windows): If running as a frozen executable on Windows, it checks for administrator privileges. If not present, it attempts to restart with elevation.
- Logo Display: Prints the application logo and version.
- Configuration Setup: Initializes the configuration by calling
get_config(), which creates a defaultconfig.iniif one doesn't exist. - Update Check: If enabled in the config, it checks for a newer version on GitHub and prompts the user to update if available.
- Menu Display: Prints the main menu of available features.
- User Input: Waits for the user to select an option and executes the corresponding module.
Sources: main.py:414-511
The following sequence diagram shows the application startup process.
Core Features
The tool offers a variety of features accessible through the main menu.
| Feature | Description | Source File |
|---|---|---|
| Reset Machine ID | Resets the machine ID in Cursor's configuration files to bypass trial detection. It generates new UUIDs and updates storage.json and state.vscdb. | reset_machine_manual.py |
| Register Cursor Account | Provides options to register a new Cursor account using a custom email, a personal Google account, or a personal GitHub account. | main.py, locales/en.json |
| Quit Cursor | Terminates all running Cursor processes. | main.py, locales/en.json |
| Change Language | Allows the user to switch the application's display language. | main.py, locales/en.json |
| Disable Auto-Update | Modifies Cursor's files to prevent it from automatically updating. | main.py, locales/en.json |
| Totally Reset Cursor | Performs a comprehensive reset, removing settings, cached data, trial information, and other license-related files. | totally_reset_cursor.py |
| Bypass Version Check | Modifies Cursor's product.json to bypass version restrictions. | main.py, locales/en.json |
| Bypass Token Limit | Modifies workbench.desktop.main.js to bypass token limits. | bypass_token_limit.py |
| Show Config | Displays the current contents of the config.ini file. | config.py |
Sources: main.py:448-509, locales/en.json:2-33, README.md:58-65
Configuration
The application's behavior is controlled by a config.ini file. This file is automatically created on the first run if it does not exist.
Configuration File Location
The configuration file is located in a hidden directory within the user's Documents folder.
- Path:
Documents/.cursor-free-vip/config.ini
Sources: config.py:27-33, README.md:97
Key Configuration Sections
The config.ini file is structured into several sections that control different aspects of the tool.
| Section | Key | Description | Default Value |
|---|---|---|---|
Browser | default_browser | The default browser to use for automation tasks. | chrome |
Browser | chrome_path | The file path to the Chrome executable. | Platform-specific default |
Utils | enabled_update_check | If True, the application checks for new versions on startup. | True |
Utils | enabled_force_update | If True, forces an update of the config file on startup. | False |
Utils | enabled_account_info | If True, displays account information in the menu. | True |
Language | current_language | The language code for the UI. Detected automatically if empty. | '' |
TempMailPlus | enabled | If True, enables the use of TempMailPlus for email verification. | false |
WindowsPaths | storage_path | Path to Cursor's storage.json file on Windows. | %APPDATA%\Cursor\User\globalStorage\storage.json |
MacPaths | storage_path | Path to Cursor's storage.json file on macOS. | ~/Library/Application Support/Cursor/User/globalStorage/storage.json |
LinuxPaths | storage_path | Path to Cursor's storage.json file on Linux. | ~/.config/cursor/User/globalStorage/storage.json |
Sources: config.py:53-200, README.md:101-160