Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Command-Line Apps
  3. dasel

dasel

MITGov3.4.1

A command-line tool and library for querying, modifying, and converting data across JSON, YAML, TOML, XML, CSV, HCL, and INI formats.

Visit WebsiteGitHubGitHub
7.9k stars166 forks0 contributors

What is dasel?

Dasel (Data-Select) is a command-line utility and Go library for querying, modifying, and converting structured data files. It provides a unified syntax to work with multiple formats like JSON, YAML, TOML, XML, CSV, HCL, and INI, eliminating the need to learn separate tools for each format.

Target Audience

Developers, DevOps engineers, and data professionals who need to manipulate structured data in scripts, pipelines, or Go applications, especially those working with configuration files or data transformation tasks across different formats.

Value Proposition

Developers choose Dasel for its consistent query syntax across all supported data formats, powerful data modification capabilities, and seamless integration into shell scripts and Go projects, making it a versatile single tool for diverse structured data operations.

Overview

Select, put and delete data from JSON, TOML, YAML, XML, INI, HCL and CSV files with a single tool. Also available as a go mod.

Use Cases

Best For

  • Converting configuration files between formats like JSON to YAML or TOML to JSON in automation scripts.
  • Updating or extracting specific values from JSON, YAML, or XML files directly from the command line without custom parsing.
  • Integrating structured data manipulation into shell pipelines for DevOps and data processing workflows.
  • Querying nested data structures with recursive descent or search functions across multiple file formats.
  • Using as a Go library to programmatically handle structured data within applications without external dependencies.
  • Modifying configuration values in place for applications that use formats like HCL or INI files.

Not Ideal For

  • Applications needing real-time data manipulation in streaming pipelines
  • Projects that primarily work with unstructured text or binary files
  • Teams requiring a graphical interface for data editing and visualization

Pros & Cons

Pros

Multi-format Support

Dasel works seamlessly with JSON, YAML, TOML, XML, CSV, HCL, and INI files using a consistent syntax, eliminating the need for separate tools per format as highlighted in the README's key features.

Unified Query Syntax

It provides intuitive selectors like recursive descent (..) and search functions for traversing data across all formats, demonstrated in the basic usage examples for extracting nested values.

Script-friendly CLI

Designed for seamless integration into shell scripts and pipelines, with simple commands like `dasel -i json 'foo.bar'` for easy data extraction and modification.

Go Library Integration

Available as a Go module, allowing developers to use Dasel's capabilities programmatically within their Go applications without external dependencies, as mentioned in the features list.

Cons

Query Syntax Complexity

The unified syntax, while powerful, has a steeper learning curve compared to format-specific tools like jq for JSON, requiring users to adapt to a new query language that may not be immediately intuitive.

File-based Limitations

Dasel processes entire files in memory, which can be inefficient for very large datasets and lacks native support for streaming data or incremental processing, focusing only on complete file operations as per the CLI examples.

Limited Error Handling

The README focuses on success cases; in practice, parsing errors with complex formats like XML or malformed CSV might not be gracefully handled, and edge cases could require additional tooling or manual intervention.

Frequently Asked Questions

Quick Stats

Stars7,914
Forks166
Contributors0
Open Issues27
Last commit11 days ago
CreatedSince 2020

Tags

#yaml#go-library#command-line-tool#data-structures#devops-tools#config#configuration#data-query#csv#xml#json-processing#selector#data-transformation#json#toml#parser#yaml-processor

Built With

G
Go

Links & Resources

Website

Included in

Go169.1kShell36.8kCommand-Line Apps19.2kJSON1.5k
Auto-fetched 1 day ago

Related Projects

jqjq

Command-line JSON processor

Stars34,528
Forks1,764
Last commit2 days ago
fxfx

Terminal JSON viewer & processor

Stars20,434
Forks478
Last commit27 days ago
yqyq

yq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor

Stars15,281
Forks762
Last commit1 day ago
gqlgengqlgen

go generate based graphql server library

Stars10,711
Forks1,253
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub