Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.
74
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Crush ships a built-in jq command (via github.com/itchyny/gojq) available
in the bash tool. No external binary is required.
| Flag | Description |
|---|---|
-r, --raw-output | Output strings without quotes |
-j, --join-output | Like -r but no trailing newline |
-c, --compact-output | One-line JSON output |
-s, --slurp | Read all inputs into an array |
-n, --null-input | Use null as input (ignore stdin) |
-e, --exit-status | Exit 1 if last output is false or null |
-R, --raw-input | Read each line as a string, not JSON |
--arg name value | Bind $name to a string value |
--argjson name value | Bind $name to a parsed JSON value |
File arguments after the filter are also supported: jq '.foo' file.json.
The built-in uses gojq, which is a pure-Go jq implementation. Key differences:
keys_unsorted
and -S are unavailable."abcde"[2] returns "c".--ascii-output, --seq, --stream,
--stream-errors, -f/--from-file, --slurpfile, --rawfile,
--args, --jsonargs, input_line_number, $__loc__, some regex
features (backreferences, look-around).--yaml-input/--yaml-output but the
built-in does not currently expose these flags.Extract a field:
echo '{"name":"crush"}' | jq '.name'Filter an array:
echo '[1,2,3,4,5]' | jq '[.[] | select(. > 3)]'Reshape objects:
echo '{"first":"Ada","last":"Lovelace"}' | jq '{full: (.first + " " + .last)}'Use variables:
echo '{}' | jq --arg host localhost --argjson port 8080 '{host: $host, port: $port}'Slurp multiple JSON values:
echo '{"a":1}{"b":2}' | jq -s '.'Compact output for piping:
echo '{"a":1}' | jq -c '.a += 1'Raw string output:
echo '["one","two","three"]' | jq -r '.[]'Process a file:
jq '.dependencies | keys' package.jsonNull input for constructing JSON:
jq -n --arg msg hello '{"message": $msg}'jq -r '.url' data.json | xargs curl| inside the expression, not shell pipes.try to suppress errors on missing keys: jq 'try .foo.bar'// "default" for fallback values: jq '.name // "unknown"'@csv, @tsv, @base64, @html, @uri for format strings.8f63ee5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.