Pay Respects
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
sudosuggestions 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!

How to Pay Respects
Please follow the instruction for your shell:
Append the following line to your configuration file (
--aliasno longer required for v0.7+):|Arguments:
--alias [alias]: Alias to a custom key, defaults tof--nocnf: Disablescommand_not_foundhandler
Manual aliasing (REMOVED after v0.7):
Add the following output to your configuration file:
Or save it as a file:
|and source from your config file:
Append the following output to your profile:
pay-respects pwsh --alias [<alias>]
Or directly pipe the output to your profile:
pay-respects pwsh --alias [<alias>] >> $PROFILE
pay-respects only requires 2 environment variables to function:
_PR_SHELL: The binary name of the current working shell_PR_LAST_COMMAND: The last commandpay-respects echos back, if applicable, a
cdcommand that can be evaluated by the current working shell.
General example:
Following variables are not required, but can be used to reduce unnecessary operations:
_PR_ALIAS: A list of aliases to commands. Separated by newlines with zsh-like formatting, e.g.gc=git commit_PR_ERROR_MSG: Error message from the previous command.pay-respectswill rerun previous command to get the error message if absent_PR_EXECUTABLES: A space separated list of commands/executables.pay-respectswill search for$PATHif absent
_PR_LIB: Directory of modules, analogous toPATH. If not provided, search inPATHor compile-time provided value_PR_PACKAGE_MANAGER: Use defined package manager instead of auto-detecting alphabetically. Empty value disables package search functionality
_DEF_PR_PACKAGE_MANAGER: compile-time value
You can specify different modes to run with
_PR_MODE:
noconfirm: Execute suggestions without confirmecho: Print suggestions tostdoutwithout executingcnf: Used for command not found hookExample usage with
noconfirm:
You can now Press F to Pay Respects!
Installing
Install from your package manager if available:
OS / Distribution Repository Instructions Arch Linux AUR paru -S pay-respects(-bin)Arch Linux (ARM) Arch Linux CN sudo pacman -S pay-respectsMacOS / Any timescam brew install timescam/homebrew-tap/pay-respectsNixOS / Any nixpkgs nix-env -iA nixos.pay-respects
Alternatively, install pre-built binaries from GitHub releases. An install script is available:
|
This installation requires you to have Cargo (the Rust package manager) installed.
Install from crates.io, modules are optional
Clone from git and install, suitable for adding custom compile-time rules:
Configuration
See configuration.
Rules & Modules
See the following pages:
AI Integration
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.
You can disable it by setting _PR_AI_DISABLE:
An API key is included with the source (your distribution might have stripped them out). It should always work unless I can no longer afford this public service or rate limits are reached.
I don't track nor store anything. If it's useful to you, consider making a donation:
AI usages and API configurations
Contributing
Current option to write rules should cover most of the cases. We need more rules, contributions are welcomed!
There's also a roadmap for contribution opportunities.
This project is hosted at various sites, you can choose the one that you feel most comfortable with:
Licenses
- Binaries: AGPL-3.0
- Core and modules
- Libraries: MPL-2.0
- Parser and utils