The last two days were EmacsConf 2020. It was a great conference as always. Last year, 200ok was able to host one of two real-world satellites. This year, we are happy EmacsConf is happening, again. This time even in a 2-day format hosting many great talks! This blog post is accompanying Alain’s talk from yesterday.

If you are working with complex nested JSON structures, you are probably familiar with jq which is like sed for JSON data and great at what it does. However, being a command-line tool like sed, the feedback for writing queries and seeing their results is a discrete process and not live.

When working with Emacs, we are used to good auto-completion and live feedback. Formerly, this was mostly done with static input, but with modern completion frameworks like Ivy and Counsel, this can be done with dynamic inputs, as well.

counsel-jq is a package with which you can quickly test queries and traverse a complex JSON structure whilst having live feedback. Just call M-x counsel-jq in a buffer containing JSON, then start writing your jq query string and see the output appear live in the message area. Whenever you’re happy, hit RET and the results will be displayed to you in the buffer jq-json.

In this <10m lightning talk, I’ll give a quick overview on how to use counsel-jq and how to build similar completion functionality:

The talk was generally well received. Some relevant (and really nice!) remarks were:

  • The amount of time this will save is ‘scary’ (zeroed, IRC freenode, #emacsconf)
  • This is going to be a life saver <3 (bhavin, IRC freenode, #emacsconf)

Code repository to counsel-jq: https://github.com/200ok-ch/counsel-jq

Slides for the talk: https://github.com/200ok-ch/talks#200ok-talks.

Finally, there were lots and lots of great talks at EmacsConf 2020. The organizers are working hard in post to get these talks processed and online. Already now, you can see the schedule and some resources online. The videos will follow soon. Here’s more information on all things EmacsConf 2020: https://emacsconf.org/2020/


If you are interested in counsel-jq, you might be an Emacs user. If you are an Emacs user, you might also be into Org mode. If you’re into Org mode, you might be interested to use it ‘on the go’ on your phone, share Org files with a non-Emacs user or have access to your files from any web browser in the world. If so, we have you covered: We are building a free and open source implementation of Org mode without the dependency of Emacs - built for mobile and desktop browsers: https://github.com/200ok-ch/organice