s/bash/zsh/g

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

Our great sponsors
  • OPS - Build and Run Open Source Unikernels
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • GitHub repo starship

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

    `fish` is amazing. I used to have a big old dotfiles repo, but nowadays I add starship[0] to my env and I'm pretty much good to go.

    On the non-interactive scripting front, I've found fish to be a very competent language for it, but you're right, the error handling (among other things) are lacking compared to "real" languages

    [0]: https://starship.rs

  • GitHub repo ohmyzsh

    🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.

    One still needs oh-my-fish, as one needs oh-my-zsh. So the setup time is 100% equal for fish and zsh.

    https://github.com/oh-my-fish/oh-my-fish

    https://github.com/ohmyzsh/ohmyzsh/ , https://ohmyz.sh/

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo oh-my-fish

    The Fish Shell Framework

    One still needs oh-my-fish, as one needs oh-my-zsh. So the setup time is 100% equal for fish and zsh.

    https://github.com/oh-my-fish/oh-my-fish

    https://github.com/ohmyzsh/ohmyzsh/ , https://ohmyz.sh/

  • GitHub repo bash-timestamping-sqlite

    bash commandline timestamping using a sqlite database for personal analytics, activity logging and auditing

    > I believe that using zsh means, for the vast majority of users, using just a small subset of functionality that gives a better UX when compared to Bash.

    What about adding only these functionalities you may care about?

    When I tried zsh, what I liked was the history search. Like youm Everything else "wasn't as simple as I expected".

    So I fixed my bash. Check https://github.com/csdvrx/bash-timestamping-sqlite :

    - stores everything into a sqlite database so 2 separate terminals can access each other history on the go

    - add extras details to the history like when the command started, stopped, which with return code, in which directory,

    - for accessing the history, uses fzy for fuzzy finding,

    - provides 2 separate history search context: either global (ctrl-t) or "this directory only" (ctrl-r), with extra goodies like excluding commands with a non-zero return error code thanks to the extra things saved

    I included a few examples of the SQL queries you can run.

  • GitHub repo zsh-syntax-highlighting

    Fish shell like syntax highlighting for Zsh.

    > But zsh doesn't even use readline, which is bananas to me. Sure, provide an alternative but at least support readline.

    Why? ZLE is what makes zsh compelling for users. It provides a high level of customizability into command line editing that is simply not possible with bash. It powers zsh's most touted completion feature as well as popular plugins such as zsh-syntax-highlighting[1] and zsh-autosuggestions[2]. Replacing it with readline would be a sure way to lose a majority of users in a blink of an eye.

    [1]: https://github.com/zsh-users/zsh-syntax-highlighting

    [2]: https://github.com/zsh-users/zsh-autosuggestions

  • GitHub repo zsh-autosuggestions

    Fish-like autosuggestions for zsh

    > But zsh doesn't even use readline, which is bananas to me. Sure, provide an alternative but at least support readline.

    Why? ZLE is what makes zsh compelling for users. It provides a high level of customizability into command line editing that is simply not possible with bash. It powers zsh's most touted completion feature as well as popular plugins such as zsh-syntax-highlighting[1] and zsh-autosuggestions[2]. Replacing it with readline would be a sure way to lose a majority of users in a blink of an eye.

    [1]: https://github.com/zsh-users/zsh-syntax-highlighting

    [2]: https://github.com/zsh-users/zsh-autosuggestions

  • GitHub repo powerlevel10k

    A Zsh theme

    https://github.com/romkatv/powerlevel10k claims to do this (and other things) while remaining extremely fast (apparently the dev was aiming to keep it below the threshold of human perception; not 100% sure that extends to all features or not)

  • 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.

  • GitHub repo zplug

    :hibiscus: A next-generation plugin manager for zsh

    Yes it is incredibly heavyweight, but it's very batteries-included in its approach, which helps zsh newbies get started.

    For those who want to shed the heavyweight omz stuff, I recommend zplug [0]

    [0] https://github.com/zplug/zplug

  • GitHub repo shfmt

    Dockernized shfmt. This formats shell script.

  • GitHub repo Batsh

    A language that compiles to Bash and Windows Batch

    Not really what you're asking for, but a language that compiles to bash for portability reminded me of Batsh [0], a C-like language that compiles to bash for Linux/Mac and batch for Windows.

    [0] https://github.com/batsh-dev-team/Batsh

  • GitHub repo volta

    Volta: JS Toolchains as Code. ⚡

    For folks who use nvm and find it slow, try out Volta[1]. It’s much faster, and IMO a lot nicer to use in general.

    1: https://volta.sh/

  • GitHub repo zsh-abbr

    The zsh manager for auto-expanding abbreviations, inspired by fish shell.

    I switched to fish for about six months, and recently went back to zsh when I realised that the three things I really liked about it (abbreviations, syntax highlighting and autosuggestions) were all doable in zsh with extensions [0]. (It feels pretty slow, even slower than say OMZ, but that's not such a big deal for me.)

    [0] https://github.com/olets/zsh-abbr

    https://github.com/zsh-users/zsh-syntax-highlighting

    https://github.com/zsh-users/zsh-autosuggestions

  • GitHub repo plugin-bang-bang

    Bash style history substitution for Oh My Fish

    The first thing in install with oh-my-fish is bang-bang, which fixes this issue for me.

    https://github.com/oh-my-fish/plugin-bang-bang

  • GitHub repo zgenom

    A lightweight and fast plugin manager for ZSH

    Or zgenom[0]. Or if you want to get ESPECIALLY froggy and async with your shell startup, zinit[1]. I ran zinit for years before moving to zgenom. A large swath of electron apps use some weird NPM library to “resolve” your shell environment by kicking up a full interactive shell and then reading the environment variables out of it. zinit messed with that and would hang a lot because of all it’s async loading.

    [0] https://github.com/jandamm/zgenom

  • GitHub repo zinit

    Flexible and fast Zsh plugin manager with clean fpath, reports, completion management, Turbo, annexes, services, packages.

  • GitHub repo linode-caddy

    Ansible role that sets up a web server running Caddy on Linode.

    I have to say, I use fish and I customize my prompt... is starship really necessary? I recognize starship is cross-shell, but if I standardize on installing fish on my machines, I'm not sure I need that feature.

    Is there a "killer app" for starship that you can't get from writing out your prompt in a fish shell script?

    Here's mine: https://github.com/maximum-ethics/linode-caddy/blob/master/r...

    It's a 3-line prompt with a timestamp on the first line, my [email protected] + pwd on the 2nd line, and the actual prompt with the cursor on the 3rd line. I'm now considering swapping the timestamp to the right side after that possibility was mentioned in other comments in this thread.

  • GitHub repo fzf-tab

    Replace zsh's default completion selection menu with fzf!

  • GitHub repo fish-shell

    The user-friendly command line shell.

    OK I actually looked it up (why not, I'm bored right now).

    It seems like it loads functions like sin, cos, ln and so on, but mainly it's a shortcut to make the scale larger [1].

    [1]: https://github.com/fish-shell/fish-shell/issues/4703

  • GitHub repo run-hidden

    run-hidden allows running console apps with hidden console window.

  • GitHub repo fishion

    fish shell sessions

    How would you normally do it? Because you can still put redefinitions of all the standard functions into a single file and load them with `.` as you would with other shells.

    There's also this package, which the author admits only allows "slight" customization, to implement sessions: https://github.com/farzadghanei/fishion

  • GitHub repo sh

    Python process launching

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