V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
gbin
V2EX  ›  分享创造

Signet — 通用认证 CLI,一行命令搞定各种系统的登录问题,专为 AI Agent 时代设计

  •  
  •   gbin · 5 天前 · 545 次点击

    最近开源了一个自己写的工具,解决一个我被折磨了很久的问题: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 一次,后面所有请求自动注入认证信息。

    核心特性

    • 四种认证策略:Cookie ( SSO )、OAuth2 ( JWT )、API Token 、Basic Auth ,覆盖绝大多数场景
    • 零配置上手:sig login <url> 自动创建 provider ,不需要预先写配置
    • 远程/无头机器支持:sig init --remote + SSH 同步凭据,服务器上也能用
    • AI Agent 友好:专门为 Claude Code / Cursor 等设计了集成模式,Agent 直接 shell out 调用 sig 命令
    • 多服务统一管理:Jira 、Wiki 、Teams 、GitHub……一个 config 文件管所有
    • sig doctor:一键检查环境配置是否正确

    AI Agent 集成示例

    这是我最想分享的部分。在 Claude Code 里,Agent 这样用 Signet:

    Agent 直接发认证请求

    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 ,没有环境变量地狱。

    为什么不用现有工具

    • 浏览器插件导出 cookie:手动操作,每次过期重来
    • 各种 CLI 自带的 auth ( gh auth 、jira-cli ):每个工具一套,不通用
    • 密码管理器:不适合程序化调用
    • Signet 的定位是 通用认证中间层,一套工具解决所有服务的认证问题,并且原生支持 AI Agent 场景

    项目状态

    目前已经在日常工作中稳定使用,支持 Chrome / Edge / Chromium 。MIT 协议。

    欢迎试用、提 issue 、Star ⭐

    GitHub: https://github.com/signet-auth/signet

    2 条回复    2026-04-08 18:13:26 +08:00
    nomansky
        1
    nomansky  
       5 天前
    不是有 playwright mcp 插件吗? 我 cusor 也可以 ai 调用 headless browser 啊。这额外的注入的感觉通用性不行,且多余了
    gbin
        2
    gbin  
    OP
       5 天前
    我虽然也在用 Playwright ,但是我觉得两者定位不同,不冲突。Playwright MCP 是让 AI 操作浏览器,Signet 是让 AI 调 API ,场景不同。
    比如,查个 Jira ticket ,Playwright 要启动浏览器、渲染页面、解析 DOM ; Signet 一行 sig request 直接拿结构化 JSON ,快一个量级还省 token 。

    大部分内部工具都有 REST API ,没必要让 AI 绕道操作网页。Signet 做的就是把 SSO 登录的结果桥接给 CLI ,让 AI 走 API 而不是模拟点击。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1029 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:33 · PVG 02:33 · LAX 11:33 · JFK 14:33
    ♥ Do have faith in what you're doing.