Jc – JSONifies the output of many CLI tools

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SurveyJS - JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor
Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more.
surveyjs.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. gron

    Make JSON greppable!

    Some alternative ideas for making JSON more readable:

    - Pipe into gron (https://github.com/tomnomnom/gron) to get a `foo.bar.baz = val` kind of syntax.

    - Pipe into visidata (https://www.visidata.org/) to get a spreadsheet-like editable view.

  2. SurveyJS

    JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor. Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more.

    SurveyJS logo
  3. jc

    CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.

    This is one of many inherent issues with using unstructured text as an API. That's why I believe there should be a JSON (or at least some other widely used format[1]) option for tools that have output that would be useful in scripts.

    [0] https://github.com/kellyjonbrazil/jc#locale

    [1] formats should have good library support across many languages and nice filter/query capabilities from the command-line

  4. rq

    Record Query - A tool for doing record analysis and transformation (by dflemstr)

  5. dasel

    Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.

  6. spyql

    Query data on the command line with SQL-like SELECTs powered by Python expressions

    This is great!

    I am the author of SPyQL [1]. Combining JC with SPyQL you can easily query the json output and run python commands on top of it from the command-line :-) You can do aggregations and so forth in a much simpler and intuitive way than with jq.

    I just wrote a blogpost [2] that illustrates it. It is more focused on CSV, but the commands would be the same if you were working with JSON.

    [1] https://github.com/dcmoura/spyql

  7. autojump

    A cd command that learns - easily navigate directories from the command line

    There's a clash of names between this jc and autojump (https://github.com/wting/autojump) jc (jump to child)

  8. libxo

    The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.

    Can you trust it? Cli tool output is not exactly stable. I thought that's why libxo exists?

    https://github.com/Juniper/libxo

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  10. cosmopolitan

    build-once run-anywhere c library

    But python is also universal? You can just bundle jc inside https://github.com/jart/cosmopolitan/tree/master/third_party... and it's as universal as it gets.

  11. specifications

    Specifications related to Jevko. (by jevko)

    A plain Jevko parser simply turns your unicode sequence into a tree which has its fragments as leaves/labels.

    No data types on that level, much like in XML.

    Now above that level there is several ways to differentiate between them.

    The simplest pragmatic way is a kind of type inference: if a text parses as a number, it's a number, if it's "true" or "false", it's a boolean. Otherwise it's a string. If you know the implicit schema of your data then this will be sufficient to get the job done.

    Otherwise you employ a separate schema -- JC in particular has per-parser schemas anyway, so that's covered in this case.

    Or you do "syntax-driven" data types, similar to JSON, e.g. strings start w/ "'".

    Here is a shitty demo: https://jevko.github.io/interjevko.bundle.html

    It shows schema inference from JSON and the schemaless (syntax-driven) flavor.

    Jevko itself is stable and formally specified: https://github.com/jevko/specifications/blob/master/spec-sta...

    It's very easy to write a parser in any language (I've written one in several) and from there start using it.

    However, I am still very much working on specifications for formats above Jevko. I have some recent implementations of the simplest possible format which converts Jevko to arrays/objects/strings:

    * https://github.com/jevko/easyjevko.lua

  12. easyjevko.js

    A JavaScript library for Easy Jevko -- a simple data format built on Jevko.

  13. interjevko.js

    Experimental Schema-based Minimal Data Interchange with Jevko.

  14. jevkoschema.js

    Jevko schema

  15. awesome-jsonschema

    A curated list of awesome JSON Schema resources, tutorials, tools, and more

    You can also run `jc -h --dig` to get the parser details that include the schema.

    Having true JSON Schema[0] is being considered, but on the back-burner due to the sheer number of parsers to build schemas for. Also, it is more difficult to accurately define the schema for a small subset of parsers since their command output are so variable.

    [0] https://json-schema.org/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • jq help: is it possible to replace a key-value in one json file using the data from another json file?

    2 projects | /r/commandline | 30 Sep 2022
  • Python's FastAPI and How It Compares to Express

    1 project | dev.to | 8 Jul 2025
  • FastAPI: A Python Web Framework for NodeJS Developers

    1 project | dev.to | 27 Jun 2025
  • Getting Started with FastAPI: A Beginner’s Guide Using Python 🐍

    2 projects | dev.to | 1 Jun 2025
  • 🚀 Building Recallr: How I Turned PDFs into Anki Flashcards with AI

    3 projects | dev.to | 15 May 2025

Did you know that JavaScript is
the 3rd most popular programming language
based on number of references?