A Fish shell plugin that runs prompt functions asynchronously to improve terminal responsiveness.
fish-async-prompt is a Fish shell plugin that makes prompt rendering asynchronous by executing prompt functions in separate processes. It solves the problem of terminal lag when using complex or slow prompt functions, ensuring the shell remains responsive while prompts update in the background.
Fish shell users who experience sluggish terminal performance due to computationally intensive or slow-loading prompt functions, particularly those with custom prompts showing Git status, directory trees, or external API data.
Developers choose this plugin because it eliminates prompt-induced lag without requiring them to simplify their prompt logic, offering configurable loading indicators and fine-grained control over which functions run asynchronously.
Make your prompt asynchronous to improve the reactivity.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs prompt functions in separate processes to prevent blocking, ensuring shell responsiveness even with slow computations like Git status checks, as demonstrated in the key features and demo.
Allows setting custom indicators like '…' or grayed-out previous prompts via functions like `fish_prompt_loading_indicator`, with detailed examples and images in the README.
Supports asynchronizing any function called from the prompt through the `async_prompt_functions` variable, enabling granular control over what runs in the background.
Permits changing the internal signal from default SIGUSR1 to SIGUSR2 via configuration, helping avoid conflicts with other plugins or programs.
Configuration changes necessitate a full shell restart to take effect, which is inconvenient for iterative tuning and highlighted in the 'Other Configurations' section.
Functions specified in `async_prompt_functions` cannot receive arguments, restricting asynchronous execution to prompt logic without dynamic inputs, as noted in the documentation.
Incorrect setup of the `async_prompt_disown` flag can cause 'There are still jobs active' errors during shell exit, requiring careful handling as documented in issue #67.