omp packages

cursor-to-pi1.1.0

pi extension: Cursor models as a pi provider, with one Cursor agent per pi session

lukeinx Published 7 days ago MIT ~378 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

cursor-to-pi

npm license

Use Cursor models as the cursor provider in pi, through the official @cursor/sdk and your own Cursor API key. pi keeps the agent loop, tools and permissions; Cursor is only the model. Install with pi install npm:cursor-to-pi. The docs are in Chinese.

把 Cursor 注册为 pi 的模型 provider(cursor)。pi 负责 agent 循环和工具,Cursor 只当模型。

让 agent 帮你装:把下面这句话发给你的 coding agent(pi、Claude Code、Codex、Cursor 等):

按 https://github.com/lukeinx/cursor-to-pi 的 README「Agent 安装步骤」给我的 pi 安装 cursor-to-pi,key 由我自己填

过程中你只需要创建一个 Cursor API Key,并在 pi 里 /login 粘贴。

特点

  • 缓存复用:只发增量,中途换工具也不重放历史,缓存命中率实测 42% → 88%。
  • ctx 准确:不重复计缓存,不误判溢出,中文估算更准。
  • 自动适配:默认最大上下文档位,不支持则降档;思考强度按模型映射;始终 fast=false。
  • 首轮预热:选中 Cursor 模型(启动或切换)后在后台预热 SDK,首轮首字实测 ~11s → ~4.5s;不发模型请求,不耗 token。
  • 兼容 pi:支持 pi 1.1 及以上、请求钩子和其他扩展的旁路调用;工具全由 pi 执行,Cursor 内置工具关闭。

变更见 CHANGELOG.md。

安全合规

  • 官方 SDK + 自己的 key:只通过 Cursor 官方 @cursor/sdk 调用,用你在 Cursor 后台创建的 API Key,用量计入你自己的 Cursor 账号;不逆向私有协议,不读取 Cursor IDE 的登录态或本地凭据。
  • pi 官方接口:以 pi 扩展的 provider 机制注册,不改宿主代码。
  • 工具与权限归 pi:Cursor 内置工具全部关闭,读写文件、执行命令都由 pi 执行,沿用 pi 的权限控制。
  • key 不外泄:key 存在 pi 的 /login 凭据或环境变量里,不写进日志、不进仓库。

原理

  • 每个 pi 会话对应一个 Cursor agent,按消息指纹只发新增内容。
  • pi 的工具以自定义工具挂给 Cursor,调用转交 pi 执行,结果回填后同一 run 继续;工具变化时在同一 agent 上重开 run。
  • Cursor 只在 run 结束给累计用量:单次调用直接用,多次调用的 ctx 用对话估算。

安装

pi install npm:cursor-to-pi

获取 key:打开 cursor.com/dashboard → API Keys → New API Key,创建后立即复制(只显示一次)。用个人 key 或 service account key,Team Admin key 不支持。

只能装一个 cursor provider。key 用 CURSOR_API_KEY 或 /login 配置,然后在 /model 选 cursor/... 模型;配置 key 后可用 /cursor-refresh-models 拉取完整模型列表。更新用 pi update --extensions 后重启 pi。

可选环境变量:PI_CURSOR_CONTEXT=min|max|300k 选上下文档位(默认 min,最小档;max 为最大档),PI_CURSOR_DEBUG=1 输出调试日志,PI_CURSOR_CWD=<目录> 指定 Cursor agent 的工作目录(默认 pi 进程的当前目录,宿主进程目录不是工作目录时用),PI_CURSOR_PREWARM=0 关闭启动预热。

Agent 安装步骤

给 coding agent 的操作说明。每一步都可以重复执行;下文的 <agent-dir> 指 $PI_CODING_AGENT_DIR,未设置时为 ~/.pi/agent。

  1. 前置检查:pi --version 不低于 1.1.0。不满足就停下来告诉用户。
  2. 安装:pi install npm:cursor-to-pi。
  3. 清理冲突:只能有一个 cursor provider。pi list 里如果还有别的 Cursor provider 扩展(如 pi-cursor-auth),告诉用户,经同意后用 pi remove <source> 移除。
  4. 配置 key:环境变量 CURSOR_API_KEY 已设置时跳过。否则请用户:打开 cursor.com/dashboard → API Keys → New API Key 创建 key(个人 key 或 service account key),然后在 pi 里运行 /login 选 Cursor 粘贴。不要让用户把 key 发到对话里,也不要读取或输出 auth.json。等用户确认完成再继续。
  5. 验证:pi --list-models cursor 能列出模型,任选一个运行 pi --no-session --model cursor/<模型 id> -p "Reply with exactly: ok",输出 ok。
  6. 告诉用户:已在运行的 pi 要重启才会加载扩展;在 pi 里 /cursor-refresh-models 拉取完整模型列表,/model 选 cursor/...;以后用 pi update --extensions 更新。

开发

  • src/session.ts:会话复用、工具回传、中途换工具
  • src/models.ts:模型目录与参数映射
  • src/prompt.ts / src/usage.ts / src/reply.ts:提示词、用量与 ctx、回复事件
  • src/index.ts:扩展入口

改完跑 npm test && npm run check;推 GitHub 或发 npm 前跑 npm run check:public(不含内网链接和本机路径)。约束见 AGENTS.md:不开 Cursor 内置工具;不改 cursor provider id、模型 id 和 PI_CURSOR_*;不安装 pi-ai 实体副本。

版权

MIT,见 LICENSE。Copyright (c) 2026 Luke。