charmbracelet/crush/jq

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

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.

Install

npx vskill@latest install charmbracelet/crush/jq

SKILL.md

jq — Built-in JSON Processor

Crush ships a built-in jq command (via github.com/itchyny/gojq) available in the bash tool. No external binary is required.

Supported Flags

FlagDescription
-r, --raw-outputOutput strings without quotes
-j, --join-outputLike -r but no trailing newline
-c, --compact-outputOne-line JSON output
-s, --slurpRead all inputs into an array
-n, --null-inputUse null as input (ignore stdin)
-e, --exit-statusExit 1 if last output is false or null
-R, --raw-inputRead each line as a string, not JSON
--arg name valueBind $name to a string value
--argjson name valueBind $name to a parsed JSON value

File arguments after the filter are also supported: jq '.foo' file.json.

Differences from Standard jq

The built-in uses gojq, which is a pure-Go jq implementation. Key differences:

  • No object key ordering — keys are sorted by default; keys_unsorted

and -S are unavailable.

  • Arbitrary-precision integers — large integers keep full precision

(addition, subtraction, multiplication, modulo, division when divisible).

  • String indexing — "abcde"[2] returns "c".
  • Not supported — --ascii-output, --seq, --stream,

--stream-errors, -f/--from-file, --slurpfile, --rawfile, --args, --jsonargs, input_line_number, $__loc__, some regex features (backreferences, look-around).

  • YAML — gojq supports --yaml-input/--yaml-output but the

built-in does not currently expose these flags.

Common Patterns

Extract a field:

sh
echo '{"name":"crush"}' | jq '.name'

Filter an array:

sh
echo '[1,2,3,4,5]' | jq '[.[] | select(. > 3)]'

Reshape objects:

sh
echo '{"first":"Ada","last":"Lovelace"}' | jq '{full: (.first + " " + .last)}'

Use variables:

sh
echo '{}' | jq --arg host localhost --argjson port 8080 '{host: $host, port: $port}'

Slurp multiple JSON values:

sh
echo '{"a":1}{"b":2}' | jq -s '.'

Compact output for piping:

sh
echo '{"a":1}' | jq -c '.a += 1'

Raw string output:

sh
echo '["one","two","three"]' | jq -r '.[]'

Process a file:

sh
jq '.dependencies | keys' package.json

Null input for constructing JSON:

sh
jq -n --arg msg hello '{"message": $msg}'

Tips

  • Pipe jq output to other commands: jq -r '.url' data.json | xargs curl
  • Chain filters with | inside the expression, not shell pipes.
  • Use try to suppress errors on missing keys: jq 'try .foo.bar'
  • Use // "default" for fallback values: jq '.name // "unknown"'
  • Use @csv, @tsv, @base64, @html, @uri for format strings.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/charmbracelet/crush/jq/badge)](https://verified-skill.com/skills/charmbracelet/crush/jq)

Something wrong with this skill or its page? Tell us.