jq
Ajuda seu agente a manipular dados em formato JSON. Ele pode filtrar, transformar e organizar essas informações para facilitar o uso em outras tarefas.
O que ela faz
jq é uma ferramenta que ajuda a organizar e encontrar informações dentro de dados no formato JSON. Ele permite filtrar, transformar e extrair o que você precisa de forma eficiente.
Quando usar
- ✓Quando você recebe dados de uma API e precisa extrair informações específicas.
- ✓Ao processar logs ou arquivos de configuração que estão em formato JSON.
- ✓Para simplificar comandos complexos que envolvem manipulação de dados JSON em scripts.
Exemplo do que pedir para a IA
“Mostre-me todos os usuários que têm mais de 30 anos.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você escreve uma 'receita' (chamada filtro) que diz ao jq como procurar e reorganizar os dados. O jq lê os dados JSON e aplica sua receita para te dar o resultado exato que você pediu.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill jqOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/jq/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
jq — Consultando e Transformando JSON
Visão Geral
jq é a ferramenta padrão de linha de comando para consultar e remodelar JSON. Esta habilidade abrange uso prático em nível de especialista: filtrando dados profundamente aninhados, transformando estruturas, agregando valores e compondo jq em pipelines de shell. Cada exemplo está pronto para copiar e colar em fluxos de trabalho reais.
Quando Usar Esta Habilidade
- Use ao analisar a saída JSON de APIs, ferramentas de linha de comando (AWS, GitHub, kubectl, docker) ou arquivos de log
- Use ao transformar a estrutura JSON (renomear chaves, achatar arrays, agrupar registros)
- Use quando o usuário precisar de
jqdentro de um script bash ou de uma linha única - Use ao explicar o que uma expressão
jqcomplexa faz
Como Funciona
jq recebe uma expressão de filtro e a aplica à entrada JSON. Os filtros se compõem com pipes (|), e jq lida nativamente com arrays, objetos, strings, números, booleanos e null.
Seleção Básica
# Extract a field
echo '{"name":"alice","age":30}' | jq '.name'
# "alice"
# Nested access
echo '{"user":{"email":"a@b.com"}}' | jq '.user.email'
# Array index
echo '[10, 20, 30]' | jq '.[1]'
# 20
# Array slice
echo '[1,2,3,4,5]' | jq '.[2:4]'
# [3, 4]
# All array elements
echo '[{"id":1},{"id":2}]' | jq '.[]'
Filtragem com select
# Keep only matching elements
echo '[{"role":"admin"},{"role":"user"},{"role":"admin"}]' \
| jq '[.[] | select(.role == "admin")]'
# Numeric comparison
curl -s https://api.github.com/repos/owner/repo/issues \
| jq '[.[] | select(.comments > 5)]'
# Test a field exists and is non-null
jq '[.[] | select(.email != null)]'
# Combine conditions
jq '[.[] | select(.active == true and .score >= 80)]'
Mapeamento e Transformação
# Extract a field from every array element
echo '[{"name":"alice","age":30},{"name":"bob","age":25}]' \
| jq '[.[] | .name]'
# ["alice", "bob"]
# Shorthand: map()
jq 'map(.name)'
# Build a new object per element
jq '[.[] | {user: .name, years: .age}]'
# Add a computed field
jq '[.[] | . + {senior: (.age > 28)}]'
# Rename keys
jq '[.[] | {username: .name, email_address: .email}]'
Agregação e Redução
# Sum all values
echo '[1, 2, 3, 4, 5]' | jq 'add'
# 15
# Sum a field across objects
jq '[.[].price] | add'
# Count elements
jq 'length'
# Max / min
jq 'max_by(.score)'
jq 'min_by(.created_at)'
# reduce: custom accumulator
echo '[1,2,3,4,5]' | jq 'reduce .[] as $x (0; . + $x)'
# 15
# Group by field
jq 'group_by(.department)'
# Count per group
jq 'group_by(.status) | map({status: .[0].status, count: length})'
Interpolação e Formatação de Strings
# String interpolation
jq -r '.[] | "\(.name) is \(.age) years old"'
# Format as CSV (no header)
jq -r '.[] | [.name, .age, .email] | @csv'
# Format as TSV
jq -r '.[] | [.name, .score] | @tsv'
# URL-encode a value
jq -r '.query | @uri'
# Base64 encode
jq -r '.data | @base64'
Trabalhando com Chaves e Caminhos
# List all top-level keys
jq 'keys'
# Check if key exists
jq 'has("email")'
# Delete a key
jq 'del(.password)'
# Delete nested keys from every element
jq '[.[] | del(.internal_id, .raw_payload)]'
# Recursive descent: find all values for a key anywhere in tree
jq '.. | .id? // empty'
# Get all leaf paths
jq '[paths(scalars)]'
Condicionais e Tratamento de Erros
# if-then-else
jq 'if .score >= 90 then "A" elif .score >= 80 then "B" else "C" end'
# Alternative operator: use fallback if null or false
jq '.nickname // .name'
# try-catch: skip errors instead of halting
jq '[.[] | try .nested.value catch null]'
# Suppress null output with // empty
jq '.[] | .optional_field // empty'
Integração Prática com Shell
# Ler de um arquivo
jq '.users' data.json
# Saída compacta (sem espaços em branco) para posterior piping
jq -c '.[]' records.json | while IFS= read -r record; do
echo "Processando: $record"
done
# Passar uma variável de shell para o jq
STATUS="active"
jq --arg s "$STATUS" '[.[] | select(.status == $s)]'
# Passar um número
jq --argjson threshold 42 '[.[] | select(.value > $threshold)]'
# Juntar várias linhas JSON em um array
jq -s '.' records.ndjson
# Múltiplos arquivos: juntar todos em um único array
jq -s 'add' file1.json file2.json
# Pipeline seguro contra nulos a partir de um comando
kubectl get pods -o json | jq '.items[] | {name: .metadata.name, status: .status.phase}'
# GitHub CLI: extrair números de PR
gh pr list --json number,title | jq -r '.[] | "\(.number)\t\(.title)"'
# AWS CLI: listar IDs de instâncias em execução
aws ec2 describe-instances \
…
Perguntas frequentes
O que é JSON?
JSON (JavaScript Object Notation) é um formato comum para organizar dados em pares de 'chave' e 'valor', parecido com um dicionário ou uma lista.
Preciso saber programar para usar jq?
Não é preciso ser um programador experiente. O jq tem sua própria sintaxe simples para consultas, focada em dados JSON.
jq pode modificar meus arquivos?
Não, o jq é uma ferramenta segura que apenas lê e reorganiza os dados. Ele não altera ou apaga seus arquivos originais.
Detalhes
Descrição original do autor
Expert jq usage for JSON querying, filtering, transformation, and pipeline integration. Practical patterns for real shell workflows.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3381
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC