Typed a wrong command or don't know what to do? Pay Respects will suggest a fix to your console command by simply pressing F
!
- 🚀 Blazing fast suggestion: You won't notice any delay for asking suggestions!
- ✏️ Easy to write rules: You don't need to know Rust. The rules are written in a TOML file!
- 🎯 Accurate results: Suggestions are verified before being prompted to the user, no
sudo
suggestions when you are usingdoas
! - 🤖 AI Support: AI comes in aid when there is no rule for your error!
- 🪶 Tiny binary size: Not even 1MB! Approximately 1MB with all optional features!
Please follow the instruction for your shell:
Bash / Zsh / Fish
Auto aliasing (optional custom alias can be added after
--alias
):eval "$(pay-respects bash --alias)" eval "$(pay-respects zsh --alias)" pay-respects fish --alias | sourceAdditional arguments:
--nocnf
: Disablescommand_not_found
handler
Manual aliasing (deprecated, do not use):
alias f="$(pay-respects bash)" alias f="$(pay-respects zsh)" alias f="$(pay-respects fish)"
Nushell
Add the following output to your configuration file:
pay-respects nushell [--alias <alias>]
Or save it as a file:
pay-respects nushell [--alias <alias>] | save -f ~/.pay-respects.nuand source from your config file:
source ~/.pay-respects.nu
PowerShell
Append the following to your profile:
pay-respects pwsh [--alias <alias>] [--nocnf] [>> $PROFILE] # use the pipe to directly append it to your profile if you like
Custom initialization for arbitrary shell
pay-respects only requires 2 environment variables to function:
_PR_SHELL
: The binary name of the current working shell._PR_LAST_COMMAND
: The last command.pay-respects echos back, if applicable, a
cd
command that can be evaluated by the current working shell.
General example:
eval $(_PR_SHELL=sh _PR_LAST_COMMAND="git comit" pay-respects)
You can now press F
to Pay Respects!
Install from your package manager if available:
For Arch Linux / Arch Linux ARM users, you can install from Arch Linux CN Repository:
sudo pacman -S pay-respects
Or install compiled binaries from GitHub releases with the install script:
curl -sSfL https://raw.githubusercontent.com/iffse/pay-respects/main/install.sh | sh
Compile from source (any OS/architecture)
This installation requires you to have Cargo (the Rust package manager) installed.
Install from crates.io, features are optional
cargo install pay-respects --all-features
Clone from git and install, suitable for adding custom compile-time rules:
git clone --depth 1 https://github.com/iffse/pay-respects cd pay-respects cargo install --path .
Features:
runtime-rules
: Read rules in runtimerequest-ai
: Request AI for suggestionlibcurl
: Dynamically linklibcurl
for requests, which requires openssl at compile time
- Only matters to package maintainers, as by turning it off gives fewer headaches when cross-compiling
See writing rules for how to write rules.
Disclaimer: You are using AI generated content on your own risk. Please double-check its suggestions before accepting.
AI suggestions should work out of the box unless rate limit has reached. Bring your own API keys to avoid it.
If it's useful to you, please share this project and spread the word. Also consider making a donation to keep its public usage alive:
AI and API Configuration
Configuration is done via environment variables:
_PR_AI_API_KEY
: Your own API key_PR_AI_URL
: URL used. Defaults tohttps://api.groq.com/openai/v1/chat/completions
_PR_AI_MODEL
: Model used. Defaults tollama3-8b-8192
_PR_AI_DISABLE
: Setting to any value disables AI integration_PR_AI_LOCALE
: Locale in which the AI explains the suggestion. Defaults to user system locale
Compile time variables:
_DEF_PR_AI_API_KEY
: Default API key, included in compile-time
Current option to write rules should cover most of the cases.
We need more rule files, contributions are welcomed!
This project is hosted at various sites, choose the one that suits you best: