A list of new(ish) command line tools – Julia Evans

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

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
  1. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  2. glow

    Render markdown on the CLI, with pizzazz! 💅🏻

    A new fave I recently discovered - render markdown in the terminal for easy reading (and proofing):

    https://github.com/charmbracelet/glow

  3. mdp

    A command-line based markdown presentation tool.

    > I recently found out about mdp too, a way to display markdown in the terminal as slides.

    > https://github.com/visit1985/mdp

    I use pandoc to convert markdown to powerpoint decks, it's a great workflow as you can preview and tweak the content and then apply the firm theme before the presentation.

  4. up

    Ultimate Plumber is a tool for writing Linux pipes with instant live preview (by akavel)

    As an alternative allowing the use of any shell command/pipeline on the results interactively, see also: https://github.com/akavel/up

  5. dive

    A tool for exploring each layer in a docker image

    Awesome, thanks for that! It has a bunch of useful stuff merged, but it's still missing the export tree view feature (https://github.com/wagoodman/dive/pull/324), which can be handy.

  6. hexyl

    A command-line hex viewer

    No such list is complete without hexyl!

    https://github.com/sharkdp/hexyl

  7. jo

    JSON output from a shell

    I'm a big fan of jo[1] for making generating JSON from the shell not terrible.

    [1] https://github.com/jpmens/jo

  8. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  9. fx

    Discontinued fx is a workspace tool manager. It allows you to create consistent, discoverable, language-neutral and developer friendly command line tools. (by jathu)

    Shameless plug for my own tool, fx: a simple CLI tool for making consistent CLI tools in large repositories: https://github.com/jathu/fx

  10. pcstat

    Page Cache stat: get page cache stats for files on Linux

    pcstat and vmtouch (page cache statistics and control)

    https://github.com/tobert/pcstat

  11. vmtouch

    Portable file system cache diagnostics and control

  12. git-crypt

    Transparent file encryption in git

    Combine that with git-crypt[0] (obviously, don't commit secrets in plaintext to your repo!) for example and you have some really nice ergonomics.

    Not enough people know about direnv.

    [0]: https://www.agwa.name/projects/git-crypt/

  13. Spruce

    A BOSH template merge tool (by geofffranks)

    I use spruce for many thing but it's ability to merge y'all files smartly is very useful. Think global yaml merged with one of [prod, staging, dev].yaml, merged with override.yaml creating a deployment yaml. https://github.com/geofffranks/spruce

  14. ripgrep

    ripgrep recursively searches directories for a regex pattern while respecting your gitignore

    There's a ripgrep ticket for multiple patterns. No one seems to have come up with a good specification for exactly how it ought to work, so no development has started.

    https://github.com/BurntSushi/ripgrep/issues/875

  15. nnn

    n³ The unorthodox terminal file manager

    I’m a fan of nnn for a terminal file manager, so I’m keen to try out broot. Does anyone have other recommendations I should try?

    https://github.com/jarun/nnn

  16. pwru

    Packet, where are you? -- eBPF-based Linux kernel networking debugger

    [pwru](https://github.com/cilium/pwru) is a fun new tool from the Cilium folks for tracing network packets in the kernel. Like tcpdump but it shows you the full path including kernel syscalls. Lets you debug much deeper than "when the packet gets to this port it gets dropped".

  17. ranger

    A VIM-inspired filemanager for the console

  18. xplr

    A hackable, minimal, fast TUI file explorer

    Another nnn fan here, great tool!

    Been meaning to try out xplr[1] which I came across the other day.

    1 https://github.com/sayanarijit/xplr

  19. angle-grinder

    Slice and dice logs on the command line

  20. Hoppscotch

    Open source API development ecosystem.

    I found https://github.com/hoppscotch/hoppscotch recently and it's quite nice. There's also a VSCode extension that doesn't look like it's actively developed any more: https://marketplace.visualstudio.com/items?itemName=rangav.v...

  21. consult

    :mag: consult.el - Consulting completing-read

    I do things like that inside Emacs with the consult-grep command from the Consult package, combined with the Orderless matching style.

    1. Consult: https://github.com/minad/consult/

  22. orderless

    Emacs completion style that matches multiple regexps in any order

  23. htmlq

    Like jq, but for HTML.

  24. Newman

    Newman is a command-line collection runner for Postman

    There is a cli tool to run postman collections: https://github.com/postmanlabs/newman

    You still have to create the collections in Postman, however.

  25. lf

    Terminal file manager

    Related to ranger, nowadays I use lf[0], which is a clone of ranger written in Go. There's also pistol[1] which is a replacement for ranger's rifle file viewer

    [0] https://github.com/gokcehan/lf

  26. pistol

    General purpose file previewer designed for Ranger, Lf to make scope.sh redundant

  27. f2

    F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!

    Missing from this list is f2 (golang), one of my happiest finds of recent memory:

    https://github.com/ayoisaiah/f2

  28. pup

    Parsing HTML at the command line

    I use pup for this. People who tried both, any difference?

    https://github.com/EricChiang/pup

  29. eureka

    Need to encrypt a file before sending it to someone? This is it. (by mimoo)

  30. dysk

    A linux utility to get information on filesystems, like df but better

  31. hurl

    Hurl, run and test HTTP requests with plain text.

  32. skim

    Fuzzy Finder in rust!

    I use skim / `sk` for this kind of task: https://github.com/lotabout/skim . For example, for iterating on jq incantations, I have in my shell rc file:

      function jqsk {

  33. pipe-rename

    Rename your files using your favorite text editor

    I really like the approach of pipe-rename (https://github.com/marcusbuffett/pipe-rename) for renaming many files. It's especially convenient for people who can efficiently edit many files in their favorite text editor (so everybody here, I guess).

    Main problem: you maybe don't do this kind of operation frequently enough to remember how it's called or how you aliased it.

  34. fselect

    Find files with SQL-like queries

    Shameless plug: a tool I wrote to manage downloads directory :)

    https://github.com/jhspetersson/fselect

  35. runiq

    An efficient way to filter duplicate lines from input, à la uniq.

    A-ha! I knew I had one more.

    How many times have you wanted to dedup a (text) file, but definitely didn't have enough memory to perform the task? I found this one day when I had to dedup a set of .ndjson.gz files which totaled a cumulative 312 GBs. Utilizing the bloomfilter option, I was able to dedup the records without any large investment on my part.

    Anyways, runiq[1], "[an] efficient way to filter duplicate lines from input, à la uniq".

    It provides several ways to filter of which I almost always default to utilizing the bloomfilter implementation (`-f bloom`).

    ---

    [1] https://github.com/whitfin/runiq

    [2] https://whitfin.io/filtering-unique-logs-using-rust/

  36. tig

    Text-mode interface for git

    Another entry in such a list might be tig (https://jonas.github.io/tig/), which is an adjunct to various git commands.

  37. wat

    Which Alias To...? (by nmaggioni)

    Some time ago I have in fact written a small utility based on fzf that solves this problem by letting you comment aliases in your shell config file and fuzzy-search through them:

    https://github.com/nmaggioni/wat - Which Alias To...?

    The tag system is especially useful to me when I know the general concept I'm after but don't remember the exact wording of the command.

  38. rags

    Rust Alias Generator for Shells (by max-heller)

    Doesn't recommend tools, but rags[0] will look through your history to recommend aliases.

    https://github.com/max-heller/rags

  39. jq

    Discontinued Command-line JSON processor [Moved to: https://github.com/jqlang/jq] (by stedolan)

  40. ffsend

    :mailbox_with_mail: Easily and securely share files from the command line. A fully featured Firefox Send client.

    Some might find `ffsend` useful to securely share files from your command line:

    https://github.com/timvisee/ffsend

  41. AdventOfCode

    Oh, don’t worry, I am familiar[1] with it! It doesn’t quite do this one thing as well as jo, so I like using both.

    [1] https://github.com/flurie/AdventOfCode/blob/main/2021/jq/d14... - unfortunately, this is the point at which I realized the stdlib was a little too anemic for general purpose solving and gave up

  42. less

    Less - text pager

    Oh wow, that's a pretty new feature! It was added in v569, 2020[1].

    [1]: https://github.com/gwsw/less/commit/6a070fc53799fb86e0fe3880...

  43. Simplest-File-Renamer

    Simplest file renamer - rename your files quickly and easily

    OMG! I created a GUI tool for this: Simplest File Renamer (Win, Mac, Linux).

    In my app, you can rename using your favorite code editor, so you have access to all your keyboard shortcuts.

    https://github.com/whyboris/Simplest-File-Renamer - MIT open source

  44. dyff

    /ˈdʏf/ - diff tool for YAML files, and sometimes JSON

  45. mitmproxy

    An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.

  46. dive

    A tool for exploring each layer in a docker image (by jauderho)

  47. dateutils

    nifty command line date and time utilities; fast date calculations and conversion in the shell

    A little late to the party, but if you ever need to do basily anything with dates, check out dateutils (https://github.com/hroptatyr/dateutils).

  48. detox

    Tames problematic filenames (by dharple)

    I'd like to mention two tools that I love and use:

    1. detox -- for sanitising filenames, https://github.com/dharple/detox

  49. mtm

    Perhaps the smallest useful terminal multiplexer in the world.

  50. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
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

  • 17 Essential CLI Tools to Boost Developer Productivity

    16 projects | dev.to | 2 Jan 2025
  • Tell HN: My Favorite Tools

    14 projects | news.ycombinator.com | 24 Dec 2023
  • Report on platform-compliance for cargo directories

    9 projects | /r/rust | 23 May 2023
  • What "nice-to-have" CLI tools do you know?

    33 projects | /r/linuxquestions | 14 Feb 2023
  • Rust Easy! Modern Cross-platform Command Line Tools to Supercharge Your Terminal

    27 projects | dev.to | 7 Nov 2022

Did you know that Rust is
the 5th most popular programming language
based on number of references?