├── .devcontainer └── devcontainer.json ├── .github └── workflows │ └── update-cursor-links.yml ├── .gitignore ├── LICENSE ├── README.md ├── bun.lock ├── package.json ├── src ├── backfill-linux-arm64.ts ├── backfill-missing-linux-links.ts ├── update-cursor-links.ts ├── update-readme-from-history.ts └── update-readme-with-linux-links.ts ├── tsconfig.json └── version-history.json /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TypeScript + Bun Development", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:18", 4 | "features": { 5 | "ghcr.io/devcontainers/features/node:1": { 6 | "version": "18" 7 | } 8 | }, 9 | "customizations": { 10 | "vscode": { 11 | "extensions": [ 12 | "dbaeumer.vscode-eslint", 13 | "esbenp.prettier-vscode", 14 | "bradlc.vscode-tailwindcss", 15 | "oven.bun-vscode" 16 | ] 17 | } 18 | }, 19 | "postCreateCommand": "curl -fsSL https://bun.sh/install | bash && npm install", 20 | "remoteUser": "node" 21 | } -------------------------------------------------------------------------------- /.github/workflows/update-cursor-links.yml: -------------------------------------------------------------------------------- 1 | name: Update Cursor Download Links 2 | 3 | on: 4 | schedule: 5 | - cron: '0 * * * *' # Run hourly at minute 0 6 | workflow_dispatch: # Allow manual triggering 7 | 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | update-links: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Checkout repository 16 | uses: actions/checkout@v3 17 | 18 | - name: Set up Node.js 19 | uses: actions/setup-node@v3 20 | with: 21 | node-version: '18' 22 | 23 | - name: Setup Bun 24 | uses: oven-sh/setup-bun@v1 25 | with: 26 | bun-version: latest 27 | 28 | - name: Install dependencies 29 | run: bun install 30 | 31 | - name: Run update script 32 | run: bun src/update-cursor-links.ts 33 | 34 | - name: Check for changes 35 | id: git-check 36 | run: | 37 | git diff --exit-code || echo "changes=true" >> $GITHUB_OUTPUT 38 | 39 | - name: Commit and push if changed 40 | if: steps.git-check.outputs.changes == 'true' 41 | run: | 42 | git config --global user.email "github-actions@github.com" 43 | git config --global user.name "GitHub Actions" 44 | git add README.md version-history.json 45 | git commit -m "Update Cursor download links" 46 | git push -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | .pnp 4 | .pnp.js 5 | 6 | # Build artifacts 7 | dist/ 8 | build/ 9 | out/ 10 | 11 | # Bun files 12 | bun.lockb 13 | 14 | # Logs 15 | logs 16 | *.log 17 | npm-debug.log* 18 | yarn-debug.log* 19 | yarn-error.log* 20 | 21 | # Editor directories and files 22 | .idea/ 23 | .vscode/* 24 | !.vscode/extensions.json 25 | !.vscode/settings.json 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | *.sw? 31 | 32 | # OS specific 33 | .DS_Store 34 | Thumbs.db 35 | *.backup -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 oslook 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /bun.lock: -------------------------------------------------------------------------------- 1 | { 2 | "lockfileVersion": 1, 3 | "workspaces": { 4 | "": { 5 | "name": "cursor-downloads-tracker", 6 | "devDependencies": { 7 | "@types/node": "^18.18.0", 8 | "bun-types": "latest", 9 | "typescript": "^5.2.2", 10 | }, 11 | }, 12 | }, 13 | "packages": { 14 | "@types/node": ["@types/node@18.19.76", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-yvR7Q9LdPz2vGpmpJX5LolrgRdWvB67MJKDPSgIIzpFbaf9a1j/f5DnLp5VDyHGMR0QZHlTr1afsD87QCXFHKw=="], 15 | 16 | "@types/ws": ["@types/ws@8.5.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw=="], 17 | 18 | "bun-types": ["bun-types@1.2.4", "", { "dependencies": { "@types/node": "*", "@types/ws": "~8.5.10" } }, "sha512-nDPymR207ZZEoWD4AavvEaa/KZe/qlrbMSchqpQwovPZCKc7pwMoENjEtHgMKaAjJhy+x6vfqSBA1QU3bJgs0Q=="], 19 | 20 | "typescript": ["typescript@5.7.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw=="], 21 | 22 | "undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cursor-downloads-tracker", 3 | "version": "1.0.0", 4 | "devDependencies": { 5 | "@types/node": "^18.18.0", 6 | "typescript": "^5.2.2", 7 | "bun-types": "latest" 8 | }, 9 | "description": "Automatically tracks and updates Cursor download links", 10 | "scripts": { 11 | "build": "tsc", 12 | "start": "bun src/update-cursor-links.ts", 13 | "update": "bun src/update-cursor-links.ts", 14 | "test": "echo \"No tests specified\" && exit 0" 15 | }, 16 | "type": "module" 17 | } -------------------------------------------------------------------------------- /src/backfill-linux-arm64.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs'; 2 | import * as path from 'path'; 3 | import { fileURLToPath } from 'url'; 4 | 5 | // Get dirname in ESM 6 | const __filename = fileURLToPath(import.meta.url); 7 | const __dirname = path.dirname(__filename); 8 | 9 | // Interface for version history JSON 10 | interface VersionHistoryEntry { 11 | version: string; 12 | date: string; 13 | platforms: { 14 | [platform: string]: string; // platform -> download URL 15 | }; 16 | } 17 | 18 | interface VersionHistory { 19 | versions: VersionHistoryEntry[]; 20 | } 21 | 22 | interface DownloadResponse { 23 | downloadUrl: string; 24 | } 25 | 26 | /** 27 | * Fetch specific version download URL for a platform 28 | */ 29 | async function fetchVersionDownloadUrl(platform: string, version: string): Promise { 30 | try { 31 | console.log(`Fetching ${platform} URL for version ${version}...`); 32 | const response = await fetch(`https://www.cursor.com/api/download?platform=${platform}&releaseTrack=${version}`, { 33 | headers: { 34 | 'User-Agent': 'Cursor-Version-Checker', 35 | 'Cache-Control': 'no-cache', 36 | }, 37 | timeout: 10000, 38 | }); 39 | 40 | if (!response.ok) { 41 | console.warn(`HTTP error fetching ${platform} for ${version}: ${response.status}`); 42 | return null; 43 | } 44 | 45 | const data = await response.json() as DownloadResponse; 46 | return data.downloadUrl; 47 | } catch (error) { 48 | console.error(`Error fetching ${platform} URL for version ${version}:`, error instanceof Error ? error.message : 'Unknown error'); 49 | return null; 50 | } 51 | } 52 | 53 | /** 54 | * Try to generate linux-arm64 URL from linux-x64 URL using pattern matching 55 | */ 56 | function generateArm64UrlFromX64(x64Url: string): string | null { 57 | // Pattern 1: Recent builds with glibc in the URL 58 | const glibcPattern = /\/linux\/x64\/appimage\/Cursor-([^-]+)-([^.]+)\.deb\.glibc([^-]+)-x86_64\.AppImage/; 59 | const glibcMatch = x64Url.match(glibcPattern); 60 | 61 | if (glibcMatch) { 62 | // For these URLs, we just need to change x64 to arm64 and x86_64 to aarch64 63 | // The glibc version might be different (2.25 for x64, 2.28 for arm64) 64 | return x64Url 65 | .replace('/linux/x64/', '/linux/arm64/') 66 | .replace('x86_64', 'aarch64') 67 | .replace('glibc2.25', 'glibc2.28'); 68 | } 69 | 70 | // Pattern 2: Downloader.cursor.sh URLs (newer format) 71 | const downloaderPattern = /(https:\/\/downloader\.cursor\.sh\/builds\/[^\/]+)\/linux\/appImage\/x64/; 72 | const downloaderMatch = x64Url.match(downloaderPattern); 73 | 74 | if (downloaderMatch) { 75 | // For these URLs, we just need to change the end part 76 | return `${downloaderMatch[1]}/linux/appImage/arm64`; 77 | } 78 | 79 | // No pattern matched 80 | return null; 81 | } 82 | 83 | /** 84 | * Read version history from JSON file 85 | */ 86 | function readVersionHistory(): VersionHistory { 87 | const historyPath = path.join(process.cwd(), 'version-history.json'); 88 | if (fs.existsSync(historyPath)) { 89 | try { 90 | const jsonData = fs.readFileSync(historyPath, 'utf8'); 91 | return JSON.parse(jsonData) as VersionHistory; 92 | } catch (error) { 93 | console.error('Error reading version history:', error instanceof Error ? error.message : 'Unknown error'); 94 | return { versions: [] }; 95 | } 96 | } else { 97 | console.log('version-history.json not found, creating a new file'); 98 | return { versions: [] }; 99 | } 100 | } 101 | 102 | /** 103 | * Save version history to JSON file 104 | */ 105 | function saveVersionHistory(history: VersionHistory): void { 106 | const historyPath = path.join(process.cwd(), 'version-history.json'); 107 | 108 | // Create a backup before saving 109 | if (fs.existsSync(historyPath)) { 110 | fs.copyFileSync(historyPath, `${historyPath}.backup`); 111 | console.log(`Created backup at ${historyPath}.backup`); 112 | } 113 | 114 | // Pretty print JSON with 2 spaces 115 | const jsonData = JSON.stringify(history, null, 2); 116 | fs.writeFileSync(historyPath, jsonData, 'utf8'); 117 | console.log('Version history saved to version-history.json'); 118 | } 119 | 120 | /** 121 | * Main function to backfill linux-arm64 URLs 122 | */ 123 | async function backfillLinuxARM64(): Promise { 124 | console.log('Starting linux-arm64 backfill process...'); 125 | 126 | // Read the version history 127 | const history = readVersionHistory(); 128 | 129 | if (!history.versions || history.versions.length === 0) { 130 | console.log('No versions found in history file'); 131 | return; 132 | } 133 | 134 | console.log(`Found ${history.versions.length} versions in history`); 135 | 136 | // Process all versions that need updating (have linux-x64 but not linux-arm64) 137 | let versionsToProcess = history.versions 138 | .filter(entry => !entry.platforms['linux-arm64'] && entry.platforms['linux-x64']); 139 | 140 | console.log(`Will process ${versionsToProcess.length} versions in this run`); 141 | 142 | let updatedCount = 0; 143 | let skippedCount = 0; 144 | let errorCount = 0; 145 | 146 | // Process each version 147 | for (let i = 0; i < history.versions.length; i++) { 148 | const entry = history.versions[i]; 149 | const version = entry.version; 150 | 151 | // Skip if linux-arm64 already exists 152 | if (entry.platforms['linux-arm64']) { 153 | //console.log(`Version ${version} already has linux-arm64 URL, skipping`); 154 | skippedCount++; 155 | continue; 156 | } 157 | 158 | // Skip if no linux-x64 URL 159 | if (!entry.platforms['linux-x64']) { 160 | //console.log(`Version ${version} has no linux-x64 URL, skipping`); 161 | skippedCount++; 162 | continue; 163 | } 164 | 165 | // Skip if not in our list to process 166 | if (!versionsToProcess.some(v => v.version === version)) { 167 | console.log(`Version ${version} not in process list, skipping`); 168 | continue; 169 | } 170 | 171 | const x64Url = entry.platforms['linux-x64']; 172 | console.log(`Processing version ${version} with linux-x64 URL: ${x64Url}`); 173 | 174 | // Try different methods to get linux-arm64 URL 175 | 176 | // Method 1: Try to fetch from API 177 | let arm64Url = await fetchVersionDownloadUrl('linux-arm64', version); 178 | 179 | // Method 2: If API fetch failed, try pattern matching 180 | if (!arm64Url) { 181 | console.log(`Falling back to pattern matching for version ${version}`); 182 | arm64Url = generateArm64UrlFromX64(x64Url); 183 | } 184 | 185 | // Update the entry if we found a URL 186 | if (arm64Url) { 187 | console.log(`Found linux-arm64 URL for version ${version}: ${arm64Url}`); 188 | entry.platforms['linux-arm64'] = arm64Url; 189 | updatedCount++; 190 | 191 | // Save after each successful update to avoid losing progress 192 | if (updatedCount % 10 === 0) { 193 | console.log(`Saving intermediate progress after ${updatedCount} updates...`); 194 | saveVersionHistory(history); 195 | } 196 | } else { 197 | console.error(`Could not determine linux-arm64 URL for version ${version}`); 198 | errorCount++; 199 | } 200 | 201 | // Add a small delay to avoid rate limiting 202 | await new Promise(resolve => setTimeout(resolve, 500)); 203 | } 204 | 205 | console.log(`Backfill summary: Updated ${updatedCount}, Skipped ${skippedCount}, Errors ${errorCount}`); 206 | 207 | // Save the updated history 208 | if (updatedCount > 0) { 209 | console.log('Saving updated history with new linux-arm64 URLs...'); 210 | console.log(`Example updated entry: ${JSON.stringify(history.versions[0], null, 2)}`); 211 | saveVersionHistory(history); 212 | console.log('Backfill process completed and saved'); 213 | } else { 214 | console.log('No updates made, skipping save'); 215 | } 216 | } 217 | 218 | // Run the backfill process 219 | backfillLinuxARM64().catch(error => { 220 | console.error('Error in backfill process:', error instanceof Error ? error.message : 'Unknown error'); 221 | process.exit(1); 222 | }); -------------------------------------------------------------------------------- /src/backfill-missing-linux-links.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs'; 2 | import * as path from 'path'; 3 | import { fileURLToPath } from 'url'; 4 | 5 | // Get dirname in ESM 6 | const __filename = fileURLToPath(import.meta.url); 7 | const __dirname = path.dirname(__filename); 8 | 9 | // Interface for version history JSON 10 | interface VersionHistoryEntry { 11 | version: string; 12 | date: string; 13 | platforms: { 14 | [platform: string]: string; // platform -> download URL 15 | }; 16 | } 17 | 18 | interface VersionHistory { 19 | versions: VersionHistoryEntry[]; 20 | } 21 | 22 | /** 23 | * Read version history from JSON file 24 | */ 25 | function readVersionHistory(): VersionHistory { 26 | const historyPath = path.join(process.cwd(), 'version-history.json'); 27 | if (fs.existsSync(historyPath)) { 28 | try { 29 | const jsonData = fs.readFileSync(historyPath, 'utf8'); 30 | return JSON.parse(jsonData) as VersionHistory; 31 | } catch (error) { 32 | console.error('Error reading version history:', error instanceof Error ? error.message : 'Unknown error'); 33 | return { versions: [] }; 34 | } 35 | } else { 36 | console.log('version-history.json not found, creating a new file'); 37 | return { versions: [] }; 38 | } 39 | } 40 | 41 | /** 42 | * Save version history to JSON file 43 | */ 44 | function saveVersionHistory(history: VersionHistory): void { 45 | const historyPath = path.join(process.cwd(), 'version-history.json'); 46 | 47 | // Create a backup before saving 48 | if (fs.existsSync(historyPath)) { 49 | fs.copyFileSync(historyPath, `${historyPath}.backup`); 50 | console.log(`Created backup at ${historyPath}.backup`); 51 | } 52 | 53 | // Pretty print JSON with 2 spaces 54 | const jsonData = JSON.stringify(history, null, 2); 55 | fs.writeFileSync(historyPath, jsonData, 'utf8'); 56 | console.log('Version history saved to version-history.json'); 57 | } 58 | 59 | /** 60 | * Generate Linux links based on version patterns 61 | */ 62 | function generateLinuxLinks(version: string, date: string, platforms: Record): { x64: string | null, arm64: string | null } { 63 | // Extract build ID from any existing URL if possible 64 | let buildId = ''; 65 | let isAppImage = false; 66 | 67 | // First, try to extract buildId from darwin URLs 68 | if (platforms['darwin-universal']) { 69 | const darwinMatch = platforms['darwin-universal'].match(/\/production\/([^\/]+)\/darwin/); 70 | if (darwinMatch) { 71 | buildId = darwinMatch[1]; 72 | isAppImage = true; 73 | } 74 | } 75 | 76 | // If not found, try to extract from win32 URLs 77 | if (!buildId && platforms['win32-x64']) { 78 | const winMatch = platforms['win32-x64'].match(/\/production\/([^\/]+)\/win32/); 79 | if (winMatch) { 80 | buildId = winMatch[1]; 81 | isAppImage = true; 82 | } 83 | } 84 | 85 | // If we found a build ID, generate Linux URLs 86 | if (buildId && isAppImage) { 87 | console.log(`Found build ID ${buildId} for version ${version}`); 88 | const x64Url = `https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-${version}-${buildId}.deb.glibc2.25-x86_64.AppImage`; 89 | const arm64Url = `https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-${version}-${buildId}.deb.glibc2.28-aarch64.AppImage`; 90 | 91 | return { x64: x64Url, arm64: arm64Url }; 92 | } 93 | 94 | // For newer versions, try the downloader.cursor.sh pattern 95 | const year = date.split('-')[0]; 96 | const month = date.split('-')[1]; 97 | const day = date.split('-')[2]; 98 | 99 | // Most URLs follow pattern like: https://downloader.cursor.sh/builds/250219jnihavxsz/linux/appImage/x64 100 | // But we can't derive the random code without external information 101 | 102 | console.log(`Could not generate Linux links for version ${version}`); 103 | return { x64: null, arm64: null }; 104 | } 105 | 106 | /** 107 | * Main function to backfill missing Linux links 108 | */ 109 | async function backfillMissingLinuxLinks(): Promise { 110 | console.log('Starting backfill for missing Linux links...'); 111 | 112 | // Read the version history 113 | const history = readVersionHistory(); 114 | 115 | if (!history.versions || history.versions.length === 0) { 116 | console.log('No versions found in history file'); 117 | return; 118 | } 119 | 120 | console.log(`Found ${history.versions.length} versions in history`); 121 | 122 | // Process versions missing Linux links 123 | let versionsToProcess = history.versions 124 | .filter(entry => 125 | (!entry.platforms['linux-x64'] || !entry.platforms['linux-arm64']) && 126 | (entry.platforms['darwin-universal'] || entry.platforms['win32-x64']) 127 | ); 128 | 129 | console.log(`Will process ${versionsToProcess.length} versions with missing Linux links`); 130 | 131 | if (versionsToProcess.length === 0) { 132 | console.log('No versions need processing, exiting'); 133 | return; 134 | } 135 | 136 | let updatedCount = 0; 137 | let skippedCount = 0; 138 | 139 | // Process each version 140 | for (const entry of versionsToProcess) { 141 | const version = entry.version; 142 | console.log(`Processing version ${version}...`); 143 | 144 | // Generate Linux links for this version 145 | const { x64, arm64 } = generateLinuxLinks(version, entry.date, entry.platforms); 146 | 147 | let updated = false; 148 | 149 | // Update linux-x64 if missing and generated 150 | if (!entry.platforms['linux-x64'] && x64) { 151 | console.log(`Adding linux-x64 link for version ${version}: ${x64}`); 152 | entry.platforms['linux-x64'] = x64; 153 | updated = true; 154 | } 155 | 156 | // Update linux-arm64 if missing and generated 157 | if (!entry.platforms['linux-arm64'] && arm64) { 158 | console.log(`Adding linux-arm64 link for version ${version}: ${arm64}`); 159 | entry.platforms['linux-arm64'] = arm64; 160 | updated = true; 161 | } 162 | 163 | if (updated) { 164 | updatedCount++; 165 | } else { 166 | skippedCount++; 167 | } 168 | } 169 | 170 | console.log(`Backfill summary: Updated ${updatedCount}, Skipped ${skippedCount}`); 171 | 172 | // Save the updated history 173 | if (updatedCount > 0) { 174 | console.log('Saving updated history with new Linux links...'); 175 | saveVersionHistory(history); 176 | console.log('Backfill process completed and saved'); 177 | } else { 178 | console.log('No updates made, skipping save'); 179 | } 180 | } 181 | 182 | // Run the backfill process 183 | backfillMissingLinuxLinks().catch(error => { 184 | console.error('Error in backfill process:', error instanceof Error ? error.message : 'Unknown error'); 185 | process.exit(1); 186 | }); -------------------------------------------------------------------------------- /src/update-cursor-links.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs'; 2 | import * as path from 'path'; 3 | import { fileURLToPath } from 'url'; 4 | 5 | // Get dirname in ESM 6 | const __filename = fileURLToPath(import.meta.url); 7 | const __dirname = path.dirname(__filename); 8 | 9 | // Define types for Bun's fetch if needed 10 | declare global { 11 | interface Response { 12 | ok: boolean; 13 | status: number; 14 | json(): Promise; 15 | } 16 | } 17 | 18 | interface PlatformInfo { 19 | platforms: string[]; 20 | readableNames: string[]; 21 | section: string; 22 | } 23 | 24 | interface PlatformMap { 25 | [key: string]: PlatformInfo; 26 | } 27 | 28 | interface VersionInfo { 29 | url: string; 30 | version: string; 31 | } 32 | 33 | interface ResultMap { 34 | [os: string]: { 35 | [platform: string]: VersionInfo; 36 | }; 37 | } 38 | 39 | interface DownloadResponse { 40 | downloadUrl: string; 41 | } 42 | 43 | // Interface for version history JSON 44 | interface VersionHistoryEntry { 45 | version: string; 46 | date: string; 47 | platforms: { 48 | [platform: string]: string; // platform -> download URL 49 | }; 50 | } 51 | 52 | interface VersionHistory { 53 | versions: VersionHistoryEntry[]; 54 | } 55 | 56 | const PLATFORMS: PlatformMap = { 57 | windows: { 58 | platforms: ['win32-x64-user', 'win32-arm64-user', 'win32-x64-system', 'win32-arm64-system', 'win32-x64', 'win32-arm64'], 59 | readableNames: ['win32-x64-user', 'win32-arm64-user', 'win32-x64-system', 'win32-arm64-system', 'win32-x64', 'win32-arm64'], 60 | section: 'Windows Installer' 61 | }, 62 | mac: { 63 | platforms: ['darwin-universal', 'darwin-x64', 'darwin-arm64'], 64 | readableNames: ['darwin-universal', 'darwin-x64', 'darwin-arm64'], 65 | section: 'Mac Installer' 66 | }, 67 | linux: { 68 | platforms: ['linux-x64', 'linux-arm64'], 69 | readableNames: ['linux-x64', 'linux-arm64'], 70 | section: 'Linux Installer' 71 | } 72 | }; 73 | 74 | interface PlatformBadgeConfig { 75 | color: string; 76 | logo: string; 77 | label: string; 78 | } 79 | 80 | type PlatformType = 'darwin-universal' | 'darwin-x64' | 'darwin-arm64' | 81 | 'win32-x64-system' | 'win32-arm64-system' | 'win32-x64-user' | 'win32-arm64-user' | 82 | 'linux-x64' | 'linux-arm64' | 'win32-x64' | 'win32-arm64'; 83 | 84 | /** 85 | * Extract version from URL or filename 86 | */ 87 | function extractVersion(url: string): string { 88 | // For Windows 89 | const winMatch = url.match(/Cursor(User|)Setup-[^-]+-([0-9.]+)\.exe/); 90 | if (winMatch && winMatch[2]) return winMatch[2]; 91 | 92 | // For other URLs, try to find version pattern 93 | const versionMatch = url.match(/[0-9]+\.[0-9]+\.[0-9]+/); 94 | return versionMatch ? versionMatch[0] : 'Unknown'; 95 | } 96 | 97 | /** 98 | * Format date as YYYY-MM-DD 99 | */ 100 | function formatDate(date: Date): string { 101 | const year = date.getFullYear(); 102 | const month = String(date.getMonth() + 1).padStart(2, '0'); 103 | const day = String(date.getDate()).padStart(2, '0'); 104 | return `${year}-${month}-${day}`; 105 | } 106 | 107 | /** 108 | * Fetch latest download URL for a platform 109 | */ 110 | async function fetchLatestDownloadUrl(platform: string): Promise { 111 | try { 112 | let apiPlatform = platform; 113 | let isSystemVersion = false; 114 | 115 | // Handle system version URLs 116 | if (platform.endsWith('-system')) { 117 | apiPlatform = platform.replace('-system', ''); 118 | isSystemVersion = true; 119 | } 120 | 121 | // Simple fetch without complex retry logic 122 | const response = await fetch(`https://www.cursor.com/api/download?platform=${apiPlatform}&releaseTrack=latest`, { 123 | headers: { 124 | 'User-Agent': 'Cursor-Version-Checker', 125 | 'Cache-Control': 'no-cache', 126 | }, 127 | // Keep a reasonable timeout 128 | // timeout: 10000, 129 | }); 130 | 131 | if (!response.ok) { 132 | throw new Error(`HTTP error! status: ${response.status}`); 133 | } 134 | 135 | const data = await response.json() as DownloadResponse; 136 | let downloadUrl = data.downloadUrl; 137 | 138 | if (isSystemVersion) { 139 | downloadUrl = downloadUrl.replace('user-setup/CursorUserSetup', 'system-setup/CursorSetup'); 140 | } 141 | 142 | return downloadUrl; 143 | } catch (error) { 144 | console.error(`Error fetching download URL for platform ${platform}:`, error instanceof Error ? error.message : 'Unknown error'); 145 | return null; 146 | } 147 | } 148 | 149 | /** 150 | * Read version history from JSON file 151 | */ 152 | function readVersionHistory(): VersionHistory { 153 | const historyPath = path.join(process.cwd(), 'version-history.json'); 154 | if (fs.existsSync(historyPath)) { 155 | try { 156 | const jsonData = fs.readFileSync(historyPath, 'utf8'); 157 | return JSON.parse(jsonData) as VersionHistory; 158 | } catch (error) { 159 | console.error('Error reading version history:', error instanceof Error ? error.message : 'Unknown error'); 160 | return { versions: [] }; 161 | } 162 | } else { 163 | console.log('version-history.json not found, creating a new file'); 164 | return { versions: [] }; 165 | } 166 | } 167 | 168 | /** 169 | * Save version history to JSON file 170 | */ 171 | function saveVersionHistory(history: VersionHistory): void { 172 | if (!history || !Array.isArray(history.versions)) { 173 | console.error('Invalid version history object provided'); 174 | return; 175 | } 176 | 177 | const historyPath = path.join(process.cwd(), 'version-history.json'); 178 | 179 | // Keep backup - useful even for GitHub Actions 180 | if (fs.existsSync(historyPath)) { 181 | try { 182 | const backupPath = `${historyPath}.backup`; 183 | fs.copyFileSync(historyPath, backupPath); 184 | console.log(`Created backup at ${backupPath}`); 185 | } catch (error) { 186 | console.error('Failed to create backup of version history:', error instanceof Error ? error.message : 'Unknown error'); 187 | // Continue anyway, as creating backup is not critical 188 | } 189 | } 190 | 191 | try { 192 | const jsonData = JSON.stringify(history, null, 2); 193 | 194 | // Verify we have valid JSON before writing to file 195 | try { 196 | JSON.parse(jsonData); 197 | } catch (parseError) { 198 | console.error('Generated invalid JSON data, aborting save:', parseError instanceof Error ? parseError.message : 'Unknown error'); 199 | return; 200 | } 201 | 202 | // Write to a temporary file first, then rename to avoid partial writes 203 | const tempPath = `${historyPath}.tmp`; 204 | fs.writeFileSync(tempPath, jsonData, 'utf8'); 205 | fs.renameSync(tempPath, historyPath); 206 | 207 | // Verify file exists after writing 208 | if (fs.existsSync(historyPath)) { 209 | console.log('Version history saved to version-history.json'); 210 | } else { 211 | console.error('Failed to save version history: File does not exist after write'); 212 | } 213 | } catch (error) { 214 | console.error('Error saving version history:', error instanceof Error ? error.message : 'Unknown error'); 215 | throw error; // Rethrow to allow caller to handle 216 | } 217 | } 218 | 219 | /** 220 | * Generate a unified download badge for a platform 221 | */ 222 | function generateDownloadBadge(platform: PlatformType, url: string): string { 223 | // Platform configuration 224 | const platformConfig: Record = { 225 | 'darwin-universal': { color: '000000', logo: 'apple', label: 'macOS Universal' }, 226 | 'darwin-x64': { color: '000000', logo: 'apple', label: 'macOS Intel' }, 227 | 'darwin-arm64': { color: '000000', logo: 'apple', label: 'macOS Apple Silicon' }, 228 | 'win32-x64-system': { color: '0078D6', logo: 'windows', label: 'Windows x64 System' }, 229 | 'win32-arm64-system': { color: '0078D6', logo: 'windows', label: 'Windows ARM64 System' }, 230 | 'win32-x64-user': { color: '0078D6', logo: 'windows', label: 'Windows x64 User' }, 231 | 'win32-arm64-user': { color: '0078D6', logo: 'windows', label: 'Windows ARM64 User' }, 232 | 'win32-x64': { color: '0078D6', logo: 'windows', label: 'Windows x64' }, 233 | 'win32-arm64': { color: '0078D6', logo: 'windows', label: 'Windows ARM64' }, 234 | 'linux-x64': { color: 'FCC624', logo: 'linux', label: 'Linux x64' }, 235 | 'linux-arm64': { color: 'FCC624', logo: 'linux', label: 'Linux ARM64' } 236 | }; 237 | 238 | const config = platformConfig[platform]; 239 | if (!config) { 240 | return ''; 241 | } 242 | 243 | // Encode the label for URL safety 244 | const encodedLabel = config.label.replace(/\s+/g, '%20'); 245 | const encodedPlatform = platform.replace(/-/g, '%20'); 246 | 247 | return `${config.label}`; 248 | } 249 | 250 | function generateDownloadLink(platform: PlatformType, url: string): string { 251 | return `${platform}`; 252 | } 253 | 254 | /** 255 | * Generate the latest version card content 256 | */ 257 | function generateLatestVersionCard(version: string, date: string, results: ResultMap): string { 258 | let cardContent = ` 259 |
260 |
261 |

🚀 Cursor ${version}

262 |

Release Date: ${date}

263 | 264 | | Windows | macOS | Linux | 265 | |:---:|:---:|:---:| 266 | | ![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white) | ![macOS](https://img.shields.io/badge/macOS-000000?style=for-the-badge&logo=apple&logoColor=white) | ![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black) |`; 267 | 268 | // Add Windows downloads 269 | if (results.windows) { 270 | const x64Url = results.windows['win32-x64']?.url || results.windows['win32-x64-user']?.url; 271 | const arm64Url = results.windows['win32-arm64']?.url || results.windows['win32-arm64-user']?.url; 272 | cardContent += `\n| ${generateDownloadBadge('win32-x64-user', x64Url)} | ${generateDownloadBadge('darwin-universal', results.mac?.['darwin-universal']?.url || '')} | ${generateDownloadBadge('linux-x64', results.linux?.['linux-x64']?.url || '')} |`; 273 | cardContent += `\n| ${generateDownloadBadge('win32-arm64-user', arm64Url)} | ${generateDownloadBadge('darwin-x64', results.mac?.['darwin-x64']?.url || '')} | ${generateDownloadBadge('linux-arm64', results.linux?.['linux-arm64']?.url || '')} |`; 274 | } 275 | 276 | // Add macOS Apple Silicon download 277 | if (results.mac?.['darwin-arm64']?.url) { 278 | if (results.windows?.['win32-arm64-system']?.url) { 279 | cardContent += `\n| ${generateDownloadBadge('win32-arm64-system', results.windows['win32-arm64-system'].url)} | ${generateDownloadBadge('darwin-arm64', results.mac['darwin-arm64'].url)} | |`; 280 | } else { 281 | cardContent += `\n| | ${generateDownloadBadge('darwin-arm64', results.mac['darwin-arm64'].url)} | |`; 282 | } 283 | } 284 | 285 | // add windows x64 download 286 | if (results.windows['win32-x64-system']?.url) { 287 | cardContent += `\n| ${generateDownloadBadge('win32-x64-system', results.windows['win32-x64-system'].url)} | | |`; 288 | } 289 | 290 | cardContent += `\n\n
291 |
292 | `; 293 | 294 | return cardContent; 295 | } 296 | 297 | /** 298 | * Generate the detailed version card content for a single version 299 | */ 300 | function generateDetailedVersionCard(version: string, date: string, platforms: { [platform: string]: string }): string { 301 | let cardContent = `\n
302 | Version ${version} (${date}) 303 | 304 |
305 |

Cursor ${version} Download Links

306 | 307 | #### Windows`; 308 | 309 | // Add Windows downloads 310 | if (platforms['win32-x64-user'] ) { 311 | cardContent += `\n${generateDownloadBadge('win32-x64-user', platforms['win32-x64-user'] )}`; 312 | } 313 | if (platforms['win32-arm64-user'] ) { 314 | cardContent += `\n${generateDownloadBadge('win32-arm64-user', platforms['win32-arm64-user'] )}`; 315 | } 316 | if (platforms['win32-x64-system'] ) { 317 | cardContent += `\n${generateDownloadBadge('win32-x64-system', platforms['win32-x64-system'] )}`; 318 | } 319 | if (platforms['win32-arm64-system'] ) { 320 | cardContent += `\n${generateDownloadBadge('win32-arm64-system', platforms['win32-arm64-system'] )}`; 321 | } 322 | if (platforms['win32-x64'] ) { 323 | cardContent += `\n${generateDownloadBadge('win32-x64', platforms['win32-x64'] )}`; 324 | } 325 | if (platforms['win32-arm64'] ) { 326 | cardContent += `\n${generateDownloadBadge('win32-arm64', platforms['win32-arm64'] )}`; 327 | } 328 | 329 | // Add macOS downloads 330 | cardContent += `\n\n#### macOS`; 331 | if (platforms['darwin-universal']) { 332 | cardContent += `\n${generateDownloadBadge('darwin-universal', platforms['darwin-universal'])}`; 333 | } 334 | if (platforms['darwin-x64']) { 335 | cardContent += `\n${generateDownloadBadge('darwin-x64', platforms['darwin-x64'])}`; 336 | } 337 | if (platforms['darwin-arm64']) { 338 | cardContent += `\n${generateDownloadBadge('darwin-arm64', platforms['darwin-arm64'])}`; 339 | } 340 | 341 | // Add Linux downloads 342 | cardContent += `\n\n#### Linux`; 343 | if (platforms['linux-x64']) { 344 | cardContent += `\n${generateDownloadBadge('linux-x64', platforms['linux-x64'])}`; 345 | } 346 | if (platforms['linux-arm64']) { 347 | cardContent += `\n${generateDownloadBadge('linux-arm64', platforms['linux-arm64'])}`; 348 | } 349 | 350 | cardContent += `\n\n
351 |
`; 352 | 353 | return cardContent; 354 | } 355 | 356 | /** 357 | * Generate detailed cards for all versions 358 | */ 359 | function generateAllDetailedCards(history: VersionHistory): string { 360 | let allCards = ''; 361 | 362 | // Sort versions by version number (newest first) 363 | const sortedVersions = [...history.versions].sort((a, b) => { 364 | return b.version.localeCompare(a.version, undefined, { numeric: true }); 365 | }); 366 | 367 | // Generate cards for each version 368 | for (const entry of sortedVersions) { 369 | allCards += generateDetailedVersionCard(entry.version, entry.date, entry.platforms); 370 | } 371 | 372 | return allCards; 373 | } 374 | 375 | /** 376 | * Generate table row for a single version 377 | */ 378 | function generateTableRow(version: string, date: string, platforms: { [platform: string]: string }): string { 379 | // Generate Mac links 380 | let macLinks = ''; 381 | const macPlatforms = ['darwin-universal', 'darwin-x64', 'darwin-arm64']; 382 | const macLinksList = macPlatforms.map(platform => { 383 | if (platforms[platform]) { 384 | return generateDownloadLink(platform as PlatformType, platforms[platform]); 385 | } 386 | return null; 387 | }).filter(Boolean); 388 | macLinks = macLinksList.join('
'); 389 | 390 | // Generate Windows links 391 | let windowsLinks = ''; 392 | const winPlatforms = ['win32-x64-system', 'win32-arm64-system', 'win32-x64-user', 'win32-arm64-user', 'win32-x64', 'win32-arm64']; 393 | const winLinksList = winPlatforms.map(platform => { 394 | if (platforms[platform]) { 395 | return generateDownloadLink(platform as PlatformType, platforms[platform]); 396 | } 397 | return null; 398 | }).filter(Boolean); 399 | windowsLinks = winLinksList.join('
'); 400 | 401 | // Generate Linux links 402 | let linuxLinks = ''; 403 | const linuxPlatforms = ['linux-x64', 'linux-arm64']; 404 | const linuxLinksList = linuxPlatforms.map(platform => { 405 | if (platforms[platform]) { 406 | return generateDownloadLink(platform as PlatformType, platforms[platform]); 407 | } 408 | return null; 409 | }).filter(Boolean); 410 | linuxLinks = linuxLinksList.join('
') || 'Not Ready'; 411 | 412 | return `| ${version} | ${date} | ${windowsLinks} | ${macLinks} | ${linuxLinks} |`; 413 | } 414 | 415 | /** 416 | * Generate the complete versions table 417 | */ 418 | function generateVersionsTable(history: VersionHistory): string { 419 | let tableContent = ` 420 | | Version | Date | Windows Installer | Mac Installer | Linux Installer | 421 | | --- | --- | --- | --- | --- |`; 422 | 423 | // Sort versions by version number (newest first) 424 | const sortedVersions = [...history.versions].sort((a, b) => { 425 | return b.version.localeCompare(a.version, undefined, { numeric: true }); 426 | }); 427 | 428 | // Generate rows for each version 429 | for (const entry of sortedVersions) { 430 | tableContent += `\n${generateTableRow(entry.version, entry.date, entry.platforms)}`; 431 | } 432 | 433 | tableContent += `\n`; 434 | return tableContent; 435 | } 436 | 437 | /** 438 | * Update the README.md file with latest Cursor links 439 | */ 440 | async function updateReadme(): Promise { 441 | console.log(`Starting update check at ${new Date().toISOString()}`); 442 | 443 | // Collect all URLs and versions 444 | const results: ResultMap = {}; 445 | let latestVersion = '0.0.0'; 446 | const currentDate = formatDate(new Date()); 447 | 448 | // Fetch all platform download URLs 449 | for (const [osKey, osData] of Object.entries(PLATFORMS)) { 450 | results[osKey] = {}; 451 | 452 | for (let i = 0; i < osData.platforms.length; i++) { 453 | const platform = osData.platforms[i]; 454 | const url = await fetchLatestDownloadUrl(platform); 455 | 456 | if (url) { 457 | const version = extractVersion(url); 458 | results[osKey][platform] = { url, version }; 459 | 460 | // Track the highest version number 461 | if (version !== 'Unknown' && version > latestVersion) { 462 | latestVersion = version; 463 | } 464 | } 465 | } 466 | } 467 | 468 | if (latestVersion === '0.0.0') { 469 | console.error('Failed to retrieve any valid version information'); 470 | return false; 471 | } 472 | 473 | console.log(`Latest version detected: ${latestVersion}`); 474 | 475 | // Use version-history.json as the single source of truth for version checking 476 | const history = readVersionHistory(); 477 | 478 | // Check if this version already exists in the version history 479 | const existingVersionIndex = history.versions.findIndex(entry => entry.version === latestVersion); 480 | if (existingVersionIndex !== -1) { 481 | console.log(`Version ${latestVersion} already exists in version history, no update needed json`); 482 | // return false; 483 | } else { 484 | console.log(`Adding new version ${latestVersion} to version-history.json`); 485 | 486 | 487 | // New version found, update version-history.json first 488 | console.log(`Adding new version ${latestVersion} to version-history.json`); 489 | 490 | // Create a new platforms object for the history entry 491 | const platforms: { [platform: string]: string } = {}; 492 | 493 | // Add Mac platforms 494 | if (results.mac) { 495 | for (const [platform, info] of Object.entries(results.mac)) { 496 | platforms[platform] = info.url; 497 | } 498 | } 499 | 500 | // Add Windows platforms 501 | if (results.windows) { 502 | for (const [platform, info] of Object.entries(results.windows)) { 503 | platforms[platform] = info.url; 504 | } 505 | } 506 | 507 | // Add Linux platforms 508 | if (results.linux) { 509 | for (const [platform, info] of Object.entries(results.linux)) { 510 | platforms[platform] = info.url; 511 | } 512 | } 513 | 514 | // Create the new entry 515 | const newEntry: VersionHistoryEntry = { 516 | version: latestVersion, 517 | date: currentDate, 518 | platforms 519 | }; 520 | 521 | // Add to history and sort by version (newest first) 522 | history.versions.push(newEntry); 523 | history.versions.sort((a, b) => { 524 | return b.version.localeCompare(a.version, undefined, { numeric: true }); 525 | }); 526 | 527 | // Limit history size to 100 entries to prevent unlimited growth 528 | if (history.versions.length > 100) { 529 | history.versions = history.versions.slice(0, 100); 530 | console.log(`Truncated version history to 100 entries`); 531 | } 532 | 533 | // Save the updated history JSON 534 | try { 535 | saveVersionHistory(history); 536 | console.log(`Added version ${latestVersion} to version-history.json`); 537 | } catch (error) { 538 | console.error('Error saving version history:', error instanceof Error ? error.message : 'Unknown error'); 539 | return false; 540 | } 541 | } 542 | 543 | // Now update the README with the complete history 544 | const readmePath = path.join(process.cwd(), 'README.md'); 545 | if (!fs.existsSync(readmePath)) { 546 | console.error('README.md file not found'); 547 | return false; 548 | } 549 | 550 | let readmeContent = fs.readFileSync(readmePath, 'utf8'); 551 | 552 | // Update the versions table with complete history 553 | const versionsTableRegex = /[\s\S]*?/; 554 | const versionsTable = generateVersionsTable(history); 555 | readmeContent = readmeContent.replace(versionsTableRegex, versionsTable); 556 | 557 | // Update the latest version card with the latest version from history 558 | const latestVersionCardRegex = /[\s\S]*?/; 559 | const latestVersionCard = generateLatestVersionCard(history.versions[0].version, history.versions[0].date, results); 560 | readmeContent = readmeContent.replace(latestVersionCardRegex, latestVersionCard); 561 | 562 | // Update the detailed version cards with all versions from history 563 | const detailedCardsRegex = /[\s\S]*?/; 564 | const allDetailedCards = generateAllDetailedCards(history); 565 | readmeContent = readmeContent.replace(detailedCardsRegex, `${allDetailedCards}`); 566 | 567 | // Save the updated README 568 | try { 569 | fs.writeFileSync(readmePath, readmeContent); 570 | console.log(`README.md updated with complete version history`); 571 | } catch (error) { 572 | console.error('Error saving README:', error instanceof Error ? error.message : 'Unknown error'); 573 | return false; 574 | } 575 | 576 | return true; 577 | } 578 | 579 | /** 580 | * Update version history JSON with new version information - deprecated, now handled in updateReadme 581 | */ 582 | function updateVersionHistory(version: string, date: string, results: ResultMap): void { 583 | console.warn('updateVersionHistory is deprecated - version history is now updated directly in updateReadme'); 584 | 585 | // For backward compatibility, create and save a version history entry 586 | if (!version || !date || !results) { 587 | console.error('Invalid parameters provided to updateVersionHistory'); 588 | return; 589 | } 590 | 591 | try { 592 | // Read existing history 593 | const history = readVersionHistory(); 594 | 595 | // Check if this version already exists 596 | if (history.versions.some(v => v.version === version)) { 597 | console.log(`Version ${version} already exists in version history`); 598 | return; 599 | } 600 | 601 | // Prepare platforms data from results 602 | const platforms: { [platform: string]: string } = {}; 603 | 604 | // Extract platforms and URLs from results 605 | Object.entries(results).forEach(([osKey, osData]) => { 606 | Object.entries(osData).forEach(([platform, info]) => { 607 | platforms[platform] = info.url; 608 | }); 609 | }); 610 | 611 | // Create new entry 612 | const newEntry: VersionHistoryEntry = { 613 | version, 614 | date, 615 | platforms 616 | }; 617 | 618 | // Add to history and sort 619 | history.versions.push(newEntry); 620 | history.versions.sort((a, b) => { 621 | return b.version.localeCompare(a.version, undefined, { numeric: true }); 622 | }); 623 | 624 | // Save updated history 625 | saveVersionHistory(history); 626 | console.log(`Added version ${version} to version-history.json via deprecated method`); 627 | } catch (error) { 628 | console.error('Error in updateVersionHistory:', error instanceof Error ? error.message : 'Unknown error'); 629 | } 630 | } 631 | 632 | /** 633 | * Main function to run the update with proper error handling 634 | */ 635 | async function main(): Promise { 636 | try { 637 | const startTime = Date.now(); 638 | console.log(`Starting update process at ${new Date().toISOString()}`); 639 | 640 | // Run the update 641 | const updated = await updateReadme(); 642 | const elapsedTime = Date.now() - startTime; 643 | 644 | if (updated) { 645 | console.log(`Update completed successfully in ${elapsedTime}ms. Found new version.`); 646 | } else { 647 | console.log(`Update completed in ${elapsedTime}ms. No new version found.`); 648 | } 649 | 650 | // Double-check version history JSON file exists at the end 651 | const historyPath = path.join(process.cwd(), 'version-history.json'); 652 | if (!fs.existsSync(historyPath)) { 653 | console.warn('Warning: version-history.json does not exist after update. This might indicate an issue.'); 654 | } else { 655 | try { 656 | // Just checking that the file is valid JSON 657 | const content = fs.readFileSync(historyPath, 'utf8'); 658 | const historyJson = JSON.parse(content) as VersionHistory; 659 | console.log('Verified version-history.json exists and contains valid JSON.'); 660 | 661 | // Verify that the latest version from README is in version-history.json 662 | const readmePath = path.join(process.cwd(), 'README.md'); 663 | if (fs.existsSync(readmePath)) { 664 | const readmeContent = fs.readFileSync(readmePath, 'utf8'); 665 | 666 | // Extract the latest version from table - look for the first row after header 667 | const versionMatch = readmeContent.match(/\| (\d+\.\d+\.\d+) \| (\d{4}-\d{2}-\d{2}) \|/); 668 | if (versionMatch && versionMatch[1]) { 669 | const latestVersionInReadme = versionMatch[1]; 670 | const latestDateInReadme = versionMatch[2]; 671 | 672 | console.log(`Latest version in README.md: ${latestVersionInReadme} (${latestDateInReadme})`); 673 | 674 | // Check if this version exists in history 675 | const versionExists = historyJson.versions.some(v => v.version === latestVersionInReadme); 676 | if (!versionExists) { 677 | console.warn(`WARNING: Version ${latestVersionInReadme} is in README.md but not in version-history.json.`); 678 | console.log(`Attempting to extract data from README.md and update version-history.json...`); 679 | 680 | // Extract URLs for this version from README 681 | const sectionRegex = new RegExp(`\\| ${latestVersionInReadme} \\| ${latestDateInReadme} \\| (.*?) \\| (.*?) \\| (.*?) \\|`); 682 | const sectionMatch = readmeContent.match(sectionRegex); 683 | 684 | if (sectionMatch) { 685 | const macSection = sectionMatch[1]; 686 | const windowsSection = sectionMatch[2]; 687 | const linuxSection = sectionMatch[3]; 688 | 689 | const platforms: { [platform: string]: string } = {}; 690 | 691 | // Parse Mac links 692 | if (macSection) { 693 | const macLinks = macSection.match(/\[([^\]]+)\]\(([^)]+)\)/g); 694 | if (macLinks) { 695 | macLinks.forEach(link => { 696 | const parts = link.match(/\[([^\]]+)\]\(([^)]+)\)/); 697 | if (parts && parts[1] && parts[2]) { 698 | platforms[parts[1]] = parts[2]; 699 | } 700 | }); 701 | } 702 | } 703 | 704 | // Parse Windows links 705 | if (windowsSection) { 706 | const winLinks = windowsSection.match(/\[([^\]]+)\]\(([^)]+)\)/g); 707 | if (winLinks) { 708 | winLinks.forEach(link => { 709 | const parts = link.match(/\[([^\]]+)\]\(([^)]+)\)/); 710 | if (parts && parts[1] && parts[2]) { 711 | platforms[parts[1]] = parts[2]; 712 | } 713 | }); 714 | } 715 | } 716 | 717 | // Parse Linux links 718 | if (linuxSection && linuxSection !== 'Not Ready') { 719 | const linuxLinks = linuxSection.match(/\[([^\]]+)\]\(([^)]+)\)/g); 720 | if (linuxLinks) { 721 | linuxLinks.forEach(link => { 722 | const parts = link.match(/\[([^\]]+)\]\(([^)]+)\)/); 723 | if (parts && parts[1] && parts[2]) { 724 | platforms[parts[1]] = parts[2]; 725 | } 726 | }); 727 | } 728 | } 729 | 730 | // Add the entry to version history 731 | if (Object.keys(platforms).length > 0) { 732 | const newEntry: VersionHistoryEntry = { 733 | version: latestVersionInReadme, 734 | date: latestDateInReadme, 735 | platforms 736 | }; 737 | 738 | historyJson.versions.push(newEntry); 739 | 740 | // Sort and save 741 | historyJson.versions.sort((a, b) => { 742 | return b.version.localeCompare(a.version, undefined, { numeric: true }); 743 | }); 744 | 745 | // Save the updated history 746 | saveVersionHistory(historyJson); 747 | console.log(`Successfully added version ${latestVersionInReadme} from README.md to version-history.json`); 748 | } else { 749 | console.error(`Failed to extract platform links for version ${latestVersionInReadme}`); 750 | } 751 | } else { 752 | console.error(`Failed to find section for version ${latestVersionInReadme} in README.md`); 753 | } 754 | } 755 | } 756 | } 757 | } catch (err) { 758 | console.warn('Warning: version-history.json exists but contains invalid JSON:', 759 | err instanceof Error ? err.message : 'Unknown error'); 760 | } 761 | } 762 | } catch (error) { 763 | console.error('Critical error during update process:', error instanceof Error ? error.message : 'Unknown error'); 764 | // Any GitHub Action will mark the workflow as failed if the process exits with non-zero 765 | process.exit(1); 766 | } 767 | } 768 | 769 | // Export functions for testing 770 | export { 771 | fetchLatestDownloadUrl, 772 | updateReadme, 773 | readVersionHistory, 774 | saveVersionHistory, 775 | updateVersionHistory, 776 | extractVersion, 777 | formatDate, 778 | main 779 | }; 780 | 781 | // Run the update 782 | if (require.main === module) { 783 | main().catch(error => { 784 | console.error('Unhandled error:', error instanceof Error ? error.message : 'Unknown error'); 785 | process.exit(1); 786 | }); 787 | } -------------------------------------------------------------------------------- /src/update-readme-from-history.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs'; 2 | import * as path from 'path'; 3 | import { fileURLToPath } from 'url'; 4 | 5 | // Get dirname in ESM 6 | const __filename = fileURLToPath(import.meta.url); 7 | const __dirname = path.dirname(__filename); 8 | 9 | // Interface for version history JSON 10 | interface VersionHistoryEntry { 11 | version: string; 12 | date: string; 13 | platforms: { 14 | [platform: string]: string; // platform -> download URL 15 | }; 16 | } 17 | 18 | interface VersionHistory { 19 | versions: VersionHistoryEntry[]; 20 | } 21 | 22 | /** 23 | * Read version history from JSON file 24 | */ 25 | function readVersionHistory(): VersionHistory { 26 | const historyPath = path.join(process.cwd(), 'version-history.json'); 27 | if (fs.existsSync(historyPath)) { 28 | try { 29 | const jsonData = fs.readFileSync(historyPath, 'utf8'); 30 | return JSON.parse(jsonData) as VersionHistory; 31 | } catch (error) { 32 | console.error('Error reading version history:', error instanceof Error ? error.message : 'Unknown error'); 33 | return { versions: [] }; 34 | } 35 | } else { 36 | console.log('version-history.json not found'); 37 | return { versions: [] }; 38 | } 39 | } 40 | 41 | /** 42 | * Update README.md file with linux-arm64 links from version history 43 | */ 44 | function updateReadmeFromHistory(): void { 45 | console.log('Starting README update process...'); 46 | 47 | // Read version history 48 | const history = readVersionHistory(); 49 | 50 | if (!history.versions || history.versions.length === 0) { 51 | console.log('No versions found in history file'); 52 | return; 53 | } 54 | 55 | // Read README.md 56 | const readmePath = path.join(process.cwd(), 'README.md'); 57 | if (!fs.existsSync(readmePath)) { 58 | console.error('README.md file not found'); 59 | return; 60 | } 61 | 62 | let readmeContent = fs.readFileSync(readmePath, 'utf8'); 63 | 64 | // Create a backup 65 | fs.writeFileSync(`${readmePath}.backup`, readmeContent, 'utf8'); 66 | console.log(`Created backup at ${readmePath}.backup`); 67 | 68 | let updatedCount = 0; 69 | 70 | // Process each version in history 71 | for (const entry of history.versions) { 72 | const version = entry.version; 73 | 74 | // Skip if no linux-arm64 URL 75 | if (!entry.platforms['linux-arm64']) { 76 | console.log(`Version ${version} has no linux-arm64 URL, skipping`); 77 | continue; 78 | } 79 | 80 | // Check if this version has only linux-x64 in README 81 | const linuxX64Only = new RegExp( 82 | `\\| ${version} \\| [\\d-]+ \\| .*? \\| .*? \\| \\[linux-x64\\]\\([^)]+\\) \\|` 83 | ); 84 | 85 | // Check if this version already has linux-arm64 in README 86 | const linuxArm64Present = new RegExp( 87 | `\\| ${version} \\| [\\d-]+ \\| .*? \\| .*? \\| .*?\\[linux-arm64\\]\\([^)]+\\).*? \\|` 88 | ); 89 | 90 | if (linuxArm64Present.test(readmeContent)) { 91 | console.log(`Version ${version} already has linux-arm64 in README, skipping`); 92 | continue; 93 | } 94 | 95 | if (linuxX64Only.test(readmeContent)) { 96 | // Replace the linux-x64 line with both linux-x64 and linux-arm64 97 | const oldLinuxSection = `[linux-x64](${entry.platforms['linux-x64']}) |`; 98 | const newLinuxSection = `[linux-x64](${entry.platforms['linux-x64']})
[linux-arm64](${entry.platforms['linux-arm64']}) |`; 99 | 100 | // Use string replacement to update the line for this version 101 | readmeContent = readmeContent.replace( 102 | new RegExp(`(\\| ${version} \\| [\\d-]+ \\| .*? \\| .*? \\| )\\[linux-x64\\]\\([^)]+\\) \\|`), 103 | `$1${newLinuxSection}` 104 | ); 105 | 106 | console.log(`Updated README for version ${version} with linux-arm64 URL`); 107 | updatedCount++; 108 | } else { 109 | console.log(`Version ${version} doesn't match expected pattern in README, skipping`); 110 | } 111 | } 112 | 113 | console.log(`README update summary: Updated ${updatedCount} versions`); 114 | 115 | // Save the updated README 116 | if (updatedCount > 0) { 117 | fs.writeFileSync(readmePath, readmeContent, 'utf8'); 118 | console.log('README.md updated successfully'); 119 | } else { 120 | console.log('No updates made to README.md'); 121 | } 122 | } 123 | 124 | // Run the update process 125 | updateReadmeFromHistory(); 126 | console.log('Process completed'); -------------------------------------------------------------------------------- /src/update-readme-with-linux-links.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs'; 2 | import * as path from 'path'; 3 | import { fileURLToPath } from 'url'; 4 | 5 | // Get dirname in ESM 6 | const __filename = fileURLToPath(import.meta.url); 7 | const __dirname = path.dirname(__filename); 8 | 9 | // Interface for version history JSON 10 | interface VersionHistoryEntry { 11 | version: string; 12 | date: string; 13 | platforms: { 14 | [platform: string]: string; // platform -> download URL 15 | }; 16 | } 17 | 18 | interface VersionHistory { 19 | versions: VersionHistoryEntry[]; 20 | } 21 | 22 | /** 23 | * Read version history from JSON file 24 | */ 25 | function readVersionHistory(): VersionHistory { 26 | const historyPath = path.join(process.cwd(), 'version-history.json'); 27 | if (fs.existsSync(historyPath)) { 28 | try { 29 | const jsonData = fs.readFileSync(historyPath, 'utf8'); 30 | return JSON.parse(jsonData) as VersionHistory; 31 | } catch (error) { 32 | console.error('Error reading version history:', error instanceof Error ? error.message : 'Unknown error'); 33 | return { versions: [] }; 34 | } 35 | } else { 36 | console.log('version-history.json not found, creating a new file'); 37 | return { versions: [] }; 38 | } 39 | } 40 | 41 | /** 42 | * Update README.md with Linux links from version-history.json 43 | */ 44 | async function updateReadmeWithLinuxLinks(): Promise { 45 | console.log('Starting README.md update with Linux links...'); 46 | 47 | // Read version history 48 | const history = readVersionHistory(); 49 | 50 | // Read README.md content 51 | const readmePath = path.join(process.cwd(), 'README.md'); 52 | if (!fs.existsSync(readmePath)) { 53 | console.error('README.md file not found'); 54 | return; 55 | } 56 | 57 | // Create a backup of the README.md file 58 | const backupPath = path.join(process.cwd(), 'README.md.linux-update-backup'); 59 | fs.copyFileSync(readmePath, backupPath); 60 | console.log(`Created backup of README.md at ${backupPath}`); 61 | 62 | let readmeContent = fs.readFileSync(readmePath, 'utf8'); 63 | 64 | // First, fix duplicate entries for 0.46.10 65 | const duplicatePattern = /\| 0\.46\.10 \| 2025-03-06 \|.*?\| .*?linux-x64.*?\) \|\n/s; 66 | readmeContent = readmeContent.replace(duplicatePattern, ''); 67 | 68 | // Update 'Not Ready' entries 69 | // The pattern looks for lines like: 70 | // | 0.46.8 | 2025-03-01 | [darwin-universal](...)... | [win32-x64](...)... | Not Ready | 71 | const notReadyPattern = /\| ([\d\.]+) \| ([\d-]+) \| (.*?) \| (.*?) \| Not Ready \|/g; 72 | 73 | readmeContent = readmeContent.replace(notReadyPattern, (match, version, date, macLinks, winLinks) => { 74 | // Find this version in the history 75 | const versionEntry = history.versions.find(entry => entry.version === version); 76 | 77 | if (versionEntry && versionEntry.platforms['linux-x64'] && versionEntry.platforms['linux-arm64']) { 78 | // Create Linux links section 79 | const linuxLinks = `[linux-x64](${versionEntry.platforms['linux-x64']})
[linux-arm64](${versionEntry.platforms['linux-arm64']})`; 80 | 81 | console.log(`Updating Linux links for version ${version}`); 82 | return `| ${version} | ${date} | ${macLinks} | ${winLinks} | ${linuxLinks} |`; 83 | } 84 | 85 | // No Linux links found, keep the line as is 86 | console.log(`No Linux links found for version ${version}, keeping "Not Ready"`); 87 | return match; 88 | }); 89 | 90 | // Write updated content back to README.md 91 | fs.writeFileSync(readmePath, readmeContent); 92 | console.log('README.md has been updated with Linux links'); 93 | } 94 | 95 | // Run the update process 96 | updateReadmeWithLinuxLinks().catch(error => { 97 | console.error('Error updating README.md:', error instanceof Error ? error.message : 'Unknown error'); 98 | process.exit(1); 99 | }); -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2022", 4 | "module": "NodeNext", 5 | "moduleResolution": "NodeNext", 6 | "esModuleInterop": true, 7 | "strict": true, 8 | "skipLibCheck": true, 9 | "isolatedModules": true, 10 | "outDir": "dist", 11 | "forceConsistentCasingInFileNames": true, 12 | "lib": ["esnext"], 13 | "types": ["node"] 14 | }, 15 | "include": ["src/**/*"], 16 | "exclude": ["node_modules", "dist"] 17 | } -------------------------------------------------------------------------------- /version-history.json: -------------------------------------------------------------------------------- 1 | { 2 | "versions": [ 3 | { 4 | "version": "1.0.1", 5 | "date": "2025-06-07", 6 | "platforms": { 7 | "darwin-universal": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/darwin/universal/Cursor-darwin-universal.dmg", 8 | "darwin-x64": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/darwin/x64/Cursor-darwin-x64.dmg", 9 | "darwin-arm64": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/darwin/arm64/Cursor-darwin-arm64.dmg", 10 | "win32-x64-user": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/x64/user-setup/CursorUserSetup-x64-1.0.1.exe", 11 | "win32-arm64-user": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/arm64/user-setup/CursorUserSetup-arm64-1.0.1.exe", 12 | "win32-x64-system": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/x64/system-setup/CursorSetup-x64-1.0.1.exe", 13 | "win32-arm64-system": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/arm64/system-setup/CursorSetup-arm64-1.0.1.exe", 14 | "win32-x64": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/x64/system-setup/CursorSetup-x64-1.0.1.exe", 15 | "win32-arm64": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/arm64/system-setup/CursorSetup-arm64-1.0.1.exe", 16 | "linux-x64": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/linux/x64/Cursor-1.0.1-x86_64.AppImage", 17 | "linux-arm64": "https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/linux/arm64/Cursor-1.0.1-aarch64.AppImage" 18 | } 19 | }, 20 | { 21 | "version": "1.0.0", 22 | "date": "2025-06-04", 23 | "platforms": { 24 | "darwin-universal": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/darwin/universal/Cursor-darwin-universal.dmg", 25 | "darwin-x64": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/darwin/x64/Cursor-darwin-x64.dmg", 26 | "darwin-arm64": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/darwin/arm64/Cursor-darwin-arm64.dmg", 27 | "win32-x64-user": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/x64/user-setup/CursorUserSetup-x64-1.0.0.exe", 28 | "win32-arm64-user": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/arm64/user-setup/CursorUserSetup-arm64-1.0.0.exe", 29 | "win32-x64-system": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/x64/system-setup/CursorSetup-x64-1.0.0.exe", 30 | "win32-arm64-system": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/arm64/system-setup/CursorSetup-arm64-1.0.0.exe", 31 | "win32-x64": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/x64/system-setup/CursorSetup-x64-1.0.0.exe", 32 | "win32-arm64": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/arm64/system-setup/CursorSetup-arm64-1.0.0.exe", 33 | "linux-x64": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/linux/x64/Cursor-1.0.0-x86_64.AppImage", 34 | "linux-arm64": "https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/linux/arm64/Cursor-1.0.0-aarch64.AppImage" 35 | } 36 | }, 37 | { 38 | "version": "0.51.2", 39 | "date": "2025-06-03", 40 | "platforms": { 41 | "darwin-universal": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/darwin/universal/Cursor-darwin-universal.dmg", 42 | "darwin-x64": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/darwin/x64/Cursor-darwin-x64.dmg", 43 | "darwin-arm64": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/darwin/arm64/Cursor-darwin-arm64.dmg", 44 | "win32-x64-user": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/x64/user-setup/CursorUserSetup-x64-0.51.2.exe", 45 | "win32-arm64-user": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/arm64/user-setup/CursorUserSetup-arm64-0.51.2.exe", 46 | "win32-x64-system": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/x64/system-setup/CursorSetup-x64-0.51.2.exe", 47 | "win32-arm64-system": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/arm64/system-setup/CursorSetup-arm64-0.51.2.exe", 48 | "win32-x64": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/x64/system-setup/CursorSetup-x64-0.51.2.exe", 49 | "win32-arm64": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/arm64/system-setup/CursorSetup-arm64-0.51.2.exe", 50 | "linux-x64": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/linux/x64/Cursor-0.51.2-x86_64.AppImage", 51 | "linux-arm64": "https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/linux/arm64/Cursor-0.51.2-aarch64.AppImage" 52 | } 53 | }, 54 | { 55 | "version": "0.51.1", 56 | "date": "2025-05-31", 57 | "platforms": { 58 | "darwin-universal": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/darwin/universal/Cursor-darwin-universal.dmg", 59 | "darwin-x64": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/darwin/x64/Cursor-darwin-x64.dmg", 60 | "darwin-arm64": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/darwin/arm64/Cursor-darwin-arm64.dmg", 61 | "win32-x64-user": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/x64/user-setup/CursorUserSetup-x64-0.51.1.exe", 62 | "win32-arm64-user": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/arm64/user-setup/CursorUserSetup-arm64-0.51.1.exe", 63 | "win32-x64-system": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/x64/system-setup/CursorSetup-x64-0.51.1.exe", 64 | "win32-arm64-system": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/arm64/system-setup/CursorSetup-arm64-0.51.1.exe", 65 | "win32-x64": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/x64/system-setup/CursorSetup-x64-0.51.1.exe", 66 | "win32-arm64": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/arm64/system-setup/CursorSetup-arm64-0.51.1.exe", 67 | "linux-x64": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/linux/x64/Cursor-0.51.1-x86_64.AppImage", 68 | "linux-arm64": "https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/linux/arm64/Cursor-0.51.1-aarch64.AppImage" 69 | } 70 | }, 71 | { 72 | "version": "0.51.0", 73 | "date": "2025-05-30", 74 | "platforms": { 75 | "darwin-universal": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/darwin/universal/Cursor-darwin-universal.dmg", 76 | "darwin-x64": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/darwin/x64/Cursor-darwin-x64.dmg", 77 | "darwin-arm64": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/darwin/arm64/Cursor-darwin-arm64.dmg", 78 | "win32-x64-user": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/x64/user-setup/CursorUserSetup-x64-0.51.0.exe", 79 | "win32-arm64-user": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/arm64/user-setup/CursorUserSetup-arm64-0.51.0.exe", 80 | "win32-x64-system": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/x64/system-setup/CursorSetup-x64-0.51.0.exe", 81 | "win32-arm64-system": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/arm64/system-setup/CursorSetup-arm64-0.51.0.exe", 82 | "win32-x64": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/x64/system-setup/CursorSetup-x64-0.51.0.exe", 83 | "win32-arm64": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/arm64/system-setup/CursorSetup-arm64-0.51.0.exe", 84 | "linux-x64": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/linux/x64/Cursor-0.51.0-x86_64.AppImage", 85 | "linux-arm64": "https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/linux/arm64/Cursor-0.51.0-aarch64.AppImage" 86 | } 87 | }, 88 | { 89 | "version": "0.50.7", 90 | "date": "2025-05-24", 91 | "platforms": { 92 | "darwin-universal": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/darwin/universal/Cursor-darwin-universal.dmg", 93 | "darwin-x64": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/darwin/x64/Cursor-darwin-x64.dmg", 94 | "darwin-arm64": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/darwin/arm64/Cursor-darwin-arm64.dmg", 95 | "win32-x64-user": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/x64/user-setup/CursorUserSetup-x64-0.50.7.exe", 96 | "win32-arm64-user": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.7.exe", 97 | "win32-x64-system": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/x64/system-setup/CursorSetup-x64-0.50.7.exe", 98 | "win32-arm64-system": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/arm64/system-setup/CursorSetup-arm64-0.50.7.exe", 99 | "win32-x64": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/x64/system-setup/CursorSetup-x64-0.50.7.exe", 100 | "win32-arm64": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/arm64/system-setup/CursorSetup-arm64-0.50.7.exe", 101 | "linux-x64": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/linux/x64/Cursor-0.50.7-x86_64.AppImage", 102 | "linux-arm64": "https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/linux/arm64/Cursor-0.50.7-aarch64.AppImage" 103 | } 104 | }, 105 | { 106 | "version": "0.50.6", 107 | "date": "2025-05-23", 108 | "platforms": { 109 | "darwin-universal": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/darwin/universal/Cursor-darwin-universal.dmg", 110 | "darwin-x64": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/darwin/x64/Cursor-darwin-x64.dmg", 111 | "darwin-arm64": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/darwin/arm64/Cursor-darwin-arm64.dmg", 112 | "win32-x64-user": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/x64/user-setup/CursorUserSetup-x64-0.50.6.exe", 113 | "win32-arm64-user": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.6.exe", 114 | "win32-x64-system": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/x64/system-setup/CursorSetup-x64-0.50.6.exe", 115 | "win32-arm64-system": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/arm64/system-setup/CursorSetup-arm64-0.50.6.exe", 116 | "win32-x64": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/x64/system-setup/CursorSetup-x64-0.50.6.exe", 117 | "win32-arm64": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/arm64/system-setup/CursorSetup-arm64-0.50.6.exe", 118 | "linux-x64": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/linux/x64/Cursor-0.50.6-x86_64.AppImage", 119 | "linux-arm64": "https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/linux/arm64/Cursor-0.50.6-aarch64.AppImage" 120 | } 121 | }, 122 | { 123 | "version": "0.50.5", 124 | "date": "2025-05-18", 125 | "platforms": { 126 | "darwin-universal": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/universal/Cursor-darwin-universal.dmg", 127 | "darwin-x64": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/x64/Cursor-darwin-x64.dmg", 128 | "darwin-arm64": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/arm64/Cursor-darwin-arm64.dmg", 129 | "win32-x64-user": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/x64/user-setup/CursorUserSetup-x64-0.50.5.exe", 130 | "win32-arm64-user": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.5.exe", 131 | "win32-x64-system": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/x64/system-setup/CursorSetup-x64-0.50.5.exe", 132 | "win32-arm64-system": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/arm64/system-setup/CursorSetup-arm64-0.50.5.exe", 133 | "win32-x64": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/x64/system-setup/CursorSetup-x64-0.50.5.exe", 134 | "win32-arm64": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/arm64/system-setup/CursorSetup-arm64-0.50.5.exe", 135 | "linux-x64": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/x64/Cursor-0.50.5-x86_64.AppImage", 136 | "linux-arm64": "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/arm64/Cursor-0.50.5-aarch64.AppImage" 137 | } 138 | }, 139 | { 140 | "version": "0.50.4", 141 | "date": "2025-05-14", 142 | "platforms": { 143 | "darwin-universal": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/darwin/universal/Cursor-darwin-universal.dmg", 144 | "darwin-x64": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/darwin/x64/Cursor-darwin-x64.dmg", 145 | "darwin-arm64": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/darwin/arm64/Cursor-darwin-arm64.dmg", 146 | "win32-x64-user": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/win32/x64/user-setup/CursorUserSetup-x64-0.50.4.exe", 147 | "win32-arm64-user": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.4.exe", 148 | "win32-x64-system": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/win32/x64/system-setup/CursorSetup-x64-0.50.4.exe", 149 | "win32-arm64-system": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/win32/arm64/system-setup/CursorSetup-arm64-0.50.4.exe", 150 | "linux-x64": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/linux/x64/Cursor-0.50.4-x86_64.AppImage", 151 | "linux-arm64": "https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/linux/arm64/Cursor-0.50.4-aarch64.AppImage" 152 | } 153 | }, 154 | { 155 | "version": "0.50.3", 156 | "date": "2025-05-13", 157 | "platforms": { 158 | "darwin-universal": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/darwin/universal/Cursor-darwin-universal.dmg", 159 | "darwin-x64": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/darwin/x64/Cursor-darwin-x64.dmg", 160 | "darwin-arm64": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/darwin/arm64/Cursor-darwin-arm64.dmg", 161 | "win32-x64-user": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/win32/x64/user-setup/CursorUserSetup-x64-0.50.3.exe", 162 | "win32-arm64-user": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.3.exe", 163 | "win32-x64-system": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/win32/x64/system-setup/CursorSetup-x64-0.50.3.exe", 164 | "win32-arm64-system": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/win32/arm64/system-setup/CursorSetup-arm64-0.50.3.exe", 165 | "linux-x64": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/linux/x64/Cursor-0.50.3-x86_64.AppImage", 166 | "linux-arm64": "https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/linux/arm64/Cursor-0.50.3-aarch64.AppImage" 167 | } 168 | }, 169 | { 170 | "version": "0.50.2", 171 | "date": "2025-05-13", 172 | "platforms": { 173 | "darwin-universal": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/darwin/universal/Cursor-darwin-universal.dmg", 174 | "darwin-x64": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/darwin/x64/Cursor-darwin-x64.dmg", 175 | "darwin-arm64": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/darwin/arm64/Cursor-darwin-arm64.dmg", 176 | "win32-x64-user": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/win32/x64/user-setup/CursorUserSetup-x64-0.50.2.exe", 177 | "win32-arm64-user": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.2.exe", 178 | "win32-x64-system": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/win32/x64/system-setup/CursorSetup-x64-0.50.2.exe", 179 | "win32-arm64-system": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/win32/arm64/system-setup/CursorSetup-arm64-0.50.2.exe", 180 | "linux-x64": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/linux/x64/Cursor-0.50.2-x86_64.AppImage", 181 | "linux-arm64": "https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/linux/arm64/Cursor-0.50.2-aarch64.AppImage" 182 | } 183 | }, 184 | { 185 | "version": "0.50.1", 186 | "date": "2025-05-11", 187 | "platforms": { 188 | "darwin-universal": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/darwin/universal/Cursor-darwin-universal.dmg", 189 | "darwin-x64": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/darwin/x64/Cursor-darwin-x64.dmg", 190 | "darwin-arm64": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/darwin/arm64/Cursor-darwin-arm64.dmg", 191 | "win32-x64-user": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/win32/x64/user-setup/CursorUserSetup-x64-0.50.1.exe", 192 | "win32-arm64-user": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.1.exe", 193 | "win32-x64-system": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/win32/x64/system-setup/CursorSetup-x64-0.50.1.exe", 194 | "win32-arm64-system": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/win32/arm64/system-setup/CursorSetup-arm64-0.50.1.exe", 195 | "linux-x64": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/linux/x64/Cursor-0.50.1-x86_64.AppImage", 196 | "linux-arm64": "https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/linux/arm64/Cursor-0.50.1-aarch64.AppImage" 197 | } 198 | }, 199 | { 200 | "version": "0.50.0", 201 | "date": "2025-05-09", 202 | "platforms": { 203 | "darwin-universal": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/darwin/universal/Cursor-darwin-universal.dmg", 204 | "darwin-x64": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/darwin/x64/Cursor-darwin-x64.dmg", 205 | "darwin-arm64": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/darwin/arm64/Cursor-darwin-arm64.dmg", 206 | "win32-x64-user": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/win32/x64/user-setup/CursorUserSetup-x64-0.50.0.exe", 207 | "win32-arm64-user": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/win32/arm64/user-setup/CursorUserSetup-arm64-0.50.0.exe", 208 | "win32-x64-system": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/win32/x64/system-setup/CursorSetup-x64-0.50.0.exe", 209 | "win32-arm64-system": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/win32/arm64/system-setup/CursorSetup-arm64-0.50.0.exe", 210 | "linux-x64": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/linux/x64/Cursor-0.50.0-x86_64.AppImage", 211 | "linux-arm64": "https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/linux/arm64/Cursor-0.50.0-aarch64.AppImage" 212 | } 213 | }, 214 | { 215 | "version": "0.49.6", 216 | "date": "2025-04-25", 217 | "platforms": { 218 | "darwin-universal": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/universal/Cursor-darwin-universal.dmg", 219 | "darwin-x64": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/x64/Cursor-darwin-x64.dmg", 220 | "darwin-arm64": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/arm64/Cursor-darwin-arm64.dmg", 221 | "win32-x64-user": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/win32/x64/user-setup/CursorUserSetup-x64-0.49.6.exe", 222 | "win32-arm64-user": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/win32/arm64/user-setup/CursorUserSetup-arm64-0.49.6.exe", 223 | "win32-x64-system": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/win32/x64/system-setup/CursorSetup-x64-0.49.6.exe", 224 | "win32-arm64-system": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/win32/arm64/system-setup/CursorSetup-arm64-0.49.6.exe", 225 | "linux-x64": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/x64/Cursor-0.49.6-x86_64.AppImage", 226 | "linux-arm64": "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/arm64/Cursor-0.49.6-aarch64.AppImage" 227 | } 228 | }, 229 | { 230 | "version": "0.49.5", 231 | "date": "2025-04-24", 232 | "platforms": { 233 | "darwin-universal": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/darwin/universal/Cursor-darwin-universal.dmg", 234 | "darwin-x64": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/darwin/x64/Cursor-darwin-x64.dmg", 235 | "darwin-arm64": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/darwin/arm64/Cursor-darwin-arm64.dmg", 236 | "win32-x64-user": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/win32/x64/user-setup/CursorUserSetup-x64-0.49.5.exe", 237 | "win32-arm64-user": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/win32/arm64/user-setup/CursorUserSetup-arm64-0.49.5.exe", 238 | "win32-x64-system": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/win32/x64/system-setup/CursorSetup-x64-0.49.5.exe", 239 | "win32-arm64-system": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/win32/arm64/system-setup/CursorSetup-arm64-0.49.5.exe", 240 | "linux-x64": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/linux/x64/Cursor-0.49.5-x86_64.AppImage", 241 | "linux-arm64": "https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/linux/arm64/Cursor-0.49.5-aarch64.AppImage" 242 | } 243 | }, 244 | { 245 | "version": "0.49.4", 246 | "date": "2025-04-22", 247 | "platforms": { 248 | "darwin-universal": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/darwin/universal/Cursor-darwin-universal.dmg", 249 | "darwin-x64": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/darwin/x64/Cursor-darwin-x64.dmg", 250 | "darwin-arm64": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/darwin/arm64/Cursor-darwin-arm64.dmg", 251 | "win32-x64-user": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/win32/x64/user-setup/CursorUserSetup-x64-0.49.4.exe", 252 | "win32-arm64-user": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/win32/arm64/user-setup/CursorUserSetup-arm64-0.49.4.exe", 253 | "win32-x64-system": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/win32/x64/system-setup/CursorSetup-x64-0.49.4.exe", 254 | "win32-arm64-system": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/win32/arm64/system-setup/CursorSetup-arm64-0.49.4.exe", 255 | "linux-x64": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/linux/x64/Cursor-0.49.4-x86_64.AppImage", 256 | "linux-arm64": "https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/linux/arm64/Cursor-0.49.4-aarch64.AppImage" 257 | } 258 | }, 259 | { 260 | "version": "0.49.3", 261 | "date": "2025-04-21", 262 | "platforms": { 263 | "darwin-universal": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/darwin/universal/Cursor-darwin-universal.dmg", 264 | "darwin-x64": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/darwin/x64/Cursor-darwin-x64.dmg", 265 | "darwin-arm64": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/darwin/arm64/Cursor-darwin-arm64.dmg", 266 | "win32-x64-user": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/win32/x64/user-setup/CursorUserSetup-x64-0.49.3.exe", 267 | "win32-arm64-user": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/win32/arm64/user-setup/CursorUserSetup-arm64-0.49.3.exe", 268 | "win32-x64-system": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/win32/x64/system-setup/CursorSetup-x64-0.49.3.exe", 269 | "win32-arm64-system": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/win32/arm64/system-setup/CursorSetup-arm64-0.49.3.exe", 270 | "linux-x64": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/linux/x64/Cursor-0.49.3-x86_64.AppImage", 271 | "linux-arm64": "https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/linux/arm64/Cursor-0.49.3-aarch64.AppImage" 272 | } 273 | }, 274 | { 275 | "version": "0.49.2", 276 | "date": "2025-04-19", 277 | "platforms": { 278 | "darwin-universal": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/darwin/universal/Cursor-darwin-universal.dmg", 279 | "darwin-x64": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/darwin/x64/Cursor-darwin-x64.dmg", 280 | "darwin-arm64": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/darwin/arm64/Cursor-darwin-arm64.dmg", 281 | "win32-x64-user": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/win32/x64/user-setup/CursorUserSetup-x64-0.49.2.exe", 282 | "win32-arm64-user": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/win32/arm64/user-setup/CursorUserSetup-arm64-0.49.2.exe", 283 | "win32-x64-system": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/win32/x64/system-setup/CursorSetup-x64-0.49.2.exe", 284 | "win32-arm64-system": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/win32/arm64/system-setup/CursorSetup-arm64-0.49.2.exe", 285 | "linux-x64": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/linux/x64/Cursor-0.49.2-x86_64.AppImage", 286 | "linux-arm64": "https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/linux/arm64/Cursor-0.49.2-aarch64.AppImage" 287 | } 288 | }, 289 | { 290 | "version": "0.49.1", 291 | "date": "2025-04-17", 292 | "platforms": { 293 | "darwin-universal": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/darwin/universal/Cursor-darwin-universal.dmg", 294 | "darwin-x64": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/darwin/x64/Cursor-darwin-x64.dmg", 295 | "darwin-arm64": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/darwin/arm64/Cursor-darwin-arm64.dmg", 296 | "win32-x64-user": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/win32/x64/user-setup/CursorUserSetup-x64-0.49.1.exe", 297 | "win32-arm64-user": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/win32/arm64/user-setup/CursorUserSetup-arm64-0.49.1.exe", 298 | "win32-x64-system": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/win32/x64/system-setup/CursorSetup-x64-0.49.1.exe", 299 | "win32-arm64-system": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/win32/arm64/system-setup/CursorSetup-arm64-0.49.1.exe", 300 | "linux-x64": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/linux/x64/Cursor-0.49.1-x86_64.AppImage", 301 | "linux-arm64": "https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/linux/arm64/Cursor-0.49.1-aarch64.AppImage" 302 | } 303 | }, 304 | { 305 | "version": "0.49.0", 306 | "date": "2025-04-16", 307 | "platforms": { 308 | "darwin-universal": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/darwin/universal/Cursor-darwin-universal.dmg", 309 | "darwin-x64": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/darwin/x64/Cursor-darwin-x64.dmg", 310 | "darwin-arm64": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/darwin/arm64/Cursor-darwin-arm64.dmg", 311 | "win32-x64-user": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/win32/x64/user-setup/CursorUserSetup-x64-0.49.0.exe", 312 | "win32-arm64-user": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/win32/arm64/user-setup/CursorUserSetup-arm64-0.49.0.exe", 313 | "win32-x64-system": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/win32/x64/system-setup/CursorSetup-x64-0.49.0.exe", 314 | "win32-arm64-system": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/win32/arm64/system-setup/CursorSetup-arm64-0.49.0.exe", 315 | "linux-x64": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/linux/x64/Cursor-0.49.0-x86_64.AppImage", 316 | "linux-arm64": "https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/linux/arm64/Cursor-0.49.0-aarch64.AppImage" 317 | } 318 | }, 319 | { 320 | "version": "0.48.9", 321 | "date": "2025-04-13", 322 | "platforms": { 323 | "darwin-universal": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/darwin/universal/Cursor-darwin-universal.dmg", 324 | "darwin-x64": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/darwin/x64/Cursor-darwin-x64.dmg", 325 | "darwin-arm64": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/darwin/arm64/Cursor-darwin-arm64.dmg", 326 | "win32-x64-user": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/win32/x64/user-setup/CursorUserSetup-x64-0.48.9.exe", 327 | "win32-arm64-user": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.9.exe", 328 | "win32-x64-system": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/win32/x64/system-setup/CursorSetup-x64-0.48.9.exe", 329 | "win32-arm64-system": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/win32/arm64/system-setup/CursorSetup-arm64-0.48.9.exe", 330 | "linux-x64": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/linux/x64/Cursor-0.48.9-x86_64.AppImage", 331 | "linux-arm64": "https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/linux/arm64/Cursor-0.48.9-aarch64.AppImage" 332 | } 333 | }, 334 | { 335 | "version": "0.48.8", 336 | "date": "2025-04-07", 337 | "platforms": { 338 | "darwin-universal": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/darwin/universal/Cursor-darwin-universal.dmg", 339 | "darwin-x64": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/darwin/x64/Cursor-darwin-x64.dmg", 340 | "darwin-arm64": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/darwin/arm64/Cursor-darwin-arm64.dmg", 341 | "win32-x64-user": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/win32/x64/user-setup/CursorUserSetup-x64-0.48.8.exe", 342 | "win32-arm64-user": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.8.exe", 343 | "win32-x64-system": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/win32/x64/system-setup/CursorSetup-x64-0.48.8.exe", 344 | "win32-arm64-system": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/win32/arm64/system-setup/CursorSetup-arm64-0.48.8.exe", 345 | "linux-x64": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/linux/x64/Cursor-0.48.8-x86_64.AppImage", 346 | "linux-arm64": "https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/linux/arm64/Cursor-0.48.8-aarch64.AppImage" 347 | } 348 | }, 349 | { 350 | "version": "0.48.7", 351 | "date": "2025-04-02", 352 | "platforms": { 353 | "darwin-universal": "https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/darwin/universal/Cursor-darwin-universal.dmg", 354 | "darwin-x64": "https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/darwin/x64/Cursor-darwin-x64.dmg", 355 | "darwin-arm64": "https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/darwin/arm64/Cursor-darwin-arm64.dmg", 356 | "win32-x64": "https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/win32/x64/user-setup/CursorUserSetup-x64-0.48.7.exe", 357 | "win32-arm64": "https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.7.exe", 358 | "linux-x64": "https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/linux/x64/Cursor-0.48.7-x86_64.AppImage", 359 | "linux-arm64": "https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/linux/arm64/Cursor-0.48.7-aarch64.AppImage" 360 | } 361 | }, 362 | { 363 | "version": "0.48.6", 364 | "date": "2025-03-31", 365 | "platforms": { 366 | "darwin-universal": "https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/darwin/universal/Cursor-darwin-universal.dmg", 367 | "darwin-x64": "https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/darwin/x64/Cursor-darwin-x64.dmg", 368 | "darwin-arm64": "https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/darwin/arm64/Cursor-darwin-arm64.dmg", 369 | "win32-x64": "https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/win32/x64/user-setup/CursorUserSetup-x64-0.48.6.exe", 370 | "win32-arm64": "https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.6.exe", 371 | "linux-x64": "https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/linux/x64/Cursor-0.48.6-x86_64.AppImage", 372 | "linux-arm64": "https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/linux/arm64/Cursor-0.48.6-aarch64.AppImage" 373 | } 374 | }, 375 | { 376 | "version": "0.48.5", 377 | "date": "2025-03-30", 378 | "platforms": { 379 | "darwin-universal": "https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/darwin/universal/Cursor-darwin-universal.dmg", 380 | "darwin-x64": "https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/darwin/x64/Cursor-darwin-x64.dmg", 381 | "darwin-arm64": "https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/darwin/arm64/Cursor-darwin-arm64.dmg", 382 | "win32-x64": "https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/win32/x64/user-setup/CursorUserSetup-x64-0.48.5.exe", 383 | "win32-arm64": "https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.5.exe", 384 | "linux-x64": "https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/linux/x64/Cursor-0.48.5-x86_64.AppImage", 385 | "linux-arm64": "https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/linux/arm64/Cursor-0.48.5-aarch64.AppImage" 386 | } 387 | }, 388 | { 389 | "version": "0.48.4", 390 | "date": "2025-03-29", 391 | "platforms": { 392 | "darwin-universal": "https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/darwin/universal/Cursor-darwin-universal.dmg", 393 | "darwin-x64": "https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/darwin/x64/Cursor-darwin-x64.dmg", 394 | "darwin-arm64": "https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/darwin/arm64/Cursor-darwin-arm64.dmg", 395 | "win32-x64": "https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/win32/x64/user-setup/CursorUserSetup-x64-0.48.4.exe", 396 | "win32-arm64": "https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.4.exe", 397 | "linux-x64": "https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/linux/x64/Cursor-0.48.4-x86_64.AppImage", 398 | "linux-arm64": "https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/linux/arm64/Cursor-0.48.4-aarch64.AppImage" 399 | } 400 | }, 401 | { 402 | "version": "0.48.3", 403 | "date": "2025-03-29", 404 | "platforms": { 405 | "darwin-universal": "https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/darwin/universal/Cursor-darwin-universal.dmg", 406 | "darwin-x64": "https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/darwin/x64/Cursor-darwin-x64.dmg", 407 | "darwin-arm64": "https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/darwin/arm64/Cursor-darwin-arm64.dmg", 408 | "win32-x64": "https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/win32/x64/user-setup/CursorUserSetup-x64-0.48.3.exe", 409 | "win32-arm64": "https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.3.exe", 410 | "linux-x64": "https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/linux/x64/Cursor-0.48.3-x86_64.AppImage", 411 | "linux-arm64": "https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/linux/arm64/Cursor-0.48.3-aarch64.AppImage" 412 | } 413 | }, 414 | { 415 | "version": "0.48.2", 416 | "date": "2025-03-26", 417 | "platforms": { 418 | "darwin-universal": "https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/darwin/universal/Cursor-darwin-universal.dmg", 419 | "darwin-x64": "https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/darwin/x64/Cursor-darwin-x64.dmg", 420 | "darwin-arm64": "https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/darwin/arm64/Cursor-darwin-arm64.dmg", 421 | "win32-x64": "https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/win32/x64/user-setup/CursorUserSetup-x64-0.48.2.exe", 422 | "win32-arm64": "https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.2.exe", 423 | "linux-x64": "https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/linux/x64/Cursor-0.48.2-x86_64.AppImage", 424 | "linux-arm64": "https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/linux/arm64/Cursor-0.48.2-aarch64.AppImage" 425 | } 426 | }, 427 | { 428 | "version": "0.48.1", 429 | "date": "2025-03-24", 430 | "platforms": { 431 | "darwin-universal": "https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/darwin/universal/Cursor-darwin-universal.dmg", 432 | "darwin-x64": "https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/darwin/x64/Cursor-darwin-x64.dmg", 433 | "darwin-arm64": "https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/darwin/arm64/Cursor-darwin-arm64.dmg", 434 | "win32-x64": "https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/win32/x64/user-setup/CursorUserSetup-x64-0.48.1.exe", 435 | "win32-arm64": "https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.1.exe", 436 | "linux-x64": "https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/linux/x64/Cursor-0.48.1-x86_64.AppImage", 437 | "linux-arm64": "https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/linux/arm64/Cursor-0.48.1-aarch64.AppImage" 438 | } 439 | }, 440 | { 441 | "version": "0.48.0", 442 | "date": "2025-03-24", 443 | "platforms": { 444 | "darwin-universal": "https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/darwin/universal/Cursor-darwin-universal.dmg", 445 | "darwin-x64": "https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/darwin/x64/Cursor-darwin-x64.dmg", 446 | "darwin-arm64": "https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/darwin/arm64/Cursor-darwin-arm64.dmg", 447 | "win32-x64": "https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/win32/x64/user-setup/CursorUserSetup-x64-0.48.0.exe", 448 | "win32-arm64": "https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.0.exe", 449 | "linux-x64": "https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/linux/x64/Cursor-0.48.0-x86_64.AppImage", 450 | "linux-arm64": "https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/linux/arm64/Cursor-0.48.0-aarch64.AppImage" 451 | } 452 | }, 453 | { 454 | "version": "0.47.9", 455 | "date": "2025-03-21", 456 | "platforms": { 457 | "darwin-universal": "https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/darwin/universal/Cursor-darwin-universal.dmg", 458 | "darwin-x64": "https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/darwin/x64/Cursor-darwin-x64.dmg", 459 | "darwin-arm64": "https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/darwin/arm64/Cursor-darwin-arm64.dmg", 460 | "win32-x64": "https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/win32/x64/user-setup/CursorUserSetup-x64-0.47.9.exe", 461 | "win32-arm64": "https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.9.exe", 462 | "linux-x64": "https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/linux/x64/Cursor-0.47.9-x86_64.AppImage", 463 | "linux-arm64": "https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/linux/arm64/Cursor-0.47.9-aarch64.AppImage" 464 | } 465 | }, 466 | { 467 | "version": "0.47.8", 468 | "date": "2025-03-18", 469 | "platforms": { 470 | "darwin-universal": "https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/darwin/universal/Cursor-darwin-universal.dmg", 471 | "darwin-x64": "https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/darwin/x64/Cursor-darwin-x64.dmg", 472 | "darwin-arm64": "https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/darwin/arm64/Cursor-darwin-arm64.dmg", 473 | "win32-x64": "https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/win32/x64/user-setup/CursorUserSetup-x64-0.47.8.exe", 474 | "win32-arm64": "https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.8.exe", 475 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.8-82ef0f61c01d079d1b7e5ab04d88499d5af500e3.deb.glibc2.25-x86_64.AppImage", 476 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.8-82ef0f61c01d079d1b7e5ab04d88499d5af500e3.deb.glibc2.28-aarch64.AppImage" 477 | } 478 | }, 479 | { 480 | "version": "0.47.7", 481 | "date": "2025-03-18", 482 | "platforms": { 483 | "darwin-universal": "https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/darwin/universal/Cursor-darwin-universal.dmg", 484 | "darwin-x64": "https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/darwin/x64/Cursor-darwin-x64.dmg", 485 | "darwin-arm64": "https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/darwin/arm64/Cursor-darwin-arm64.dmg", 486 | "win32-x64": "https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/win32/x64/user-setup/CursorUserSetup-x64-0.47.7.exe", 487 | "win32-arm64": "https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.7.exe", 488 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.7-33ec0dad159bc0ad620f6bbda539efe90c39748d.deb.glibc2.25-x86_64.AppImage", 489 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.7-33ec0dad159bc0ad620f6bbda539efe90c39748d.deb.glibc2.28-aarch64.AppImage" 490 | } 491 | }, 492 | { 493 | "version": "0.47.6", 494 | "date": "2025-03-17", 495 | "platforms": { 496 | "darwin-universal": "https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/darwin/universal/Cursor-darwin-universal.dmg", 497 | "darwin-x64": "https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/darwin/x64/Cursor-darwin-x64.dmg", 498 | "darwin-arm64": "https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/darwin/arm64/Cursor-darwin-arm64.dmg", 499 | "win32-x64": "https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/win32/x64/user-setup/CursorUserSetup-x64-0.47.6.exe", 500 | "win32-arm64": "https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.6.exe", 501 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.6-6a1a6fbc55483584e7022f491c8a167ccac86f22.deb.glibc2.25-x86_64.AppImage", 502 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.6-6a1a6fbc55483584e7022f491c8a167ccac86f22.deb.glibc2.28-aarch64.AppImage" 503 | } 504 | }, 505 | { 506 | "version": "0.47.5", 507 | "date": "2025-03-14", 508 | "platforms": { 509 | "darwin-universal": "https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/darwin/universal/Cursor-darwin-universal.dmg", 510 | "darwin-x64": "https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/darwin/x64/Cursor-darwin-x64.dmg", 511 | "darwin-arm64": "https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/darwin/arm64/Cursor-darwin-arm64.dmg", 512 | "win32-x64": "https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/win32/x64/user-setup/CursorUserSetup-x64-0.47.5.exe", 513 | "win32-arm64": "https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.5.exe", 514 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.5-53d6da1322f934a1058e7569ee0847b24879d18c.deb.glibc2.25-x86_64.AppImage", 515 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.5-53d6da1322f934a1058e7569ee0847b24879d18c.deb.glibc2.28-aarch64.AppImage" 516 | } 517 | }, 518 | { 519 | "version": "0.47.4", 520 | "date": "2025-03-14", 521 | "platforms": { 522 | "darwin-universal": "https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/darwin/universal/Cursor-darwin-universal.dmg", 523 | "darwin-x64": "https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/darwin/x64/Cursor-darwin-x64.dmg", 524 | "darwin-arm64": "https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/darwin/arm64/Cursor-darwin-arm64.dmg", 525 | "win32-x64": "https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/win32/x64/user-setup/CursorUserSetup-x64-0.47.4.exe", 526 | "win32-arm64": "https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.4.exe", 527 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.4-8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2.deb.glibc2.25-x86_64.AppImage", 528 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.4-8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2.deb.glibc2.28-aarch64.AppImage" 529 | } 530 | }, 531 | { 532 | "version": "0.47.3", 533 | "date": "2025-03-13", 534 | "platforms": { 535 | "darwin-universal": "https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/darwin/universal/Cursor-darwin-universal.dmg", 536 | "darwin-x64": "https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/darwin/x64/Cursor-darwin-x64.dmg", 537 | "darwin-arm64": "https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/darwin/arm64/Cursor-darwin-arm64.dmg", 538 | "win32-x64": "https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/win32/x64/user-setup/CursorUserSetup-x64-0.47.3.exe", 539 | "win32-arm64": "https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.3.exe", 540 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.3-dab1538cd064aebd4292f9de48b05022c974aff6.deb.glibc2.25-x86_64.AppImage", 541 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.3-dab1538cd064aebd4292f9de48b05022c974aff6.deb.glibc2.28-aarch64.AppImage" 542 | } 543 | }, 544 | { 545 | "version": "0.47.2", 546 | "date": "2025-03-13", 547 | "platforms": { 548 | "darwin-universal": "https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/darwin/universal/Cursor-darwin-universal.dmg", 549 | "darwin-x64": "https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/darwin/x64/Cursor-darwin-x64.dmg", 550 | "darwin-arm64": "https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/darwin/arm64/Cursor-darwin-arm64.dmg", 551 | "win32-x64": "https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/win32/x64/user-setup/CursorUserSetup-x64-0.47.2.exe", 552 | "win32-arm64": "https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.2.exe", 553 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.2-bed609aa4a57e9d82664006f152d3f77589eed10.deb.glibc2.25-x86_64.AppImage", 554 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.2-bed609aa4a57e9d82664006f152d3f77589eed10.deb.glibc2.28-aarch64.AppImage" 555 | } 556 | }, 557 | { 558 | "version": "0.47.1", 559 | "date": "2025-03-11", 560 | "platforms": { 561 | "darwin-universal": "https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/darwin/universal/Cursor-darwin-universal.dmg", 562 | "darwin-x64": "https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/darwin/x64/Cursor-darwin-x64.dmg", 563 | "darwin-arm64": "https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/darwin/arm64/Cursor-darwin-arm64.dmg", 564 | "win32-x64": "https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/win32/x64/user-setup/CursorUserSetup-x64-0.47.1.exe", 565 | "win32-arm64": "https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.1.exe", 566 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.1-aafb3fe1326c939656bd06f325a9e17679aeec7f.deb.glibc2.25-x86_64.AppImage", 567 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.1-aafb3fe1326c939656bd06f325a9e17679aeec7f.deb.glibc2.28-aarch64.AppImage" 568 | } 569 | }, 570 | { 571 | "version": "0.47.0", 572 | "date": "2025-03-11", 573 | "platforms": { 574 | "darwin-universal": "https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/darwin/universal/Cursor-darwin-universal.dmg", 575 | "darwin-x64": "https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/darwin/x64/Cursor-darwin-x64.dmg", 576 | "darwin-arm64": "https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/darwin/arm64/Cursor-darwin-arm64.dmg", 577 | "win32-x64": "https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/win32/x64/user-setup/CursorUserSetup-x64-0.47.0.exe", 578 | "win32-arm64": "https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.0.exe", 579 | "linux-x64": "https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.0-4a602340d7b014d700647120bae9079607f2ae9b.deb.glibc2.25-x86_64.AppImage", 580 | "linux-arm64": "https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.0-4a602340d7b014d700647120bae9079607f2ae9b.deb.glibc2.28-aarch64.AppImage" 581 | } 582 | }, 583 | { 584 | "version": "0.46.11", 585 | "date": "2025-03-07", 586 | "platforms": { 587 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/darwin/universal/Cursor-darwin-universal.dmg", 588 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/darwin/x64/Cursor-darwin-x64.dmg", 589 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/darwin/arm64/Cursor-darwin-arm64.dmg", 590 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/win32/x64/user-setup/CursorUserSetup-x64-0.46.11.exe", 591 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.11.exe", 592 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage", 593 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.28-aarch64.AppImage" 594 | } 595 | }, 596 | { 597 | "version": "0.46.10", 598 | "date": "2025-03-06", 599 | "platforms": { 600 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/darwin/universal/Cursor-darwin-universal.dmg", 601 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/darwin/x64/Cursor-darwin-x64.dmg", 602 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/darwin/arm64/Cursor-darwin-arm64.dmg", 603 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/win32/x64/user-setup/CursorUserSetup-x64-0.46.10.exe", 604 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.10.exe", 605 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.10-7b3e0d45d4f952938dbd8e1e29c1b17003198481.deb.glibc2.25-x86_64.AppImage", 606 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.10-7b3e0d45d4f952938dbd8e1e29c1b17003198481.deb.glibc2.28-aarch64.AppImage" 607 | } 608 | }, 609 | { 610 | "version": "0.46.9", 611 | "date": "2025-03-05", 612 | "platforms": { 613 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/darwin/universal/Cursor-darwin-universal.dmg", 614 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/darwin/x64/Cursor-darwin-x64.dmg", 615 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/darwin/arm64/Cursor-darwin-arm64.dmg", 616 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/win32/x64/user-setup/CursorUserSetup-x64-0.46.9.exe", 617 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.9.exe", 618 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.9-3395357a4ee2975d5d03595e7607ee84e3db0f2c.deb.glibc2.25-x86_64.AppImage", 619 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.9-3395357a4ee2975d5d03595e7607ee84e3db0f2c.deb.glibc2.28-aarch64.AppImage" 620 | } 621 | }, 622 | { 623 | "version": "0.46.8", 624 | "date": "2025-03-01", 625 | "platforms": { 626 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/darwin/universal/Cursor-darwin-universal.dmg", 627 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/darwin/x64/Cursor-darwin-x64.dmg", 628 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/darwin/arm64/Cursor-darwin-arm64.dmg", 629 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/win32/x64/user-setup/CursorUserSetup-x64-0.46.8.exe", 630 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.8.exe", 631 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.8-be4f0962469499f009005e66867c8402202ff0b7.deb.glibc2.25-x86_64.AppImage", 632 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.8-be4f0962469499f009005e66867c8402202ff0b7.deb.glibc2.28-aarch64.AppImage" 633 | } 634 | }, 635 | { 636 | "version": "0.46.7", 637 | "date": "2025-02-27", 638 | "platforms": { 639 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/darwin/universal/Cursor-darwin-universal.dmg", 640 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/darwin/x64/Cursor-darwin-x64.dmg", 641 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/darwin/arm64/Cursor-darwin-arm64.dmg", 642 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/win32/x64/user-setup/CursorUserSetup-x64-0.46.7.exe", 643 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.7.exe", 644 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.7-3611c5390c448b242ab97e328493bb8ef7241e61.deb.glibc2.25-x86_64.AppImage", 645 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.7-3611c5390c448b242ab97e328493bb8ef7241e61.deb.glibc2.28-aarch64.AppImage" 646 | } 647 | }, 648 | { 649 | "version": "0.46.6", 650 | "date": "2025-02-26", 651 | "platforms": { 652 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/darwin/universal/Cursor-darwin-universal.dmg", 653 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/darwin/x64/Cursor-darwin-x64.dmg", 654 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/darwin/arm64/Cursor-darwin-arm64.dmg", 655 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/win32/x64/user-setup/CursorUserSetup-x64-0.46.6.exe", 656 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.6.exe", 657 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.6-5ac4b6282478aa0f4d1bfc032412616523788843.deb.glibc2.25-x86_64.AppImage", 658 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.6-5ac4b6282478aa0f4d1bfc032412616523788843.deb.glibc2.28-aarch64.AppImage" 659 | } 660 | }, 661 | { 662 | "version": "0.46.5", 663 | "date": "2025-02-26", 664 | "platforms": { 665 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/darwin/universal/Cursor-darwin-universal.dmg", 666 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/darwin/x64/Cursor-darwin-x64.dmg", 667 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/darwin/arm64/Cursor-darwin-arm64.dmg", 668 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/win32/x64/user-setup/CursorUserSetup-x64-0.46.5.exe", 669 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.5.exe", 670 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.5-9fa6e431b47f723d1bac24802102dd2fd8ea72b0.deb.glibc2.25-x86_64.AppImage", 671 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.5-9fa6e431b47f723d1bac24802102dd2fd8ea72b0.deb.glibc2.28-aarch64.AppImage" 672 | } 673 | }, 674 | { 675 | "version": "0.46.4", 676 | "date": "2025-02-25", 677 | "platforms": { 678 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/darwin/universal/Cursor-darwin-universal.dmg", 679 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/darwin/x64/Cursor-darwin-x64.dmg", 680 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/darwin/arm64/Cursor-darwin-arm64.dmg", 681 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/win32/x64/user-setup/CursorUserSetup-x64-0.46.4.exe", 682 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.4.exe", 683 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.4-db71624816f6d52f6e54f47c37cdc7df23e22623.deb.glibc2.25-x86_64.AppImage", 684 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.4-db71624816f6d52f6e54f47c37cdc7df23e22623.deb.glibc2.28-aarch64.AppImage" 685 | } 686 | }, 687 | { 688 | "version": "0.46.3", 689 | "date": "2025-02-25", 690 | "platforms": { 691 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/darwin/universal/Cursor-darwin-universal.dmg", 692 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/darwin/x64/Cursor-darwin-x64.dmg", 693 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/darwin/arm64/Cursor-darwin-arm64.dmg", 694 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/win32/x64/user-setup/CursorUserSetup-x64-0.46.3.exe", 695 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.3.exe", 696 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.3-fce3511bab261b4c986797f3e1e40e7621bbd012.deb.glibc2.25-x86_64.AppImage", 697 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.3-fce3511bab261b4c986797f3e1e40e7621bbd012.deb.glibc2.28-aarch64.AppImage" 698 | } 699 | }, 700 | { 701 | "version": "0.46.2", 702 | "date": "2025-02-23", 703 | "platforms": { 704 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/darwin/universal/Cursor-darwin-universal.dmg", 705 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/darwin/x64/Cursor-darwin-x64.dmg", 706 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/darwin/arm64/Cursor-darwin-arm64.dmg", 707 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/win32/x64/user-setup/CursorUserSetup-x64-0.46.2.exe", 708 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.2.exe", 709 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.2-84b9c6d907219bb8c2874f299540eb6a079187ab.deb.glibc2.25-x86_64.AppImage", 710 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.2-84b9c6d907219bb8c2874f299540eb6a079187ab.deb.glibc2.28-aarch64.AppImage" 711 | } 712 | }, 713 | { 714 | "version": "0.46.1", 715 | "date": "2025-02-23", 716 | "platforms": { 717 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/darwin/universal/Cursor-darwin-universal.dmg", 718 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/darwin/x64/Cursor-darwin-x64.dmg", 719 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/darwin/arm64/Cursor-darwin-arm64.dmg", 720 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/win32/x64/user-setup/CursorUserSetup-x64-0.46.1.exe", 721 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.1.exe", 722 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.1-69ce6c261e430e5be69213f1e721e50142477715.deb.glibc2.25-x86_64.AppImage", 723 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.1-69ce6c261e430e5be69213f1e721e50142477715.deb.glibc2.28-aarch64.AppImage" 724 | } 725 | }, 726 | { 727 | "version": "0.46.0", 728 | "date": "2025-02-22", 729 | "platforms": { 730 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/darwin/universal/Cursor-darwin-universal.dmg", 731 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/darwin/x64/Cursor-darwin-x64.dmg", 732 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/darwin/arm64/Cursor-darwin-arm64.dmg", 733 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/win32/x64/user-setup/CursorUserSetup-x64-0.46.0.exe", 734 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.0.exe", 735 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.46.0-aff57e1d9a74ed627fb5bd393e347079514436a7.deb.glibc2.25-x86_64.AppImage", 736 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.46.0-aff57e1d9a74ed627fb5bd393e347079514436a7.deb.glibc2.28-aarch64.AppImage" 737 | } 738 | }, 739 | { 740 | "version": "0.45.15", 741 | "date": "2025-02-20", 742 | "platforms": { 743 | "darwin-universal": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/darwin/universal/Cursor-darwin-universal.dmg", 744 | "darwin-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/darwin/x64/Cursor-darwin-x64.dmg", 745 | "darwin-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/darwin/arm64/Cursor-darwin-arm64.dmg", 746 | "win32-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/win32/x64/user-setup/CursorUserSetup-x64-0.45.15.exe", 747 | "win32-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/win32/arm64/user-setup/CursorUserSetup-arm64-0.45.15.exe", 748 | "linux-x64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/x64/appimage/Cursor-0.45.15-73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1.deb.glibc2.25-x86_64.AppImage", 749 | "linux-arm64": "https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/client/linux/arm64/appimage/Cursor-0.45.15-73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1.deb.glibc2.28-aarch64.AppImage" 750 | } 751 | }, 752 | { 753 | "version": "0.45.14", 754 | "date": "2025-02-19", 755 | "platforms": { 756 | "darwin-universal": "https://downloader.cursor.sh/builds/250219jnihavxsz/mac/installer/universal", 757 | "darwin-x64": "https://downloader.cursor.sh/builds/250219jnihavxsz/mac/installer/x64", 758 | "darwin-arm64": "https://downloader.cursor.sh/builds/250219jnihavxsz/mac/installer/arm64", 759 | "win32-x64": "https://downloader.cursor.sh/builds/250219jnihavxsz/windows/nsis/x64", 760 | "win32-arm64": "https://downloader.cursor.sh/builds/250219jnihavxsz/windows/nsis/arm64", 761 | "linux-x64": "https://downloader.cursor.sh/builds/250219jnihavxsz/linux/appImage/x64", 762 | "linux-arm64": "https://downloader.cursor.sh/builds/250219jnihavxsz/linux/appImage/arm64" 763 | } 764 | }, 765 | { 766 | "version": "0.45.12", 767 | "date": "2025-02-18", 768 | "platforms": { 769 | "darwin-universal": "https://downloader.cursor.sh/builds/2502180s4ios0dk/mac/installer/universal", 770 | "darwin-x64": "https://downloader.cursor.sh/builds/2502180s4ios0dk/mac/installer/x64", 771 | "darwin-arm64": "https://downloader.cursor.sh/builds/2502180s4ios0dk/mac/installer/arm64", 772 | "win32-x64": "https://downloader.cursor.sh/builds/2502180s4ios0dk/windows/nsis/x64", 773 | "win32-arm64": "https://downloader.cursor.sh/builds/2502180s4ios0dk/windows/nsis/arm64", 774 | "linux-x64": "https://downloader.cursor.sh/builds/2502180s4ios0dk/linux/appImage/x64", 775 | "linux-arm64": "https://downloader.cursor.sh/builds/2502180s4ios0dk/linux/appImage/arm64" 776 | } 777 | }, 778 | { 779 | "version": "0.45.11", 780 | "date": "2025-02-07", 781 | "platforms": { 782 | "darwin-universal": "https://downloader.cursor.sh/builds/250207y6nbaw5qc/mac/installer/universal", 783 | "darwin-x64": "https://downloader.cursor.sh/builds/250207y6nbaw5qc/mac/installer/x64", 784 | "darwin-arm64": "https://downloader.cursor.sh/builds/250207y6nbaw5qc/mac/installer/arm64", 785 | "win32-x64": "https://downloader.cursor.sh/builds/250207y6nbaw5qc/windows/nsis/x64", 786 | "win32-arm64": "https://downloader.cursor.sh/builds/250207y6nbaw5qc/windows/nsis/arm64", 787 | "linux-x64": "https://downloader.cursor.sh/builds/250207y6nbaw5qc/linux/appImage/x64", 788 | "linux-arm64": "https://downloader.cursor.sh/builds/250207y6nbaw5qc/linux/appImage/arm64" 789 | } 790 | }, 791 | { 792 | "version": "0.45.10", 793 | "date": "2025-02-05", 794 | "platforms": { 795 | "darwin-universal": "https://downloader.cursor.sh/builds/250205buadkzpea/mac/installer/universal", 796 | "darwin-x64": "https://downloader.cursor.sh/builds/250205buadkzpea/mac/installer/x64", 797 | "darwin-arm64": "https://downloader.cursor.sh/builds/250205buadkzpea/mac/installer/arm64", 798 | "win32-x64": "https://downloader.cursor.sh/builds/250205buadkzpea/windows/nsis/x64", 799 | "win32-arm64": "https://downloader.cursor.sh/builds/250205buadkzpea/windows/nsis/arm64", 800 | "linux-x64": "https://downloader.cursor.sh/builds/250205buadkzpea/linux/appImage/x64", 801 | "linux-arm64": "https://downloader.cursor.sh/builds/250205buadkzpea/linux/appImage/arm64" 802 | } 803 | }, 804 | { 805 | "version": "0.45.9", 806 | "date": "2025-02-02", 807 | "platforms": { 808 | "darwin-universal": "https://downloader.cursor.sh/builds/250202tgstl42dt/mac/installer/universal", 809 | "darwin-x64": "https://downloader.cursor.sh/builds/250202tgstl42dt/mac/installer/x64", 810 | "darwin-arm64": "https://downloader.cursor.sh/builds/250202tgstl42dt/mac/installer/arm64", 811 | "win32-x64": "https://downloader.cursor.sh/builds/250202tgstl42dt/windows/nsis/x64", 812 | "win32-arm64": "https://downloader.cursor.sh/builds/250202tgstl42dt/windows/nsis/arm64", 813 | "linux-x64": "https://downloader.cursor.sh/builds/250202tgstl42dt/linux/appImage/x64", 814 | "linux-arm64": "https://downloader.cursor.sh/builds/250202tgstl42dt/linux/appImage/arm64" 815 | } 816 | }, 817 | { 818 | "version": "0.45.8", 819 | "date": "2025-02-01", 820 | "platforms": { 821 | "darwin-universal": "https://downloader.cursor.sh/builds/250201b44xw1x2k/mac/installer/universal", 822 | "darwin-x64": "https://downloader.cursor.sh/builds/250201b44xw1x2k/mac/installer/x64", 823 | "darwin-arm64": "https://downloader.cursor.sh/builds/250201b44xw1x2k/mac/installer/arm64", 824 | "win32-x64": "https://downloader.cursor.sh/builds/250201b44xw1x2k/windows/nsis/x64", 825 | "win32-arm64": "https://downloader.cursor.sh/builds/250201b44xw1x2k/windows/nsis/arm64", 826 | "linux-x64": "https://downloader.cursor.sh/builds/250201b44xw1x2k/linux/appImage/x64", 827 | "linux-arm64": "https://downloader.cursor.sh/builds/250201b44xw1x2k/linux/appImage/arm64" 828 | } 829 | }, 830 | { 831 | "version": "0.45.7", 832 | "date": "2025-01-30", 833 | "platforms": { 834 | "darwin-universal": "https://downloader.cursor.sh/builds/250130nr6eorv84/mac/installer/universal", 835 | "darwin-x64": "https://downloader.cursor.sh/builds/250130nr6eorv84/mac/installer/x64", 836 | "darwin-arm64": "https://downloader.cursor.sh/builds/250130nr6eorv84/mac/installer/arm64", 837 | "win32-x64": "https://downloader.cursor.sh/builds/250130nr6eorv84/windows/nsis/x64", 838 | "win32-arm64": "https://downloader.cursor.sh/builds/250130nr6eorv84/windows/nsis/arm64", 839 | "linux-x64": "https://downloader.cursor.sh/builds/250130nr6eorv84/linux/appImage/x64", 840 | "linux-arm64": "https://downloader.cursor.sh/builds/250130nr6eorv84/linux/appImage/arm64" 841 | } 842 | }, 843 | { 844 | "version": "0.45.6", 845 | "date": "2025-01-30", 846 | "platforms": { 847 | "darwin-universal": "https://downloader.cursor.sh/builds/25013021lv9say3/mac/installer/universal", 848 | "darwin-x64": "https://downloader.cursor.sh/builds/25013021lv9say3/mac/installer/x64", 849 | "darwin-arm64": "https://downloader.cursor.sh/builds/25013021lv9say3/mac/installer/arm64", 850 | "win32-x64": "https://downloader.cursor.sh/builds/25013021lv9say3/windows/nsis/x64", 851 | "win32-arm64": "https://downloader.cursor.sh/builds/25013021lv9say3/windows/nsis/arm64", 852 | "linux-x64": "https://downloader.cursor.sh/builds/25013021lv9say3/linux/appImage/x64", 853 | "linux-arm64": "https://downloader.cursor.sh/builds/25013021lv9say3/linux/appImage/arm64" 854 | } 855 | }, 856 | { 857 | "version": "0.45.5", 858 | "date": "2025-01-28", 859 | "platforms": { 860 | "darwin-universal": "https://downloader.cursor.sh/builds/250128loaeyulq8/mac/installer/universal", 861 | "darwin-x64": "https://downloader.cursor.sh/builds/250128loaeyulq8/mac/installer/x64", 862 | "darwin-arm64": "https://downloader.cursor.sh/builds/250128loaeyulq8/mac/installer/arm64", 863 | "win32-x64": "https://downloader.cursor.sh/builds/250128loaeyulq8/windows/nsis/x64", 864 | "win32-arm64": "https://downloader.cursor.sh/builds/250128loaeyulq8/windows/nsis/arm64", 865 | "linux-x64": "https://downloader.cursor.sh/builds/250128loaeyulq8/linux/appImage/x64", 866 | "linux-arm64": "https://downloader.cursor.sh/builds/250128loaeyulq8/linux/appImage/arm64" 867 | } 868 | }, 869 | { 870 | "version": "0.45.4", 871 | "date": "2025-01-26", 872 | "platforms": { 873 | "darwin-universal": "https://downloader.cursor.sh/builds/250126vgr3vztvj/mac/installer/universal", 874 | "darwin-x64": "https://downloader.cursor.sh/builds/250126vgr3vztvj/mac/installer/x64", 875 | "darwin-arm64": "https://downloader.cursor.sh/builds/250126vgr3vztvj/mac/installer/arm64", 876 | "win32-x64": "https://downloader.cursor.sh/builds/250126vgr3vztvj/windows/nsis/x64", 877 | "win32-arm64": "https://downloader.cursor.sh/builds/250126vgr3vztvj/windows/nsis/arm64", 878 | "linux-x64": "https://downloader.cursor.sh/builds/250126vgr3vztvj/linux/appImage/x64", 879 | "linux-arm64": "https://downloader.cursor.sh/builds/250126vgr3vztvj/linux/appImage/arm64" 880 | } 881 | }, 882 | { 883 | "version": "0.45.3", 884 | "date": "2025-01-24", 885 | "platforms": { 886 | "darwin-universal": "https://downloader.cursor.sh/builds/250124b0rcj0qql/mac/installer/universal", 887 | "darwin-x64": "https://downloader.cursor.sh/builds/250124b0rcj0qql/mac/installer/x64", 888 | "darwin-arm64": "https://downloader.cursor.sh/builds/250124b0rcj0qql/mac/installer/arm64", 889 | "win32-x64": "https://downloader.cursor.sh/builds/250124b0rcj0qql/windows/nsis/x64", 890 | "win32-arm64": "https://downloader.cursor.sh/builds/250124b0rcj0qql/windows/nsis/arm64", 891 | "linux-x64": "https://downloader.cursor.sh/builds/250124b0rcj0qql/linux/appImage/x64", 892 | "linux-arm64": "https://downloader.cursor.sh/builds/250124b0rcj0qql/linux/appImage/arm64" 893 | } 894 | }, 895 | { 896 | "version": "0.45.2", 897 | "date": "2025-01-23", 898 | "platforms": { 899 | "darwin-universal": "https://downloader.cursor.sh/builds/250123mhituoa6o/mac/installer/universal", 900 | "darwin-x64": "https://downloader.cursor.sh/builds/250123mhituoa6o/mac/installer/x64", 901 | "darwin-arm64": "https://downloader.cursor.sh/builds/250123mhituoa6o/mac/installer/arm64", 902 | "win32-x64": "https://downloader.cursor.sh/builds/250123mhituoa6o/windows/nsis/x64", 903 | "win32-arm64": "https://downloader.cursor.sh/builds/250123mhituoa6o/windows/nsis/arm64", 904 | "linux-x64": "https://downloader.cursor.sh/builds/250123mhituoa6o/linux/appImage/x64", 905 | "linux-arm64": "https://downloader.cursor.sh/builds/250123mhituoa6o/linux/appImage/arm64" 906 | } 907 | }, 908 | { 909 | "version": "0.45.1", 910 | "date": "2025-01-21", 911 | "platforms": { 912 | "darwin-universal": "https://downloader.cursor.sh/builds/2501213ljml5byg/mac/installer/universal", 913 | "darwin-x64": "https://downloader.cursor.sh/builds/2501213ljml5byg/mac/installer/x64", 914 | "darwin-arm64": "https://downloader.cursor.sh/builds/2501213ljml5byg/mac/installer/arm64", 915 | "win32-x64": "https://downloader.cursor.sh/builds/2501213ljml5byg/windows/nsis/x64", 916 | "win32-arm64": "https://downloader.cursor.sh/builds/2501213ljml5byg/windows/nsis/arm64", 917 | "linux-x64": "https://downloader.cursor.sh/builds/2501213ljml5byg/linux/appImage/x64", 918 | "linux-arm64": "https://downloader.cursor.sh/builds/2501213ljml5byg/linux/appImage/arm64" 919 | } 920 | }, 921 | { 922 | "version": "0.45.0", 923 | "date": "2025-01-20", 924 | "platforms": { 925 | "darwin-universal": "https://downloader.cursor.sh/builds/250120dh9ezx9pg/mac/installer/universal", 926 | "darwin-x64": "https://downloader.cursor.sh/builds/250120dh9ezx9pg/mac/installer/x64", 927 | "darwin-arm64": "https://downloader.cursor.sh/builds/250120dh9ezx9pg/mac/installer/arm64", 928 | "win32-x64": "https://downloader.cursor.sh/builds/250120dh9ezx9pg/windows/nsis/x64", 929 | "win32-arm64": "https://downloader.cursor.sh/builds/250120dh9ezx9pg/windows/nsis/arm64", 930 | "linux-x64": "https://downloader.cursor.sh/builds/250120dh9ezx9pg/linux/appImage/x64", 931 | "linux-arm64": "https://downloader.cursor.sh/builds/250120dh9ezx9pg/linux/appImage/arm64" 932 | } 933 | }, 934 | { 935 | "version": "0.44.11", 936 | "date": "2025-01-03", 937 | "platforms": { 938 | "darwin-universal": "https://downloader.cursor.sh/builds/250103fqxdt5u9z/mac/installer/universal", 939 | "darwin-x64": "https://downloader.cursor.sh/builds/250103fqxdt5u9z/mac/installer/x64", 940 | "darwin-arm64": "https://downloader.cursor.sh/builds/250103fqxdt5u9z/mac/installer/arm64", 941 | "win32-x64": "https://downloader.cursor.sh/builds/250103fqxdt5u9z/windows/nsis/x64", 942 | "win32-arm64": "https://downloader.cursor.sh/builds/250103fqxdt5u9z/windows/nsis/arm64", 943 | "linux-x64": "https://downloader.cursor.sh/builds/250103fqxdt5u9z/linux/appImage/x64", 944 | "linux-arm64": "https://downloader.cursor.sh/builds/250103fqxdt5u9z/linux/appImage/arm64" 945 | } 946 | }, 947 | { 948 | "version": "0.44.10", 949 | "date": "2025-01-02", 950 | "platforms": { 951 | "darwin-universal": "https://downloader.cursor.sh/builds/250102ys80vtnud/mac/installer/universal", 952 | "darwin-x64": "https://downloader.cursor.sh/builds/250102ys80vtnud/mac/installer/x64", 953 | "darwin-arm64": "https://downloader.cursor.sh/builds/250102ys80vtnud/mac/installer/arm64", 954 | "win32-x64": "https://downloader.cursor.sh/builds/250102ys80vtnud/windows/nsis/x64", 955 | "win32-arm64": "https://downloader.cursor.sh/builds/250102ys80vtnud/windows/nsis/arm64", 956 | "linux-x64": "https://downloader.cursor.sh/builds/250102ys80vtnud/linux/appImage/x64", 957 | "linux-arm64": "https://downloader.cursor.sh/builds/250102ys80vtnud/linux/appImage/arm64" 958 | } 959 | }, 960 | { 961 | "version": "0.44.9", 962 | "date": "2024-12-26", 963 | "platforms": { 964 | "darwin-universal": "https://downloader.cursor.sh/builds/2412268nc6pfzgo/mac/installer/universal", 965 | "darwin-x64": "https://downloader.cursor.sh/builds/2412268nc6pfzgo/mac/installer/x64", 966 | "darwin-arm64": "https://downloader.cursor.sh/builds/2412268nc6pfzgo/mac/installer/arm64", 967 | "win32-x64": "https://downloader.cursor.sh/builds/2412268nc6pfzgo/windows/nsis/x64", 968 | "win32-arm64": "https://downloader.cursor.sh/builds/2412268nc6pfzgo/windows/nsis/arm64", 969 | "linux-x64": "https://downloader.cursor.sh/builds/2412268nc6pfzgo/linux/appImage/x64", 970 | "linux-arm64": "https://downloader.cursor.sh/builds/2412268nc6pfzgo/linux/appImage/arm64" 971 | } 972 | }, 973 | { 974 | "version": "0.44.8", 975 | "date": "2024-12-22", 976 | "platforms": { 977 | "darwin-universal": "https://downloader.cursor.sh/builds/241222ooktny8mh/mac/installer/universal", 978 | "darwin-x64": "https://downloader.cursor.sh/builds/241222ooktny8mh/mac/installer/x64", 979 | "darwin-arm64": "https://downloader.cursor.sh/builds/241222ooktny8mh/mac/installer/arm64", 980 | "win32-x64": "https://downloader.cursor.sh/builds/241222ooktny8mh/windows/nsis/x64", 981 | "win32-arm64": "https://downloader.cursor.sh/builds/241222ooktny8mh/windows/nsis/arm64", 982 | "linux-x64": "https://downloader.cursor.sh/builds/241222ooktny8mh/linux/appImage/x64", 983 | "linux-arm64": "https://downloader.cursor.sh/builds/241222ooktny8mh/linux/appImage/arm64" 984 | } 985 | }, 986 | { 987 | "version": "0.44.7", 988 | "date": "2024-12-22", 989 | "platforms": { 990 | "darwin-universal": "https://downloader.cursor.sh/builds/2412219nhracv01/mac/installer/universal", 991 | "darwin-x64": "https://downloader.cursor.sh/builds/2412219nhracv01/mac/installer/x64", 992 | "darwin-arm64": "https://downloader.cursor.sh/builds/2412219nhracv01/mac/installer/arm64", 993 | "win32-x64": "https://downloader.cursor.sh/builds/2412219nhracv01/windows/nsis/x64", 994 | "win32-arm64": "https://downloader.cursor.sh/builds/2412219nhracv01/windows/nsis/arm64", 995 | "linux-x64": "https://downloader.cursor.sh/builds/2412219nhracv01/linux/appImage/x64", 996 | "linux-arm64": "https://downloader.cursor.sh/builds/2412219nhracv01/linux/appImage/arm64" 997 | } 998 | }, 999 | { 1000 | "version": "0.44.6", 1001 | "date": "2024-12-21", 1002 | "platforms": { 1003 | "darwin-universal": "https://downloader.cursor.sh/builds/2412214pmryneua/mac/installer/universal", 1004 | "darwin-x64": "https://downloader.cursor.sh/builds/2412214pmryneua/mac/installer/x64", 1005 | "darwin-arm64": "https://downloader.cursor.sh/builds/2412214pmryneua/mac/installer/arm64", 1006 | "win32-x64": "https://downloader.cursor.sh/builds/2412214pmryneua/windows/nsis/x64", 1007 | "win32-arm64": "https://downloader.cursor.sh/builds/2412214pmryneua/windows/nsis/arm64", 1008 | "linux-x64": "https://downloader.cursor.sh/builds/2412214pmryneua/linux/appImage/x64", 1009 | "linux-arm64": "https://downloader.cursor.sh/builds/2412214pmryneua/linux/appImage/arm64" 1010 | } 1011 | }, 1012 | { 1013 | "version": "0.44.5", 1014 | "date": "2024-12-20", 1015 | "platforms": { 1016 | "darwin-universal": "https://downloader.cursor.sh/builds/241220s3ux0e1tv/mac/installer/universal", 1017 | "darwin-x64": "https://downloader.cursor.sh/builds/241220s3ux0e1tv/mac/installer/x64", 1018 | "darwin-arm64": "https://downloader.cursor.sh/builds/241220s3ux0e1tv/mac/installer/arm64", 1019 | "win32-x64": "https://downloader.cursor.sh/builds/241220s3ux0e1tv/windows/nsis/x64", 1020 | "win32-arm64": "https://downloader.cursor.sh/builds/241220s3ux0e1tv/windows/nsis/arm64", 1021 | "linux-x64": "https://downloader.cursor.sh/builds/241220s3ux0e1tv/linux/appImage/x64", 1022 | "linux-arm64": "https://downloader.cursor.sh/builds/241220s3ux0e1tv/linux/appImage/arm64" 1023 | } 1024 | }, 1025 | { 1026 | "version": "0.44.4", 1027 | "date": "2024-12-19", 1028 | "platforms": { 1029 | "darwin-universal": "https://downloader.cursor.sh/builds/241219117fcvexy/mac/installer/universal", 1030 | "darwin-x64": "https://downloader.cursor.sh/builds/241219117fcvexy/mac/installer/x64", 1031 | "darwin-arm64": "https://downloader.cursor.sh/builds/241219117fcvexy/mac/installer/arm64", 1032 | "win32-x64": "https://downloader.cursor.sh/builds/241219117fcvexy/windows/nsis/x64", 1033 | "win32-arm64": "https://downloader.cursor.sh/builds/241219117fcvexy/windows/nsis/arm64", 1034 | "linux-x64": "https://downloader.cursor.sh/builds/241219117fcvexy/linux/appImage/x64", 1035 | "linux-arm64": "https://downloader.cursor.sh/builds/241219117fcvexy/linux/appImage/arm64" 1036 | } 1037 | }, 1038 | { 1039 | "version": "0.44.3", 1040 | "date": "2024-12-18", 1041 | "platforms": { 1042 | "darwin-universal": "https://downloader.cursor.sh/builds/241218sybfbogmq/mac/installer/universal", 1043 | "darwin-x64": "https://downloader.cursor.sh/builds/241218sybfbogmq/mac/installer/x64", 1044 | "darwin-arm64": "https://downloader.cursor.sh/builds/241218sybfbogmq/mac/installer/arm64", 1045 | "win32-x64": "https://downloader.cursor.sh/builds/241218sybfbogmq/windows/nsis/x64", 1046 | "win32-arm64": "https://downloader.cursor.sh/builds/241218sybfbogmq/windows/nsis/arm64", 1047 | "linux-x64": "https://downloader.cursor.sh/builds/241218sybfbogmq/linux/appImage/x64", 1048 | "linux-arm64": "https://downloader.cursor.sh/builds/241218sybfbogmq/linux/appImage/arm64" 1049 | } 1050 | }, 1051 | { 1052 | "version": "0.44.2", 1053 | "date": "2024-12-18", 1054 | "platforms": { 1055 | "darwin-universal": "https://downloader.cursor.sh/builds/241218ntls52u8v/mac/installer/universal", 1056 | "darwin-x64": "https://downloader.cursor.sh/builds/241218ntls52u8v/mac/installer/x64", 1057 | "darwin-arm64": "https://downloader.cursor.sh/builds/241218ntls52u8v/mac/installer/arm64", 1058 | "win32-x64": "https://downloader.cursor.sh/builds/241218ntls52u8v/windows/nsis/x64", 1059 | "win32-arm64": "https://downloader.cursor.sh/builds/241218ntls52u8v/windows/nsis/arm64", 1060 | "linux-x64": "https://downloader.cursor.sh/builds/241218ntls52u8v/linux/appImage/x64", 1061 | "linux-arm64": "https://downloader.cursor.sh/builds/241218ntls52u8v/linux/appImage/arm64" 1062 | } 1063 | }, 1064 | { 1065 | "version": "0.44.0", 1066 | "date": "2024-12-18", 1067 | "platforms": { 1068 | "darwin-universal": "https://downloader.cursor.sh/builds/2412187f9v0nffu/mac/installer/universal", 1069 | "darwin-x64": "https://downloader.cursor.sh/builds/2412187f9v0nffu/mac/installer/x64", 1070 | "darwin-arm64": "https://downloader.cursor.sh/builds/2412187f9v0nffu/mac/installer/arm64", 1071 | "win32-x64": "https://downloader.cursor.sh/builds/2412187f9v0nffu/windows/nsis/x64", 1072 | "win32-arm64": "https://downloader.cursor.sh/builds/2412187f9v0nffu/windows/nsis/arm64", 1073 | "linux-x64": "https://downloader.cursor.sh/builds/2412187f9v0nffu/linux/appImage/x64", 1074 | "linux-arm64": "https://downloader.cursor.sh/builds/2412187f9v0nffu/linux/appImage/arm64" 1075 | } 1076 | }, 1077 | { 1078 | "version": "0.43.6", 1079 | "date": "2024-12-06", 1080 | "platforms": { 1081 | "darwin-universal": "https://downloader.cursor.sh/builds/241206z7j6me2e2/mac/installer/universal", 1082 | "darwin-x64": "https://downloader.cursor.sh/builds/241206z7j6me2e2/mac/installer/x64", 1083 | "darwin-arm64": "https://downloader.cursor.sh/builds/241206z7j6me2e2/mac/installer/arm64", 1084 | "win32-x64": "https://downloader.cursor.sh/builds/241206z7j6me2e2/windows/nsis/x64", 1085 | "win32-arm64": "https://downloader.cursor.sh/builds/241206z7j6me2e2/windows/nsis/arm64", 1086 | "linux-x64": "https://downloader.cursor.sh/builds/241206z7j6me2e2/linux/appImage/x64", 1087 | "linux-arm64": "https://downloader.cursor.sh/builds/241206z7j6me2e2/linux/appImage/arm64" 1088 | } 1089 | }, 1090 | { 1091 | "version": "0.43.5", 1092 | "date": "2024-11-27", 1093 | "platforms": { 1094 | "darwin-universal": "https://downloader.cursor.sh/builds/241127pdg4cnbu2/mac/installer/universal", 1095 | "darwin-x64": "https://downloader.cursor.sh/builds/241127pdg4cnbu2/mac/installer/x64", 1096 | "darwin-arm64": "https://downloader.cursor.sh/builds/241127pdg4cnbu2/mac/installer/arm64", 1097 | "win32-x64": "https://downloader.cursor.sh/builds/241127pdg4cnbu2/windows/nsis/x64", 1098 | "win32-arm64": "https://downloader.cursor.sh/builds/241127pdg4cnbu2/windows/nsis/arm64", 1099 | "linux-x64": "https://downloader.cursor.sh/builds/241127pdg4cnbu2/linux/appImage/x64", 1100 | "linux-arm64": "https://downloader.cursor.sh/builds/241127pdg4cnbu2/linux/appImage/arm64" 1101 | } 1102 | }, 1103 | { 1104 | "version": "0.43.4", 1105 | "date": "2024-11-26", 1106 | "platforms": { 1107 | "darwin-universal": "https://downloader.cursor.sh/builds/241126w13goyvrs/mac/installer/universal", 1108 | "darwin-x64": "https://downloader.cursor.sh/builds/241126w13goyvrs/mac/installer/x64", 1109 | "darwin-arm64": "https://downloader.cursor.sh/builds/241126w13goyvrs/mac/installer/arm64", 1110 | "win32-x64": "https://downloader.cursor.sh/builds/241126w13goyvrs/windows/nsis/x64", 1111 | "win32-arm64": "https://downloader.cursor.sh/builds/241126w13goyvrs/windows/nsis/arm64", 1112 | "linux-x64": "https://downloader.cursor.sh/builds/241126w13goyvrs/linux/appImage/x64", 1113 | "linux-arm64": "https://downloader.cursor.sh/builds/241126w13goyvrs/linux/appImage/arm64" 1114 | } 1115 | }, 1116 | { 1117 | "version": "0.43.3", 1118 | "date": "2024-11-24", 1119 | "platforms": { 1120 | "darwin-universal": "https://downloader.cursor.sh/builds/2411246yqzx1jmm/mac/installer/universal", 1121 | "darwin-x64": "https://downloader.cursor.sh/builds/2411246yqzx1jmm/mac/installer/x64", 1122 | "darwin-arm64": "https://downloader.cursor.sh/builds/2411246yqzx1jmm/mac/installer/arm64", 1123 | "win32-x64": "https://downloader.cursor.sh/builds/2411246yqzx1jmm/windows/nsis/x64", 1124 | "win32-arm64": "https://downloader.cursor.sh/builds/2411246yqzx1jmm/windows/nsis/arm64", 1125 | "linux-x64": "https://downloader.cursor.sh/builds/2411246yqzx1jmm/linux/appImage/x64", 1126 | "linux-arm64": "https://downloader.cursor.sh/builds/2411246yqzx1jmm/linux/appImage/arm64" 1127 | } 1128 | }, 1129 | { 1130 | "version": "0.43.1", 1131 | "date": "2024-11-24", 1132 | "platforms": { 1133 | "darwin-universal": "https://downloader.cursor.sh/builds/241124gsiwb66nc/mac/installer/universal", 1134 | "darwin-x64": "https://downloader.cursor.sh/builds/241124gsiwb66nc/mac/installer/x64", 1135 | "darwin-arm64": "https://downloader.cursor.sh/builds/241124gsiwb66nc/mac/installer/arm64", 1136 | "win32-x64": "https://downloader.cursor.sh/builds/241124gsiwb66nc/windows/nsis/x64", 1137 | "win32-arm64": "https://downloader.cursor.sh/builds/241124gsiwb66nc/windows/nsis/arm64", 1138 | "linux-x64": "https://downloader.cursor.sh/builds/241124gsiwb66nc/linux/appImage/x64", 1139 | "linux-arm64": "https://downloader.cursor.sh/builds/241124gsiwb66nc/linux/appImage/arm64" 1140 | } 1141 | }, 1142 | { 1143 | "version": "0.43.0", 1144 | "date": "2024-11-24", 1145 | "platforms": { 1146 | "darwin-universal": "https://downloader.cursor.sh/builds/24112423a8e6ct7/mac/installer/universal", 1147 | "darwin-x64": "https://downloader.cursor.sh/builds/24112423a8e6ct7/mac/installer/x64", 1148 | "darwin-arm64": "https://downloader.cursor.sh/builds/24112423a8e6ct7/mac/installer/arm64", 1149 | "win32-x64": "https://downloader.cursor.sh/builds/24112423a8e6ct7/windows/nsis/x64", 1150 | "win32-arm64": "https://downloader.cursor.sh/builds/24112423a8e6ct7/windows/nsis/arm64", 1151 | "linux-x64": "https://downloader.cursor.sh/builds/24112423a8e6ct7/linux/appImage/x64", 1152 | "linux-arm64": "https://downloader.cursor.sh/builds/24112423a8e6ct7/linux/appImage/arm64" 1153 | } 1154 | }, 1155 | { 1156 | "version": "0.42.5", 1157 | "date": "2024-11-14", 1158 | "platforms": { 1159 | "darwin-universal": "https://downloader.cursor.sh/builds/24111460bf2loz1/mac/installer/universal", 1160 | "darwin-x64": "https://downloader.cursor.sh/builds/24111460bf2loz1/mac/installer/x64", 1161 | "darwin-arm64": "https://downloader.cursor.sh/builds/24111460bf2loz1/mac/installer/arm64", 1162 | "win32-x64": "https://downloader.cursor.sh/builds/24111460bf2loz1/windows/nsis/x64", 1163 | "win32-arm64": "https://downloader.cursor.sh/builds/24111460bf2loz1/windows/nsis/arm64", 1164 | "linux-x64": "https://downloader.cursor.sh/builds/24111460bf2loz1/linux/appImage/x64", 1165 | "linux-arm64": "https://downloader.cursor.sh/builds/24111460bf2loz1/linux/appImage/arm64" 1166 | } 1167 | }, 1168 | { 1169 | "version": "0.42.4", 1170 | "date": "2024-10-29", 1171 | "platforms": { 1172 | "darwin-universal": "https://downloader.cursor.sh/builds/2410291z3bdg1dy/mac/installer/universal", 1173 | "darwin-x64": "https://downloader.cursor.sh/builds/2410291z3bdg1dy/mac/installer/x64", 1174 | "darwin-arm64": "https://downloader.cursor.sh/builds/2410291z3bdg1dy/mac/installer/arm64", 1175 | "win32-x64": "https://downloader.cursor.sh/builds/2410291z3bdg1dy/windows/nsis/x64", 1176 | "win32-arm64": "https://downloader.cursor.sh/builds/2410291z3bdg1dy/windows/nsis/arm64", 1177 | "linux-x64": "https://downloader.cursor.sh/builds/2410291z3bdg1dy/linux/appImage/x64", 1178 | "linux-arm64": "https://downloader.cursor.sh/builds/2410291z3bdg1dy/linux/appImage/arm64" 1179 | } 1180 | }, 1181 | { 1182 | "version": "0.42.3", 1183 | "date": "2024-10-16", 1184 | "platforms": { 1185 | "darwin-universal": "https://downloader.cursor.sh/builds/241016kxu9umuir.exe/mac/installer/universal", 1186 | "darwin-x64": "https://downloader.cursor.sh/builds/241016kxu9umuir.exe/mac/installer/x64", 1187 | "darwin-arm64": "https://downloader.cursor.sh/builds/241016kxu9umuir.exe/mac/installer/arm64", 1188 | "win32-x64": "https://downloader.cursor.sh/builds/241016kxu9umuir.exe/windows/nsis/x64", 1189 | "win32-arm64": "https://downloader.cursor.sh/builds/241016kxu9umuir.exe/windows/nsis/arm64", 1190 | "linux-x64": "https://downloader.cursor.sh/builds/241016kxu9umuir.exe/linux/appImage/x64", 1191 | "linux-arm64": "https://downloader.cursor.sh/builds/241016kxu9umuir.exe/linux/appImage/arm64" 1192 | } 1193 | }, 1194 | { 1195 | "version": "0.42.2", 1196 | "date": "2024-10-12", 1197 | "platforms": { 1198 | "darwin-universal": "https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/mac/installer/universal", 1199 | "darwin-x64": "https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/mac/installer/x64", 1200 | "darwin-arm64": "https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/mac/installer/arm64", 1201 | "win32-x64": "https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/windows/nsis/x64", 1202 | "win32-arm64": "https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/windows/nsis/arm64", 1203 | "linux-x64": "https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/linux/appImage/x64", 1204 | "linux-arm64": "https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/linux/appImage/arm64" 1205 | } 1206 | }, 1207 | { 1208 | "version": "0.42.1", 1209 | "date": "2024-10-11", 1210 | "platforms": { 1211 | "darwin-universal": "https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/mac/installer/universal", 1212 | "darwin-x64": "https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/mac/installer/x64", 1213 | "darwin-arm64": "https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/mac/installer/arm64", 1214 | "win32-x64": "https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/windows/nsis/x64", 1215 | "win32-arm64": "https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/windows/nsis/arm64", 1216 | "linux-x64": "https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/linux/appImage/x64", 1217 | "linux-arm64": "https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/linux/appImage/arm64" 1218 | } 1219 | }, 1220 | { 1221 | "version": "0.42.0", 1222 | "date": "2024-10-09", 1223 | "platforms": { 1224 | "darwin-universal": "https://downloader.cursor.sh/builds/241009fij7nohn5.exe/mac/installer/universal", 1225 | "darwin-x64": "https://downloader.cursor.sh/builds/241009fij7nohn5.exe/mac/installer/x64", 1226 | "darwin-arm64": "https://downloader.cursor.sh/builds/241009fij7nohn5.exe/mac/installer/arm64", 1227 | "win32-x64": "https://downloader.cursor.sh/builds/241009fij7nohn5.exe/windows/nsis/x64", 1228 | "win32-arm64": "https://downloader.cursor.sh/builds/241009fij7nohn5.exe/windows/nsis/arm64", 1229 | "linux-x64": "https://downloader.cursor.sh/builds/241009fij7nohn5.exe/linux/appImage/x64", 1230 | "linux-arm64": "https://downloader.cursor.sh/builds/241009fij7nohn5.exe/linux/appImage/arm64" 1231 | } 1232 | }, 1233 | { 1234 | "version": "0.41.3", 1235 | "date": "2024-09-25", 1236 | "platforms": { 1237 | "darwin-universal": "https://downloader.cursor.sh/builds/240925fkhcqg263/mac/installer/universal", 1238 | "darwin-x64": "https://downloader.cursor.sh/builds/240925fkhcqg263/mac/installer/x64", 1239 | "darwin-arm64": "https://downloader.cursor.sh/builds/240925fkhcqg263/mac/installer/arm64", 1240 | "win32-x64": "https://downloader.cursor.sh/builds/240925fkhcqg263/windows/nsis/x64", 1241 | "win32-arm64": "https://downloader.cursor.sh/builds/240925fkhcqg263/windows/nsis/arm64", 1242 | "linux-x64": "https://downloader.cursor.sh/builds/240925fkhcqg263/linux/appImage/x64", 1243 | "linux-arm64": "https://downloader.cursor.sh/builds/240925fkhcqg263/linux/appImage/arm64" 1244 | } 1245 | }, 1246 | { 1247 | "version": "0.41.2", 1248 | "date": "2024-09-21", 1249 | "platforms": { 1250 | "darwin-universal": "https://downloader.cursor.sh/builds/240921llnho65ov/mac/installer/universal", 1251 | "darwin-x64": "https://downloader.cursor.sh/builds/240921llnho65ov/mac/installer/x64", 1252 | "darwin-arm64": "https://downloader.cursor.sh/builds/240921llnho65ov/mac/installer/arm64", 1253 | "win32-x64": "https://downloader.cursor.sh/builds/240921llnho65ov/windows/nsis/x64", 1254 | "win32-arm64": "https://downloader.cursor.sh/builds/240921llnho65ov/windows/nsis/arm64", 1255 | "linux-x64": "https://downloader.cursor.sh/builds/240921llnho65ov/linux/appImage/x64", 1256 | "linux-arm64": "https://downloader.cursor.sh/builds/240921llnho65ov/linux/appImage/arm64" 1257 | } 1258 | }, 1259 | { 1260 | "version": "0.41.1", 1261 | "date": "2024-09-18", 1262 | "platforms": { 1263 | "darwin-universal": "https://downloader.cursor.sh/builds/2409189xe3envg5/mac/installer/universal", 1264 | "darwin-x64": "https://downloader.cursor.sh/builds/2409189xe3envg5/mac/installer/x64", 1265 | "darwin-arm64": "https://downloader.cursor.sh/builds/2409189xe3envg5/mac/installer/arm64", 1266 | "win32-x64": "https://downloader.cursor.sh/builds/2409189xe3envg5/windows/nsis/x64", 1267 | "win32-arm64": "https://downloader.cursor.sh/builds/2409189xe3envg5/windows/nsis/arm64", 1268 | "linux-x64": "https://downloader.cursor.sh/builds/2409189xe3envg5/linux/appImage/x64", 1269 | "linux-arm64": "https://downloader.cursor.sh/builds/2409189xe3envg5/linux/appImage/arm64" 1270 | } 1271 | }, 1272 | { 1273 | "version": "0.40.4", 1274 | "date": "2024-09-05", 1275 | "platforms": { 1276 | "darwin-universal": "https://downloader.cursor.sh/builds/2409052yfcjagw2/mac/installer/universal", 1277 | "darwin-x64": "https://downloader.cursor.sh/builds/2409052yfcjagw2/mac/installer/x64", 1278 | "darwin-arm64": "https://downloader.cursor.sh/builds/2409052yfcjagw2/mac/installer/arm64", 1279 | "win32-x64": "https://downloader.cursor.sh/builds/2409052yfcjagw2/windows/nsis/x64", 1280 | "win32-arm64": "https://downloader.cursor.sh/builds/2409052yfcjagw2/windows/nsis/arm64", 1281 | "linux-x64": "https://downloader.cursor.sh/builds/2409052yfcjagw2/linux/appImage/x64", 1282 | "linux-arm64": "https://downloader.cursor.sh/builds/2409052yfcjagw2/linux/appImage/arm64" 1283 | } 1284 | }, 1285 | { 1286 | "version": "0.40.3", 1287 | "date": "2024-08-29", 1288 | "platforms": { 1289 | "darwin-universal": "https://downloader.cursor.sh/builds/240829epqamqp7h/mac/installer/universal", 1290 | "darwin-x64": "https://downloader.cursor.sh/builds/240829epqamqp7h/mac/installer/x64", 1291 | "darwin-arm64": "https://downloader.cursor.sh/builds/240829epqamqp7h/mac/installer/arm64", 1292 | "win32-x64": "https://downloader.cursor.sh/builds/240829epqamqp7h/windows/nsis/x64", 1293 | "win32-arm64": "https://downloader.cursor.sh/builds/240829epqamqp7h/windows/nsis/arm64", 1294 | "linux-x64": "https://downloader.cursor.sh/builds/240829epqamqp7h/linux/appImage/x64", 1295 | "linux-arm64": "https://downloader.cursor.sh/builds/240829epqamqp7h/linux/appImage/arm64" 1296 | } 1297 | }, 1298 | { 1299 | "version": "0.40.2", 1300 | "date": "2024-08-28", 1301 | "platforms": { 1302 | "darwin-universal": "https://downloader.cursor.sh/builds/240828c021k3aib/mac/installer/universal", 1303 | "darwin-x64": "https://downloader.cursor.sh/builds/240828c021k3aib/mac/installer/x64", 1304 | "darwin-arm64": "https://downloader.cursor.sh/builds/240828c021k3aib/mac/installer/arm64", 1305 | "win32-x64": "https://downloader.cursor.sh/builds/240828c021k3aib/windows/nsis/x64", 1306 | "win32-arm64": "https://downloader.cursor.sh/builds/240828c021k3aib/windows/nsis/arm64", 1307 | "linux-x64": "https://downloader.cursor.sh/builds/240828c021k3aib/linux/appImage/x64", 1308 | "linux-arm64": "https://downloader.cursor.sh/builds/240828c021k3aib/linux/appImage/arm64" 1309 | } 1310 | }, 1311 | { 1312 | "version": "0.40.1", 1313 | "date": "2024-08-24", 1314 | "platforms": { 1315 | "darwin-universal": "https://downloader.cursor.sh/builds/2408245thnycuzj/mac/installer/universal", 1316 | "darwin-x64": "https://downloader.cursor.sh/builds/2408245thnycuzj/mac/installer/x64", 1317 | "darwin-arm64": "https://downloader.cursor.sh/builds/2408245thnycuzj/mac/installer/arm64", 1318 | "win32-x64": "https://downloader.cursor.sh/builds/2408245thnycuzj/windows/nsis/x64", 1319 | "win32-arm64": "https://downloader.cursor.sh/builds/2408245thnycuzj/windows/nsis/arm64", 1320 | "linux-x64": "https://downloader.cursor.sh/builds/2408245thnycuzj/linux/appImage/x64", 1321 | "linux-arm64": "https://downloader.cursor.sh/builds/2408245thnycuzj/linux/appImage/arm64" 1322 | } 1323 | }, 1324 | { 1325 | "version": "0.40.0", 1326 | "date": "2024-08-22", 1327 | "platforms": { 1328 | "darwin-universal": "https://downloader.cursor.sh/builds/24082202sreugb2/mac/installer/universal", 1329 | "darwin-x64": "https://downloader.cursor.sh/builds/24082202sreugb2/mac/installer/x64", 1330 | "darwin-arm64": "https://downloader.cursor.sh/builds/24082202sreugb2/mac/installer/arm64", 1331 | "win32-x64": "https://downloader.cursor.sh/builds/24082202sreugb2/windows/nsis/x64", 1332 | "win32-arm64": "https://downloader.cursor.sh/builds/24082202sreugb2/windows/nsis/arm64", 1333 | "linux-x64": "https://downloader.cursor.sh/builds/24082202sreugb2/linux/appImage/x64", 1334 | "linux-arm64": "https://downloader.cursor.sh/builds/24082202sreugb2/linux/appImage/arm64" 1335 | } 1336 | }, 1337 | { 1338 | "version": "0.39.6", 1339 | "date": "2024-08-19", 1340 | "platforms": { 1341 | "darwin-universal": "https://downloader.cursor.sh/builds/240819ih4ta2fye/mac/installer/universal", 1342 | "darwin-x64": "https://downloader.cursor.sh/builds/240819ih4ta2fye/mac/installer/x64", 1343 | "darwin-arm64": "https://downloader.cursor.sh/builds/240819ih4ta2fye/mac/installer/arm64", 1344 | "win32-x64": "https://downloader.cursor.sh/builds/240819ih4ta2fye/windows/nsis/x64", 1345 | "win32-arm64": "https://downloader.cursor.sh/builds/240819ih4ta2fye/windows/nsis/arm64", 1346 | "linux-x64": "https://downloader.cursor.sh/builds/240819ih4ta2fye/linux/appImage/x64", 1347 | "linux-arm64": "https://downloader.cursor.sh/builds/240819ih4ta2fye/linux/appImage/arm64" 1348 | } 1349 | }, 1350 | { 1351 | "version": "0.39.5", 1352 | "date": "2024-08-14", 1353 | "platforms": { 1354 | "darwin-universal": "https://downloader.cursor.sh/builds/240814y9rhzmu7h/mac/installer/universal", 1355 | "darwin-x64": "https://downloader.cursor.sh/builds/240814y9rhzmu7h/mac/installer/x64", 1356 | "darwin-arm64": "https://downloader.cursor.sh/builds/240814y9rhzmu7h/mac/installer/arm64", 1357 | "win32-x64": "https://downloader.cursor.sh/builds/240814y9rhzmu7h/windows/nsis/x64", 1358 | "win32-arm64": "https://downloader.cursor.sh/builds/240814y9rhzmu7h/windows/nsis/arm64", 1359 | "linux-x64": "https://downloader.cursor.sh/builds/240814y9rhzmu7h/linux/appImage/x64", 1360 | "linux-arm64": "https://downloader.cursor.sh/builds/240814y9rhzmu7h/linux/appImage/arm64" 1361 | } 1362 | } 1363 | ] 1364 | } --------------------------------------------------------------------------------