jorgebucaran/hydro
{ "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.
Installation
Section titled “Installation”Install with Fisher:
fisher install jorgebucaran/hydroFeatures
Section titled “Features”One prompt symbol to rule them all. Change it?
~ ❱ ⎢
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.
~/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 ~ ❱ ⎢
Performance
Section titled “Performance”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
Configuration
Section titled “Configuration”Modify variables using set --universal from the command line or set --global in your config.fish file.
Symbols
Section titled “Symbols”| Variable | Type | Description | Default |
|---|---|---|---|
hydro_symbol_start | string | Prompt start symbol. | |
hydro_symbol_prompt | string | Prompt symbol. | ❱ |
hydro_symbol_git_dirty | string | Dirty repository symbol. | • |
hydro_symbol_git_ahead | string | Ahead of your upstream symbol. | ↑ |
hydro_symbol_git_behind | string | Behind of your upstream symbol. | ↓ |
Colors
Section titled “Colors”Any argument accepted by
set_color.
| Variable | Type | Description | Default |
|---|---|---|---|
hydro_color_pwd | color | Color of the pwd segment. | $fish_color_normal |
hydro_color_git | color | Color of the git segment. | $fish_color_normal |
hydro_color_start | color | Color of the start symbol. | $fish_color_normal |
hydro_color_error | color | Color of the error segment. | $fish_color_error |
hydro_color_prompt | color | Color of the prompt symbol. | $fish_color_normal |
hydro_color_duration | color | Color of the duration section. | $fish_color_normal |
| Variable | Type | Description | Default |
|---|---|---|---|
hydro_fetch | boolean | Fetch git remote in the background. | false |
hydro_multiline | boolean | Display prompt character on a separate line. | false |
| Variable | Type | Description | Default |
|---|---|---|---|
fish_prompt_pwd_dir_length | numeric | The number of characters to display when path shortening. Set it to 0 to display only the topmost (current) directory. | 1 |
hydro_ignored_git_paths | strings | Space separated list of paths where no git info should be displayed. | "" |
hydro_cmd_duration_threshold | numeric | Minimum command duration, in milliseconds, after which command duration is displayed. | 1000 |
License
Section titled “License”[MIT]!(LICENSE.md)
