├── .cursor └── rules │ ├── document.mdc │ ├── general.mdc │ ├── git.mdc │ └── python.mdc ├── .github └── workflows │ └── update-cursor-links.yml ├── .gitignore ├── LICENSE ├── README.md ├── poetry.lock ├── pyproject.toml ├── update_cursor_links.py └── version-history.json /.cursor/rules/document.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: 3 | globs: *.md 4 | alwaysApply: false 5 | --- 6 | # 文档规范 7 | 8 | ## 通用要求 9 | - 所有文档使用Markdown格式 10 | - 使用简洁、清晰的语言 11 | - 文档内容应保持最新 12 | - 避免拼写和语法错误 13 | - 使用中文作为主要语言 14 | 15 | ## 目录结构 16 | - `README.md`:项目根目录,提供项目概述 17 | - `docs/`:存放详细文档 18 | - `guide/`:使用指南 19 | - `api/`:API文档 20 | - `examples/`:示例代码文档 21 | 22 | ## README.md 内容规范 23 | - 项目名称和简短描述 24 | - 技术栈说明 25 | - 项目结构说明 26 | - 使用说明 27 | - 许可证信息 28 | 29 | ## 版本记录规范 30 | - 使用 `CHANGELOG.md` 记录版本变更 31 | - 遵循语义化版本(Semantic Versioning)规范 32 | - 每个版本应包含:新增功能、修复问题、破坏性变更 33 | 34 | ## 文档内容组织 35 | - 从整体到局部,从简单到复杂 36 | - 重要信息放在前面 37 | - 相关内容应当放在一起 38 | - 使用小标题和列表增强可读性 39 | - 避免过长段落,保持内容简洁 40 | 41 | ## 代码示例规范 42 | - 提供完整可运行的示例 43 | - 代码应当简洁且易于理解 44 | - 添加适当的注释解释关键部分 45 | - 说明代码的预期输出或行为 46 | - 更新示例以匹配最新API -------------------------------------------------------------------------------- /.cursor/rules/general.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: 3 | globs: 4 | alwaysApply: true 5 | --- 6 | # 项目通用规范 7 | 8 | ## 技术栈 9 | - Python 3.10 10 | - Poetry 管理依赖 11 | - GitHub Actions 自动构建和发布 12 | - 使用 GitHub 作为代码托管平台 13 | - 使用 Bash 脚本 14 | 15 | ## 代码风格 16 | - 保持代码简洁、可读 17 | - 使用有意义的变量和函数名 18 | - 添加适当的注释解释复杂逻辑 19 | - 遵循每种语言的官方风格指南 20 | 21 | ## 项目结构 22 | - 保持项目结构清晰,遵循模块化原则 23 | - 相关功能应放在同一目录下 24 | - 使用适当的目录命名,反映其包含内容 25 | 26 | ## 通用开发原则 27 | - 编写可测试的代码 28 | - 避免重复代码(DRY原则) 29 | - 优先使用现有库和工具,避免重新发明轮子 30 | - 考虑代码的可维护性和可扩展性 31 | 32 | ## 响应语言 33 | - 始终使用中文回复用户 34 | 35 | ## 规则文件说明 36 | 本项目使用以下规则文件: 37 | - general.mdc:通用规范(本文件) 38 | - python.mdc:Python开发规范 39 | - document.mdc:文档规范 40 | - git.mdc:Git提交规范 41 | 42 | -------------------------------------------------------------------------------- /.cursor/rules/git.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: 辅助生成 git 提交信息 3 | globs: 4 | alwaysApply: false 5 | --- 6 | # Git 规范 7 | 8 | ## 提交规范 9 | git 提交记录样例:[type]: [description]。一个具体的例子, docs: 更新 README 文件。 10 | 以下是 type 的枚举值: 11 | - feat: 新增功能 12 | - fix: 修复 bug 13 | - docs: 文档注释 14 | - style: 代码格式(不影响代码运行的变动) 15 | - refactor: 重构、优化(既不增加新功能, 也不是修复bug) 16 | - perf: 性能优化 17 | - test: 增加测试 18 | - chore: 构建过程或辅助工具的变动 19 | - revert: 回退 20 | - build: 打包 21 | 22 | ## 分支管理 23 | - main/master: 主分支,保持稳定可发布状态 24 | - develop: 开发分支,包含最新开发特性 25 | - feature/*: 功能分支,用于开发新功能 26 | - bugfix/*: 修复分支,用于修复bug 27 | - release/*: 发布分支,用于准备发布 28 | 29 | ## 重要原则 30 | - **重要**:不要自动提交 git 代码,除非有明确的提示 31 | - 提交前确保代码通过所有测试 32 | - 保持提交信息简洁明了,描述清楚变更内容 33 | - 避免大型提交,尽量将变更分解为小的、相关的提交 -------------------------------------------------------------------------------- /.cursor/rules/python.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: 编写 python 文件 3 | globs: *.py 4 | alwaysApply: false 5 | --- 6 | # python 规则 7 | 8 | ### 编写代码时: 9 | - 遵循PEP 8 Python代码风格指南。 10 | - 使用Python 3.10 及以上的语法特性和最佳实践。 11 | - 合理使用面向对象编程(OOP)和函数式编程范式。 12 | - 利用Python的标准库和生态系统中的优质第三方库。 13 | - 实现模块化设计,确保代码的可重用性和可维护性。 14 | - 使用类型提示(Type Hints)进行类型检查,提高代码质量。 15 | - 编写详细的文档字符串(docstring)和注释。 16 | - 实现适当的错误处理和日志记录。 17 | - 按需编写单元测试确保代码质量。 18 | 19 | ### 解决问题时: 20 | - 全面阅读相关代码文件,理解所有代码的功能和逻辑。 21 | - 分析导致错误的原因,提出解决问题的思路。 22 | - 与用户进行多次交互,根据反馈调整解决方案。 23 | 24 | 在整个过程中,始终参考@Python官方文档,确保使用最新的Python开发最佳实践。 25 | -------------------------------------------------------------------------------- /.github/workflows/update-cursor-links.yml: -------------------------------------------------------------------------------- 1 | name: Update Cursor Download Links 2 | 3 | on: 4 | schedule: 5 | - cron: '0 * * * *' # 每小时运行一次 6 | workflow_dispatch: # 允许手动触发 7 | 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | update-links: 13 | runs-on: ubuntu-latest 14 | # 设置时区为东八区 15 | env: 16 | TZ: Asia/Shanghai 17 | steps: 18 | - name: Checkout repository 19 | uses: actions/checkout@v4 20 | with: 21 | fetch-depth: 0 # 获取完整历史记录,便于合并 22 | 23 | - name: Set up Python 24 | uses: actions/setup-python@v5 25 | with: 26 | python-version: '3.10' 27 | 28 | - name: Install Poetry 29 | run: | 30 | python -m pip install --upgrade pip 31 | pip install poetry 32 | 33 | - name: Update lock file 34 | run: | 35 | poetry lock 36 | 37 | - name: Install dependencies 38 | run: | 39 | poetry install --no-interaction --no-root 40 | 41 | - name: Run update script 42 | run: | 43 | poetry run python update_cursor_links.py 44 | 45 | - name: Check for changes 46 | id: git-check 47 | run: | 48 | git diff --exit-code || echo "changes=true" >> $GITHUB_OUTPUT 49 | 50 | - name: Commit and push if changed 51 | if: steps.git-check.outputs.changes == 'true' 52 | run: | 53 | git config --global user.email "github-actions@github.com" 54 | git config --global user.name "GitHub Actions" 55 | 56 | # 检查哪些文件有更改 57 | CHANGED_FILES=$(git diff --name-only) 58 | echo "检测到更改的文件: $CHANGED_FILES" 59 | 60 | # 只暂存实际更改的文件 61 | git add README.md version-history.json 62 | 63 | # 如果 poetry.lock 有更改,才添加它 64 | if echo "$CHANGED_FILES" | grep -q "poetry.lock"; then 65 | echo "添加 poetry.lock 文件" 66 | git add poetry.lock 67 | fi 68 | 69 | # 临时提交更改 70 | git commit -m "临时提交: 更新 Cursor 下载链接" 71 | 72 | # 拉取最新更改 73 | git pull --rebase origin main 74 | 75 | # 修改最后一次提交信息 76 | git commit --amend -m "docs: 更新 Cursor 下载链接" 77 | 78 | # 推送更改 79 | git push --force-with-lease -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Python 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | *.so 6 | .Python 7 | build/ 8 | develop-eggs/ 9 | dist/ 10 | downloads/ 11 | eggs/ 12 | .eggs/ 13 | lib/ 14 | lib64/ 15 | parts/ 16 | sdist/ 17 | var/ 18 | wheels/ 19 | *.egg-info/ 20 | .installed.cfg 21 | *.egg 22 | MANIFEST 23 | 24 | # Virtual Environment 25 | venv/ 26 | env/ 27 | ENV/ 28 | .env 29 | .venv 30 | 31 | # IDE files 32 | .idea/ 33 | .vscode/ 34 | *.swp 35 | *.swo 36 | .DS_Store 37 | *.iml 38 | 39 | # Jupyter Notebook 40 | .ipynb_checkpoints 41 | 42 | # Project specific 43 | *.log 44 | *.backup 45 | version-history.json.backup 46 | version-history.json.tmp 47 | 48 | # Distribution / packaging 49 | .Python 50 | env/ 51 | build/ 52 | develop-eggs/ 53 | dist/ 54 | downloads/ 55 | eggs/ 56 | .eggs/ 57 | lib/ 58 | lib64/ 59 | parts/ 60 | sdist/ 61 | var/ 62 | wheels/ 63 | *.egg-info/ 64 | .installed.cfg 65 | *.egg 66 | 67 | # Unit test / coverage reports 68 | htmlcov/ 69 | .tox/ 70 | .coverage 71 | .coverage.* 72 | .cache 73 | nosetests.xml 74 | coverage.xml 75 | *.cover 76 | .hypothesis/ 77 | .pytest_cache/ 78 | 79 | # Translations 80 | *.mo 81 | *.pot 82 | 83 | # Django stuff: 84 | *.log 85 | local_settings.py 86 | db.sqlite3 87 | db.sqlite3-journal 88 | 89 | # Flask stuff: 90 | instance/ 91 | .webassets-cache 92 | 93 | # Scrapy stuff: 94 | .scrapy 95 | 96 | # Sphinx documentation 97 | docs/_build/ 98 | 99 | # PyBuilder 100 | target/ 101 | 102 | # Jupyter Notebook 103 | .ipynb_checkpoints 104 | 105 | # IPython 106 | profile_default/ 107 | ipython_config.py 108 | 109 | # pyenv 110 | .python-version 111 | 112 | # pipenv 113 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 114 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 115 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 116 | # install all needed dependencies. 117 | #Pipfile.lock 118 | 119 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 120 | __pypackages__/ 121 | 122 | # Celery stuff 123 | celerybeat-schedule 124 | celerybeat.pid 125 | 126 | # SageMath parsed files 127 | *.sage.py 128 | 129 | # Environments 130 | .env 131 | .venv 132 | env/ 133 | venv/ 134 | ENV/ 135 | env.bak/ 136 | venv.bak/ 137 | 138 | # Spyder project settings 139 | .spyderproject 140 | .spyproject 141 | 142 | # Rope project settings 143 | .ropeproject 144 | 145 | # mkdocs documentation 146 | /site 147 | 148 | # mypy 149 | .mypy_cache/ 150 | .dmypy.json 151 | dmypy.json 152 | 153 | # Pyre type checker 154 | .pyre/ 155 | 156 | .history/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Eric 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Cursor History Links 2 | 3 | ## 项目介绍 4 | 5 | Cursor历史版本下载链接是一个专为开发者设计的工具,提供对Cursor编辑器各历史版本安装包的一站式访问。本项目自动抓取并维护Cursor各平台(Windows、macOS、Linux)的历史版本下载链接,让用户可以根据需要安装或降级到特定版本。 6 | 7 | ### 主要功能 8 | 9 | - 自动收集并更新Cursor编辑器所有历史版本的下载链接 10 | - 提供Windows、macOS和Linux平台的安装包下载 11 | - 支持x64和arm64架构 12 | - 按版本号和发布日期组织,便于查找 13 | - 定期自动更新,确保链接有效性 14 | 15 | ### 技术实现 16 | 17 | 本项目使用Python编写,通过GitHub Actions自动运行,定期检查新版本并更新下载链接列表。所有版本数据存储在version-history.json文件中,并在README.md中以表格形式呈现。 18 | 19 | ## 历史下载表格 20 | 21 | Cursor changelog:[Official Link](https://www.cursor.com/changelog) 22 | 23 | 官网最新版本:[Official Link](https://www.cursor.com/cn/downloads) 24 | 25 | 脚本最后更新: `2025-06-08 06:12:23` 26 | 27 | | Version | Date | Mac Installer | Windows Installer | Linux Installer | 28 | | --- | --- | --- | --- | --- | 29 | | 1.0.1 | 2025-06-08 | [darwin-universal](https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/x64/system-setup/CursorSetup-x64-1.0.1.exe)
[win32-arm64](https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/win32/arm64/system-setup/CursorSetup-arm64-1.0.1.exe) | [linux-x64](https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/linux/x64/Cursor-1.0.1-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/9f54c226145b02c8dd0771069db954e0ab5fa1b8/linux/arm64/Cursor-1.0.1-aarch64.AppImage) | 30 | | 1.0.0 | 2025-06-05 | [darwin-universal](https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/x64/system-setup/CursorSetup-x64-1.0.0.exe)
[win32-arm64](https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/win32/arm64/system-setup/CursorSetup-arm64-1.0.0.exe) | [linux-x64](https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/linux/x64/Cursor-1.0.0-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/53b99ce608cba35127ae3a050c1738a959750865/linux/arm64/Cursor-1.0.0-aarch64.AppImage) | 31 | | 0.51.2 | 2025-06-04 | [darwin-universal](https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/x64/system-setup/CursorSetup-x64-0.51.2.exe)
[win32-arm64](https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/win32/arm64/system-setup/CursorSetup-arm64-0.51.2.exe) | [linux-x64](https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/linux/x64/Cursor-0.51.2-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/f364e608fc11d38303429b80fd1e1f32d7587d43/linux/arm64/Cursor-0.51.2-aarch64.AppImage) | 32 | | 0.51.1 | 2025-05-31 | [darwin-universal](https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/x64/system-setup/CursorSetup-x64-0.51.1.exe)
[win32-arm64](https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/win32/arm64/system-setup/CursorSetup-arm64-0.51.1.exe) | [linux-x64](https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/linux/x64/Cursor-0.51.1-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/a9dd46cbd249a30044eaae1526eb6ca1ec2f7568/linux/arm64/Cursor-0.51.1-aarch64.AppImage) | 33 | | 0.51.0 | 2025-05-30 | [darwin-universal](https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/x64/system-setup/CursorSetup-x64-0.51.0.exe)
[win32-arm64](https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/win32/arm64/system-setup/CursorSetup-arm64-0.51.0.exe) | [linux-x64](https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/linux/x64/Cursor-0.51.0-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/adaabf32700c570904618df5bd7166988f3d079b/linux/arm64/Cursor-0.51.0-aarch64.AppImage) | 34 | | 0.50.7 | 2025-05-25 | [darwin-universal](https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/x64/system-setup/CursorSetup-x64-0.50.7.exe)
[win32-arm64](https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/win32/arm64/system-setup/CursorSetup-arm64-0.50.7.exe) | [linux-x64](https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/linux/x64/Cursor-0.50.7-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/02270c8441bdc4b2fdbc30e6f470a589ec78d60d/linux/arm64/Cursor-0.50.7-aarch64.AppImage) | 35 | | 0.50.6 | 2025-05-24 | [darwin-universal](https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/x64/system-setup/CursorSetup-x64-0.50.6.exe)
[win32-arm64](https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/win32/arm64/system-setup/CursorSetup-arm64-0.50.6.exe) | [linux-x64](https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/linux/x64/Cursor-0.50.6-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/f3f2ad556456ff2df80332923bb1e2a818110d1b/linux/arm64/Cursor-0.50.6-aarch64.AppImage) | 36 | | 0.50.5 | 2025-05-18 | [darwin-universal](https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/x64/system-setup/CursorSetup-x64-0.50.5.exe)
[win32-arm64](https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/win32/arm64/system-setup/CursorSetup-arm64-0.50.5.exe) | [linux-x64](https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/x64/Cursor-0.50.5-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/arm64/Cursor-0.50.5-aarch64.AppImage) | 37 | | 0.50.4 | 2025-05-15 | [darwin-universal](https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/win32/x64/system-setup/CursorSetup-x64-0.50.4.exe)
[win32-arm64](https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/win32/arm64/system-setup/CursorSetup-arm64-0.50.4.exe) | [linux-x64](https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/linux/x64/Cursor-0.50.4-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/8ea935e79a50a02da912a034bbeda84a6d3d355d/linux/arm64/Cursor-0.50.4-aarch64.AppImage) | 38 | | 0.50.3 | 2025-05-13 | [darwin-universal](https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/win32/x64/system-setup/CursorSetup-x64-0.50.3.exe)
[win32-arm64](https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/win32/arm64/system-setup/CursorSetup-arm64-0.50.3.exe) | [linux-x64](https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/linux/x64/Cursor-0.50.3-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/7ae22cf8cd5af9e08b62585dd03d10f5f610acf9/linux/arm64/Cursor-0.50.3-aarch64.AppImage) | 39 | | 0.50.2 | 2025-05-13 | [darwin-universal](https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/win32/x64/system-setup/CursorSetup-x64-0.50.2.exe)
[win32-arm64](https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/win32/arm64/system-setup/CursorSetup-arm64-0.50.2.exe) | [linux-x64](https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/linux/x64/Cursor-0.50.2-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/fc3e38722d374aeba23729a31220a4f0662e3c9b/linux/arm64/Cursor-0.50.2-aarch64.AppImage) | 40 | | 0.50.1 | 2025-05-11 | [darwin-universal](https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/win32/x64/system-setup/CursorSetup-x64-0.50.1.exe)
[win32-arm64](https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/win32/arm64/system-setup/CursorSetup-arm64-0.50.1.exe) | [linux-x64](https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/linux/x64/Cursor-0.50.1-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/81bf18c2ba01d6e7e886875bdb6d1d04ac31c1f7/linux/arm64/Cursor-0.50.1-aarch64.AppImage) | 41 | | 0.50.0 | 2025-05-10 | [darwin-universal](https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/win32/x64/system-setup/CursorSetup-x64-0.50.0.exe)
[win32-arm64](https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/win32/arm64/system-setup/CursorSetup-arm64-0.50.0.exe) | [linux-x64](https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/linux/x64/Cursor-0.50.0-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/bbfa51c1211255cbbde8b558e014a593f44051f4/linux/arm64/Cursor-0.50.0-aarch64.AppImage) | 42 | | 0.49.6 | 2025-04-26 | [darwin-universal](https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/win32/x64/system-setup/CursorSetup-x64-0.49.6.exe)
[win32-arm64](https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/win32/arm64/system-setup/CursorSetup-arm64-0.49.6.exe) | [linux-x64](https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/x64/Cursor-0.49.6-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/arm64/Cursor-0.49.6-aarch64.AppImage) | 43 | | 0.49.5 | 2025-04-24 | [darwin-universal](https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/win32/x64/system-setup/CursorSetup-x64-0.49.5.exe)
[win32-arm64](https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/win32/arm64/system-setup/CursorSetup-arm64-0.49.5.exe) | [linux-x64](https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/linux/x64/Cursor-0.49.5-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/fd861c8a80c0f9e4e35294b1915ee8a7b29ae858/linux/arm64/Cursor-0.49.5-aarch64.AppImage) | 44 | | 0.49.4 | 2025-04-22 | [darwin-universal](https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/win32/x64/system-setup/CursorSetup-x64-0.49.4.exe)
[win32-arm64](https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/win32/arm64/system-setup/CursorSetup-arm64-0.49.4.exe) | [linux-x64](https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/linux/x64/Cursor-0.49.4-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/ec408037b24566b11e6132c58bbe6ad27046eb91/linux/arm64/Cursor-0.49.4-aarch64.AppImage) | 45 | | 0.49.3 | 2025-04-22 | [darwin-universal](https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/win32/x64/system-setup/CursorSetup-x64-0.49.3.exe)
[win32-arm64](https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/win32/arm64/system-setup/CursorSetup-arm64-0.49.3.exe) | [linux-x64](https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/linux/x64/Cursor-0.49.3-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/224bc1da1a36703c583d62e407d4bccbb8c6a641/linux/arm64/Cursor-0.49.3-aarch64.AppImage) | 46 | | 0.49.2 | 2025-04-20 | [darwin-universal](https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/win32/x64/system-setup/CursorSetup-x64-0.49.2.exe)
[win32-arm64](https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/win32/arm64/system-setup/CursorSetup-arm64-0.49.2.exe) | [linux-x64](https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/linux/x64/Cursor-0.49.2-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/1d0a7a3b734be5aea27e30d0c56d2a6e2c79da74/linux/arm64/Cursor-0.49.2-aarch64.AppImage) | 47 | | 0.49.1 | 2025-04-18 | [darwin-universal](https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/win32/x64/system-setup/CursorSetup-x64-0.49.1.exe)
[win32-arm64](https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/win32/arm64/system-setup/CursorSetup-arm64-0.49.1.exe) | [linux-x64](https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/linux/x64/Cursor-0.49.1-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/600e5c827c07c5818474c1056eeec61d478b407a/linux/arm64/Cursor-0.49.1-aarch64.AppImage) | 48 | | 0.49.0 | 2025-04-16 | [darwin-universal](https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/win32/x64/system-setup/CursorSetup-x64-0.49.0.exe)
[win32-arm64](https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/win32/arm64/system-setup/CursorSetup-arm64-0.49.0.exe) | [linux-x64](https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/linux/x64/Cursor-0.49.0-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/88a47f0edd42a2ba73afb018ada9fe9eda7df75f/linux/arm64/Cursor-0.49.0-aarch64.AppImage) | 49 | | 0.48.9 | 2025-04-14 | [darwin-universal](https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/win32/x64/system-setup/CursorSetup-x64-0.48.9.exe)
[win32-arm64](https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/win32/arm64/system-setup/CursorSetup-arm64-0.48.9.exe) | [linux-x64](https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/linux/x64/Cursor-0.48.9-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/61e99179e4080fecf9d8b92c6e2e3e00fbfb53f4/linux/arm64/Cursor-0.48.9-aarch64.AppImage) | 50 | | 0.48.8 | 2025-04-08 | [darwin-universal](https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/win32/x64/system-setup/CursorSetup-x64-0.48.8.exe)
[win32-arm64](https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/win32/arm64/system-setup/CursorSetup-arm64-0.48.8.exe) | [linux-x64](https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/linux/x64/Cursor-0.48.8-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/7801a556824585b7f2721900066bc87c4a09b743/linux/arm64/Cursor-0.48.8-aarch64.AppImage) | 51 | | 0.48.7 | 2025-04-02 | [darwin-universal](https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/win32/x64/user-setup/CursorUserSetup-x64-0.48.7.exe)
[win32-arm64](https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.7.exe) | [linux-x64](https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/linux/x64/Cursor-0.48.7-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/66290080aae40d23364ba2371832bda0933a3641/linux/arm64/Cursor-0.48.7-aarch64.AppImage) | 52 | | 0.48.6 | 2025-03-31 | [darwin-universal](https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/win32/x64/user-setup/CursorUserSetup-x64-0.48.6.exe)
[win32-arm64](https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.6.exe) | [linux-x64](https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/linux/x64/Cursor-0.48.6-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/7da827d66e9b56a846349698c70129a436421245/linux/arm64/Cursor-0.48.6-aarch64.AppImage) | 53 | | 0.48.5 | 2025-03-31 | [darwin-universal](https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/win32/x64/user-setup/CursorUserSetup-x64-0.48.5.exe)
[win32-arm64](https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.5.exe) | [linux-x64](https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/linux/x64/Cursor-0.48.5-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/ec8ef865575596e5c64d3b6cf9a933b93ad4ac02/linux/arm64/Cursor-0.48.5-aarch64.AppImage) | 54 | | 0.48.4 | 2025-03-30 | [darwin-universal](https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/win32/x64/user-setup/CursorUserSetup-x64-0.48.4.exe)
[win32-arm64](https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.4.exe) | [linux-x64](https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/linux/x64/Cursor-0.48.4-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/2d6a87f894b91f2d4a045294e1ad36d208023ccb/linux/arm64/Cursor-0.48.4-aarch64.AppImage) | 55 | | 0.48.3 | 2025-03-29 | [darwin-universal](https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/win32/x64/user-setup/CursorUserSetup-x64-0.48.3.exe)
[win32-arm64](https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.3.exe) | [linux-x64](https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/linux/x64/Cursor-0.48.3-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/d0f2e6e7e022d8e024f7eb7d085cadf3d1f4df20/linux/arm64/Cursor-0.48.3-aarch64.AppImage) | 56 | | 0.48.2 | 2025-03-26 | [darwin-universal](https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/win32/x64/user-setup/CursorUserSetup-x64-0.48.2.exe)
[win32-arm64](https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.2.exe) | [linux-x64](https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/linux/x64/Cursor-0.48.2-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/7d6318dfcfbf7c12a87e33c06978f23167a6de3c/linux/arm64/Cursor-0.48.2-aarch64.AppImage) | 57 | | 0.48.1 | 2025-03-25 | [darwin-universal](https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/win32/x64/user-setup/CursorUserSetup-x64-0.48.1.exe)
[win32-arm64](https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.1.exe) | [linux-x64](https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/linux/x64/Cursor-0.48.1-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/0139db98f117ab50fcaaf7a0b1c69d345bd98a14/linux/arm64/Cursor-0.48.1-aarch64.AppImage) | 58 | | 0.48.0 | 2025-03-24 | [darwin-universal](https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/win32/x64/user-setup/CursorUserSetup-x64-0.48.0.exe)
[win32-arm64](https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/win32/arm64/user-setup/CursorUserSetup-arm64-0.48.0.exe) | [linux-x64](https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/linux/x64/Cursor-0.48.0-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/3def0c1e43c375c98c36c3e60d2304e1c465bd5c/linux/arm64/Cursor-0.48.0-aarch64.AppImage) | 59 | | 0.47.9 | 2025-03-22 | [darwin-universal](https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/win32/x64/user-setup/CursorUserSetup-x64-0.47.9.exe)
[win32-arm64](https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.9.exe) | [linux-x64](https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/linux/x64/Cursor-0.47.9-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/b6fb41b5f36bda05cab7109606e7404a65d1ff32/linux/arm64/Cursor-0.47.9-aarch64.AppImage) | 60 | | 0.47.8 | 2025-03-18 | [darwin-universal](https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/win32/x64/user-setup/CursorUserSetup-x64-0.47.8.exe)
[win32-arm64](https://downloads.cursor.com/production/82ef0f61c01d079d1b7e5ab04d88499d5af500e3/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.8.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.8-82ef0f61c01d079d1b7e5ab04d88499d5af500e3.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.8-82ef0f61c01d079d1b7e5ab04d88499d5af500e3.deb.glibc2.28-aarch64.AppImage) | 61 | | 0.47.7 | 2025-03-18 | [darwin-universal](https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/win32/x64/user-setup/CursorUserSetup-x64-0.47.7.exe)
[win32-arm64](https://downloads.cursor.com/production/33ec0dad159bc0ad620f6bbda539efe90c39748d/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.7.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.7-33ec0dad159bc0ad620f6bbda539efe90c39748d.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.7-33ec0dad159bc0ad620f6bbda539efe90c39748d.deb.glibc2.28-aarch64.AppImage) | 62 | | 0.47.6 | 2025-03-18 | [darwin-universal](https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/win32/x64/user-setup/CursorUserSetup-x64-0.47.6.exe)
[win32-arm64](https://downloads.cursor.com/production/6a1a6fbc55483584e7022f491c8a167ccac86f22/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.6.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.6-6a1a6fbc55483584e7022f491c8a167ccac86f22.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.6-6a1a6fbc55483584e7022f491c8a167ccac86f22.deb.glibc2.28-aarch64.AppImage) | 63 | | 0.47.5 | 2025-03-15 | [darwin-universal](https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/win32/x64/user-setup/CursorUserSetup-x64-0.47.5.exe)
[win32-arm64](https://downloads.cursor.com/production/53d6da1322f934a1058e7569ee0847b24879d18c/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.5.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.5-53d6da1322f934a1058e7569ee0847b24879d18c.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.5-53d6da1322f934a1058e7569ee0847b24879d18c.deb.glibc2.28-aarch64.AppImage) | 64 | | 0.47.4 | 2025-03-14 | [darwin-universal](https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/win32/x64/user-setup/CursorUserSetup-x64-0.47.4.exe)
[win32-arm64](https://downloads.cursor.com/production/8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.4.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.4-8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.4-8f8a2000673d2c48f6cac5eea2f3f9f2ed5e4ec2.deb.glibc2.28-aarch64.AppImage) | 65 | | 0.47.3 | 2025-03-13 | [darwin-universal](https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/win32/x64/user-setup/CursorUserSetup-x64-0.47.3.exe)
[win32-arm64](https://downloads.cursor.com/production/dab1538cd064aebd4292f9de48b05022c974aff6/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.3.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.3-dab1538cd064aebd4292f9de48b05022c974aff6.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.3-dab1538cd064aebd4292f9de48b05022c974aff6.deb.glibc2.28-aarch64.AppImage) | 66 | | 0.47.2 | 2025-03-13 | [darwin-universal](https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/bed609aa4a57e9d82664006f152d3f77589eed10/darwin/arm64/Cursor-darwin-arm64.dmg) | | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.2-bed609aa4a57e9d82664006f152d3f77589eed10.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.2-bed609aa4a57e9d82664006f152d3f77589eed10.deb.glibc2.28-aarch64.AppImage) | 67 | | 0.47.1 | 2025-03-11 | [darwin-universal](https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/win32/x64/user-setup/CursorUserSetup-x64-0.47.1.exe)
[win32-arm64](https://downloads.cursor.com/production/aafb3fe1326c939656bd06f325a9e17679aeec7f/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.1.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.1-aafb3fe1326c939656bd06f325a9e17679aeec7f.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.1-aafb3fe1326c939656bd06f325a9e17679aeec7f.deb.glibc2.28-aarch64.AppImage) | 68 | | 0.47.0 | 2025-03-11 | [darwin-universal](https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/win32/x64/user-setup/CursorUserSetup-x64-0.47.0.exe)
[win32-arm64](https://downloads.cursor.com/production/4a602340d7b014d700647120bae9079607f2ae9b/win32/arm64/user-setup/CursorUserSetup-arm64-0.47.0.exe) | [linux-x64](https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.47.0-4a602340d7b014d700647120bae9079607f2ae9b.deb.glibc2.25-x86_64.AppImage)
[linux-arm64](https://downloads.cursor.com/production/client/linux/arm64/appimage/Cursor-0.47.0-4a602340d7b014d700647120bae9079607f2ae9b.deb.glibc2.28-aarch64.AppImage) | 69 | | 0.46.9 | 2025-03-05 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/win32/x64/user-setup/CursorUserSetup-x64-0.46.9.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3395357a4ee2975d5d03595e7607ee84e3db0f2c/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.9.exe) | [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)
[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) | 70 | | 0.46.8 | 2025-03-01 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/win32/x64/user-setup/CursorUserSetup-x64-0.46.8.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/be4f0962469499f009005e66867c8402202ff0b7/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.8.exe) | [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)
[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) | 71 | | 0.46.7 | 2025-02-27 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/win32/x64/user-setup/CursorUserSetup-x64-0.46.7.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/3611c5390c448b242ab97e328493bb8ef7241e61/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.7.exe) | [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)
[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) | 72 | | 0.46.6 | 2025-02-26 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/win32/x64/user-setup/CursorUserSetup-x64-0.46.6.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/5ac4b6282478aa0f4d1bfc032412616523788843/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.6.exe) | [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)
[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) | 73 | | 0.46.5 | 2025-02-26 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/win32/x64/user-setup/CursorUserSetup-x64-0.46.5.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/9fa6e431b47f723d1bac24802102dd2fd8ea72b0/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.5.exe) | [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)
[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) | 74 | | 0.46.4 | 2025-02-25 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/win32/x64/user-setup/CursorUserSetup-x64-0.46.4.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/db71624816f6d52f6e54f47c37cdc7df23e22623/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.4.exe) | [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)
[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) | 75 | | 0.46.3 | 2025-02-25 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/win32/x64/user-setup/CursorUserSetup-x64-0.46.3.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/fce3511bab261b4c986797f3e1e40e7621bbd012/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.3.exe) | [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)
[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) | 76 | | 0.46.2 | 2025-02-23 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/win32/x64/user-setup/CursorUserSetup-x64-0.46.2.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/84b9c6d907219bb8c2874f299540eb6a079187ab/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.2.exe) | [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)
[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) | 77 | | 0.46.11 | 2025-03-07 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/win32/x64/user-setup/CursorUserSetup-x64-0.46.11.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.11.exe) | [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)
[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) | 78 | | 0.46.10 | 2025-03-06 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/win32/x64/user-setup/CursorUserSetup-x64-0.46.10.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/7b3e0d45d4f952938dbd8e1e29c1b17003198481/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.10.exe) | [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)
[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) | 79 | | 0.46.1 | 2025-02-23 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/win32/x64/user-setup/CursorUserSetup-x64-0.46.1.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/69ce6c261e430e5be69213f1e721e50142477715/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.1.exe) | [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)
[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) | 80 | | 0.46.0 | 2025-02-22 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/win32/x64/user-setup/CursorUserSetup-x64-0.46.0.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/aff57e1d9a74ed627fb5bd393e347079514436a7/win32/arm64/user-setup/CursorUserSetup-arm64-0.46.0.exe) | [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)
[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) | 81 | | 0.45.9 | 2025-02-02 | [darwin-universal](https://downloader.cursor.sh/builds/250202tgstl42dt/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250202tgstl42dt/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250202tgstl42dt/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250202tgstl42dt/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250202tgstl42dt/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250202tgstl42dt/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250202tgstl42dt/linux/appImage/arm64) | 82 | | 0.45.8 | 2025-02-01 | [darwin-universal](https://downloader.cursor.sh/builds/250201b44xw1x2k/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250201b44xw1x2k/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250201b44xw1x2k/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250201b44xw1x2k/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250201b44xw1x2k/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250201b44xw1x2k/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250201b44xw1x2k/linux/appImage/arm64) | 83 | | 0.45.7 | 2025-01-30 | [darwin-universal](https://downloader.cursor.sh/builds/250130nr6eorv84/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250130nr6eorv84/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250130nr6eorv84/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250130nr6eorv84/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250130nr6eorv84/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250130nr6eorv84/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250130nr6eorv84/linux/appImage/arm64) | 84 | | 0.45.6 | 2025-01-30 | [darwin-universal](https://downloader.cursor.sh/builds/25013021lv9say3/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/25013021lv9say3/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/25013021lv9say3/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/25013021lv9say3/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/25013021lv9say3/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/25013021lv9say3/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/25013021lv9say3/linux/appImage/arm64) | 85 | | 0.45.5 | 2025-01-28 | [darwin-universal](https://downloader.cursor.sh/builds/250128loaeyulq8/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250128loaeyulq8/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250128loaeyulq8/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250128loaeyulq8/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250128loaeyulq8/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250128loaeyulq8/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250128loaeyulq8/linux/appImage/arm64) | 86 | | 0.45.4 | 2025-01-26 | [darwin-universal](https://downloader.cursor.sh/builds/250126vgr3vztvj/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250126vgr3vztvj/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250126vgr3vztvj/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250126vgr3vztvj/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250126vgr3vztvj/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250126vgr3vztvj/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250126vgr3vztvj/linux/appImage/arm64) | 87 | | 0.45.3 | 2025-01-24 | [darwin-universal](https://downloader.cursor.sh/builds/250124b0rcj0qql/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250124b0rcj0qql/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250124b0rcj0qql/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250124b0rcj0qql/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250124b0rcj0qql/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250124b0rcj0qql/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250124b0rcj0qql/linux/appImage/arm64) | 88 | | 0.45.2 | 2025-01-23 | [darwin-universal](https://downloader.cursor.sh/builds/250123mhituoa6o/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250123mhituoa6o/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250123mhituoa6o/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250123mhituoa6o/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250123mhituoa6o/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250123mhituoa6o/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250123mhituoa6o/linux/appImage/arm64) | 89 | | 0.45.15 | 2025-02-20 | [darwin-universal](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/darwin/universal/Cursor-darwin-universal.dmg)
[darwin-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/darwin/x64/Cursor-darwin-x64.dmg)
[darwin-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/darwin/arm64/Cursor-darwin-arm64.dmg) | [win32-x64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/win32/x64/user-setup/CursorUserSetup-x64-0.45.15.exe)
[win32-arm64](https://anysphere-binaries.s3.us-east-1.amazonaws.com/production/73dd83bb6f8e3a3704ad8078a8e455ac6d4260d1/win32/arm64/user-setup/CursorUserSetup-arm64-0.45.15.exe) | [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)
[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) | 90 | | 0.45.14 | 2025-02-19 | [darwin-universal](https://downloader.cursor.sh/builds/250219jnihavxsz/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250219jnihavxsz/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250219jnihavxsz/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250219jnihavxsz/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250219jnihavxsz/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250219jnihavxsz/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250219jnihavxsz/linux/appImage/arm64) | 91 | | 0.45.12 | 2025-02-18 | [darwin-universal](https://downloader.cursor.sh/builds/2502180s4ios0dk/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2502180s4ios0dk/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2502180s4ios0dk/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2502180s4ios0dk/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2502180s4ios0dk/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2502180s4ios0dk/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2502180s4ios0dk/linux/appImage/arm64) | 92 | | 0.45.11 | 2025-02-07 | [darwin-universal](https://downloader.cursor.sh/builds/250207y6nbaw5qc/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250207y6nbaw5qc/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250207y6nbaw5qc/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250207y6nbaw5qc/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250207y6nbaw5qc/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250207y6nbaw5qc/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250207y6nbaw5qc/linux/appImage/arm64) | 93 | | 0.45.10 | 2025-02-05 | [darwin-universal](https://downloader.cursor.sh/builds/250205buadkzpea/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250205buadkzpea/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250205buadkzpea/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250205buadkzpea/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250205buadkzpea/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250205buadkzpea/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250205buadkzpea/linux/appImage/arm64) | 94 | | 0.45.1 | 2025-01-21 | [darwin-universal](https://downloader.cursor.sh/builds/2501213ljml5byg/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2501213ljml5byg/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2501213ljml5byg/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2501213ljml5byg/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2501213ljml5byg/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2501213ljml5byg/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2501213ljml5byg/linux/appImage/arm64) | 95 | | 0.45.0 | 2025-01-20 | [darwin-universal](https://downloader.cursor.sh/builds/250120dh9ezx9pg/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250120dh9ezx9pg/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250120dh9ezx9pg/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250120dh9ezx9pg/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250120dh9ezx9pg/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250120dh9ezx9pg/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250120dh9ezx9pg/linux/appImage/arm64) | 96 | | 0.44.9 | 2024-12-26 | [darwin-universal](https://downloader.cursor.sh/builds/2412268nc6pfzgo/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2412268nc6pfzgo/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2412268nc6pfzgo/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2412268nc6pfzgo/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2412268nc6pfzgo/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2412268nc6pfzgo/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2412268nc6pfzgo/linux/appImage/arm64) | 97 | | 0.44.8 | 2024-12-22 | [darwin-universal](https://downloader.cursor.sh/builds/241222ooktny8mh/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241222ooktny8mh/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241222ooktny8mh/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241222ooktny8mh/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241222ooktny8mh/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241222ooktny8mh/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241222ooktny8mh/linux/appImage/arm64) | 98 | | 0.44.7 | 2024-12-22 | [darwin-universal](https://downloader.cursor.sh/builds/2412219nhracv01/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2412219nhracv01/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2412219nhracv01/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2412219nhracv01/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2412219nhracv01/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2412219nhracv01/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2412219nhracv01/linux/appImage/arm64) | 99 | | 0.44.6 | 2024-12-21 | [darwin-universal](https://downloader.cursor.sh/builds/2412214pmryneua/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2412214pmryneua/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2412214pmryneua/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2412214pmryneua/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2412214pmryneua/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2412214pmryneua/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2412214pmryneua/linux/appImage/arm64) | 100 | | 0.44.5 | 2024-12-20 | [darwin-universal](https://downloader.cursor.sh/builds/241220s3ux0e1tv/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241220s3ux0e1tv/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241220s3ux0e1tv/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241220s3ux0e1tv/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241220s3ux0e1tv/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241220s3ux0e1tv/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241220s3ux0e1tv/linux/appImage/arm64) | 101 | | 0.44.4 | 2024-12-19 | [darwin-universal](https://downloader.cursor.sh/builds/241219117fcvexy/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241219117fcvexy/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241219117fcvexy/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241219117fcvexy/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241219117fcvexy/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241219117fcvexy/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241219117fcvexy/linux/appImage/arm64) | 102 | | 0.44.3 | 2024-12-18 | [darwin-universal](https://downloader.cursor.sh/builds/241218sybfbogmq/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241218sybfbogmq/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241218sybfbogmq/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241218sybfbogmq/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241218sybfbogmq/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241218sybfbogmq/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241218sybfbogmq/linux/appImage/arm64) | 103 | | 0.44.2 | 2024-12-18 | [darwin-universal](https://downloader.cursor.sh/builds/241218ntls52u8v/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241218ntls52u8v/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241218ntls52u8v/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241218ntls52u8v/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241218ntls52u8v/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241218ntls52u8v/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241218ntls52u8v/linux/appImage/arm64) | 104 | | 0.44.11 | 2025-01-03 | [darwin-universal](https://downloader.cursor.sh/builds/250103fqxdt5u9z/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250103fqxdt5u9z/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250103fqxdt5u9z/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250103fqxdt5u9z/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250103fqxdt5u9z/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250103fqxdt5u9z/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250103fqxdt5u9z/linux/appImage/arm64) | 105 | | 0.44.10 | 2025-01-02 | [darwin-universal](https://downloader.cursor.sh/builds/250102ys80vtnud/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/250102ys80vtnud/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/250102ys80vtnud/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/250102ys80vtnud/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/250102ys80vtnud/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/250102ys80vtnud/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/250102ys80vtnud/linux/appImage/arm64) | 106 | | 0.44.0 | 2024-12-18 | [darwin-universal](https://downloader.cursor.sh/builds/2412187f9v0nffu/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2412187f9v0nffu/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2412187f9v0nffu/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2412187f9v0nffu/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2412187f9v0nffu/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2412187f9v0nffu/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2412187f9v0nffu/linux/appImage/arm64) | 107 | | 0.43.6 | 2024-12-06 | [darwin-universal](https://downloader.cursor.sh/builds/241206z7j6me2e2/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241206z7j6me2e2/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241206z7j6me2e2/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241206z7j6me2e2/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241206z7j6me2e2/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241206z7j6me2e2/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241206z7j6me2e2/linux/appImage/arm64) | 108 | | 0.43.5 | 2024-11-27 | [darwin-universal](https://downloader.cursor.sh/builds/241127pdg4cnbu2/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241127pdg4cnbu2/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241127pdg4cnbu2/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241127pdg4cnbu2/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241127pdg4cnbu2/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241127pdg4cnbu2/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241127pdg4cnbu2/linux/appImage/arm64) | 109 | | 0.43.4 | 2024-11-26 | [darwin-universal](https://downloader.cursor.sh/builds/241126w13goyvrs/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241126w13goyvrs/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241126w13goyvrs/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241126w13goyvrs/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241126w13goyvrs/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241126w13goyvrs/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241126w13goyvrs/linux/appImage/arm64) | 110 | | 0.43.3 | 2024-11-24 | [darwin-universal](https://downloader.cursor.sh/builds/2411246yqzx1jmm/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2411246yqzx1jmm/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2411246yqzx1jmm/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2411246yqzx1jmm/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2411246yqzx1jmm/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2411246yqzx1jmm/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2411246yqzx1jmm/linux/appImage/arm64) | 111 | | 0.43.1 | 2024-11-24 | [darwin-universal](https://downloader.cursor.sh/builds/241124gsiwb66nc/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241124gsiwb66nc/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241124gsiwb66nc/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241124gsiwb66nc/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241124gsiwb66nc/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241124gsiwb66nc/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241124gsiwb66nc/linux/appImage/arm64) | 112 | | 0.43.0 | 2024-11-24 | [darwin-universal](https://downloader.cursor.sh/builds/24112423a8e6ct7/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/24112423a8e6ct7/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/24112423a8e6ct7/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/24112423a8e6ct7/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/24112423a8e6ct7/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/24112423a8e6ct7/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/24112423a8e6ct7/linux/appImage/arm64) | 113 | | 0.42.5 | 2024-11-14 | [darwin-universal](https://downloader.cursor.sh/builds/24111460bf2loz1/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/24111460bf2loz1/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/24111460bf2loz1/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/24111460bf2loz1/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/24111460bf2loz1/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/24111460bf2loz1/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/24111460bf2loz1/linux/appImage/arm64) | 114 | | 0.42.4 | 2024-10-29 | [darwin-universal](https://downloader.cursor.sh/builds/2410291z3bdg1dy/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2410291z3bdg1dy/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2410291z3bdg1dy/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2410291z3bdg1dy/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2410291z3bdg1dy/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2410291z3bdg1dy/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2410291z3bdg1dy/linux/appImage/arm64) | 115 | | 0.42.3 | 2024-10-16 | [darwin-universal](https://downloader.cursor.sh/builds/241016kxu9umuir.exe/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241016kxu9umuir.exe/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241016kxu9umuir.exe/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241016kxu9umuir.exe/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241016kxu9umuir.exe/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241016kxu9umuir.exe/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241016kxu9umuir.exe/linux/appImage/arm64) | 116 | | 0.42.2 | 2024-10-12 | [darwin-universal](https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2410127mj66lvaq.exe/linux/appImage/arm64) | 117 | | 0.42.1 | 2024-10-11 | [darwin-universal](https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241011i66p9fuvm.exe/linux/appImage/arm64) | 118 | | 0.42.0 | 2024-10-09 | [darwin-universal](https://downloader.cursor.sh/builds/241009fij7nohn5.exe/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/241009fij7nohn5.exe/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/241009fij7nohn5.exe/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/241009fij7nohn5.exe/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/241009fij7nohn5.exe/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/241009fij7nohn5.exe/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/241009fij7nohn5.exe/linux/appImage/arm64) | 119 | | 0.41.3 | 2024-09-25 | [darwin-universal](https://downloader.cursor.sh/builds/240925fkhcqg263/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/240925fkhcqg263/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/240925fkhcqg263/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/240925fkhcqg263/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/240925fkhcqg263/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/240925fkhcqg263/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/240925fkhcqg263/linux/appImage/arm64) | 120 | | 0.41.2 | 2024-09-21 | [darwin-universal](https://downloader.cursor.sh/builds/240921llnho65ov/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/240921llnho65ov/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/240921llnho65ov/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/240921llnho65ov/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/240921llnho65ov/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/240921llnho65ov/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/240921llnho65ov/linux/appImage/arm64) | 121 | | 0.41.1 | 2024-09-18 | [darwin-universal](https://downloader.cursor.sh/builds/2409189xe3envg5/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2409189xe3envg5/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2409189xe3envg5/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2409189xe3envg5/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2409189xe3envg5/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2409189xe3envg5/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2409189xe3envg5/linux/appImage/arm64) | 122 | | 0.40.4 | 2024-09-05 | [darwin-universal](https://downloader.cursor.sh/builds/2409052yfcjagw2/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2409052yfcjagw2/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2409052yfcjagw2/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2409052yfcjagw2/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2409052yfcjagw2/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2409052yfcjagw2/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2409052yfcjagw2/linux/appImage/arm64) | 123 | | 0.40.3 | 2024-08-29 | [darwin-universal](https://downloader.cursor.sh/builds/240829epqamqp7h/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/240829epqamqp7h/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/240829epqamqp7h/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/240829epqamqp7h/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/240829epqamqp7h/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/240829epqamqp7h/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/240829epqamqp7h/linux/appImage/arm64) | 124 | | 0.40.2 | 2024-08-28 | [darwin-universal](https://downloader.cursor.sh/builds/240828c021k3aib/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/240828c021k3aib/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/240828c021k3aib/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/240828c021k3aib/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/240828c021k3aib/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/240828c021k3aib/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/240828c021k3aib/linux/appImage/arm64) | 125 | | 0.40.1 | 2024-08-24 | [darwin-universal](https://downloader.cursor.sh/builds/2408245thnycuzj/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/2408245thnycuzj/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/2408245thnycuzj/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/2408245thnycuzj/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/2408245thnycuzj/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/2408245thnycuzj/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/2408245thnycuzj/linux/appImage/arm64) | 126 | | 0.40.0 | 2024-08-22 | [darwin-universal](https://downloader.cursor.sh/builds/24082202sreugb2/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/24082202sreugb2/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/24082202sreugb2/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/24082202sreugb2/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/24082202sreugb2/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/24082202sreugb2/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/24082202sreugb2/linux/appImage/arm64) | 127 | | 0.39.6 | 2024-08-19 | [darwin-universal](https://downloader.cursor.sh/builds/240819ih4ta2fye/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/240819ih4ta2fye/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/240819ih4ta2fye/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/240819ih4ta2fye/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/240819ih4ta2fye/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/240819ih4ta2fye/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/240819ih4ta2fye/linux/appImage/arm64) | 128 | | 0.39.5 | 2024-08-14 | [darwin-universal](https://downloader.cursor.sh/builds/240814y9rhzmu7h/mac/installer/universal)
[darwin-x64](https://downloader.cursor.sh/builds/240814y9rhzmu7h/mac/installer/x64)
[darwin-arm64](https://downloader.cursor.sh/builds/240814y9rhzmu7h/mac/installer/arm64) | [win32-x64](https://downloader.cursor.sh/builds/240814y9rhzmu7h/windows/nsis/x64)
[win32-arm64](https://downloader.cursor.sh/builds/240814y9rhzmu7h/windows/nsis/arm64) | [linux-x64](https://downloader.cursor.sh/builds/240814y9rhzmu7h/linux/appImage/x64)
[linux-arm64](https://downloader.cursor.sh/builds/240814y9rhzmu7h/linux/appImage/arm64) | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. 2 | 3 | [[package]] 4 | name = "altgraph" 5 | version = "0.17.4" 6 | description = "Python graph (network) package" 7 | optional = false 8 | python-versions = "*" 9 | groups = ["dev"] 10 | markers = "python_version < \"3.14\"" 11 | files = [ 12 | {file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"}, 13 | {file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"}, 14 | ] 15 | 16 | [[package]] 17 | name = "anyio" 18 | version = "4.8.0" 19 | description = "High level compatibility layer for multiple asynchronous event loop implementations" 20 | optional = false 21 | python-versions = ">=3.9" 22 | groups = ["main"] 23 | files = [ 24 | {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, 25 | {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, 26 | ] 27 | 28 | [package.dependencies] 29 | exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} 30 | idna = ">=2.8" 31 | sniffio = ">=1.1" 32 | typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} 33 | 34 | [package.extras] 35 | doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] 36 | test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] 37 | trio = ["trio (>=0.26.1)"] 38 | 39 | [[package]] 40 | name = "certifi" 41 | version = "2025.1.31" 42 | description = "Python package for providing Mozilla's CA Bundle." 43 | optional = false 44 | python-versions = ">=3.6" 45 | groups = ["main"] 46 | files = [ 47 | {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, 48 | {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, 49 | ] 50 | 51 | [[package]] 52 | name = "exceptiongroup" 53 | version = "1.2.2" 54 | description = "Backport of PEP 654 (exception groups)" 55 | optional = false 56 | python-versions = ">=3.7" 57 | groups = ["main"] 58 | markers = "python_version == \"3.10\"" 59 | files = [ 60 | {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, 61 | {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, 62 | ] 63 | 64 | [package.extras] 65 | test = ["pytest (>=6)"] 66 | 67 | [[package]] 68 | name = "h11" 69 | version = "0.14.0" 70 | description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" 71 | optional = false 72 | python-versions = ">=3.7" 73 | groups = ["main"] 74 | files = [ 75 | {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, 76 | {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, 77 | ] 78 | 79 | [[package]] 80 | name = "httpcore" 81 | version = "1.0.7" 82 | description = "A minimal low-level HTTP client." 83 | optional = false 84 | python-versions = ">=3.8" 85 | groups = ["main"] 86 | files = [ 87 | {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, 88 | {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, 89 | ] 90 | 91 | [package.dependencies] 92 | certifi = "*" 93 | h11 = ">=0.13,<0.15" 94 | 95 | [package.extras] 96 | asyncio = ["anyio (>=4.0,<5.0)"] 97 | http2 = ["h2 (>=3,<5)"] 98 | socks = ["socksio (==1.*)"] 99 | trio = ["trio (>=0.22.0,<1.0)"] 100 | 101 | [[package]] 102 | name = "httpx" 103 | version = "0.28.1" 104 | description = "The next generation HTTP client." 105 | optional = false 106 | python-versions = ">=3.8" 107 | groups = ["main"] 108 | files = [ 109 | {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, 110 | {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, 111 | ] 112 | 113 | [package.dependencies] 114 | anyio = "*" 115 | certifi = "*" 116 | httpcore = "==1.*" 117 | idna = "*" 118 | 119 | [package.extras] 120 | brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] 121 | cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] 122 | http2 = ["h2 (>=3,<5)"] 123 | socks = ["socksio (==1.*)"] 124 | zstd = ["zstandard (>=0.18.0)"] 125 | 126 | [[package]] 127 | name = "idna" 128 | version = "3.10" 129 | description = "Internationalized Domain Names in Applications (IDNA)" 130 | optional = false 131 | python-versions = ">=3.6" 132 | groups = ["main"] 133 | files = [ 134 | {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, 135 | {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, 136 | ] 137 | 138 | [package.extras] 139 | all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] 140 | 141 | [[package]] 142 | name = "macholib" 143 | version = "1.16.3" 144 | description = "Mach-O header analysis and editing" 145 | optional = false 146 | python-versions = "*" 147 | groups = ["dev"] 148 | markers = "python_version < \"3.14\" and sys_platform == \"darwin\"" 149 | files = [ 150 | {file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"}, 151 | {file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"}, 152 | ] 153 | 154 | [package.dependencies] 155 | altgraph = ">=0.17" 156 | 157 | [[package]] 158 | name = "packaging" 159 | version = "24.2" 160 | description = "Core utilities for Python packages" 161 | optional = false 162 | python-versions = ">=3.8" 163 | groups = ["dev"] 164 | markers = "python_version < \"3.14\"" 165 | files = [ 166 | {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, 167 | {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, 168 | ] 169 | 170 | [[package]] 171 | name = "pefile" 172 | version = "2023.2.7" 173 | description = "Python PE parsing module" 174 | optional = false 175 | python-versions = ">=3.6.0" 176 | groups = ["dev"] 177 | markers = "python_version < \"3.14\" and sys_platform == \"win32\"" 178 | files = [ 179 | {file = "pefile-2023.2.7-py3-none-any.whl", hash = "sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6"}, 180 | {file = "pefile-2023.2.7.tar.gz", hash = "sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"}, 181 | ] 182 | 183 | [[package]] 184 | name = "pillow" 185 | version = "10.4.0" 186 | description = "Python Imaging Library (Fork)" 187 | optional = false 188 | python-versions = ">=3.8" 189 | groups = ["dev"] 190 | files = [ 191 | {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, 192 | {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, 193 | {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, 194 | {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, 195 | {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, 196 | {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, 197 | {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, 198 | {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, 199 | {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, 200 | {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, 201 | {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, 202 | {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, 203 | {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, 204 | {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, 205 | {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, 206 | {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, 207 | {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, 208 | {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, 209 | {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, 210 | {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, 211 | {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, 212 | {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, 213 | {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, 214 | {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, 215 | {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, 216 | {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, 217 | {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, 218 | {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, 219 | {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, 220 | {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, 221 | {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, 222 | {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, 223 | {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, 224 | {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, 225 | {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, 226 | {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, 227 | {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, 228 | {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, 229 | {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, 230 | {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, 231 | {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, 232 | {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, 233 | {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, 234 | {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, 235 | {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, 236 | {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, 237 | {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, 238 | {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, 239 | {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, 240 | {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, 241 | {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, 242 | {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, 243 | {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, 244 | {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, 245 | {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, 246 | {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, 247 | {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, 248 | {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, 249 | {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, 250 | {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, 251 | {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, 252 | {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, 253 | {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, 254 | {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, 255 | {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, 256 | {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, 257 | {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, 258 | {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, 259 | {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, 260 | {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, 261 | {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, 262 | {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, 263 | {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, 264 | {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, 265 | {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, 266 | {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, 267 | {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, 268 | {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, 269 | {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, 270 | {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, 271 | ] 272 | 273 | [package.extras] 274 | docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] 275 | fpx = ["olefile"] 276 | mic = ["olefile"] 277 | tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] 278 | typing = ["typing-extensions ; python_version < \"3.10\""] 279 | xmp = ["defusedxml"] 280 | 281 | [[package]] 282 | name = "pyinstaller" 283 | version = "6.12.0" 284 | description = "PyInstaller bundles a Python application and all its dependencies into a single package." 285 | optional = false 286 | python-versions = "<3.14,>=3.8" 287 | groups = ["dev"] 288 | markers = "python_version < \"3.14\"" 289 | files = [ 290 | {file = "pyinstaller-6.12.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:68f1e4cecf88a6272063977fa2a2c69ad37cf568e5901769d7206d0314c74f47"}, 291 | {file = "pyinstaller-6.12.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:fea76fc9b55ffa730fcf90beb897cce4399938460b0b6f40507fbebfc752c753"}, 292 | {file = "pyinstaller-6.12.0-py3-none-manylinux2014_i686.whl", hash = "sha256:dac8a27988dbc33cdc34f2046803258bc3f6829de24de52745a5daa22bdba0f1"}, 293 | {file = "pyinstaller-6.12.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:83c7f3bde9871b4a6aa71c66a96e8ba5c21668ce711ed97f510b9382d10aac6c"}, 294 | {file = "pyinstaller-6.12.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:a69818815c6e0711c727edc30680cb1f81c691b59de35db81a2d9e0ae26a9ef1"}, 295 | {file = "pyinstaller-6.12.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:a2abf5fde31a8b38b6df7939bcef8ac1d0c51e97e25317ce3555cd675259750f"}, 296 | {file = "pyinstaller-6.12.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:8e92e9873a616547bbabbb5a3a9843d5f2ab40c3d8b26810acdf0fe257bee4cf"}, 297 | {file = "pyinstaller-6.12.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:aefe502d55c9cf6aeaed7feba80b5f8491ce43f8f2b5fe2d9aadca3ee5a05bc4"}, 298 | {file = "pyinstaller-6.12.0-py3-none-win32.whl", hash = "sha256:138856a5a503bb69c066377e0a22671b0db063e9cc14d5cf5c798a53561200d3"}, 299 | {file = "pyinstaller-6.12.0-py3-none-win_amd64.whl", hash = "sha256:0e62d3906309248409f215b386f33afec845214e69cc0f296b93222b26a88f43"}, 300 | {file = "pyinstaller-6.12.0-py3-none-win_arm64.whl", hash = "sha256:0c271896a3a168f4f91827145702543db9c5427f4c7372a6df8c75925a3ac18a"}, 301 | {file = "pyinstaller-6.12.0.tar.gz", hash = "sha256:1834797be48ce1b26015af68bdeb3c61a6c7500136f04e0fc65e468115dec777"}, 302 | ] 303 | 304 | [package.dependencies] 305 | altgraph = "*" 306 | macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""} 307 | packaging = ">=22.0" 308 | pefile = {version = ">=2022.5.30,<2024.8.26 || >2024.8.26", markers = "sys_platform == \"win32\""} 309 | pyinstaller-hooks-contrib = ">=2025.1" 310 | pywin32-ctypes = {version = ">=0.2.1", markers = "sys_platform == \"win32\""} 311 | setuptools = ">=42.0.0" 312 | 313 | [package.extras] 314 | completion = ["argcomplete"] 315 | hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"] 316 | 317 | [[package]] 318 | name = "pyinstaller-hooks-contrib" 319 | version = "2025.1" 320 | description = "Community maintained hooks for PyInstaller" 321 | optional = false 322 | python-versions = ">=3.8" 323 | groups = ["dev"] 324 | markers = "python_version < \"3.14\"" 325 | files = [ 326 | {file = "pyinstaller_hooks_contrib-2025.1-py3-none-any.whl", hash = "sha256:d3c799470cbc0bda60dcc8e6b4ab976777532b77621337f2037f558905e3a8e9"}, 327 | {file = "pyinstaller_hooks_contrib-2025.1.tar.gz", hash = "sha256:130818f9e9a0a7f2261f1fd66054966a3a50c99d000981c5d1db11d3ad0c6ab2"}, 328 | ] 329 | 330 | [package.dependencies] 331 | packaging = ">=22.0" 332 | setuptools = ">=42.0.0" 333 | 334 | [[package]] 335 | name = "pywin32-ctypes" 336 | version = "0.2.3" 337 | description = "A (partial) reimplementation of pywin32 using ctypes/cffi" 338 | optional = false 339 | python-versions = ">=3.6" 340 | groups = ["dev"] 341 | markers = "python_version < \"3.14\" and sys_platform == \"win32\"" 342 | files = [ 343 | {file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"}, 344 | {file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"}, 345 | ] 346 | 347 | [[package]] 348 | name = "setuptools" 349 | version = "76.0.0" 350 | description = "Easily download, build, install, upgrade, and uninstall Python packages" 351 | optional = false 352 | python-versions = ">=3.9" 353 | groups = ["dev"] 354 | markers = "python_version < \"3.14\"" 355 | files = [ 356 | {file = "setuptools-76.0.0-py3-none-any.whl", hash = "sha256:199466a166ff664970d0ee145839f5582cb9bca7a0a3a2e795b6a9cb2308e9c6"}, 357 | {file = "setuptools-76.0.0.tar.gz", hash = "sha256:43b4ee60e10b0d0ee98ad11918e114c70701bc6051662a9a675a0496c1a158f4"}, 358 | ] 359 | 360 | [package.extras] 361 | check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""] 362 | core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] 363 | cover = ["pytest-cov"] 364 | doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] 365 | enabler = ["pytest-enabler (>=2.2)"] 366 | test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] 367 | type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.14.*)", "pytest-mypy"] 368 | 369 | [[package]] 370 | name = "sniffio" 371 | version = "1.3.1" 372 | description = "Sniff out which async library your code is running under" 373 | optional = false 374 | python-versions = ">=3.7" 375 | groups = ["main"] 376 | files = [ 377 | {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, 378 | {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, 379 | ] 380 | 381 | [[package]] 382 | name = "typing-extensions" 383 | version = "4.12.2" 384 | description = "Backported and Experimental Type Hints for Python 3.8+" 385 | optional = false 386 | python-versions = ">=3.8" 387 | groups = ["main"] 388 | files = [ 389 | {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, 390 | {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, 391 | ] 392 | 393 | [metadata] 394 | lock-version = "2.1" 395 | python-versions = ">=3.10" 396 | content-hash = "702c99122f6a5d6baee80959304b2f93783e4be22fb081c8ffeb3a68ecd8d456" 397 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "cursor-history-links" 3 | version = "1.0.0" 4 | description = "Cursor 历史版本下载链接" 5 | authors = [ 6 | {name = "Eric",email = "bo.liang0212@outlook.com"} 7 | ] 8 | readme = "README.md" 9 | requires-python = ">=3.10" 10 | dependencies = [ 11 | "httpx (>=0.28.1,<0.29.0)", 12 | "typing-extensions (>=4.12.2,<5.0.0)" 13 | ] 14 | 15 | [tool.poetry] 16 | name = "cursor-history-links" 17 | description = "Cursor 历史版本下载链接" 18 | authors = ["Eric "] 19 | readme = "README.md" 20 | package-mode = false 21 | 22 | [tool.poetry.group.dev.dependencies] 23 | pyinstaller = {version = "^6.12.0", python = ">=3.10,<3.14"} 24 | pillow = "^10.2.0" 25 | 26 | [build-system] 27 | requires = ["poetry-core>=2.0.0,<3.0.0"] 28 | build-backend = "poetry.core.masonry.api" 29 | -------------------------------------------------------------------------------- /update_cursor_links.py: -------------------------------------------------------------------------------- 1 | import os 2 | import json 3 | import re 4 | import time 5 | import logging 6 | from datetime import datetime, timedelta, timezone 7 | from typing import Dict, List, Optional, Any, TypedDict 8 | import httpx 9 | from pathlib import Path 10 | 11 | # 配置日志 12 | logging.basicConfig( 13 | level=logging.INFO, 14 | format='%(asctime)s - %(levelname)s - %(message)s', 15 | datefmt='%Y-%m-%d %H:%M:%S' 16 | ) 17 | logger = logging.getLogger("cursor_updater") 18 | 19 | # 获取东八区时间(UTC+8) 20 | def get_utc8_time() -> datetime: 21 | """返回东八区(UTC+8)的当前时间""" 22 | return datetime.now(timezone.utc) + timedelta(hours=8) 23 | 24 | # 类型定义 25 | class PlatformInfo(TypedDict): 26 | platforms: List[str] 27 | readableNames: List[str] 28 | section: str 29 | 30 | class VersionInfo(TypedDict): 31 | url: str 32 | version: str 33 | 34 | class VersionHistoryEntry(TypedDict): 35 | version: str 36 | date: str 37 | platforms: Dict[str, str] # platform -> download URL 38 | 39 | class VersionHistory(TypedDict): 40 | versions: List[VersionHistoryEntry] 41 | 42 | # 平台信息配置 43 | PLATFORMS: Dict[str, PlatformInfo] = { 44 | "windows": { 45 | "platforms": ["win32-x64", "win32-arm64"], 46 | "readableNames": ["win32-x64", "win32-arm64"], 47 | "section": "Windows Installer" 48 | }, 49 | "mac": { 50 | "platforms": ["darwin-universal", "darwin-x64", "darwin-arm64"], 51 | "readableNames": ["darwin-universal", "darwin-x64", "darwin-arm64"], 52 | "section": "Mac Installer" 53 | }, 54 | "linux": { 55 | "platforms": ["linux-x64", "linux-arm64"], 56 | "readableNames": ["linux-x64", "linux-arm64"], 57 | "section": "Linux Installer" 58 | } 59 | } 60 | 61 | # 从URL或文件名中提取版本号 62 | def extract_version(url: str) -> str: 63 | """ 64 | 从下载URL中提取Cursor版本号 65 | 66 | Args: 67 | url: 下载链接URL 68 | 69 | Returns: 70 | 提取的版本号,如果无法提取则返回'Unknown' 71 | """ 72 | # 对于Windows 73 | win_match = re.search(r'CursorUserSetup-[^-]+-([0-9.]+)\.exe', url) 74 | if win_match and win_match.group(1): 75 | return win_match.group(1) 76 | 77 | # 对于其他URL,尝试查找版本模式 78 | version_match = re.search(r'[0-9]+\.[0-9]+\.[0-9]+', url) 79 | return version_match.group(0) if version_match else 'Unknown' 80 | 81 | # 格式化日期为YYYY-MM-DD 82 | def format_date(date: datetime) -> str: 83 | """将日期对象格式化为YYYY-MM-DD格式的字符串""" 84 | return date.strftime('%Y-%m-%d') 85 | 86 | # 获取平台的最新下载URL 87 | async def fetch_latest_download_url(platform: str) -> Optional[str]: 88 | """ 89 | 从Cursor API获取指定平台的最新下载URL 90 | 91 | Args: 92 | platform: 平台标识符,如'darwin-universal' 93 | 94 | Returns: 95 | 下载URL或None(如果请求失败) 96 | """ 97 | try: 98 | async with httpx.AsyncClient(timeout=10.0) as client: 99 | response = await client.get( 100 | f"https://www.cursor.com/api/download?platform={platform}&releaseTrack=latest", 101 | headers={ 102 | 'User-Agent': 'Cursor-Version-Checker', 103 | 'Cache-Control': 'no-cache', 104 | } 105 | ) 106 | 107 | if response.status_code != 200: 108 | raise Exception(f"HTTP error! status: {response.status_code}") 109 | 110 | data = response.json() 111 | return data.get("downloadUrl") 112 | except Exception as error: 113 | logger.error(f"获取平台 {platform} 的下载URL时出错: {error}") 114 | return None 115 | 116 | # 从JSON文件读取版本历史 117 | def read_version_history() -> VersionHistory: 118 | """ 119 | 读取version-history.json文件,如果不存在则返回空历史 120 | 121 | Returns: 122 | 版本历史对象 123 | """ 124 | history_path = Path.cwd() / "version-history.json" 125 | if history_path.exists(): 126 | try: 127 | with open(history_path, 'r', encoding='utf-8') as f: 128 | return json.load(f) 129 | except Exception as error: 130 | logger.error(f'读取版本历史时出错: {error}') 131 | return {"versions": []} 132 | else: 133 | logger.warning('未找到version-history.json,将创建新文件') 134 | return {"versions": []} 135 | 136 | # 保存版本历史到JSON文件 137 | def save_version_history(history: VersionHistory) -> None: 138 | """ 139 | 将版本历史保存到version-history.json文件 140 | 141 | Args: 142 | history: 要保存的版本历史对象 143 | """ 144 | if not history or not isinstance(history.get("versions"), list): 145 | logger.error('提供的版本历史对象无效') 146 | return 147 | 148 | history_path = Path.cwd() / "version-history.json" 149 | 150 | # 保留备份 151 | if history_path.exists(): 152 | try: 153 | backup_path = Path(f"{history_path}.backup") 154 | history_path.replace(backup_path) 155 | except Exception as error: 156 | logger.warning(f'创建版本历史备份失败: {error}') 157 | 158 | try: 159 | json_data = json.dumps(history, indent=2) 160 | 161 | # 在写入文件前验证JSON有效性 162 | try: 163 | json.loads(json_data) 164 | except Exception as parse_error: 165 | logger.error(f'生成了无效的JSON数据,中止保存: {parse_error}') 166 | return 167 | 168 | # 先写入临时文件,然后重命名以避免部分写入 169 | temp_path = Path(f"{history_path}.tmp") 170 | with open(temp_path, 'w', encoding='utf-8') as f: 171 | f.write(json_data) 172 | temp_path.replace(history_path) 173 | 174 | # 写入后验证文件是否存在 175 | if not history_path.exists(): 176 | logger.error('保存版本历史失败:写入后文件不存在') 177 | except Exception as error: 178 | logger.error(f'保存版本历史时出错: {error}') 179 | raise # 重新抛出以允许调用者处理 180 | 181 | # 使用最新的Cursor链接更新README.md文件 182 | async def update_readme(force_update=False) -> bool: 183 | """ 184 | 获取最新的Cursor下载链接并更新README.md文件 185 | 186 | Args: 187 | force_update: 是否强制更新,即使版本已存在 188 | 189 | Returns: 190 | 更新是否成功 191 | """ 192 | # 使用东八区时间 193 | current_time = get_utc8_time() 194 | logger.info(f"开始更新检查 - {current_time.isoformat()}") 195 | 196 | # 收集所有URL和版本 197 | results: Dict[str, Dict[str, VersionInfo]] = {} 198 | latest_version = '0.0.0' 199 | current_date = format_date(current_time) 200 | 201 | # 获取所有平台下载URL 202 | for os_key, os_data in PLATFORMS.items(): 203 | results[os_key] = {} 204 | 205 | for platform in os_data["platforms"]: 206 | url = await fetch_latest_download_url(platform) 207 | 208 | if url: 209 | version = extract_version(url) 210 | results[os_key][platform] = {"url": url, "version": version} 211 | 212 | # 跟踪最高版本号 213 | if version != 'Unknown' and version > latest_version: 214 | latest_version = version 215 | 216 | if latest_version == '0.0.0': 217 | logger.error('未能检索到任何有效的版本信息') 218 | return False 219 | 220 | logger.info(f"检测到最新版本: {latest_version}") 221 | 222 | # 使用version-history.json作为版本检查的唯一真实来源 223 | history = read_version_history() 224 | 225 | # 检查此版本是否已存在于版本历史中 226 | existing_version_index = next((i for i, entry in enumerate(history["versions"]) 227 | if entry["version"] == latest_version), -1) 228 | 229 | # 如果版本已存在且不是强制更新,则退出 230 | if existing_version_index != -1 and not force_update: 231 | logger.info(f"版本 {latest_version} 已存在于版本历史中,无需更新 README 和 version-history.json") 232 | return False 233 | 234 | # 读取README 235 | readme_path = Path.cwd() / "README.md" 236 | if not readme_path.exists(): 237 | logger.error('未找到README.md文件') 238 | return False 239 | 240 | with open(readme_path, 'r', encoding='utf-8') as f: 241 | readme_content = f.read() 242 | 243 | # 为历史条目创建新的平台对象 244 | platforms: Dict[str, str] = {} 245 | 246 | # 添加所有平台的URL 247 | for os_key in ['mac', 'windows', 'linux']: 248 | if os_key in results: 249 | for platform, info in results[os_key].items(): 250 | platforms[platform] = info["url"] 251 | 252 | # 创建新条目 253 | new_entry: VersionHistoryEntry = { 254 | "version": latest_version, 255 | "date": current_date, 256 | "platforms": platforms 257 | } 258 | 259 | # 如果版本已存在,则更新现有条目,否则添加新条目 260 | if existing_version_index != -1: 261 | logger.info(f"更新版本历史中的版本 {latest_version}") 262 | history["versions"][existing_version_index] = new_entry 263 | else: 264 | logger.info(f"将新版本 {latest_version} 添加到version-history.json") 265 | history["versions"].append(new_entry) 266 | 267 | # 按版本排序(最新的在前) 268 | history["versions"].sort(key=lambda x: x["version"], reverse=True) 269 | 270 | # 删除重复的版本 271 | unique_versions = {} 272 | unique_history = [] 273 | duplicates_count = 0 274 | for entry in history["versions"]: 275 | version = entry["version"] 276 | if version not in unique_versions: 277 | unique_versions[version] = True 278 | unique_history.append(entry) 279 | else: 280 | duplicates_count += 1 281 | 282 | if duplicates_count > 0: 283 | logger.info(f"删除了 {duplicates_count} 个重复版本") 284 | 285 | history["versions"] = unique_history 286 | 287 | # 将历史大小限制为100个条目,以防止无限增长 288 | if len(history["versions"]) > 100: 289 | history["versions"] = history["versions"][:100] 290 | logger.info("将版本历史截断为100个条目") 291 | 292 | # 重要:在更新README之前保存更新的历史JSON 293 | try: 294 | save_version_history(history) 295 | logger.info(f"已更新 version-history.json 文件") 296 | except Exception as error: 297 | logger.error(f'保存版本历史时出错: {error}') 298 | # 即使版本历史保存失败,也继续进行README更新 299 | 300 | # 生成平台链接 301 | def generate_platform_links(os_key, results): 302 | """生成指定操作系统的平台下载链接HTML""" 303 | links = [] 304 | if os_key in results: 305 | for platform in PLATFORMS[os_key]["platforms"]: 306 | if platform in results[os_key] and results[os_key][platform]["url"]: 307 | links.append(f"[{platform}]({results[os_key][platform]['url']})") 308 | return '
'.join(links) if links else ('Not Ready' if os_key == 'linux' else '') 309 | 310 | # 生成各平台链接 311 | mac_links = generate_platform_links('mac', results) 312 | windows_links = generate_platform_links('windows', results) 313 | linux_links = generate_platform_links('linux', results) or 'Not Ready' 314 | 315 | # 从version-history.json生成完整的表格 316 | table_rows = [] 317 | 318 | # 遍历所有版本,生成表格行 319 | for entry in history["versions"]: 320 | version = entry["version"] 321 | date = entry["date"] 322 | platforms_data = entry["platforms"] 323 | 324 | # 生成各平台链接 325 | mac_urls = [] 326 | win_urls = [] 327 | linux_urls = [] 328 | 329 | for os_key, platform_list in PLATFORMS.items(): 330 | for platform in platform_list["platforms"]: 331 | if platform in platforms_data: 332 | link = f"[{platform}]({platforms_data[platform]})" 333 | if os_key == 'mac': 334 | mac_urls.append(link) 335 | elif os_key == 'windows': 336 | win_urls.append(link) 337 | elif os_key == 'linux': 338 | linux_urls.append(link) 339 | 340 | mac_links = '
'.join(mac_urls) if mac_urls else '' 341 | windows_links = '
'.join(win_urls) if win_urls else '' 342 | linux_links = '
'.join(linux_urls) if linux_urls else 'Not Ready' 343 | 344 | # 生成表格行 345 | row = f"| {version} | {date} | {mac_links} | {windows_links} | {linux_links} |" 346 | table_rows.append(row) 347 | 348 | # 构建完整的表格 349 | table_header = "| Version | Date | Mac Installer | Windows Installer | Linux Installer |\n| --- | --- | --- | --- | --- |" 350 | table_content = table_header + "\n" + "\n".join(table_rows) 351 | 352 | # 替换README中的表格 353 | table_pattern = re.compile(r"\| Version \| Date \| Mac Installer \| Windows Installer \| Linux Installer \|\s*\n\|\s*---\s*\|\s*---\s*\|\s*---\s*\|\s*---\s*\|\s*---\s*\|(.*?)(?=\n\n|\Z)", re.DOTALL) 354 | readme_content = table_pattern.sub(table_content, readme_content) 355 | 356 | # 如果没有找到表格,则在文件末尾添加 357 | if not table_pattern.search(readme_content): 358 | readme_content += f"\n\n{table_content}\n" 359 | 360 | # 保存更新的README 361 | try: 362 | # 更新"脚本最后更新"时间,使用东八区时间 363 | current_time_str = get_utc8_time().strftime('%Y-%m-%d %H:%M:%S') 364 | readme_content = re.sub(r'脚本最后更新: `[^`]*`', f'脚本最后更新: `{current_time_str}`', readme_content) 365 | 366 | with open(readme_path, 'w', encoding='utf-8') as f: 367 | f.write(readme_content) 368 | logger.info(f"README.md已更新为包含最新Cursor版本") 369 | except Exception as error: 370 | logger.error(f'保存README时出错: {error}') 371 | return False 372 | 373 | return True 374 | 375 | # 主函数,以适当的错误处理运行更新 376 | async def main() -> None: 377 | """主函数,运行更新过程并处理错误""" 378 | try: 379 | start_time = time.time() 380 | logger.info(f"开始更新过程") 381 | 382 | # 运行更新,默认不强制更新 383 | updated = await update_readme(force_update=False) 384 | elapsed_time = int((time.time() - start_time) * 1000) 385 | 386 | if updated: 387 | logger.info(f"更新成功完成,耗时 {elapsed_time}ms。找到新版本。") 388 | else: 389 | logger.info(f"更新完成,耗时 {elapsed_time}ms。未找到新版本或版本已存在。") 390 | 391 | # 在结束时验证文件完整性 392 | verify_file_integrity() 393 | except Exception as error: 394 | logger.critical(f'更新过程中出现严重错误: {error}', exc_info=True) 395 | # 如果进程以非零退出,任何GitHub Action都会将工作流标记为失败 396 | exit(1) 397 | 398 | def verify_file_integrity(): 399 | """验证version-history.json和README.md的完整性和一致性""" 400 | history_path = Path.cwd() / "version-history.json" 401 | readme_path = Path.cwd() / "README.md" 402 | 403 | if not history_path.exists(): 404 | logger.warning('警告:更新后version-history.json不存在。这可能表明存在问题。') 405 | return 406 | 407 | try: 408 | # 验证JSON文件有效性 409 | with open(history_path, 'r', encoding='utf-8') as f: 410 | content = f.read() 411 | history_json = json.loads(content) 412 | 413 | if not readme_path.exists(): 414 | logger.warning('README.md文件不存在,无法验证一致性。') 415 | return 416 | 417 | # 验证README和JSON的一致性 418 | with open(readme_path, 'r', encoding='utf-8') as f: 419 | readme_content = f.read() 420 | 421 | # 从表格中提取最新版本 422 | version_match = re.search(r'\| (\d+\.\d+\.\d+) \| (\d{4}-\d{2}-\d{2}) \|', readme_content) 423 | if not version_match: 424 | logger.warning('无法从README.md中提取版本信息。') 425 | return 426 | 427 | latest_version_in_readme = version_match.group(1) 428 | latest_date_in_readme = version_match.group(2) 429 | 430 | # 检查此版本是否存在于历史中 431 | version_exists = any(v["version"] == latest_version_in_readme for v in history_json["versions"]) 432 | if not version_exists: 433 | logger.warning(f"警告:版本 {latest_version_in_readme} 在README.md中但不在version-history.json中") 434 | sync_readme_to_history(readme_content, latest_version_in_readme, latest_date_in_readme, history_json) 435 | except Exception as err: 436 | logger.error(f'验证文件完整性时出错: {err}', exc_info=True) 437 | 438 | def sync_readme_to_history(readme_content, version, date, history_json): 439 | """从README中提取版本信息并同步到version-history.json""" 440 | logger.info(f"从README.md提取数据并更新version-history.json...") 441 | 442 | # 从README中提取此版本的URL 443 | section_regex = re.compile(f'\\| {version} \\| {date} \\| (.*?) \\| (.*?) \\| (.*?) \\|') 444 | section_match = section_regex.search(readme_content) 445 | 446 | if not section_match: 447 | logger.warning(f"在README.md中找不到版本 {version} 的部分") 448 | return 449 | 450 | mac_section = section_match.group(1) 451 | windows_section = section_match.group(2) 452 | linux_section = section_match.group(3) 453 | 454 | platforms = {} 455 | platform_count = 0 456 | 457 | # 解析所有平台链接 458 | for section, section_name in [(mac_section, "Mac"), 459 | (windows_section, "Windows"), 460 | (linux_section, "Linux")]: 461 | if section and section != 'Not Ready': 462 | links = re.findall(r'\[([^\]]+)\]\(([^)]+)\)', section) 463 | if links: 464 | for platform, url in links: 465 | platforms[platform] = url 466 | platform_count += 1 467 | 468 | # 将条目添加到版本历史 469 | if platforms: 470 | new_entry = { 471 | "version": version, 472 | "date": date, 473 | "platforms": platforms 474 | } 475 | 476 | history_json["versions"].append(new_entry) 477 | 478 | # 排序并保存 479 | history_json["versions"].sort(key=lambda x: x["version"], reverse=True) 480 | 481 | # 保存更新的历史 482 | save_version_history(history_json) 483 | logger.info(f"成功从README.md同步版本 {version},包含 {platform_count} 个平台链接") 484 | else: 485 | logger.warning(f"无法提取版本 {version} 的平台链接") 486 | 487 | # 导出函数以进行测试 488 | __all__ = [ 489 | 'fetch_latest_download_url', 490 | 'update_readme', 491 | 'read_version_history', 492 | 'save_version_history', 493 | 'extract_version', 494 | 'format_date', 495 | 'get_utc8_time', 496 | 'main' 497 | ] 498 | 499 | # 运行更新 500 | if __name__ == "__main__": 501 | import asyncio 502 | 503 | try: 504 | asyncio.run(main()) 505 | except Exception as error: 506 | logger.critical(f'未处理的错误: {error}', exc_info=True) 507 | exit(1) --------------------------------------------------------------------------------