链接:https://github.com/yeongpin/cursor-free-vip

docs:cursor-free-vip

本项目是专为与Cursor AI代码编辑器交互设计的实用工具。

提供通过管理机器标识符修补应用程序文件实现重置试用期的功能,

同时支持使用临时邮箱或浏览器OAuth认证实现自动化注册登录流程。

包含中央菜单界面供用户选择操作,并支持多语言环境。

(无限续杯,每月怒省20🔪)

可视化架构

在这里插入图片描述

章节列表

  1. 主应用程序控制器
  2. 核心工具函数
  3. 配置管理器
  4. 语言翻译器
  5. Cursor数据库接口
  6. 机器标识管理
  7. 自动化注册系统
  8. OAuth浏览器处理器

配置教程

Cursor free VIP

支持最新 0.49.x 版本 | Support Latest 0.49.x Version

  • 本工具仅用于教育目的,当前仓库未违反任何法律法规。请支持原开发项目。本工具不会生成任何虚假邮箱账户和 OAuth 访问权限。

  • 支持 Windows、macOS 和 Linux 系统。

  • 建议以管理员权限运行并保持最新版本以获得最佳性能。

[查看更新日志] | Watch Change Log

功能特点

  • 跨平台支持
    完美兼容 Windows、macOS 和 Linux 系统
  • 配置重置
    一键清除 Cursor 的配置数据
  • 多语言界面
    支持英文、简体中文、繁體中文、越南語四国语言

系统支持

操作系统 架构支持 兼容性
Windows x64, x86
macOS Intel, Apple芯片
Linux x64/x86/ARM64

使用指南

自动化脚本部署

Linux/macOS

curl -fsSL https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/scripts/install.sh -o install.sh && chmod +x install.sh && ./install.sh

Archlinux
通过AUR安装:

yay -S cursor-free-vip-git

Windows

irm https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/scripts/install.ps1 | iex

终止脚本请按 Ctrl+C

运行
在这里插入图片描述

须知

配置文件路径

[文档/.cursor-free-vip/config.ini] (Win/MacOS/Linux 通用)

操作规范

  • 🛡️ 始终以管理员身份运行脚本
  • 🔒 执行脚本前确认已关闭 Cursor 进程

故障排查

现象描述 解决方案
权限不足错误 使用管理员权限重新运行脚本
"用户未授权"错误 确认未使用临时邮箱注册账户
OAuth认证失败 检查网络连接并重试认证流程
配置重置不生效 手动删除配置目录后重新执行脚本

第一章:主应用程序控制器

Main Application Controller

欢迎来到 cursor-free-vip 教程!

这是本教程的第一章,我们将从核心组件开始讲解:主应用程序控制器

想象一下 cursor-free-vip 工具就像一座功能齐全的建筑,每个房间对应不同的任务。当你首次进入这座建筑时,首先会来到接待前台。

主应用程序控制器正是这个核心接待前台

它的职责简单但至关重要:

  1. 迎接用户:工具启动时首先展示的界面
  2. 展示功能选项:呈现工具所有可用功能(如重置账户、切换语言等)的"主菜单"
  3. 接收用户指令:等待用户输入选择的操作编号
  4. 任务路由:根据选择调用对应模块执行具体功能

核心场景:启动工具并选择操作

当运行 main.py 脚本时,主控制器接管流程。

其工作流程包括:

  • 显示菜单界面
  • 捕获用户输入
  • 执行对应功能模块
  • 维护操作循环

使用方法(用户视角)

操作流程直观简单:

  1. 运行 main.py 脚本(通常通过双击可执行文件或在终端执行 python main.py
  2. 控制台显示工具LOGO和主菜单
  3. 根据提示输入操作编号
  4. 按回车确认选择
  5. 工具执行对应操作
  6. 操作完成后自动返回主菜单(退出操作除外)
    在这里插入图片描述

核心用户输入处理代码段示例:

while True:
    try:
        choice_num = 17 # 可用选项总数
        # 捕获用户输入的指令
        choice = input(f"\n{EMOJI['ARROW']} {Fore.CYAN}{translator.get('menu.input_choice', choices=f'0-{choice_num}')}: {Style.RESET_ALL}")

        # ... 后续处理逻辑 ...

    except KeyboardInterrupt:
        # 处理 Ctrl+C 中断
        return
    except Exception as e:
        # 错误处理
        print_menu() # 出错后重新显示菜单

架构解析(开发者视角)

执行流程图解:
在这里插入图片描述

核心代码解析

主函数入口逻辑:

def main():
    # Windows系统管理员权限检查
    if platform.system() == 'Windows' and is_frozen() and not is_admin():
        # ... 提权处理逻辑 ...
        pass 

    # 显示工具LOGO
    print_logo()

    # 配置管理(后续章节详解)
    config = get_config(translator)
    if not config:
        print(f"{Fore.RED}{EMOJI['ERROR']} {translator.get('menu.config_init_failed')}{Style.RESET_ALL}")
        return
    force_update_config(translator)

    # 检查更新(根据配置开关)
    if config.getboolean('Utils', 'enabled_update_check'):
        check_latest_version()
    
    # 初始菜单显示
    print_menu()

    # 主循环维持交互
    while True:
        # ... 输入处理逻辑 ...

菜单生成函数:

def print_menu():
    # 账户信息显示(若启用)
    try:
        config = get_config()
        if config.getboolean('Utils', 'enabled_account_info'):
            import cursor_acc_info
            cursor_acc_info.display_account_info(translator)
    except Exception as e:
        pass 

    # 菜单标题本地化
    print(f"\n{Fore.CYAN}{EMOJI['MENU']} {translator.get('menu.title')}:{Style.RESET_ALL}")
    
    # 菜单项动态生成
    menu_items = {
        0: f"{Fore.GREEN}0{Style.RESET_ALL}. {EMOJI['ERROR']} {translator.get('menu.exit')}",
        1: f"{Fore.GREEN}1{Style.RESET_ALL}. {EMOJI['RESET']} {translator.get('menu.reset')}",
        # ... 其他菜单项 ...
    }

    # 多列布局计算
    # ... 排版优化代码 ...

    # 菜单项循环输出
    # ... 打印控制代码 ...

指令路由逻辑:

def main():
    # ... 初始化流程 ...

    while True:
        try:
            choice = input(f"\n{EMOJI['ARROW']} {Fore.CYAN}{translator.get('menu.input_choice', choices=f'0-{choice_num}')}: {Style.RESET_ALL}")

            # 指令分发器
            match choice:
                case "0":
                    print(f"\n{Fore.YELLOW}{EMOJI['INFO']} {translator.get('menu.exit')}...{Style.RESET_ALL}")
                    return 
                case "1":
                    import reset_machine_manual
                    reset_machine_manual.run(translator)
                    print_menu()
                case "2":
                    import cursor_register_manual
                    cursor_register_manual.main(translator)
                    print_menu()
                case "4":
                    if select_language(): 
                        print_menu()
                    continue 
                case "5":
                    from oauth_auth import main as oauth_main
                    oauth_main('google',translator)
                    print_menu()
                case _:
                    print(f"{Fore.RED}{EMOJI['ERROR']} {translator.get('menu.invalid_choice')}{Style.RESET_ALL}")
                    print_menu()

        except KeyboardInterrupt:
            print(f"\n{Fore.YELLOW}{EMOJI['INFO']}  {translator.get('menu.program_terminated')}{Style.RESET_ALL}")
            return 
        except Exception as e:
            print(f"{Fore.RED}{EMOJI['ERROR']} {translator.get('menu.error_occurred', error=str(e))}{Style.RESET_ALL}")
            print_menu()

总结

主应用程序控制器(位于 main.py)是 cursor-free-vip 工具的:

  • 核心入口点:处理初始化和用户引导
  • 中央调度器:通过菜单系统路由所有功能请求
  • 交互枢纽:维护用户会话的持续性
  • 异常处理器:统一捕获各类运行时错误

下一章我们将深入解析支撑这些功能的核心工具函数

第二章:核心工具函数


第二章:核心工具函数

Core Utility Functions

现在,让我们看看这些不同"功能房间"都需要使用的基础组件。

请将 cursor-free-vip 项目想象成不仅拥有多个功能房间,还包含一个中央车间,其中存放着螺丝刀、锤子、尺子等常用工具。

这些工具不专属于特定房间,而是可以灵活应用于各个场景。

核心工具函数正是这样的中央车间工具库。它们是可复用的代码片段集合,负责处理项目中的通用任务。

通过将这些功能集中存储在 utils.py 文件中,我们避免了代码重复,使项目更整洁、易维护且减少错误。


工具函数的使命

这些函数主要处理以下任务:

  • 跨平台路径处理:自动适配 Windows/macOS/Linux 系统的文件路径差异
  • 随机数生成:创建自然延迟效果或生成唯一标识符
  • 通用工具集任何需要复用的功能模块都可封装为工具函数

核心场景:跨平台路径解析

文件路径处理是工具函数价值的典型例证。

工具需要定位配置文件、数据库文件及浏览器可执行文件,而这些路径因操作系统而异。

若每个模块都自行处理路径适配,代码将变得冗长且易出错。

工具函数通过封装系统检测逻辑,例如调用 get_user_documents_path() 即可获得当前系统的正确文档路径

工具函数调用指南

普通用户通常不会直接使用这些函数,它们由主应用程序控制器调用的功能模块在后台运行。

开发者则可通过导入和调用这些函数来构建新功能。

示例1:获取用户文档路径

# 假设此代码位于 reset_machine_manual.py
import utils 

# 调用工具函数获取跨平台文档路径
documents_folder = utils.get_user_documents_path()
print(f"文档目录路径: {documents_folder}")  # Windows: C:\Users\用户名\Documents | macOS: /Users/用户名/Documents

示例2:生成随机延迟

# 假设此代码位于 oauth_browser_handler.py
import utils, time

# 从配置读取延迟范围(如'short_wait'配置为0.5-1.5秒)
wait_seconds = utils.get_random_wait_time(config, 'short_wait')
time.sleep(wait_seconds)  # 产生0.87秒等随机延迟,模拟人类操作

通过get获取,一层层的包装解耦,调用

实现原理

核心工具函数主要定义于 utils.py 文件。以下是关键函数的实现逻辑:

在这里插入图片描述

核心代码剖析

1. 跨平台文档路径获取

# utils.py
import os, platform

def get_user_documents_path():
    """智能获取用户文档路径"""
    if platform.system() == "Windows":
        try:
            # Windows注册表精准查询(代码略)
            return os.path.expanduser("~\\Documents")
        except:
            return os.path.join(os.environ['USERPROFILE'], 'Documents')
    else:
        return os.path.expanduser("~/Documents")  # macOS/Linux通用方案

异常处理机制

  • 当Windows注册表查询失败时,自动改用环境变量USERPROFILE拼接默认文档路径作为备选方案。
  • platform 模块检测操作系统类型
  • Windows系统通过注册表查询精确路径,失败时使用默认路径
  • 类Unix系统采用标准化路径方案

2. 浏览器驱动路径适配

# utils.py
import sys, os

def get_default_chrome_driver_path():
    """浏览器驱动智能定位"""
    if sys.platform == "win32":
        return os.path.join(__file__, "drivers", "chromedriver.exe")
    elif sys.platform == "darwin":
        return os.path.join(__file__, "drivers", "chromedriver")
    else:
        return "/usr/local/bin/chromedriver"  # Linux标准路径
  • sys.platform 细粒度检测系统类型
  • Windows/macOS使用相对路径定位驱动文件
  • Linux假设驱动已安装至系统目录

3. 自然延迟生成器

# utils.py
import random

def get_random_wait_time(config, timing_key):
    """智能延迟生成系统"""
    try:
        timing = config.get('Timing', {}).get(timing_key, "0.5-1.5")
        min_time, max_time = map(float, timing.split('-'))
        return random.uniform(min_time, max_time)
    except:
        return random.uniform(0.5, 1.5)  # 默认安全范围
  • 从配置系统读取延迟参数范围
  • 支持"0.5-1.5"格式的字符串解析
  • 异常处理确保系统鲁棒性

总结

本章揭示了 cursor-free-vip 的中央工具库设计:

  • 跨平台抽象层封装系统差异,提供统一接口
  • 代码复用典范:通过工具函数消除重复逻辑
  • 可维护性增强核心功能集中管理,便于升级维护

这些基础组件为后续的配置管理系统奠定了基础。下一章我们将深入解析配置管理器如何实现动态参数调整与用户偏好存储

第三章:配置管理器

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐