CLI

Collections

  • The Art of Command Line
  • 🤖 just is a handy way to save and run project-specific commands.
  • Structured text tools - The following is a list of text-based file formats and command line tools for manipulating each.
  • ls-lint - An extremely fast directory and filename linter - Bring some structure to your project filesystem
  • mise-en-place - dev tools, env vars, task runner
  • Flox is a virtual environment and package manager all in one.
  • Terminal Text Effects
  • chezmoi - Manage your dotfiles across multiple diverse machines, securely.
  • dotenvx - a better dotenv–from the creator of dotenv.
    • run anywhere (cross-platform)
    • multi-environment
    • encrypted envs
  • Solarized - Precision colors for machines and people

Shell

  • try lets you run a command and inspect its effects before changing your live system. try uses Linux's namespaces (via unshare) and the overlayfs union filesystem.
  • atuin - ✨ Magical shell history
  • fish - the friendly interactive shell
    • pure.fish - Pretty, minimal, and fast prompt for Fish shell

Script

  • zx - A tool for writing better scripts using javascript

Features

  • Fig adds autocomplete to your terminal
  • Watchexec - Executes commands in response to file modifications

Reflex

Run a command when files change

I have been using reflex https://github.com/cespare/reflex for the same thing in some of our docker projects

+1 for reflex, love being able to have a config for development
Example .reflex.conf to run one command when an openapi spec changes and another when any go files change:

-g "spec.yaml" -- bash -c 'make'
-sr "\.go$" -- go run cmd/app/main.go

Then run it with:

reflex -d fancy -c .reflex.conf

Why you should use reflex instead

  • Reflex has no dependencies. No need to install Ruby or anything like that.
  • Reflex uses an appropriate file watching mechanism to watch for changes efficiently on your platform.
  • Reflex gives your command the name of the file that changed.
  • No DSL to learn -- just give it a shell command.
  • No plugins.
  • Not tied to any language, framework, workflow, or editor.

Viewer


Children
  1. 5 Modern Bash Scripting Techniques That Only A Few Programmers Know
  2. A list of new(ish) command line tools