基于 yobo2u/omsub
cursor分支 0.6.1 的增强版本
这是一个独立的 CLIProxyAPI 原生动态库插件,把用户本人授权的 Cursor 订阅接入 OpenAI 兼容的 /v1/chat/completions 接口。相比上游版本,增加了思考透传、纯文本约束注入和官方图标支持三项自研功能。
Important
本项目是非官方社区插件,与 Cursor、Anysphere、CLIProxyAPI、CPA Manager Plus 无隶属或授权关系。使用前请完整阅读免责声明。
本仓库在 0.6.1 基础上增加了以下增强:
上游版本会丢弃 Cursor 的 thinking_delta 事件,客户端无法看到模型的思考过程。本版本:
- 流式响应中通过标准
delta.reasoning_content字段实时透传思考内容 - 非流式响应中在
message.reasoning_content中返回完整思考文本 - 与正文内容完全解耦,客户端可单独渲染思考块
代码位置:
internal/openai/response.go—StreamReasoning()/AddReasoning()/ReasoningContent字段internal/plugin/executor.go— 流式与非流式思考事件路由
当请求未声明任何工具时(len(tools) == 0),上游会触发 Cursor Composer 2.5 的默认工具链(如 web_search_request_query),但由于 CPA 没有工具回传能力,导致空转等待 90 秒超时,客户端只能收到碎片字符。
本版本在用户 prompt 前注入 <system_constraint> 约束指令,明确声明当前处于纯文本对话模式,避免模型尝试发起工具或搜索调用:
<system_constraint>
NOTE: This is a direct conversational session with no tool execution environment.
Please answer directly in text using your knowledge without attempting to invoke tools or web search.
</system_constraint>
代码位置:internal/cursorproto/request.go — buildAction()
上游版本 metadata.Logo 字段为空,CPAMP 面板显示默认占位符。本版本:
- 使用 Cursor 官方品牌资源
brand-logo-5.svg - 插件注册信息和账户元数据均携带图标 URL
- 面板正确显示 Cursor 官方立方体标志
代码位置:internal/plugin/handler.go — pluginLogoURL 常量与 metadata.Logo 字段
- ✅ OpenAI Chat Completions 兼容接口
- ✅ SSE 流式响应(含思考流)
- ✅ 标准 function tools 与
tool_choice - ✅ 多轮工具调用与结果续轮
- ✅ 会话检查点复用(追加式历史优化)
- ✅ 图片与文本附件
- ✅ Cursor 管理页(模型禁用、用量估算)
- ✅ OAuth 动态模型发现
下载并解压完整包,运行自带的安装脚本:
curl -LO https://github.com/kilolonion/cursor-cpa-plugin/releases/download/v0.6.1-enhanced/cursor-plugin-0.6.1-enhanced-linux-amd64.tar.gz
tar -xzf cursor-plugin-0.6.1-enhanced-linux-amd64.tar.gz
cd cursor-plugin-0.6.1-enhanced-linux-amd64
sudo ./install.sh --plugins-dir /opt/cpa-manager-plus/cliproxyapi/plugins脚本会:
- 按当前系统架构自动选择
bin/<os>/<arch>/cursor.so - 把已有插件备份到
.cursor-backups/ - 原子写入目标文件,避免写入中断留下半成品
卸载:
sudo ./uninstall.sh --plugins-dir /opt/cpa-manager-plus/cliproxyapi/plugins卸载不会删除二进制,而是移到 .cursor-uninstalled/,方便回退。
只需插件二进制时,可下载商店格式的 ZIP:
curl -LO https://github.com/kilolonion/cursor-cpa-plugin/releases/download/v0.6.1-enhanced/cursor_0.6.1-enhanced_linux_amd64.zip
unzip cursor_0.6.1-enhanced_linux_amd64.zip -d cursor-plugin
sudo mkdir -p /opt/cpa-manager-plus/cliproxyapi/plugins/linux/amd64
sudo cp cursor-plugin/cursor.so /opt/cpa-manager-plus/cliproxyapi/plugins/linux/amd64/sha256sum -c checksums.txt在 config.yaml 中启用:
plugins:
enabled: true
dir: "plugins"
configs:
cursor:
enabled: true
priority: 1重启 CLIProxyAPI:
docker restart cli-proxy-api当前 Release 只提供 Linux amd64 构建。其他平台需要自行编译。
需要 Go 1.24+ 和 CGO 工具链:
git clone https://github.com/kilolonion/cursor-cpa-plugin.git
cd cursor-cpa-plugin
CGO_ENABLED=1 go build -buildmode=c-shared -trimpath -ldflags="-s -w" -o cursor.so .curl https://your-cpa.example/v1/chat/completions \
-H "Authorization: Bearer $CPA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cursor/composer-2-5",
"messages": [{"role": "user", "content": "推导快排平均复杂度"}],
"stream": true
}'响应中的思考内容:
{"id":"chatcmpl-xxx","choices":[{"index":0,"delta":{"reasoning_content":"正在推导快排..."}}]}curl https://your-cpa.example/v1/chat/completions \
-H "Authorization: Bearer $CPA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cursor/cursor-grok-4-6-high",
"messages": [{"role": "user", "content": "hello"}],
"stream": false
}'响应中的思考字段:
{
"choices": [{
"message": {
"content": "Hello! How can I help?",
"reasoning_content": "用户发送了简单问候..."
}
}]
}go test ./...gofmt -l .
go vet ./...MIT License — 详见 LICENSE
版权声明:
- 原始代码:Copyright (c) 2026 Cursor for CPA/CLIProxyAPI contributors
- 自研补丁:Copyright (c) 2026 kilolonion
-
社区支持:本项目通过 LINUX DO 社区开源推广,感谢社区提供交流平台
-
上游仓库:yobo2u/omsub(cursor 分支)
-
协议参考:opencodex(MIT License)
-
ABI 参考:CLIProxyAPI(MIT License)
-
图标来源:Cursor 官方品牌资源(cursor.com/cn/brand)
本项目的自研补丁(思考透传、约束注入、图标集成)由 AI 辅助完成,包括:
- 需求分析与实现方案设计
- 代码编写与测试用例更新
- 端到端行为验证(与上游二进制对比)
- 文档撰写
人工审查与最终决策由 kilolonion 完成。
本仓库欢迎 PR 和 Issue。与上游相比,本仓库承诺:
- 及时响应:48 小时内回复 Issue 和 PR
- 明确反馈:拒绝时会说明理由,接受时会指明合并计划
- 维护活跃:持续跟进 Cursor 协议变化与 CLIProxyAPI 更新
详见 CONTRIBUTING.md(如未创建,请先提 Issue 讨论)
本项目仅提供技术研究和互操作实现。使用者必须:
- 仅连接本人所有或已获得明确授权的 Cursor 账号、订阅和运行环境
- 自行确认使用方式符合所在地法律法规、Cursor 服务条款、可接受使用政策
- 不得利用本项目共享或转售账号访问、规避额度或速率限制