# cursor-server **Repository Path**: junzixing/cursor-server ## Basic Information - **Project Name**: cursor-server - **Description**: 解决使用cursor通过ssh连接远程服务器时server插件下载慢的问题 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-11 - **Last Updated**: 2026-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cursor Server 远程部署工具 在宿主机(本机)下载 cursor-server,通过 SCP 传到远程 Linux 并解压到 Cursor 期望的路径,解决 **SSH 连接远程时在远端下载 cursor-server 很慢** 的问题。 - 支持远程架构:**amd64**(x86_64)、**arm64**(aarch64) - 宿主机需能访问 Azure(下载快),远程机只需能 SSH/SCP,可不访问外网 - **宿主机仅支持 Windows**(脚本与 GUI 均在 Windows 下运行) ## 环境要求 - **宿主机**:Windows,Python 3.7+,已安装 Cursor,且能访问 `cursor.blob.core.windows.net`(命令行脚本仅用标准库,无需额外依赖) - **SSH**:宿主机已配置好到远程的 SSH(建议免密,如 `ssh user@host` 可直接登录) - **远程**:Linux(如 Ubuntu 20.04/22.04/24.04),架构为 amd64 或 arm64 - **图形界面**:使用 GUI 或 `--gui` 时需安装 `pip install pyyaml` ## 用法 ### 图形界面(推荐) 使用 **servers.yaml** 保存常用服务器,通过图形界面选择并部署或复制下载链接: ```bash # 先安装 GUI 依赖(仅需一次) pip install pyyaml # 打开图形界面 python deploy_cursor_server.py --gui # 或直接运行 python gui.py ``` 在界面中可:**添加/编辑/删除** 服务器(写入 `servers.yaml`)、**部署**(在新终端执行部署,便于输入密码)、**复制下载链接**(按所选服务器架构复制到剪贴板)。 **说明**:`servers.yaml` 已加入 .gitignore,不会随仓库提交。若该文件不存在,GUI 会显示空列表;首次在界面中「添加」服务器时会自动创建 `servers.yaml`。格式示例: ```yaml servers: - name: 我的服务器 host: user@192.168.1.100 arch: amd64 # 或 arm64 ``` ### 命令行 ### 方式一:脚本自动下载并部署 在宿主机上执行(脚本会先在本机下载,再 SCP 到远程并解压): ```bash # 部署到 user@your-server,远程为 amd64(默认) python deploy_cursor_server.py user@your-server # 远程为 arm64(如树莓派、鲲鹏等) python deploy_cursor_server.py user@your-server --arch arm64 # 指定 commit(默认从本机 Cursor 的 product.json 或 cursor --version 读取) python deploy_cursor_server.py user@your-server -c # 只打印将要使用的 URL 和步骤,不下载、不部署 python deploy_cursor_server.py user@your-server --dry-run ``` ### 方式二:手动下载后部署(链接复制到剪贴板) 当宿主机下载也慢、或需要在别的机器/浏览器下载时,可以只让脚本输出下载链接,你手动下载并把 tar.gz 放到**脚本所在目录**,再执行部署: ```bash # 输出下载链接(并复制到剪贴板,便于粘贴到浏览器/下载工具) python deploy_cursor_server.py --copy-url # 或只输出链接不复制: python deploy_cursor_server.py --print-url # 按提示用该链接下载,将得到的 vscode-reh-linux-x64.tar.gz(或 arm64)放到脚本同目录下,然后执行: python deploy_cursor_server.py user@your-server # 若为 arm64: python deploy_cursor_server.py user@your-server --arch arm64 ``` 脚本会检测到同目录下已存在的 `vscode-reh-linux-x64.tar.gz` / `vscode-reh-linux-arm64.tar.gz`,**自动跳过下载**,只做上传与远程解压。 ### 参数说明 | 参数 | 说明 | |------|------| | `host` | SSH 目标,如 `user@192.168.1.100`。使用 `--print-url` / `--copy-url` 时可省略。 | | `-a, --arch` | 远程架构:`amd64`(默认)或 `arm64` | | `-c, --commit` | 指定 commit;不填则自动从本机 Cursor 读取 | | `--print-url` | 仅输出下载链接并退出(不部署) | | `--copy-url` | 同 `--print-url`,并将链接复制到系统剪贴板 | | `--dry-run` | 仅打印 URL 与步骤,不执行下载和部署 | | `--gui` | 打开图形界面(需 `pip install pyyaml`) | ## 原理简述 1. 从本机 Cursor 安装目录的 `product.json`(或 `cursor --version`)读取当前 **commit**。 2. 按你指定的架构拼出下载地址: `https://cursor.blob.core.windows.net/remote-releases/${commit}/vscode-reh-linux-{x64|arm64}.tar.gz` 3. 若**脚本同目录**下已有对应文件(`vscode-reh-linux-x64.tar.gz` 或 `vscode-reh-linux-arm64.tar.gz`),则直接使用,否则在宿主机下载。 4. 用 SCP 传到远程的 `~/.cursor-server/`。 5. 在远程解压到 `~/.cursor-server/bin/${commit}/`,供 Cursor SSH 连接时直接使用。 详见 [SOLUTION.md](SOLUTION.md)。 ## 注意事项 - **仅预装 server 本体**:本工具只预装 **cursor-server**(远程后端二进制),不包含**扩展**。首次用 Cursor 连上该远程时,Cursor 仍会在远程机上下载并安装你本机已装的扩展(走远程的网络)。若远程出网很慢,扩展安装阶段仍可能较慢或失败,可考虑在远程配置代理或首次在网络较好时连一次让扩展装完。 - **版本一致**:本机 Cursor 更新后,建议对同一远程再跑一次脚本,以部署与新客户端匹配的 server。 - **本地 tar.gz 命名**:手动下载后请保持文件名为 `vscode-reh-linux-x64.tar.gz` 或 `vscode-reh-linux-arm64.tar.gz`(与 `--print-url` 输出中的文件名一致),并放在 **脚本所在目录**。 - **权限**:解压后目录归属为 SSH 登录用户,无需额外改权限。 - **首次连接**:若之前已在远程装过旧版 server,脚本会覆盖该 commit 对应目录;其他 commit 目录不受影响。