diff --git a/totally_reset_cursor.py b/totally_reset_cursor.py index b32b050..c6391b7 100644 --- a/totally_reset_cursor.py +++ b/totally_reset_cursor.py @@ -2,6 +2,8 @@ import os import shutil import platform import time +import uuid +import subprocess def delete_directory(path): """Deletes a directory and all its contents.""" @@ -25,6 +27,36 @@ def delete_file(path): else: print(f"šŸ” Not found: {path}") +def reset_machine_id(): + """Resets the machine ID to a new UUID.""" + new_id = str(uuid.uuid4()) + if platform.system() == "Windows": + try: + subprocess.run( + ["reg", "add", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography", "/v", "MachineGuid", "/d", new_id, "/f"], + check=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + print(f"āœ… MachineGuid reset to: {new_id}") + except subprocess.CalledProcessError as e: + print(f"āŒ Failed to reset MachineGuid: {e}") + elif platform.system() == "Linux": + machine_id_paths = ["/etc/machine-id", "/var/lib/dbus/machine-id"] + for path in machine_id_paths: + if os.path.exists(path): + try: + with open(path, 'w') as f: + f.write(new_id) + print(f"āœ… Reset machine ID at: {path}") + except Exception as e: + print(f"āŒ Failed to reset machine ID at {path}: {e}") + elif platform.system() == "Darwin": # macOS + # macOS typically doesn't use a machine-id file like Linux + print("ā„¹ļø macOS does not use a machine-id file. Skipping machine ID reset.") + else: + print("āŒ Unsupported operating system for machine ID reset.") + def reset_cursor(): print("\nšŸš€ Resetting Cursor AI...\n") @@ -40,12 +72,10 @@ def reset_cursor(): "/opt/cursor", "/usr/bin/cursor", os.path.expanduser("~/.cursor/machine-id.db"), - os.path.expanduser("~/.local/share/cursor"), - os.path.expanduser("~/.config/Cursor"), os.path.expanduser("~/.local/share/Cursor"), + os.path.expanduser("~/.config/Cursor"), os.path.expanduser("~/.cache/Cursor") ] - elif platform.system() == "Darwin": # macOS paths = [ os.path.expanduser("~/Library/Application Support/Cursor"), @@ -53,7 +83,6 @@ def reset_cursor(): "/Applications/Cursor.app", os.path.expanduser("~/Library/Preferences/com.cursor.app.plist"), ] - elif platform.system() == "Windows": paths = [ os.path.expanduser("~\\AppData\\Local\\Cursor"), @@ -66,11 +95,11 @@ def reset_cursor(): "C:\\Users\\%USERNAME%\\AppData\\Local\\Cursor", "C:\\Users\\%USERNAME%\\AppData\\Roaming\\Cursor", ] - + # Remove directories for path in paths: delete_directory(path) - + # Remove common files related to Cursor files = [ os.path.expanduser("~/.cursor/machine-id.db"), @@ -78,10 +107,10 @@ def reset_cursor(): os.path.expanduser("~/.config/cursor/preferences.json"), os.path.expanduser("~/.cache/cursor.log"), ] - + for file in files: delete_file(file) - + # Extra cleanup (wildcard search) print("\nšŸ” Deep scanning for hidden Cursor files...") base_dirs = ["/tmp", "/var/tmp", os.path.expanduser("~")] # Linux and macOS @@ -96,7 +125,10 @@ def reset_cursor(): for file in files: if "cursor" in file.lower(): delete_file(os.path.join(root, file)) - + + # Reset machine ID + reset_machine_id() + print("\nāœ… Cursor AI has been completely reset!") def main():