Command Line Tools for Productive Programmers

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

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Less time debugging, more time building
  • SaaSHub - Software Alternatives and Reviews
  • nnn

    n³ The unorthodox terminal file manager

    Yeah it comes in the base distribution https://github.com/jarun/nnn/blob/master/plugins/autojump

    But - if you're happy with ranger, i'm not sure it's worth the switch - they're very similar. nnn is quite a bit faster than ranger but other than that, i think ranger has more community support.

  • dotfiles

    The integration is pretty decent in vim, i have it configured to open a window overlay on n (requires neovim) https://github.com/craigjperry2/dotfiles/blob/main/dotfiles/...

    That said, i don't find myself using that as much. Usually i'm in the shell when i invoke nnn - i might open a file in vim from nnn though.

    In vim, i typically lean on fzf.vim more often - usually i know something about the next file i want to open so it just feels more direct.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • gdu

    Fast disk usage analyzer with console interface written in Go

  • starship

    ☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!

    powerlevel10k looks interesting with that builtin configuration wizard. I use https://starship.rs

    You have to configure it yourself, but it works on bash, fish and zsh.

  • lf

    Terminal file manager

    There's a broot alternative called lf that opens files in $EDITOR

    https://github.com/gokcehan/lf

  • entr

    Run arbitrary commands when files change

    I can't sing the praises enough of entr. Just check out its man page: http://eradman.com/entrproject/

    entr lets you watch files and re-run a command any time they change. Whenever I'm working on a script, or go tests, or whatever test-like thing I'm doing that's not in its own bloated test harness, I reach for entr. Great software, does what it's supposed to every time.

  • shell-scripts

    Collection of various shell scripts and utilitites (by swarminglogic)

    I didn't know of entr, or inotify at the time. Years ago, I wrote a script that did mostly that, but I've found myself to instead rely on a script to rerun things based on global hotkeys. It scratches a different itch, but in case you want to check it out [0]

    In short, you set up a global hotkey to trigger the rerun of a "key"-ed command. Then you can quickly run a command, which can be rerun with that hotkey.

    [0]: https://github.com/swarminglogic/shell-scripts/blob/master/r...

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • rerun

    Restarts an app when the filesystem changes. Uses growl and FSEventStream if on OS X.

  • gron

    Make JSON greppable!

  • watchexec

    Executes commands in response to file modifications

    There is also `watchexec` [1]. However I don't know how it compares to `entr` or other inotify clients.

    [1] : https://github.com/watchexec/watchexec

  • ranger-autojump

    The combined magic of autojump, ranger and zsh

    I very much like nnn because it's lightweight, but does it have autojump integration[0]? It's the only single reason I am still using ranger.

    0: https://github.com/fdw/ranger-autojump

  • murex

    Bash-like shell and scripting environment with advanced features designed for safety and productivity (eg smarter DevOps tooling)

    There'll always be multiple ways to skin the proverbial cat.

    Shameless plug but I'd written my own $SHELL callewd `murex` as I kept running into pain points with Bash as a DevOps engineer. The shell doesn't have `tree` inbuilt but it does have FZF-like navigation built in.

    https://github.com/lmorg/murex

    I've been using it as my primary shell for a few years now and I'm not going to pretend that it isn't BETA it does work. However it's not POSIX and some of the design decisions might rub people the wrong way (given how opinionated peoples work-flows are). But if you're curious then check it out.

  • fx

    Terminal JSON viewer

    js anonymous functions are valid inputs to the tool.

    when the transformation turns to be more complex than exptected I can just copy and paste what I've made so far into a nodejs script.

    you can also configure a .fxrc file to automatically import npm packages that you might find useful, shortcuts, or your personal functions.

    [1] https://github.com/antonmedv/fx

  • up

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

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