最近开源了一个自己写的工具,解决一个我被折磨了很久的问题:AI 编程助手( Claude Code 、Cursor 等)怎么访问需要登录的内部系统?
比如你让 AI 帮你查个 Jira ticket 、搜个 Wiki 页面、发个 Teams 消息——它需要认证,但它没有浏览器,不能走 SSO 。
之前的做法要么是手动复制 cookie 粘到环境变量里,要么写一堆胶水脚本,每次 session 过期又得重来一遍。
所以我写了 Signet:一个通用的认证 CLI ,人类在浏览器里完成一次 SSO ,AI Agent 通过命令行直接复用凭据。
GitHub: https://github.com/signet-auth/signet
它做什么
npm install -g signet-auth
sig init # 自动检测浏览器,生成配置
sig login https://jira.example.com # 打开浏览器完成 SSO ,凭据自动存储
sig request https://jira.example.com/rest/api/2/myself # 带认证发请求
sig get jira # 取出凭据给脚本用
一句话:sig login 一次,后面所有请求自动注入认证信息。
核心特性
AI Agent 集成示例
这是我最想分享的部分。在 Claude Code 里,Agent 这样用 Signet:
sig request "https://jira.example.com/rest/api/2/issue/PROJ-123" --format body
CRED=$(sig get https://wiki.example.com/ --format value)
python scripts/wiki_search.py --cookie "$CRED" --keyword "deployment guide"
Session 过期了? Agent 检测到 401 ,自动调 sig login 弹浏览器让人类重新登录,然后继续干活。人机协作,各司其职。
远程机器怎么办
sig remote add dev-server dev.example.com
sig sync push dev-server # 把凭据通过 SSH 推到远程
sig sync pull laptop # 或者从本地拉取
技术栈
TypeScript + Playwright (浏览器自动化),凭据以 JSON 存储在 ~/.signet/ 下,配置是单文件 YAML ,没有环境变量地狱。
为什么不用现有工具
项目状态
目前已经在日常工作中稳定使用,支持 Chrome / Edge / Chromium 。MIT 协议。
欢迎试用、提 issue 、Star ⭐
1
nomansky 5 天前
不是有 playwright mcp 插件吗? 我 cusor 也可以 ai 调用 headless browser 啊。这额外的注入的感觉通用性不行,且多余了
|
2
gbin OP 我虽然也在用 Playwright ,但是我觉得两者定位不同,不冲突。Playwright MCP 是让 AI 操作浏览器,Signet 是让 AI 调 API ,场景不同。
比如,查个 Jira ticket ,Playwright 要启动浏览器、渲染页面、解析 DOM ; Signet 一行 sig request 直接拿结构化 JSON ,快一个量级还省 token 。 大部分内部工具都有 REST API ,没必要让 AI 绕道操作网页。Signet 做的就是把 SSO 登录的结果桥接给 CLI ,让 AI 走 API 而不是模拟点击。 |