Dasel (short for Data-Select) is a command-line tool and library for querying, modifying, and transforming data structures such as JSON, YAML, TOML, XML, and CSV.
It provides a consistent, powerful syntax to traverse and update data — making it useful for developers, DevOps, and data wrangling tasks.
- Multi-format support: JSON, YAML, TOML, XML, CSV, HCL (with more planned).
- Unified query syntax: Access data in any format with the same selectors.
- Query & search: Extract values, lists, or structures with intuitive syntax.
- Modify in place: Update, insert, or delete values directly in structured files.
- Convert between formats: Seamlessly transform data from JSON → YAML, TOML → JSON, etc.
- Script-friendly: Simple CLI integration for shell scripts and pipelines.
- Library support: Import and use in Go projects.
brew install dasel
go install github.com/TomWright/dasel/v3/cmd/dasel@latest
Prebuilt binaries are available on the Releases page for Linux, macOS, and Windows.
See the installation docs for more options.
By default, Dasel evaluates the final selector and prints the result.
echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar'
# Output: "baz"
Update values inline:
echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar = "bong"'
# Output: "bong"
Use --root
to output the full document after modification:
echo '{"foo": {"bar": "baz"}}' | dasel -i json --root 'foo.bar = "bong"'
# Output:
{
"foo": {
"bar": "bong"
}
}
Update values based on previous value:
echo '[1,2,3,4,5]' | dasel -i json --root 'each($this = $this*2)'
# Output:
[
2,
4,
6,
8,
10
]
cat data.json | dasel -i json -o yaml
Searches all nested objects and arrays for a matching key or index.
echo '{"foo": {"bar": "baz"}}' | dasel -i json '..bar'
# Output:
[
"baz"
]
Finds all values matching a condition anywhere in the structure.
echo '{"foo": {"bar": "baz"}}' | dasel -i json 'search(bar == "baz")'
# Output:
[
{
"bar": "baz"
}
]
Full documentation is available at daseldocs.tomwright.me.
Contributions are welcome! Please see the CONTRIBUTING.md for details.
MIT License. See LICENSE for details.