The workshop · Edition No. 55 · 19 Oct 2026

TomWright/dasel

One command-line program that queries and edits eight structured file formats with a single selector syntax.

← The workshopRead the whole edition →
dasel: one binary for eight formats. Queries and edits structured files, and converts.

8k stars · MIT · v3.11.2 (2026-06-27) · Track this in Scout

One command-line program that queries and edits eight structured file formats with a single selector syntax.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You give it a file and a selector, and it returns the value. Selectors are dotted paths with index and filter forms, such as .users.[0].name or .users.all().name. The same selector works whatever the input format, because it parses the file first and queries the result. It writes as well as reads: dasel put sets a value, dasel delete removes one, and -w chooses the output format, which is how it converts between them. Formats covered are JSON, YAML, TOML, XML, INI, HCL, KDL and CSV. It is a single static binary with no runtime to install, which makes it easy to drop into a container image or a build step. Version 3.11.2 landed on 27 June 2026. The selector language is its own, so jq expressions do not work, and it is not a general transformation tool — complex reshaping is where it runs out.

Why it matters

Who it suits. Anyone writing scripts that touch several configuration formats, especially inside build steps and container images where installing a Python runtime is unwelcome. Also anyone who regularly needs to turn a YAML file into JSON or the reverse. Skip it if jq already covers everything you do, because a second selector language is a real cost for no gain.

Verdict. Worth the download if your scripts touch more than two formats. The honest comparison is against the two tools above it. kislyuk/yq reuses jq syntax exactly and needs jq and Python; mikefarah/yq, covered in Edition 41, is a single binary with a syntax close to jq; dasel is a single binary with a syntax of its own and the widest format coverage, including INI, HCL and KDL, which neither of the others handle. Judge it on formats and on dependencies rather than on quality — all three are good. Code was last pushed on 27 June 2026, four months ago, which is normal for a tool this finished and not a cause for concern. For plain JSON searching with grep, tomnomnom/gron solves a related problem in a completely different way.

Stars8k
LicenceMIT
Latestv3.11.2 (2026-06-27)
Good
  • A single static binary. Nothing to install alongside it, which matters in a container image.
  • Eight formats, including INI, HCL and KDL that the alternatives do not cover.
  • Writes and converts as well as reads, so it edits configuration in place.
Watch for
  • Its own selector language. If you know jq, you are learning a second one.
  • Complex reshaping is beyond it. It reads and edits well; it does not transform deeply.
  • Fewer users than jq or the main yq, so searching for an unusual case finds less.
Similar repositories
  • mikefarah/yq

    A single binary covering YAML, JSON, XML, CSV and TOML with a jq-like syntax; narrower on formats, far more widely used. Covered in Edition 41.

    Track this in Scout
  • kislyuk/yq

    Reuses real jq syntax by converting to JSON and back, at the cost of needing jq and Python present.

    Track this in Scout
  • tomnomnom/gron

    Flattens JSON into one assignment per line so ordinary grep can search it, then turns it back; a different answer to the same frustration.

    Track this in Scout
Install
brew install dasel
Screenshots
TomWright/dasel: GitHub preview cardTomWright/dasel: Screenshot 1

On Stack Radar: Build & Ship › APIs & Developer Utilities › API Clients.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.