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