| name | jq |
| description | Expert jq usage for JSON querying, filtering, transformation, and pipeline integration. Practical patterns for real shell workflows. |
| category | development |
| risk | safe |
| source | community |
| date_added | 2026-03-28 |
| author | kostakost2 |
| tags | ["jq","json","shell","cli","data-transformation","bash"] |
| tools | ["claude","cursor","gemini"] |
jq — JSON Querying and Transformation
Overview
jq is the standard CLI tool for querying and reshaping JSON. This skill covers practical, expert-level usage: filtering deeply nested data, transforming structures, aggregating values, and composing jq into shell pipelines. Every example is copy-paste ready for real workflows.
When to Use This Skill
- Use when parsing JSON output from APIs, CLI tools (AWS, GitHub, kubectl, docker), or log files
- Use when transforming JSON structure (rename keys, flatten arrays, group records)
- Use when the user needs
jq inside a bash script or one-liner
- Use when explaining what a complex
jq expression does
How It Works
jq takes a filter expression and applies it to JSON input. Filters compose with pipes (|), and jq handles arrays, objects, strings, numbers, booleans, and null natively.
Basic Selection
echo '{"name":"alice","age":30}' | jq '.name'
echo '{"user":{"email":"a@b.com"}}' | jq '.user.email'
echo '[10, 20, 30]' | jq '.[1]'
echo '[1,2,3,4,5]' | jq '.[2:4]'
echo '[{"id":1},{"id":2}]' | jq '.[]'
Filtering with select
echo '[{"role":"admin"},{"role":"user"},{"role":"admin"}]' \
| jq '[.[] | select(.role == "admin")]'
curl -s https://api.github.com/repos/owner/repo/issues \
| jq
jq
jq