用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/void2anything/qingagent --skill cli-auth命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | cli-auth |
| label | 命令行授权 |
| icon | terminal |
| summary | 安全处理阻塞等待扫码或网页授权的 CLI |
| description | 命令行扫码与网页授权等待规程。用于 init/login 等打印授权链接或字符画二维码后持续等待、不会自行退出的 CLI 命令。 |
| user-invocable | false |
| tools | ["mastra_workspace_execute_command","mastra_workspace_get_process_output","mastra_workspace_kill_process","show_qr"] |
| metadata | {"category":"capability"} |
当 CLI 首次使用需要扫码或网页授权时(init/login 类命令,打印授权链接或字符画二维码后停在“等待扫码/授权”不退出),严格执行本规程。
在决定接入方式前,必须先运行该 CLI 的 init/login 类命令的 --help(如 cli init --help、cli login --help),摸清它提供的全部接入方式。优先选择自动化程度最高、可由产品承接的扫码、device flow 或非交互方式(如 --noninteractive),由产品渲染二维码卡让用户扫码。
不要主动把用户推去第三方管理后台手动创建应用、复制 AppID/App Secret 等凭证;只有 --help 已确认该 CLI 完全没有任何自动授权方式时,才可引导手动配置,并明确说明为什么只能手动。
按帮助启动:运行这类命令前先查看该 CLI 的 --help;若帮助中提供“不自动打开浏览器”之类的选项(如 --no-open),启动命令必须带上,具体参数名以该 CLI 的帮助为准,禁止凭经验硬编码猜测。
后台启动:这类命令绝不能前台跑死等,否则会一直挂到超时,用户什么都看不到。用 background:true 后台启动并拿到 PID。
轮询输出:用 mastra_workspace_get_process_output(pid, tail) 轮询输出,严禁带 wait:true。wait 会阻塞等进程退出,而授权进程在用户扫码前不会退出,会把本轮拖到超时中止,后台授权进程也会被连带终止。
提取候选链接:从输出提取授权 URL,通常紧邻二维码字符画,形如 https://…。
出码前验真:CLI 打印的文字链接常常只是“桌面出码展示页”(打开又是一张二维码,扫了等于套娃,手机客户端还扫不了页面里的图),真正扫码直达的授权 URL 往往只编码在字符画二维码里。必须把候选链接的页面正文拉下来,搜索内嵌授权 URL:
curl -s "候选URL" | findstr /i "auth_url redirect_uri jump_url"findstr 换成 grep只查 HTTP 状态码(-o NUL -w 之类)不算验真,必须读取正文。搜到 auth_url / redirect_uri / jump_url 之类字段里嵌着 https 链接,就改用页面内嵌的那个 URL 出码;正文里没嵌链接(或链接本身就是授权/登录页)才用原链接。
展示二维码:调用 show_qr,把验真后的 URL 渲染成二维码卡给用户扫,配置 confirmQuery 收尾话术,并记住工具结果返回的 cardId。字符画二维码在聊天里渲染不出来,绝不要把它原样贴进回复,一律转成 show_qr 卡。
立即收尾:发出二维码卡后立刻收尾并结束本轮回复。等用户扫完码点确认,再在下一轮轮询输出确认授权完成。
验证并更新原卡:只有从 CLI/服务输出验证到成功标志后,才调用同一个 show_qr,传 {"completedCardId":"<首次返回的 cardId>","completionMessage":"授权已完成"} 把原卡更新为完成态;未验证成功时禁止更新。
mastra_workspace_kill_process 结束旧进程并重起。拿不准是哪种语义时,默认只轮询,不做不可逆动作。completionMessage 必须是“已完成”的终态陈述,不要以半角或全角省略号结尾,也不要写成“正在……”等进行中口吻。