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!
- 🎯 Accurate results: Suggestions are verified before being prompted to the user, no
sudo
suggestions when you are usingdoas
! - ✏️ Easy to write rules: You don't need to know Rust. The rules are written in a TOML file!
- 🔩 Modular: TOML not your taste? Add sources using your favorite language with a custom module!
- 🤖 AI Support: AI module comes in aid when there is no rule for your error!
- 🪶 Tiny binary size: Not even 1MB for core features!
Please follow the instruction for your shell:
Bash / Zsh / Fish
Append the following line to your configuration file:
eval "$(pay-respects bash --alias)" eval "$(pay-respects zsh --alias)" pay-respects fish --alias | sourceArguments:
--alias [alias]
: Alias to a custom key, defaults tof
--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 output to your profile:
pay-respects pwsh --alias [<alias>] [--nocnf]
Or directly pipe the output to your profile:
pay-respects pwsh --alias [<alias>] [--nocnf] >> $PROFILE
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)
Environment variable configurations
_PR_LIB
: Directory of modules, analogous toPATH
. If not provided, search inPATH
or compile-time provided value._PR_PACKAGE_MANAGER
: Use defined package manager instead of auto-detecting alphabetically
You can now press F
to Pay Respects!
Install from your package manager if available:
Instructions for package managers
OS / Distribution Repository Instructions Arch Linux AUR paru -S pay-respects
(-bin
)Arch Linux (ARM) Arch Linux CN sudo pacman -S pay-respects
MacOS / Any timescam brew install timescam/homebrew-tap/pay-respects
NixOS / Any nixpkgs nix-env -iA nixos.pay-respects
Alternatively, install pre-built binaries from GitHub releases. An install script is available:
curl -sSfL https://raw.githubusercontent.com/iffse/pay-respects/main/install.sh | sh
Cargo / Compile from source (any OS/architecture supported by Rust)
This installation requires you to have Cargo (the Rust package manager) installed.
Install from crates.io, modules are optional
cargo install pay-respects cargo install pay-respects-module-runtime-rules cargo install pay-respects-module-request-ai
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 core cargo install --path module-runtime-rules cargo install --path module-request-ai
See the following pages:
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 with request-ai
module installed.
An API key is included with the source. It should always work unless I can no longer afford this public service or rate limits are reached. 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. Any OpenAI compatible URL can be used, e.g.:
https://api.openai.com/v1/chat/completions
(Note: OpenAI's ChatGPT is very slow)https://api.groq.com/openai/v1/chat/completions
_PR_AI_MODEL
: Model used_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: Default values for the respective variables above when not set
_DEF_PR_AI_API_KEY
_DEF_PR_AI_URL
_DEF_PR_AI_MODEL
If default values were not provided, pay-respects' own values will be used. Your request will be filtered to avoid abuse usages. Request will then be forwarded to a LLM provider that will not use your data for training.
Current option to write rules should cover most of the cases.
We need more rule files, contributions are welcomed!
Also see development status for contribution opportunities.
This project is hosted at various sites, choose the one that suits you best:
- Binaries: AGPL-3.0
- Core and modules
- Libraries: MPL-2.0
- Parser and utils