My ultimate shell setup with Fish shell and Tmux

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

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • direnv

    unclutter your .profile

  • > The main inconvenience of fish is not even having to go into another shell for some tasks like virtual env activation

    For stuff like "in this directory, I want this virtual env activated", I'd recommend using direnv.

    https://direnv.net/

    > wondering whether some command you just ran silently did something wrong because of shell incompatibility

    I don't recall running into silent incompatibities. Do you have examples in mind?

    Although, yeah, you can't just copy-paste most sh/bash snippets into fish.

  • tide

    🌊 The ultimate Fish prompt. (by IlanCosman)

  • > The main inconvenience of fish is not even having to go into another shell for some tasks like virtual env activation, but wondering whether some command you just ran silently did something wrong because of shell incompatibility.

    I have the impression that you just overlook all the rest of the things that can go wrong when using Bash, because you are simply used to it, you know it and you know how it will behave.

    > Also, I wonder how fast is OMF compared to Starship?

    Those are two total different projects that do not conflict at all. Personally, during my hypomania on Fish (yup), I didn't even use OMF, but added things manually and only those really needed, so that there was as little code to to maintain as possible. Fish does not have a huge number of scripts, plug-ins. If Starship is too slow for you, you might like tide. I found nothing more interesting, after which I returned to Starship anyway, but it's really fast.

    https://github.com/IlanCosman/tide

    Perhaps you don't need something faster than Starship, just to configure Fish in such a way that it cleans itself of garbage and runs asynchronously?

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • starship

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

  • I used to do that very custom setup for a few years... Lately I've settled for https://starship.rs/ doesn't matter the shell the experience is the same. I find it difficult sometimes to use loops or variable creation on fish, so jumping to bash real quick without changing experience is so convenient... Another thing I don't like is that if I create a one liner at work to process batches of files/hosts in fish, then I must translate that to bash in wikis, otherwise people would be forced to use fish to replicate...

  • fzf-tab

    Replace zsh's default completion selection menu with fzf!

  • Here is another great plugin that pairs nicely with the above.

    https://github.com/Aloxaf/fzf-tab

  • sponge

    🧽 Clean fish history from typos automatically (by meaningful-ooo)

  • I like https://github.com/meaningful-ooo/sponge

    > Sponge quietly runs in the background and keeps your shell history clean from typos, incorrectly used commands and everything you don't want to store due to privacy reasons.

  • osetup

  • fish-shell

    The user-friendly command line shell.

  • What broke fish for me is behaviour bugs. e.g https://github.com/fish-shell/fish-shell/issues/1786 but there are more that makes it a no go for me.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • dot-git

    Discontinued Managing your dotfiles the Git Way™ (by cassepipe)

  • I personnally use Wez's Terminal (Wezterm: https://wezfurlong.org/wezterm/) because it is both a capable terminal and a capable multiplexer and I like to have one less layer to care about.

    One thing I personally like very much is that it supports a command line tab and pane navigation/management : https://github.com/cassepipe/dot-git/blob/8b300524021cc74f67...

  • wezterm

    A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

  • I personnally use Wez's Terminal (Wezterm: https://wezfurlong.org/wezterm/) because it is both a capable terminal and a capable multiplexer and I like to have one less layer to care about.

    One thing I personally like very much is that it supports a command line tab and pane navigation/management : https://github.com/cassepipe/dot-git/blob/8b300524021cc74f67...

  • bass

    Make Bash utilities usable in Fish shell

  • Use bass to drop down to bash from fish :)

    https://github.com/edc/bass

  • alacritty

    A cross-platform, OpenGL terminal emulator.

  • yash

    Yet another shell

  • For the ones that love a more lightweight setup I recommend yash [0].

    It is more lightweight than zsh, fish, or bash and comes with a decent auto-completion and line prediction a-la fish.

    I was previously a zsh user. I already tried fish, however, its non-POSIX-compliant was a hard stop for me at the time.

    [0] https://yash.osdn.jp

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