将 Cursor AI 能力封装为标准 OpenAI API 格式的高性能代理服务
将 Cursor AI 能力封装为标准 OpenAI API 格式的高性能代理服务。
- ✅ OpenAI 协议兼容 - 无缝对接 OpenAI SDK
- ✅ 自动 AntiBot 绕过 - 无需手动处理验证
- ✅ Chrome TLS 指纹模拟 - 绕过指纹识别
- ✅ 流式/非流式双模式 - SSE 流式 + JSON 响应
- ✅ 客户端取消即时感知 - 秒级响应断开
1. 部署 x-is-human-api 服务
本项目依赖 gopkg-dev/x-is-human-api 进行 AntiBot 参数解析。
为什么需要这个服务?
Cursor 使用动态混淆的 JavaScript 代码生成 AntiBot 参数,必须在 JS 运行时环境中反混淆和 AST 解析。Node.js 是最佳选择:
- 原生 JS 执行环境,无需虚拟机
- 成熟的 AST 工具链(Babel、@swc/core)
- 高效完成动态反混淆和参数提取
# 使用 Docker 快速部署
docker pull ghcr.io/karen/x-is-human-api:latest
docker run -d -p 3000:3000 --name x-is-human-api ghcr.io/karen/x-is-human-api:latest
2. 获取最新 JS_URL
访问 https://cursor.com/cn/learn,在浏览器开发者工具中找到 JS 文件 URL。
# 1. 克隆项目
git clone https://github.com/gopkg-dev/cursor2api.git
cd cursor2api
# 2. 修改 docker-compose.yml 中的 JS_URL
vim docker-compose.yml
# 3. 启动所有服务
docker-compose up -d
服务启动后访问:
- 🏥 Health: http://localhost:3001/health
- 🤖 API: http://localhost:3001/v1/chat/completions
- 📋 Models: http://localhost:3001/v1/models
端点 | 方法 | 说明 |
---|---|---|
/health |
GET | 健康检查 |
/v1/models |
GET | 获取可用模型列表 |
/v1/chat/completions |
POST | 聊天完成(支持流式) |
curl http://localhost:3001/health
查看响应
{
"status": "healthy",
"timestamp": "2025-10-01T12:00:00Z"
}
curl http://localhost:3001/v1/models
查看响应
{
"object": "list",
"data": [
{
"id": "anthropic/claude-4.5-sonnet",
"object": "model",
"created": 1234567890,
"owned_by": "anthropic"
}
]
}
curl -X POST http://localhost:3001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-4.5-sonnet",
"messages": [{"role": "user", "content": "你好"}],
"stream": false
}'
curl -N -X POST http://localhost:3001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-4.5-sonnet",
"messages": [{"role": "user", "content": "讲一个笑话"}],
"stream": true
}'
curl -X POST http://localhost:3001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-4.5-sonnet",
"messages": [
{"role": "user", "content": "我叫张三"},
{"role": "assistant", "content": "你好张三!"},
{"role": "user", "content": "我叫什么?"}
],
"conversation_id": "user-session-001"
}'
注意: 必须手动传递完整的
messages
历史记录
cursor2api/
├── config/ # 配置加载
├── handler/ # HTTP 处理器
├── models/ # AntiBot 管理器
├── service/ # Cursor API 服务
├── types/ # 类型定义
├── utils/ # 工具函数
├── middleware/ # 中间件
├── ssestream/ # SSE 流处理
├── logger/ # 日志系统
├── main.go # 入口文件
├── Dockerfile # Docker 镜像
├── docker-compose.yml
└── Makefile
技术 | 版本 | 用途 |
---|---|---|
Go | 1.25+ | 核心语言 |
imroc/req | v3.55+ | HTTP 客户端 + TLS 指纹 |
refraction-networking/utls | v1.8+ | TLS 指纹模拟 |
json-iterator | v1.1+ | 高性能 JSON |
欢迎提交 Issue 和 Pull Request!
贡献流程:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交代码 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
代码规范:
- 遵循 Go 官方代码风格
- 运行
make golangci-lint
确保代码质量 - 添加必要的注释和文档
本项目仅用于防御性安全研究和教育目的。
✅ 允许用途:
- 安全机制分析与研究
- 反爬虫技术学习
- 构建防御系统
- 学术研究与教育
❌ 禁止用途:
- 未经授权的访问
- 大规模数据爬取
- 绕过合法访问限制
- 任何非法用途
- 不记录对话内容 - 服务本身不存储任何数据
- 不上传隐私信息 - 仅处理必要的 API 交互
- 建议使用 HTTPS - 生产环境启用 TLS 加密
MIT License - 详见 LICENSE 文件