Files
Local-Cursor/README.md
FuDie0915 188225fae6 Ð޸´ȫÏîĿÉó²éÎÊÌⲢ·¢²¼ v1.1.9
¸ÄÓñ¾»ú¶ÀÁ¢ CA£¬»ָ´ CLI TLS УÑ飬±£»¤ƾ¾ÝÓëÅäÖò¢·¢±£´档
Ð޸´ Cursor Êý¾ݡ¢»Ự·¾¶¡¢´úÀíÉúÃüÖÜÆڡ¢ģÐÍÇëÇóÓë Skills Îļþ²Ù×÷¡£
Ϊ¶ÀÁ¢ Tab ·þÎñÔö¼ӿͻ§¶˼øȨ£¬Éý¼¶ÒÀÀµÓ빤¾ßÁ´£¬ÍêÉƷ¢²¼ԪÐÅϢͬ²½¡£

Ñé֤£ºÁ½¸ö Go ģ¿éµIJâÊÔ/vet¡¢¹ؼüģ¿é race¡¢ǰ¶˲âÊÔ/Éú²ú¹¹½¨/Éó¼ơ¢
Go ¿ɴï©¶´ɨÃèÓë macOS/Linux ¿ÉÐÐģ¿齻²æ±àÒë¾ùͨ¹ý¡£
Windows ¸ôÀëÆô¶¯ͨ¹ý£»δÍê³ɵĵã»÷ðÑ̺ÍԭÉúƽ̨Ñé֤¼ûÉó²鱨¸档
2026-11-10 09:59:34 +08:00

8.9 KiB
Raw Blame History

Local-Cursor

本地运行的 Cursor IDE 代理工具。通过 MITM 代理劫持 Cursor 的 AI 请求,转发到自定义模型 API(OpenAI / Anthropic 兼容),支持本地助手模式与直连上游模式;同时适配 CLI 版 cursor-agent,并提供 Skill 分发、一键汉化、使用量统计等增强功能。

基于 cursor-byok 衍生,感谢原作者。本项目仅供学习与个人使用,请支持正版 Cursor。

下载:最新公开发布;v1.1.9 审查与升级说明。

功能

功能 说明
请求劫持与转发 MITM 代理劫持 Cursor AI 请求,转发到自定义 API
多模型渠道 支持同时配置多个 OpenAI / Anthropic 兼容渠道
模型批量拉取 通过 /v1/models 端点拉取可用模型列表,勾选后批量添加渠道
Skill 管理 内置 Skill(含斜杠命令)分发到任意打开过的 Cursor 项目,开关即装/卸
Cursor 状态面板 自动检测 Cursor 安装目录与运行状态,5 秒心跳刷新,支持手动指定路径
一键汉化 自动检测安装目录,运行社区汉化包(自动适配 fnm/nvm 等 Node 环境)
Tab 补全 可配置上游 Tab 补全服务地址(可选 Docker 部署)
模型测速 内置模型渠道延迟/吞吐量基准测试
会话统计 使用量持久化与聚合统计,支持定时刷新与累计/本次运行两种口径
CA 证书管理 自动注入 CA 证书到系统信任链
Cursor 设置注入 自动写入代理、HTTP/2、证书配置,并写入 update.mode: none 禁用自动更新
CLI 代理适配 自动检测 CLI 版 cursor-agent,生成 wrapper + preload,重定向 TCP 连接
快速启动 运行时自动注册开始菜单快捷方式,Flow Launcher / PowerToys Run 可直接检索
网络代理感知 自动检测系统/环境变量代理并适配出站连接

架构

┌──────────────────────────────────────────────────┐
│                  Cursor IDE                       │
│      (settings.json 注入 http.proxy)              │
└────────────┬─────────────────────────────────────┘
             │ HTTPS CONNECT
             ▼
┌──────────────────────┐     白名单域名(.cursor.sh)
│   MITM Proxy Server  │ ────────────────► ┌──────────────────┐
│   (127.0.0.1:28080)  │                   │  Backend Server  │
│                      │ ◄──────────────── │  (127.0.0.1:28090)│
│  非白名单域名直连回源  │     转发+路由      └────────┬─────────┘
└──────────────────────┘                            │
                                           ┌────────┴────────┐
                                           │    Forwarder    │
                                           │  BidiAppend/SSE │
                                           │  Prompt 编译     │
                                           │  Provider 调用   │
                                           └────────┬────────┘
                                                    │
                                           ┌────────┴────────┐
                                           │   Custom API    │
                                           │ (OpenAI/Anthropic)│
                                           └─────────────────┘

┌──────────────────────────────────────────────────┐
│               CLI 版 cursor-agent                  │
│   (agent.cmd wrapper + tls-bypass.cjs preload)    │
└────────────┬─────────────────────────────────────┘
             │ TCP 重定向 (patch net.connect/tls.connect)
             ▼
┌──────────────────────┐
│  CLI HTTPS Listener   │
│ (127.0.0.1:39092)     │ ← HTTPS+HTTP/2,跳过 MITM
│  复用 Backend 路由     │
└──────────────────────┘

IDE 模式:Cursor 通过注入的 http.proxy 将请求发往本地 MITM 代理(:28080),白名单域名解密后转发到本地后端(:28090),按 routing.mode 选择本地处理或上游转发。

CLI 模式:CLI 的 connect-node 使用 HTTP/2,无法被 goproxy MITM,因此通过 Node preload 在 TCP 层把 api2/api3.cursor.sh 重定向到本地 HTTPS+HTTP/2 监听器(:39092),复用同一后端路由。

默认端口

服务 地址 说明
Backend Server 127.0.0.1:28090 嵌入式 HTTP 后端
MITM Proxy 127.0.0.1:28080 Cursor 流量劫持代理
CLI HTTPS 127.0.0.1:39092 CLI 专用 HTTPS+HTTP/2 监听器
Tab 补全 18041(可选) Docker 部署的 Tab 补全服务

安装与使用

  1. 从 Releases 下载对应平台分发包并安装/解压。
  2. 启动后点击「开启服务」,程序自动完成 CA 证书注入、Cursor settings.json 注入与 CLI wrapper 生成。
  3. 在「模型配置」中添加渠道,或使用「拉取模型」从 API 端点批量导入。
  4. 配置完成后正常使用 Cursor / cursor-agent 即可,流量将走你配置的模型。

程序运行时会自动注册开始菜单快捷方式,Flow Launcher、PowerToys Run 等启动器可直接检索 Local-Cursor。

配置

首次启动后自动生成 ~/.cursor-local-assistant-v2/config.yaml,关键字段:

providerStreamIdleTimeout: 240
backendListenAddr: "127.0.0.1:28090"
proxyListenAddr: "127.0.0.1:28080"
cliHttpsListenAddr: "127.0.0.1:39092"
modelAdapters:
  - displayName: "My Model"
    type: "openai"                    # openai | anthropic
    baseURL: "https://api.example.com"
    apiKey: "sk-xxx"
    modelID: "gpt-4"
    reasoningEffort: "medium"         # low | medium | high | xhigh
    openAIEndpoint: "/v1/responses"   # /v1/responses | /v1/chat/completions
    contextWindowTokens: 500000       # 留空使用默认 500K
    maxCompletionTokens: 278000       # 留空使用默认 278K
routing:
  mode: "local"                       # local | upstream
homeMetrics:
  includeCacheWriteInHitRate: false
  refreshIntervalSeconds: 60          # 统计定时刷新间隔(秒,最小 5)
  persistentMode: true                # 累计统计
tabServerBaseURL: ""
tabServerToken: ""

构建与开发

前置依赖

  • Go 1.26.10(项目已固定工具链,语言基线 1.26.0)
  • Node.js 20+(含 yarn,可用 corepack)
  • Wails v3 CLI:go install github.com/wailsapp/wails/v3/cmd/wails3@latest
  • protoc + protoc-gen-go + protoc-gen-connect-go(生成 gen/,运行 task sync:proto 或手动执行 build/Taskfile.yml 中的 generate:proto)

常用命令

# 前端依赖
corepack yarn install --cwd frontend

# 生成 Wails 前端绑定(修改 service 后需要)
wails3 generate bindings -clean -d frontend/bindings

# 构建当前平台分发包
task build

# 开发模式
task dev

数据目录

所有数据存储在 ~/.cursor-local-assistant-v2/:

~/.cursor-local-assistant-v2/
├── config.yaml          # 用户配置
├── data/
│   ├── ca.crt           # 注入本机 CA 证书
│   ├── local-ca.pem     # 本机私有 CA(不得共享或提交)
│   ├── codebase-index/  # 代码库索引
│   └── docs-index/      # 文档索引
├── history/
│   ├── usage.json       # 使用量聚合统计
│   └── <conversation_id>/  # 会话状态
├── logs/                # 运行日志
├── cli/                 # CLI wrapper 与 preload(自动生成)
└── rules/               # 用户规则

免责声明

本项目通过本地代理方式修改 Cursor 的请求路由,仅供学习研究。请购买正版 Cursor 订阅,因使用本项目产生的任何问题与原作者及本项目维护者无关。

License

MIT

致谢