Communitygithub.com

Yaak CLI 技能

可重複使用的 AI 代理技能,以 SKILL.md 格式呈現,用於控制 Yaak 桌面 API 用戶端。

Yaak CLI 技能 是什麼?

此技能定義了 `yaak` CLI(`@yaakapp/cli`)的完整操作方式,讓開發者能從終端機直接控制 Yaak API 用戶端。它透過讀寫與桌面應用程式相同的本地 SQLite 資料庫,實現雙向即時同步。技能涵蓋了工作區(workspace)、請求(request)、資料夾(folder)、環境(environment)、cookie-jar 的管理,以及認證(auth)、外掛(plugin)與批次操作。支援 JSON 輸入/輸出,可透過 `jq` 進行資料過濾,並提供 `--json` 旗標以靈活建立或更新資源。透過 `-e` 旗標和 `${[ variable ]}` 模板語法,可實現環境變數切換。此外,技能還包含常見的實用模式,如按資源組織請求、基於環境的 URL 切換、工作區層級預設值設定,以及用於批次建立/刪除請求的 Shell 指令碼範例。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Yaak CLI 技能 是做什麼的?

yaak CLI(@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 的關鍵欄位:

欄位類型備註
namestring顯示名稱
methodstringGET、POST、PUT、PATCH、DELETE
urlstring請求 URL
folderIdstring父資料夾 ID
bodyTypestringapplication/json、multipart/form-data、application/x-www-form-urlencoded、text/plain 等
body.textstring主體內容(若是 application/json 請將 JSON 字串化)
headersarray[{name, value, enabled}]
authenticationTypestringbasic、bearer、oauth2 等
authenticationobject依類型的驗證設定

更新

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 — 詳細輸出(顯示請求/回應標頭、串流主體)

結構內省

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

使用環境

將 -e <env-id> 傳遞給任何 send 指令以進行變數置換:

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":"'

相關技能