
如何在无浏览器的 CI 环境用 API Key 完成 Cap CLI 认证【免费下载链接】CapOpen source Loom alternative. Beautiful, shareable screen recordings.项目地址: https://gitcode.com/GitHub_Trending/cap1/Capcap auth login会在本机打开浏览器完成授权所以在 CI runner、容器这类没有浏览器的环境里走不通。Cap 文档给出的替代路径是先在 Cap dashboard 里为 CLI 签发一枚 API key形如cap_cli_...再把它以环境变量的形式注入 runner之后所有cap命令和 MCP 工具都会带着这枚 key 所对应 profile 的权限工作。本文按 Set Up Your Agent 文档的步骤完成这条路径签发 key → 注入 CI 环境 → 用只读命令验证认证生效。准备工作先装好 Cap CLICI 步骤的第一行依然是安装。CLI 随 Cap Desktop 一起发布两者共用同一版本无桌面端的 runner 用官方安装脚本Linux/macOScurl -fsSL https://cap.so/install-cli.sh | shWindows runner 用 PowerShell 脚本irm https://cap.so/install-cli.ps1 | iex安装脚本会把cap加入 PATH缺失时先安装 Cap Desktop装完开一个新终端然后验证二进制可用cap version --json cap guide --jsoncap guide --json会返回完整的机器可读命令契约。后文遇到拿不准的 flag 或输出结构时以它和cap command --help为准。这里要先区分一种容易混淆的 keyCap 的 Developer API 用csk_secret和cpk_public两套 key那套 key 服务于 REST/SDK API不用于认证 Cap CLICLI 认证用的是 dashboard 里签发的cap_cli_前缀 key见 REST API 文档 的说明。签发时别选错位置。步骤一在 Cap dashboard 签发 CLI API key按 Set Up Your Agent 的 Headless environments 一节操作在 Cap dashboard 打开Settings → Account找到Cap CLI access。点击Create API key选择 key 名称、access profilecreator、admin、full与cap auth login --profile是同一套和过期时间。key 只在创建时显示一次。Cap 只保存哈希之后无法再次查看务必当场复制。三个 profile 的适用范围文档原文对照Profile用途creatorCaps、上传、评论、library、analytics、notifications、profile 类任务admin在 creator 之上加组织成员、设置、计费、存储集成full在 admin 之上加开发者应用、凭据、videos、credits文档明确建议按最小权限选择优先creator过期时间取满足任务的最短值。步骤二把 key 注入 CI 环境用你平台的 secret 存储如 CI secrets注入 key不要写死在脚本或仓库里。两个环境变量名都受支持任选其一export CAP_API_KEYcap_cli_...也可以改用CAP_AGENT_TOKEN。代码块里的cap_cli_...是文档给出的 key 形态替换为你刚复制的实际 key 值。如果是自托管的 Cap还要同时设置CAP_SERVER_URL指向目标服务器不设时的取值顺序是CAP_SERVER_URL→ Cap Desktop 已配置的服务器 →https://cap.so见 cap CLI README。文档列出的安全红线在 CI 里同样适用不要把 key 粘贴进 agent 对话、提交进项目仓库或回显到构建日志密码和这类凭据字段有意不通过 MCP 工具暴露不要尝试绕过。验证确认认证真的生效注入 key 后先做认证状态检查cap auth status --json文档约定的判断点--json输出在 stdout 上是权威结果stderr 是人类可读日志失败时以error: message行结尾且退出码非零cap auth status永远不会打印密钥本身输出里出现完整 key 说明有别的东西在泄漏它README 中给出的文档示例输出形如{authenticated:true,source:desktop,server:…,userId:…}该示例针对 Cap Desktop 登录来源通过环境变量注入时以authenticated字段为 true 作为判断依据。接着跑一组只读检查确认账号级操作也能工作cap version --json cap guide --json cap auth status --json cap caps list --limit 1 --json文档认为合格的结果是stdout 是合法 JSON认证状态在账号相关操作之前已确认可用library 检查要么返回 Cap 结果、要么返回空列表而不是认证报错验证过程本身不产生任何数据变更。限制与排查权限边界这枚 key 以签发时所选 profile 的 scope 认证每一个cap命令和 MCP 工具。某条命令因权限不足被拒绝时正确做法是在用户同意且任务确实需要的前提下换用更宽 profile 重新签发而不是绕过服务器侧的拒绝。吊销同一 Settings → Account 页面可以随时吊销 keycap auth login生成的凭据也列在同一页、同样可吊销。认证失败的排查入口运行cap auth status --json查看当前状态自托管环境先确认CAP_SERVER_URL指向预期服务器见 Safety Troubleshooting。命令行层面的失败约定退出码1是运行时失败检查 JSON 中的error字段退出码2是命令用法错误应查cap command --help而不是猜测参数重试。验证通过后CI 里就可以直接使用需要账号的命令了。例如上传cap upload out.mp4 --jsonREADME 中的文档示例输出形如{type:uploaded,id,link}。headless 环境下cap upload会自动使用该 key 完成认证无需再执行任何登录流程。【免费下载链接】CapOpen source Loom alternative. Beautiful, shareable screen recordings.项目地址: https://gitcode.com/GitHub_Trending/cap1/Cap创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考