Alternatives · DevOps tooling
jq alternatives (2026)
jq: MIT JSON filter. Free forever; the one CLI that belongs in every shell script touching JSON.
Its Catch: Vs yq (YAML/JSON/XML), fx (interactive), and jless (TUI viewer): jq is the *filter language*, not a viewer and not YAML-native.
Below: 8 free or free-tier tools from the same category (DevOps tooling), free and open source first, then the closest match by shared tags. Each keeps its own Catch.
Free / OSS · CC0-1.0 · 36.3k GitHub stars
VerdictCC0 command runner. Free forever.
CatchModern Makefile replacement; not Taskfile. No implicit build DAG like Make. You still pick how CI invokes recipes. Distinct from package.json scripts if the repo is polyglot.
Free / OSS · OSS/MIT · 16.1k GitHub stars
VerdictMIT multi-format jq cousin. Free forever; use mikefarah/yq when the file is YAML (or XML/CSV/TOML), not only JSON.
Catchmikefarah/yq ≠ kislyuk/yq — this entry is the Go binary (`mikefarah/yq`), not the Python wrapper around jq. Vs jq (JSON-only filter language): yq is multi-format structured data, not a jq dialect clone of every filter. Feature parity with jq is incomplete on purpose; learn the Go yq docs.
Free / OSS · OSS/MIT · 8k GitHub stars
VerdictMIT multi-format selector. Free forever; one syntax when the document format keeps changing.
CatchVs yq (jq-shaped multi-format Go CLI) and jq (JSON filter language): dasel is *one selector* across formats, not a jq dialect clone and not YAML-only muscle memory. Learn dasel’s selector docs; do not assume every jq filter ports. Distinct from Miller (tabular verbs).
Free / OSS · OSS/MIT · 10.6k GitHub stars
VerdictMIT binary jq. Free forever; query the bytes when the file is not JSON.
CatchVs jq (JSON filter), jless (JSON pager), gron (flatten-for-grep), and jc (CLI stdout→JSON): fq is the *binary-format* cousin, not a JSON-only pipe and not a packet capture GUI. Decoder coverage is wide but not every vendor blob; unknown formats still need a spec.
Free / OSS · Apache-2.0 · 8.2k GitHub stars
VerdictMIT/Apache Rust Homebrew client when brew installs are your CI or new-laptop bottleneck — run it next to brew, not instead of it.
CatchThe project calls itself experimental and recommends running it alongside Homebrew, not replacing it — do not purge brew. It depends on Homebrew’s formulas, bottles, and infrastructure; it is a faster client, not a new package ecosystem. Cold-install gains shrink on slow links (downloads dominate big bottles), and the “100x” headline is the warm-cache case. Vs mise (runtime version manager): zerobrew installs Homebrew packages, it does not pin language toolchains per project.
Free / OSS · OSS/MIT · 14.5k GitHub stars · quiet 180d+
VerdictMIT greppable JSON. Free forever; flatten, grep, ungron — then graduate to jq when the filter is the point.
CatchSOFT: last commit ~May 2025 — quiet but not abandoned folklore. Vs jq (filter language): gron is *flatten-for-grep*, not a transform DSL. Huge blobs become huge line piles; know when jq select() is the shorter path.
Free / OSS · Apache-2.0 · 26k GitHub stars
VerdictThe default JS format+lint binary in 2026. Fast, dual-licensed, not ESLint.
CatchNot a 1:1 ESLint plugin ecosystem. Some rules and framework plugins do not exist yet. Dual-license is MIT OR Apache-2.0 at your option — there is no single LICENSE file at the repo root.
Free / OSS · OSS/MIT · 35.1k GitHub stars
VerdictThe version manager to install in 2026. MIT, fast, one toml.
CatchNot a container runtime and not direnv-only. Some asdf plugins still assume bash. Team-wide adoption means every laptop runs mise, or CI drifts.
FAQ
- What are the best free alternatives to jq?
- just, yq, dasel, fq, zerobrew. All are reviewed on Stack Gems in the same category (DevOps tooling); 8 free or open source.
- What is the catch with jq?
- Vs yq (YAML/JSON/XML), fx (interactive), and jless (TUI viewer): jq is the *filter language*, not a viewer and not YAML-native.
- Is there an open-source alternative to jq?
- Yes: just (CC0-1.0), yq (OSS/MIT), dasel (OSS/MIT), fq (OSS/MIT).