AI 代理的认证层。在浏览器中登录一次——剩下的交给 AI。

AI 编程代理(Claude Code、Cursor、Copilot)越来越需要调用你的工作 API——查 Jira、读 Wiki、查日历、访问内部接口。但凭证管理是个难题:密钥会泄露到 shell 历史、ps 输出和代理的上下文窗口。你不可能把 SSO 密码直接交给 AI,也没法在每个脚本里手动粘贴 cookie。
sig 位于你的浏览器和 AI 代理之间。你通过真实浏览器完成一次 SSO 认证,sig 捕获 cookie、令牌和请求头,加密存储——然后注入到 AI 代理运行的任何进程中。代理顺利完成任务,但永远看不到你的秘密。
┌──────────────────┐ ┌───────────────────────┐ ┌──────────────────────┐ │ ANY AGENT │ │ ~/.sig │ │ YOUR BROWSER │ │ │ │ │ │ │ │ ┌────────────┐ │ │ config.yaml │ │ ┌────────────────┐ │ │ │ sig run ├──┼───>│ credentials/ │<───┼──┤ Playwright │ │ │ │ sig req │ │ │ my-jira.json │ │ │ (headless or │ │ │ └─────┬──────┘ │ │ github.json │ │ │ visible) │ │ │ │ │ │ grafana.json │ │ └───────┬────────┘ │ │ v │ │ │ │ │ │ │ curl, fetch, │ │ ┌─────────────────┐ │ │ cookies, tokens, │ │ agents, CI │<───┼──┤ SSH transport │ │ │ localStorage │ │ │ │ │ sig sync push │ │ │ │ │ ┌────────────┐ │ │ └─────────────────┘ │ │ │ │ │HTTP_PROXY= ├──┼──> │ ┌─────────────────┐ │ │ │ │ │sig proxy │ │ │ │ MITM proxy │ │ │ │ │ └────────────┘ │ │ │ sig proxy start │ │ │ │ │ │ │ └─────────────────┘ │ │ │ └──────────────────┘ └───────────────────────┘ └──────────────────────┘
sig 的定位是:连接你的系统,让 AI 替你工作。你登录一次,sig 处理认证,你的 AI 代理完成工作。
1234567891011121314# 安装 npm install -g @sigcli/cli # 1. 初始化配置 sig init # 2. 登录——自动打开浏览器,捕获凭证 sig login https://jira.example.com # 3. 发起认证请求——凭证始终在进程内部,不会泄露 sig request https://jira.example.com/rest/api/2/myself # 或启动 MITM 代理——代理自动注入凭证,AI 代理无需接触秘密 sig proxy start
凭证从实时浏览器网络流量中捕获,使用 AES-256-GCM 加密后存储在 ~/.sig 下——不会出现在代码仓库或 shell 历史记录中。
三步搞定:配置提供者、认证一次、让 AI 代理替你工作。
123456789101112131415161718192021222324# 步骤一:在 ~/.sig/config.yaml 中配置提供者 providers: my-jira: url: https://jira.example.com strategy: cookie requiredCookies: [SESSION] grafana: url: https://grafana.example.com strategy: bearer my-api: url: https://api.example.com strategy: api-token # 步骤二:认证一次(浏览器 SSO,无头→可视自动切换) $ sig login https://jira.example.com → chromium 无头模式启动 … ⚠ 检测到登录页面 — 切换为可视模式 ✓ 捕获 4 个 cookie · 2 个 x-header ✓ 加密存储至 ~/.sig/credentials/my-jira.json # 步骤三:AI 代理替你工作 $ sig run my-jira -- claude "把所有 P1 Bug 整理成摘要发给我" $ sig run grafana -- python analyze_metrics.py $ sig run my-api -- node sync_data.js
混合浏览器流程是核心能力——无头模式快速且静默,但遇到真实登录页面时自动弹出可视窗口。sig 会自动识别并切换,无需手动干预。
sig doctor 可以验证 Node、Playwright、配置解析及凭证目录是否就绪。
sig proxy start 在本地 127.0.0.1 启动 HTTPS 代理,零信任凭证注入。设置 HTTP_PROXY/HTTPS_PROXY 后,凭证透明注入到所有出站请求——代理工具永远看不到令牌。适合无法用 sig run 包裹的长期守护进程。SIG_<PROVIDER>_* 凭证直接注入任意子进程环境,输出中的凭证值自动脱敏。这是推荐的使用方式,让 AI 代理既能完成任务又无法窃取秘密。cookie(浏览器 SSO)、oauth2(Bearer/JWT)、api-token(静态密钥)、basic(用户名/密码)。自动检测或通过 --strategy 手动指定。~/.sig/encryption.key(权限 0o400)。每次访问生成审计记录,历史未加密文件自动迁移。sig sync push 推送到 CI 服务器或远程机器。无需守护进程,一条命令搞定。sig run my-jira -- env | grep SIG_MY_JIRA_ 是查看某个提供者注入了哪些环境变量的最快方式。
sig 采用四层安全设计,确保凭证在整个生命周期内不暴露给 AI 代理。
| 层级 | 机制 | 效果 |
|---|---|---|
| 加密存储 | AES-256-GCM,密钥存于 ~/.sig/encryption.key | 凭证文件即使被读取也无法解密 |
| 进程隔离 | sig run 通过环境变量注入,子进程退出后自动清理 | 凭证不出现在 shell 历史或 ps 输出中 |
| 输出脱敏 | stdout/stderr 中的凭证值自动替换为 [REDACTED] | AI 代理的上下文窗口中不会出现真实令牌 |
| 零信任代理 | MITM 代理在网络层注入,应用层不感知 | AI 工具无需读取凭证即可完成认证请求 |
凭证从不出现在 AI 代理的上下文窗口中。sig 在网络层或进程环境层完成注入,代理只看到请求结果,看不到秘密本身。