HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
edc
bass
Python2015–2024
edc / bass

bass

Make Bash utilities usable in Fish shell

25Distinct people
29Mentions
0Explicit recommenders
2.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Make Bash utilities usable in Fish shell

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 10:01:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year29 dated mentions

Observed mentions: 2015-03-16 06:22:07 UTC to 2024-07-31 16:01:26 UTC.

02462015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC202
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC202
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC303
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC404
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC413
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC606
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC505
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC312

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Bass Bass makes it easy to use utilities written for Bash in fish shell. Regular bash scripts can be used in fish shell just as scripts written in any language with proper shebang or explicitly using the interpreter (i.e. using bash script.sh). However, many utilities, such as virtualenv, modify the shell environment and need to be sourced, and therefore cannot be used in fish. Sometimes, counterparts (such as the excellent virtualfish) are created, but that's often not the case. Bass is created to make it possible to use bash utilities in fish shell without any modification. It works by capturing what environment variables are modified by the utility of interest, and replay the changes in fish. You might not need Bass for simple use cases. A great simple alternative (suggested by @jorgebucaran) is to just use exec bash -c "source some-bash-setup.sh; exec fish". Installation Bass is compatible with fish versions 2.6.0 and later. Manually Use the Makefile. make install will copy two files to ~/.config/fish/functions/. make uninstall will remove those two files. Relaunch the shell for the change to take effect. With Oh My Fish omf install bass With Fisher fisher install edc/bass With Fundle Add fundle plugin 'edc/bass' to your fish config, relaunch the shell and run fundle install. Example Bass is simple to use. Just prefix your bash utility command with bass: > bass export X=3 > echo $X 3 Notice that export X=3 is bash syntax. Bass "transported" the new bash environment variable back to fish. Bass has a debug option so you can see what happened: > bass -d export X=4 # updating X=3 -> 4 set -g -x X 4 nvm Here is a more realistic example, using the excellent nvm: > bass source ~/.nvm/nvm.sh --no-use ';' nvm use iojs Now using io.js v1.1.0 Note that semicolon is quoted to avoid being consumed by fish. This example takes advantage of the nvm bash utility to switch to iojs. After the command, iojs is accessible: > which iojs /Users/edc/.nvm/versions/io.js/v1.1.0/bin/iojs You can then very easily pack the command as a function and feel more at home: > funced nvm nvm> function nvm bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv end > nvm list -> iojs-v1.1.0 system > nvm ls-remote v0.1.14 v0.1.15 > funcsave nvm ... (--no-use is an important option to nvm.sh. See #13 for background.)
Read the full README on GitHub

What Hacker News says

4 sources
Where things get problematic is with commands that send a set of environment variables to stdout, like eval $(ssh-agent) Sure you can get addons (like bass[0]) that will translate the sh environment variable settings to fish, but it’s a pain to have to do that (and remember wth it was called). [0] https://github.com/edc/bass
In Why Create a New Unix Shell?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.