Communitygithub.com

AdiPP/skills

Habilidades reutilizáveis para agentes de IA no formato SKILL.md

O que é skills?

Este skill fornece habilidades reutilizáveis para agentes de IA, no formato SKILL.md. Ele inclui um skill completo para controlar o cliente de API Yaak a partir do terminal, utilizando o pacote `@yaakapp/cli`. O skill é útil para desenvolvedores que desejam automatizar a criação, edição, execução e exclusão de requisições, pastas, workspaces e ambientes do Yaak diretamente de scripts ou comandos, sem depender da interface gráfica. Ele suporta integração bidirecional com o aplicativo desktop, pois ambos compartilham o mesmo banco de dados SQLite local. O documento abrange pré-requisitos, flags globais, estruturas de comando detalhadas, exemplos de operações CRUD, envio de requisições, uso de schemas de introspecção, gerenciamento de ambientes e autenticação, além de padrões comuns como organização por recursos e troca de URL baseada em ambiente. O formato SKILL.md permite que agentes de IA como Claude Code, Cursor e Codex interpretem e executem as instruções de forma estruturada.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add AdiPP/skills

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Habilidade Yaak CLI

A CLI yaak (@yaakapp/cli) controla o cliente de API de desktop Yaak a partir do terminal. Ela lê/escreve no mesmo banco de dados SQLite local que o aplicativo desktop — as alterações são refletidas instantaneamente em ambas as direções.

Pré-requisitos

  • CLI yaak instalada: npm install -g @yaakapp/cli
  • Aplicativo desktop Yaak (opcional, mas recomendado para verificação visual)

Flags globais

FlagFinalidade
--data-dir <DIR>Diretório de dados personalizado
-e, --environment <ID>ID do ambiente para substituição de variáveis
--cookie-jar <ID>ID do pote de cookies para execução de requisições
-v, --verboseSaída detalhada (eventos, corpo transmitido)
--log [LEVEL]Log da CLI (error|warn|info|debug|trace)

Árvore de comandos

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>                               # request, folder, ou workspace
├── auth        login | logout | whoami
└── plugin      build | dev | generate | install | publish

Regra de múltiplos workspaces: Quando existe apenas um workspace, [<ws-id>] é opcional. Com vários workspaces, você DEVE passar o ID do workspace como o primeiro argumento posicional.

Workspaces

yaak workspace list                                    # listar todos os workspaces
yaak workspace show <ws-id>                            # JSON completo
yaak workspace create -n "Minha API"                   # criar por nome
yaak workspace create --json '{"name":"Minha API","headers":[...]}'  # criar com configuração
yaak workspace update <ws-id> --json '{"name":"Renomeado"}'
yaak workspace delete <ws-id> --yes                    # exclusão não interativa

Pastas

yaak folder list [<ws-id>]                             # listar pastas no workspace
yaak folder show <folder-id>                           # JSON completo
yaak folder create -n "Autenticação" [<ws-id>]         # criar no workspace
yaak folder create --json '{"name":"Autenticação","workspaceId":"wk_..."}' [<ws-id>]
yaak folder update <folder-id> --json '{"name":"Renomeada"}'
yaak folder delete <folder-id> --yes

Requisições

Listar e inspecionar

yaak request list [<ws-id>]                            # listar todas as requisições
yaak request show <req-id>                             # JSON completo (método, url, cabeçalhos, corpo, etc.)

Criar

Flags rápidas:

yaak request create [<ws-id>] -n "Obter Usuários" -m GET -u "https://api.exemplo.com/usuarios"

JSON completo:

yaak request create [<ws-id>] --json '{
  "name": "Criar Usuário",
  "method": "POST",
  "url": "https://api.exemplo.com/usuarios",
  "folderId": "fl_...",
  "bodyType": "application/json",
  "body": {
    "text": "{\"name\":\"teste\",\"email\":\"[email protected]\"}"
  },
  "headers": [
    {"name":"Authorization","value":"Bearer token","enabled":true}
  ]
}'

Campos principais para --json:

CampoTipoObservações
namestringNome de exibição
methodstringGET, POST, PUT, PATCH, DELETE
urlstringURL da requisição
folderIdstringID da pasta pai
bodyTypestringapplication/json, multipart/form-data, application/x-www-form-urlencoded, text/plain, etc.
body.textstringConteúdo do corpo (transformar JSON em string para application/json)
headersarray[{name, value, enabled}]
authenticationTypestringbasic, bearer, oauth2, etc.
authenticationobjectConfiguração de autenticação por tipo

Atualizar

yaak request update <req-id> --json '{"name":"Nome Atualizado","url":"https://nova-url.com"}'

Excluir

yaak request delete <req-id> --yes

Enviar

yaak send <req-id>                                     # enviar uma única requisição
yaak send <req-id> -v                                  # detalhado (cabeçalhos, eventos)
yaak send <folder-id>                                  # enviar todas as requisições na pasta
yaak send <ws-id> --parallel --fail-fast               # enviar workspace inteiro

Flags de envio:

  • --parallel — executar requisições concorrentemente
  • --fail-fast — abortar na primeira falha (funciona com envios de pasta/workspace)
  • -e <env-id> — usar ambiente para substituição de variáveis
  • -v — saída detalhada (mostra cabeçalhos de requisição/resposta, corpo transmitido)

Introspecção de schema

yaak request schema http       # JSON Schema para requisições HTTP
yaak request schema grpc       # JSON Schema para requisições gRPC
yaak request schema websocket  # JSON Schema para requisições WebSocket

Use isso para entender a estrutura exata do payload --json para criar/atualizar.

Ambientes

yaak environment list [<ws-id>]                        # listar ambientes
yaak environment show <env-id>                         # JSON completo com variáveis
yaak environment create [<ws-id>] -n "Produção"
yaak environment update <env-id> --json '{
  "name": "Produção",
  "variables": [
    {"name":"BASE_URL","value":"https://api.prod.com"},
    {"name":"API_KEY","value":"segredo123"}
  ]
}'
yaak environment delete <env-id> --yes

Usando ambientes

Passe -e <env-id> para qualquer comando send para substituição de variáveis:

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

Sintaxe de template em requisições:

  • Variáveis: ${[ minha_var ]}
  • Funções: ${[ uuid() ]}, ${[ timestamp() ]}, ${[ fs.readFile('/caminho') ]}

Autenticação

yaak auth whoami                                       # verificar status de login
yaak auth login                                        # fazer login via navegador
yaak auth logout                                       # sair

Operações em lote

Criar múltiplas requisições a partir de um script

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

# Endpoints de autenticação
yaak request create "$WS" --json '{"name":"Login","method":"POST","url":"https://api.exemplo.com/auth/login","folderId":"'

Habilidades Relacionadas