# Traverse complex JSON structures with live feedback Zen Monk Alain M. Lafon 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 lightning talk, I'll give a quick overview on how to use counsel-jq and how to build similar completion functionality.