[分享] 写了个 OpenClaw 插件,对接 Cursor CLI,手机也能远程操控 IDE 排查代码 - V2EX {"@context": "https://schema.org", "itemListElement": [{"position": 1, "@type": "ListItem", "item": "go/create", "name": "分享创造"}, {"position": 2, "@type": "ListItem", "item": "t/1195007", "name": "[分享] 写了个 OpenClaw 插件,对接 Cursor CLI,手机也能远程操控 IDE 排查代码"}], "@type": "BreadcrumbList"}
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tohearts

[分享] 写了个 OpenClaw 插件,对接 Cursor CLI,手机也能远程操控 IDE 排查代码

  •  
  •   tohearts 3 月 1 日 1511 次点击
    这是一个创建于 54 天前的主题,其中的信息可能已经有所发展或是发生改变。

    OpenClaw 火了之后看了一堆教程,大多是两类用法:

    1. 定时任务推新闻/提醒
    2. 让 OpenClaw 直接写一个项目

    第一种对我来说是伪需求我想知道的我会自己去找。

    第二种问题更大:

    • token 消耗巨大
    • 通用智能体的 prompt 不如 Cursor / Claude Code 这些专业 AI IDE 针对编码优化
    • 最关键的:你不可能用聊天工具写完项目直接上线,最终一定要回 IDE 做 review 和调试

    那就产生了一个核心矛盾:在 OpenClaw 里积累的 Skill 、项目规范,跟 IDE 里的 .cursor/rules 、AGENTS.md 是两套东西,维护成本翻倍。


    我的思路:让 OpenClaw 调用 Cursor CLI

    不让 OpenClaw 自己写代码,而是让它启动 Cursor Agent CLI ,在你的项目目录中工作。

    手机/电脑 → OpenClaw → /cursor 命令 → Cursor Agent CLI → 你的项目目录 ├── .cursor/rules ├── AGENTS.md └── MCP servers 

    核心好处:项目一致性。你在电脑前用 Cursor IDE 和通过 OpenClaw 启动 Cursor CLI ,进的是同一个项目目录,加载同样的规则和 MCP 配置。


    场景

    1. 不在电脑前排查线上问题

    在外面吃饭,线上告警了。掏手机打开 OpenClaw:

    /cursor my-project --mode ask 排查 auth 模块的报错原因,结合最近的 GitLab MR 和监控数据 

    Cursor CLI 会连接项目里配好的 MCP ( GitLab 、Prometheus 、数据库等),从源码和运维数据两端排查,结果推到手机上。回到电脑前开 IDE 确认即可。

    2. 别人问项目细节

    同事问"这个接口鉴权逻辑怎么实现的?",以前要翻代码截图解释,现在:

    /cursor my-project --mode ask 解释用户鉴权接口的完整实现逻辑 

    答案基于真实项目源码,不是通用回答。

    3. 路上想方案

    /cursor my-project --mode plan 设计缓存层方案,Redis + 本地缓存两级架构 

    插件介绍

    cursor-agent:OpenClaw Gateway 插件,在聊天中直接调用本机 Cursor Agent CLI 。

    GitHub: https://github.com/toheart/cursor-agent

    两种调用方式

    命令模式 /cursor

    你主动输入命令,插件直接调用 Cursor CLI ,结果原样返回,不经过 LLM 二次总结

    /cursor my-project --mode ask 分析 src/auth 的架构 /cursor my-project --continue 还有哪些安全隐患? /cursor my-project --mode agent 给用户服务添加限流 

    支持三种模式:agent(可改文件)、ask(只读)、plan(出方案),支持 --continue--resume 继续历史会话。

    Tool 模式

    你正常聊天,OpenClaw 的 AI 自动判断需要看代码时,主动调用 cursor_agent 工具。默认只读( ask ),不改文件。

    命令模式 Tool 模式
    触发 用户主动输入 AI 自动判断
    结果 原样返回 AI 可融合补充
    默认权限 agent (可改文件) ask (只读)
    会话管理 支持 不支持

    MCP 自动复用

    项目里配了 GitLab MCP 、数据库 MCP 、Prometheus MCP 等,通过插件调用 Cursor CLI 时自动生效(--approve-mcps)。手机远程排查时,AI 不只看代码,还能查数据库、看监控。

    进程管理

    • 独立进程组,不会误杀 Gateway
    • SIGTERM → 5s → SIGKILL 两阶段终止
    • 可配置最大并发数
    • 无输出超时检测

    快速上手

    1. 装 Cursor Agent CLI

    # Linux/macOS curl https://cursor.com/install -fsSL | bash # Windows irm https://cursor.com/install | iex agent --version && agent login 

    2. 配置插件

    { "plugins": { "load": { "paths": ["/path/to/cursor-agent"] }, "entries": { "cursor-agent": { "enabled": true, "config": { "projects": { "my-project": "/home/user/projects/my-project" }, "enableMcp": true, "enableAgentTool": true } } } } } 

    3. 用起来

    /cursor my-project 帮我分析认证模块有没有安全隐患 

    技术栈

    • Node.js + TypeScript + ESM
    • esbuild 单文件打包
    • OpenClaw Gateway 插件系统
    • Cursor Agent CLI (使用 Cursor 订阅额度)

    项目结构:

    src/ ├── index.ts # 插件入口 ├── types.ts # 类型定义 ├── parser.ts # stream-json 输出解析 ├── runner.ts # CLI 进程管理 ├── formatter.ts # 结果格式化 ├── process-registry.ts # 进程注册表 └── tool.ts # Agent Tool 工厂 

    总结一句话:别让 OpenClaw 干 IDE 的活,让它当 IDE 的遥控器。

    开源地址: https://github.com/toheart/cursor-agent

    欢迎 Star 、Issue 、PR ,有问题直接在楼下讨论。

    wenning
        1
    wenning  
       3 月 2 日
    请问手机是怎么和 openclaw 交互的呢?
    wenning
        2
    wenning  
       3 月 2 日
    @wenning #1 不好意思, 这个问题过于低级, 我看了下个人可以非常简单的使用个人飞书和 openclaw 交互
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1494 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 16:58 PVG 00:58 LAX 09:58 JFK 12:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86