├── .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)
--------------------------------------------------------------------------------