Let's talk CLI/TUI and Developer Workflows!
I’m looking to refresh my local toolkit and I’m curious: what are the absolute "must-have" CLI or TUI programs in your current rotation?
Whether it's a specialized utility for a specific language, a terminal-based interface for a common service, or a workflow-changing alias, I want to hear about it. I’m especially interested in tools that prioritize keyboard-driven navigation and accessibility.
My Current Favorites:
To get the ball rolling, here are a few tools I’ve been leaning on lately:
- uv — Fast, reliable Python package and project management.
- fzf & ripgrep — The classic duo for fuzzy finding and searching.
- tmux — For session management and persistent terminal workspaces.
- jq / yq — Essential for wrangling JSON and YAML without leaving the prompt.
What about you?
- What is one tool you've discovered recently that you can't live without?
- Are there any TUI-based clients for web services (like Mastodon, GitHub, or RSS) that you recommend?
- Do you have a favorite "hidden gem" script or small utility?
Mentions & Groups
@programming
@linux @terminal_u_i@lemmy.ml @selfhosted
Hashtags
#CLI #TUI #Terminal #OpenSource #FOSS #Programming #DevTools #Linux #SysAdmin #Workflow #Python #Backend #ArchLinux #KeyboardDriven #Accessibility #SoftwareDevelopment #TechTalk
@RareBird15 @programming @linux @selfhosted
Ones I haven't seen mentioned (unless it came in while I was typing this).
https://github.com/kainctl/isd - Interactive systemd.
https://github.com/zellij-org/zellij - tmux alternative. Built in which-key functionality. I initially switched to it because I like large scrollback buffers and tmux was super slow at resizing window panes. Can open buffers in nvim for better search. Nicer TUI if you don't mind a little bloat / bling.
https://github.com/arxanas/git-branchless - Work on stacked commits. Instead of opening PRs linerally you work on several commits at once with the expectation each commit will be a PR. Promotes smaller PRs that are easier to review to complete a feature. Often when doing that linerally you may discover a bad choice made earlier and have to reverse course and refactor. With a branchless workflow you go back and forth on commits so the final stack of PRs doesn't include those reverse course refactors.
git slhas some nice TUI graphs of your stack.https://github.com/mystor/git-revise - Split, rearrange commits. Works nicely with git-branchless.
https://github.com/tummychow/git-absorb - Reflect changes from a commit backwards. Also works well with a branchless workflow.
If I'm honest I just develop linerally and use an AI agent/skill to restack using the 3 programs above to erase pivot / refactor points and to group logical blocks into an easy to review PR.
https://github.com/ymtdzzz/otel-tui - Open Telemetry viewer.
https://github.com/brocode/fblog - JSON Lines viewer.
https://github.com/aristocratos/btop - Better top.
https://github.com/jandedobbeleer/oh-my-posh - Terminal prompt. My daily driver.
https://starship.rs/ - Another terminal prompt. Played with a little but never got around to giving it my full attention to match my oh-my-posh setup.
https://rclone.org/ - Remote backups using my own encryption key. Supports many cloud providers.
https://github.com/Mic92/nix-fast-build - Not sure its really faster but has a nicer TUI.
https://dircolors.com/ - Directory listing colors in terminal output to better distinguish file types. At a glance I can distinguish read-only, executables, symlinks, directories, etc.
https://github.com/jesseduffield/lazygit - Git TUI. I only use in neovim though, don't think I've ever run it directly.
https://github.com/sindrets/diffview.nvim - Better merge conflict handling in neovim.
https://www.lazyvim.org/ - Base neovim config with lots of TUI sugar.
https://github.com/stevearc/oil.nvim - File tree explorer in neovim with editing capabilities. Hands down the most efficient way I've found to normallize torrent file names. Fixing 5+ seasons of a show takes a few minutes if you know the right vim keybinds.
https://github.com/getsops/sops / https://github.com/mic92/sops-nix - Encrypt secrets in git repos.
https://github.com/zdharma-continuum/fast-syntax-highlighting - Syntax highlighting as you type shell commands.
https://github.com/luccahuguet/yazelix - Opinionated Yazi, Helix, Zellij setup with custom patches to integrate. Looks interesting but could never get to work with nix as it keeps trying to write to store paths. They even have a flake.nix in the repo...
less - Less shitty more (terminal pager) with the options below.
https://pnpm.io/ - Better monorepo support than npm. Faster too. Easy to patch dependencies.
https://bun.sh/ / https://deno.com/ - Alternate node runtimes. Only have used bun, but its a faster cold start and uses less memory.
https://oxc.rs/docs/guide/usage/linter.html - eslint clone in rust. Seconds versus minutes. Uses the golang TypeScript 7 preview version of typescript-eslint for type checking.
https://rolldown.rs/ - Rust clone of the rollup JS/TS bundler.
https://ast-grep.github.io/ - Grep AST patterns. Written in rust.
https://dprint.dev/ - Formatter that unifies other formatters. Lots of fast rust plugins.
https://biomejs.dev/ - Rust based node formatter. dprint support.
https://github.com/astral-sh/ruff - Rust based python linter and formatter. dprint support.
https://github.com/numtide/treefmt - Like dprint, forwards to other formatters, but intended for nix declarative setups (for use with devshell or devenv).
https://direnv.net/ / https://github.com/nix-community/nix-direnv - Activate a virtual environment when you enter a directory. Common with nix devshell/devenv but can run any command. Auto reload based on certain files via watch patterns.
https://github.com/mikesart/inotify-info - Debug why you've maxed out file watchers.
https://github.com/lyonel/lshw / https://github.com/pciutils/pciutils - Detailed hardware info.
https://github.com/wagoodman/dive - TUI to explore docker layers.
https://github.com/containers/skopeo - Bunch of utilities for working with docker images and registries.
Great list! I’m trying out oxc instead of biome right now. Based on your git tools I recommend you check out jj
Thanks for sharing! I will have to try this out on a project. Matches many of my own workflow habits, and more importantly, how I train devs on my team. Commit often, don't care if its broken, the pipeline will fix the history. They can truly stump me with how they get into the train wrecks they find themselves in. Committing conflicts sounds like a super power to help them out.