[{"data":1,"prerenderedAt":495},["ShallowReactive",2],{"project-30273940":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":44,"post_text":45,"what":46,"said":83,"maker_in_thread":215,"shape":227,"grid":232,"attempts":456,"same_week":457,"maker_shows":43,"maker_hidden":487,"reader_version":488,"card":489},"30273940","Jless","A command-line JSON viewer","title","Show HN: Jless, a command-line JSON viewer","https:\u002F\u002Fpauljuliusmartinez.github.io\u002F","pauljuliusmartinez.github.io","CodeIsTheEnd",1644421319,2022,344,84,110,2570,5,"legend","dev_tools","json viewer","cli",[21,24,25,26,27],"command line json","jq alternative","terminal json","json pager","mixed",0.404,{"positive":31,"neutral":32,"mixed":33,"critical":18},22,16,0,43,{"docs":36,"idea":37,"execution":39,"performance":41,"design":42},{"positive":18,"critical":33},{"positive":18,"critical":38},3,{"positive":33,"critical":40},1,{"positive":33,"critical":40},{"positive":43,"critical":33},2,[18,18,18,18,33,38,18,38,38,18,38,40,33,18,38,40,40,38,38,18,33,18,38,38,18,18,18,38,18,18,18,33,33,33,33,33,33,33,33,38],"Hey, Hacker News! Today I'm proud to release jless, a command-line JSON viewer.\n\njless provides a JSON viewing experience similar to what you see in a browser's network tab in the developer console, but from the comfort of your terminal, with a whole suite of vim-inspired key bindings to easily manipulate your view of the data and full-text regex search. I'm sure many of you have some piped together some combination of cat, jq and less before; hopefully jless can replace that usage (hence the name). It supports newline delimited JSON too, so it can handle any output from jq.\n\nI built jless to ",{"problem":47,"audience":53,"pricing":66,"motivation":67,"time_to_build":66,"stack":71,"openness":80,"stage":81,"team_size":82},{"value":48,"source":49,"evidence":50},"Navigating large JSON files in the terminal, where jq piped into less is clumsy","maker",[51],{"id":52},"post",{"value":54,"source":55,"evidence":56},"Developers who inspect JSON data from APIs, files and command output","inferred",[57,58,62],{"id":52},{"id":59,"by":60,"text":61},"30309547","thamer","This is great! I use the JSONVue Chrome extension at work to display JSON files, and I can see the similarities. If I could suggest one thing: ctrl-u and ctrl-d are pretty common…",{"id":63,"by":64,"text":65},"30310469","xrd","Can you pipe output from another command to jless and have it detect when it finds a JSON document? I often tail the logs of my servers and then need to inspect the JSON data…",null,{"value":68,"source":49,"evidence":69},"Maker needed a better way to inspect undocumented API JSON while building plaintextsports.com",[70],{"id":52},[72],{"value":73,"source":49,"evidence":74},"Rust",[75,76],{"id":52},{"id":77,"by":78,"text":79},"30315511","asimjalis","FWIW I was unable to install it on Mac using cargo which compiles it from Rust. Here is the error I got. ``` error[E0658]: or-patterns syntax is experimental -->…","open_source","launched","unknown",{"praise":84,"objections":117,"requests":136,"questions":162,"alternatives":175},[85,105],{"value":86,"source":87,"evidence":88},"Useful, fast tool that fits terminal workflows","commenter",[89,93,97,101],{"id":90,"by":91,"text":92},"30308913","JonathanMerklin","Wow, thank you so much for sharing this. I'm a frequent jq-to-less piper and probably a more frequent mobile browsing opener of ESPN scoreboards\u002Fsubsequent grumbler about ESPN's…",{"id":94,"by":95,"text":96},"30274590","mcmm","Love it! It's nice that you can pipe to jless the same way you would pipe to less. Super useful for navigating through kube resources, eg: kubectl get pod mypod-0 -n namespace0…",{"id":98,"by":99,"text":100},"30308742","pdimitar","Every now and then you just randomly look at HN, stumble upon a tool, read the home page and just 20% in you are gasping \"OMG HOW DID I LIVE WITHOUT THIS!\". Yep, `jless` is…",{"id":102,"by":103,"text":104},"30309518","jacky2wong","This is awesome! A great add to our command line utilities!",{"value":106,"source":87,"evidence":107},"Homepage GIF clearly explains the tool",[108,112,116],{"id":109,"by":110,"text":111},"30307929","danso","Glad I fought the reflex to jump straight into the comments with \"So how is this different than jq\" and instead actually clicked through to see the wonderful homepage that…",{"id":113,"by":114,"text":115},"30308539","matthewhartmans","Super cool OP! Love the home page and the demo gif! Love this!",{"id":63,"by":64,"text":65},[118,128],{"value":119,"source":87,"evidence":120},"Binary size is large for a CLI tool",[121,125],{"id":122,"by":123,"text":124},"30308506","pferde","I'm loving it, and certainly will be using it a lot. One thing, though - 2MB seems like a lot for program of this kind. In comparison, jq on my system has 30kB.",{"id":126,"by":123,"text":127},"30407254","FWIW, when rebuilding jless with some of the cargo tweaks mentioned here, as well as in…",{"value":129,"source":87,"evidence":130},"Install failed via cargo on older Rust versions",[131,132],{"id":77,"by":78,"text":79},{"id":133,"by":134,"text":135},"30316436","FreeFull","Seems like your Rust version is a bit out of date. Nested or-patterns have been stabilised in Rust 1.53.0, which came out back in June.",[137,144,151,158],{"value":138,"source":87,"evidence":139},"Homebrew and other package manager support",[140],{"id":141,"by":142,"text":143},"30307948","eurasiantiger","Homebrew?",{"value":145,"source":87,"evidence":146},"Musl build",[147],{"id":148,"by":149,"text":150},"30310461","1vuio0pswjnm7","Humble request: musl version Keeping a glibc chroot directory takes up a fair bit of space, leaving less space available for other stuff. Whenever I try compiling Rust programs…",{"value":152,"source":87,"evidence":153},"YAML support",[154],{"id":155,"by":156,"text":157},"30311306","nyellin","I'd love to see YAML support. I can see this being useful on a daily basis for everyone who works with Kubernetes. It's so useful that I'm going to dedicate next episode of my…",{"value":159,"source":87,"evidence":160},"Ctrl-u and Ctrl-d page keys",[161],{"id":59,"by":60,"text":61},[163,167],{"value":164,"source":87,"evidence":165},"Can it detect JSON piped from other command output such as logs",[166],{"id":63,"by":64,"text":65},{"value":168,"source":87,"evidence":169},"How does it differ from jq",[170,171],{"id":109,"by":110,"text":111},{"id":172,"by":173,"text":174},"30308028","veganjay","Very nice! I also thought \"how is this different than jq\" - glad I clicked on the link - this will be very helpful in my toolset! Thanks!",[176,187,194,201,208],{"value":177,"source":87,"evidence":178},"gron",[179,183],{"id":180,"by":181,"text":182},"30308214","rmetzler","One tool I rely on when I need to understand the structure of JSON is gron. I haven’t tried jless yet, will definitely do, but if you’re looking for inspiration, the gron…",{"id":184,"by":185,"text":186},"30308164","enriquto","Consider adding \"gron\" to your toolset, for easy json processing in the command line. It is cruder than jq, but it has a nice aura of simplicity that jq lacks.",{"value":188,"source":87,"evidence":189},"fx",[190],{"id":191,"by":192,"text":193},"30308222","yoavm","Also worth mentioning: https:\u002F\u002Fgithub.com\u002Fantonmedv\u002Ffx",{"value":195,"source":87,"evidence":196},"jsonfui",[197],{"id":198,"by":199,"text":200},"30308012","ccakes","Nice! I’ve been using jsonfui[1] which does something similar but will definitely give this a go [1] https:\u002F\u002Fgithub.com\u002FAdrianSchneider\u002Fjsonfui",{"value":202,"source":87,"evidence":203},"ijq",[204],{"id":205,"by":206,"text":207},"30308319","tekronis","Another useful tool for working with JSON interactively is ijq: https:\u002F\u002Fgithub.com\u002Fgpanders\u002Fijq",{"value":209,"source":87,"evidence":210},"lnav",[211],{"id":212,"by":213,"text":214},"30310911","PhilippGille","For this specific use case there are log view tools that allow you to navigate logs and can automatically format json, xml etc when inside a log line. For example lnav:…",{"comments":216,"answered":43,"key":217},4,[218,221,224],{"id":219,"text":220},"30311425","Thanks to the both of you! plaintextsports was my real passion project over the past year (probably 3x more time spent on it than jless!), so I really appreciate it when other…",{"id":222,"text":223},"30309656","Yup, someone already made a PR for to add these! It turns out the behavior is pretty subtle in terms of how it handles count arguments (it's actually stateful!), and where the…",{"id":225,"text":226},"30314037","I browsed Fiverr to find a few artists whose styles were similar to what I had in mind, then messaged a few of them. annatgraphics [1] was able to take my crude color pencil…",{"commenters":228,"max_depth":229,"maker_replies":216,"first_comment_mins":230,"lifespan_hours":231},62,7,8,266,[233,235,238,240,242,245,247,250,254,257,260,262,266,268,269,271,274,277,281,284,286,287,289,291,293,295,296,299,301,303,307,308,311,314,317,321,324,325,328,332,334,337,339,342,344,347,352,353,355,358,360,364,366,370,373,376,380,382,386,390,392,396,398,400,404,406,410,413,415,418,421,423,425,428,431,434,436,438,440,443,446,449,452],[90,33,18,234,91,33],"project\u002Fpositive\u002Fnone",[236,33,18,234,237,33],"30311363","kbouck",[219,33,33,239,11,40],"maker\u002Fneutral\u002Fnone",[109,40,18,241,110,33],"project\u002Fpositive\u002Fdocs",[243,40,18,241,244,33],"30309070","graderjs",[246,40,18,241,99,33],"30309693",[248,40,18,241,249,33],"30311752","stavros",[251,40,38,252,253,33],"30312178","project\u002Fneutral\u002Fdocs","e12e",[255,40,33,256,249,33],"30312268","commenter\u002Fneutral\u002Fnone",[258,40,33,259,253,33],"30312503","commenter\u002Fneutral\u002Fdocs",[261,40,38,252,249,33],"30312704",[263,40,33,264,265,33],"30320442","other\u002Fneutral\u002Fdocs","ZeroGravitas",[180,43,38,267,181,33],"project\u002Fneutral\u002Fidea",[94,38,18,234,95,33],[148,216,38,270,149,33],"project\u002Fneutral\u002Fnone",[272,216,33,256,273,33],"30310505","tenken",[275,216,38,270,276,33],"30310735","samuli",[278,216,33,279,280,33],"30311573","other\u002Fneutral\u002Fnone","_ikke_",[282,216,33,279,283,33],"30313302","peakaboo",[198,18,18,285,199,33],"project\u002Fpositive\u002Fidea",[191,18,33,279,192,33],[63,288,38,267,64,33],6,[212,288,40,290,213,33],"project\u002Fcritical\u002Fidea",[77,229,40,292,78,33],"project\u002Fcritical\u002Fexecution",[133,229,33,294,134,33],"commenter\u002Fneutral\u002Fexecution",[205,230,33,279,206,33],[297,230,33,279,298,33],"30313311","mekster",[113,300,18,241,114,33],9,[98,302,18,234,99,33],10,[304,305,38,267,306,33],"30308064",11,"dan-robertson",[184,305,33,279,185,33],[309,305,33,279,310,33],"30310466","sitkack",[312,305,40,290,313,33],"30311662","sshine",[122,315,40,316,123,33],12,"project\u002Fcritical\u002Fperformance",[318,315,38,319,320,33],"30309777","project\u002Fneutral\u002Fperformance","westoncb",[322,315,38,319,323,33],"30310689","bogeholm",[126,315,38,319,123,33],[326,315,38,319,327,33],"30311909","afarrell",[329,330,38,267,331,33],"30317205",13,"themadsens",[172,333,18,234,173,33],14,[59,335,18,336,60,33],15,"project\u002Fpositive\u002Fdesign",[222,335,33,338,11,40],"maker\u002Fneutral\u002Fexecution",[340,335,33,279,341,33],"30310862","paolosimone",[343,335,33,256,60,33],"30322346",[345,32,18,285,346,33],"30308309","bally0241",[348,349,38,350,351,33],"30313061",17,"maker\u002Fneutral\u002Fdesign","shaklee3",[225,349,33,350,11,40],[155,354,38,267,156,33],18,[356,354,33,357,265,33],"30311473","other\u002Fneutral\u002Fidea",[359,354,33,279,156,33],"30316291",[361,362,18,285,363,33],"30308227",19,"ziftface",[102,365,18,234,103,33],20,[367,368,18,234,369,33],"30289125",21,"g105b",[371,368,33,279,372,33],"30308031","TheDong",[374,31,18,285,375,33],"30274064","alexmorse",[377,378,18,234,379,33],"30277488",23,"andrewjluo",[381,378,33,279,244,33],"30309328",[383,384,38,270,385,33],"30310068",24,"floodle",[387,388,18,234,389,33],"30280084",25,"mimslee32",[391,388,33,279,244,33],"30309296",[393,394,18,336,395,33],"30310421",26,"jiangplus",[141,397,38,267,142,33],27,[399,397,33,239,11,40],"30307995",[401,402,18,234,403,33],"30275812",28,"cyrdax",[405,402,33,256,244,33],"30309263",[407,408,33,256,409,33],"30308207",29,"Southland",[411,408,33,256,412,33],"30308423","gamehead200",[414,408,33,256,114,33],"30308545",[416,408,33,256,417,33],"30308557","Nicksil",[419,408,33,256,420,33],"30309116","VectorLock",[422,408,33,256,409,33],"30309466",[424,408,33,256,244,33],"30310249",[426,408,33,256,427,33],"30308567","listenallyall",[429,408,33,256,430,33],"30308612","rmbyrro",[432,408,33,256,433,33],"30308813","gberger",[435,408,33,256,244,33],"30309030",[437,408,33,256,409,33],"30309407",[439,408,33,256,244,33],"30309508",[441,408,33,256,442,33],"30309628","hunter2_",[444,408,33,445,99,33],"30309295","commenter\u002Fpositive\u002Fnone",[447,408,33,256,448,33],"30309626","anon2020dot00",[450,408,18,285,451,33],"30323730","tuxlifan",[453,454,40,290,455,33],"30308443",30,"tobyhinloopen",[],[458,463,467,472,477,482],{"id":459,"name":460,"points":461,"category":462},"30244534","SHA-256 explained step-by-step visually",1241,"learning_science",{"id":464,"name":465,"points":466,"category":462},"30193997","Reso",259,{"id":468,"name":469,"points":470,"category":471},"30267539","PgCat",233,"infrastructure",{"id":473,"name":474,"points":475,"category":476},"30257888","Three Magic Words",204,"games",{"id":478,"name":479,"points":480,"category":481},"30194440","Kapwing Smart Cut",171,"creative",{"id":483,"name":484,"points":485,"category":486},"30258149","Tally Forms",168,"web_saas",false,"v2",{"id":490,"name":5,"line":6,"ai":487,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":491,"top":18,"kw":492,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":493,"url":9,"mix":494,"praise":86,"objection":119,"sub":21},30273940,0.4,[21,24,25,26,27],"5555035335310531133505335553555000000003",[31,32,33,18],1794036616744]