Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

jorgebucaran/hydro

Ultra-pure, lag-free prompt with async Git status—just for Fish

jorgebucaran/hydro.json
{
"createdAt": "2019-01-20T05:55:04Z",
"defaultBranch": "main",
"description": "Ultra-pure, lag-free prompt with async Git status—just for Fish",
"fullName": "jorgebucaran/hydro",
"homepage": "",
"language": "Shell",
"name": "hydro",
"pushedAt": "2024-12-05T01:08:38Z",
"stargazersCount": 843,
"topics": [
"async",
"fish",
"fish-plugin",
"fish-prompt"
],
"updatedAt": "2025-11-24T02:21:33Z",
"url": "https://github.com/jorgebucaran/hydro"
}

Ultra-pure, lag-free prompt with async Git status. Designed only for Fish.

[]!(#hydro)

Install with Fisher:

Terminal window
fisher install jorgebucaran/hydro

One prompt symbol to rule them all. [Change it]!(#configuration)?

~ ❱ ⎢

Display Git branch name and status—prompt repaints asynchronously! ✨

~/p/hydro main ❱ touch Solution
~/p/hydro main• ❱ ⎢

indicates that there are staged, unstaged or untracked files.

Display how many commits ahead and/or behind you are of your upstream—prompt repaints asynchronously!

~/p/hydro main• ↓2 ❱ git commit -am Hotfix
~/p/hydro main ↑1 ↓2 ❱ git pull --rebase && git push
~/p/hydro main ❱ ⎢

Display $CMD_DURATION when > 1 second. [Configurable]!(#configuration).

~/p/hydro main ❱ git push --quiet
~/p/hydro main 1.1s ❱ ⎢

Display the last non-zero exit status (or statuses) using $pipestatus.

~/p/hydro main ❱ false
~/p/hydro main | 1 ❱ ⎢
~/p/hydro main ❱ true | false | false
~/p/hydro main | 0 1 1 ❱ ⎢

Truncate $PWD segments except for the basename and root of Git repos.

~ ❱ projects/hydro/
~/p/hydro ❱ functions/share/
~/p/hydro/f/share ❱ ⎢

Display the current bindings mode.

I ~Esc
N ~R
R ~ ❱ ⎢

Blazing fast would be an understatement considering that the LLVM repo has over 375,000 commits!

~/llvm-project main ❱ time fish_prompt
~/llvm-project main ❱
________________________________________________________
Executed in   79.00 micros    fish           external
   usr time   71.00 micros   71.00 micros    0.00 micros
   sys time    9.00 micros    9.00 micros    0.00 micros

Modify variables using set --universal from the command line or set --global in your config.fish file.

VariableTypeDescriptionDefault
hydro_symbol_startstringPrompt start symbol.
hydro_symbol_promptstringPrompt symbol.
hydro_symbol_git_dirtystringDirty repository symbol.
hydro_symbol_git_aheadstringAhead of your upstream symbol.
hydro_symbol_git_behindstringBehind of your upstream symbol.

Any argument accepted by set_color.

VariableTypeDescriptionDefault
hydro_color_pwdcolorColor of the pwd segment.$fish_color_normal
hydro_color_gitcolorColor of the git segment.$fish_color_normal
hydro_color_startcolorColor of the start symbol.$fish_color_normal
hydro_color_errorcolorColor of the error segment.$fish_color_error
hydro_color_promptcolorColor of the prompt symbol.$fish_color_normal
hydro_color_durationcolorColor of the duration section.$fish_color_normal
VariableTypeDescriptionDefault
hydro_fetchbooleanFetch git remote in the background.false
hydro_multilinebooleanDisplay prompt character on a separate line.false
VariableTypeDescriptionDefault
fish_prompt_pwd_dir_lengthnumericThe number of characters to display when path shortening. Set it to 0 to display only the topmost (current) directory.1
hydro_ignored_git_pathsstringsSpace separated list of paths where no git info should be displayed.""
hydro_cmd_duration_thresholdnumericMinimum command duration, in milliseconds, after which command duration is displayed.1000

[MIT]!(LICENSE.md)