Communitygithub.com

AdiPP/skills

可复用的 AI 代理技能,采用 SKILL.md 格式

skills 是什么?

该技能为用户提供了一套全面的 Yaak CLI 命令,使开发者能够直接从终端管理与 Yaak 桌面 API 客户端交互的请求、工作区、文件夹、环境和认证。所有命令均在同一个本地 SQLite 数据库上运行,因此通过 CLI 进行的更改会立即在桌面应用上反映,反之亦然,从而实现双向实时同步。它支持请求的创建、更新、删除和发送(单条、文件夹内批量或整个工作区并行发送),并可选择“快速失败”模式和详细输出。该技能还提供 JSON Schema 内省,帮助构建精准的 --json 负载,并支持变量替换、cookie jar 管理和插件工作流。用户可在多种平台上利用该技能,将 Yaak API 工作流集成到自动化脚本和持续集成管道中。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add AdiPP/skills

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Yaak CLI 技能

yaak 命令行工具(@yaakapp/cli)用于在终端中控制 Yaak 桌面 API 客户端。它直接读写与桌面应用相同的本地 SQLite 数据库——任何更改都会在两者之间即时同步。

前提条件

  • 已安装 yaak CLI:npm install -g @yaakapp/cli
  • Yaak 桌面应用(可选,但建议用于可视化验证)

全局标志

标志用途
--data-dir <DIR>自定义数据目录
-e, --environment <ID>用于变量替换的环境 ID
--cookie-jar <ID>用于请求执行的 Cookie Jar ID
-v, --verbose详细输出(事件、流式响应体)
--log [LEVEL]CLI 日志级别(error|warn|info|debug|trace)

命令树

yaak
├── workspace   list | show <id> | create | update <id> | delete <id> [--yes]
├── request     list [<ws-id>] | show <id> | create [<ws-id>] | update <id> | delete <id> [--yes] | send <id> | schema <type>
├── folder      list [<ws-id>] | show <id> | create -n <name> [<ws-id>] | update <id> | delete <id> [--yes]
├── environment list [<ws-id>] | show <id> | create | update <id> | delete <id> [--yes]
├── cookie-jar  list [<ws-id>]
├── send        <ID>                               # 请求、文件夹或工作空间
├── auth        login | logout | whoami
└── plugin      build | dev | generate | install | publish

多工作空间规则: 当只有一个工作空间时,[<ws-id>] 是可选的。如果有多个工作空间,则必须将工作空间 ID 作为第一个位置参数传递。

工作空间

yaak workspace list                                    # 列出所有工作空间
yaak workspace show <ws-id>                            # 完整 JSON
yaak workspace create -n "My API"                      # 通过名称创建
yaak workspace create --json '{"name":"My API","headers":[...]}'  # 带配置创建
yaak workspace update <ws-id> --json '{"name":"Renamed"}'
yaak workspace delete <ws-id> --yes                    # 非交互式删除

文件夹

yaak folder list [<ws-id>]                             # 列出工作空间中的文件夹
yaak folder show <folder-id>                           # 完整 JSON
yaak folder create -n "Auth" [<ws-id>]                 # 在工作空间中创建
yaak folder create --json '{"name":"Auth","workspaceId":"wk_..."}' [<ws-id>]
yaak folder update <folder-id> --json '{"name":"Renamed"}'
yaak folder delete <folder-id> --yes

请求

列表与查看

yaak request list [<ws-id>]                            # 列出所有请求
yaak request show <req-id>                             # 完整 JSON(方法、URL、头部、请求体等)

创建

快速标志:

yaak request create [<ws-id>] -n "Get Users" -m GET -u "https://api.example.com/users"

完整 JSON:

yaak request create [<ws-id>] --json '{
  "name": "Create User",
  "method": "POST",
  "url": "https://api.example.com/users",
  "folderId": "fl_...",
  "bodyType": "application/json",
  "body": {
    "text": "{\"name\":\"test\",\"email\":\"[email protected]\"}"
  },
  "headers": [
    {"name":"Authorization","value":"Bearer token","enabled":true}
  ]
}'

--json 的关键字段:

字段类型说明
name字符串显示名称
method字符串GET、POST、PUT、PATCH、DELETE
url字符串请求 URL
folderId字符串父文件夹 ID
bodyType字符串application/json、multipart/form-data、application/x-www-form-urlencoded、text/plain 等
body.text字符串请求体内容(对于 application/json,使用 JSON 字符串化)
headers数组[{name, value, enabled}]
authenticationType字符串basic、bearer、oauth2 等
authentication对象按类型的认证配置

更新

yaak request update <req-id> --json '{"name":"Updated Name","url":"https://new-url.com"}'

删除

yaak request delete <req-id> --yes

发送

yaak send <req-id>                                     # 发送单个请求
yaak send <req-id> -v                                  # 详细模式(头部、事件)
yaak send <folder-id>                                  # 发送文件夹中的所有请求
yaak send <ws-id> --parallel --fail-fast               # 发送整个工作空间

发送标志:

  • --parallel — 并发执行请求
  • --fail-fast — 首次失败时中止(适用于文件夹/工作空间发送)
  • -e <env-id> — 使用环境进行变量替换
  • -v — 详细输出(显示请求/响应头部、流式响应体)

Schema 内省

yaak request schema http       # HTTP 请求的 JSON Schema
yaak request schema grpc       # gRPC 请求的 JSON Schema
yaak request schema websocket  # WebSocket 请求的 JSON Schema

使用此命令了解创建/更新时 --json 负载的确切结构。

环境

yaak environment list [<ws-id>]                        # 列出环境
yaak environment show <env-id>                         # 包含变量的完整 JSON
yaak environment create [<ws-id>] -n "Production"
yaak environment update <env-id> --json '{
  "name": "Production",
  "variables": [
    {"name":"BASE_URL","value":"https://api.prod.com"},
    {"name":"API_KEY","value":"secret123"}
  ]
}'
yaak environment delete <env-id> --yes

使用环境

在任意 send 命令中传递 -e <env-id> 以进行变量替换:

yaak send <req-id> -e <env-id>

请求中的模板语法:

  • 变量:${[ my_var ]}
  • 函数:${[ uuid() ]}、${[ timestamp() ]}、${[ fs.readFile('/path') ]}

认证

yaak auth whoami                                       # 检查登录状态
yaak auth login                                        # 通过浏览器登录
yaak auth logout                                       # 退出登录

批量操作

从脚本创建多个请求

#!/bin/bash
WS="wk_..."
FL_AUTH="fl_..."
FL_PROD="fl_..."

# 认证端点
yaak request create "$WS" --json '{"name":"Login","method":"POST","url":"https://api.example.com/auth/login","folderId":"'

相关技能