PAY_RESPECTS(5)

πŸ“¦ version 0.8.8, in nixpkgs unstable

πŸ’… Creating a Module

okay bestie, welcome to PAY_RESPECTS(5) β€” the modules manual. There are 2 types of modules, and they are lowkey giving different energy:

  • Standard module β€” will always run to retrieve suggestions
    • Naming convention: _pay-respects-module-<priority>-<your module name>
  • Fallback module β€” will only be run if no previous suggestion were found
    • CAUTION: will immediately return if a suggestion is obtained
    • Naming convention: _pay-respects-fallback-<priority>-<your module name>

Priority is used to retrieve suggestions in a specific order after sorting. Default modules have a priority of 100, periodt ✨

When running your module, you will get the following environment variables:

  • _PR_SHELL β€” user shell
  • _PR_COMMAND β€” the command, without arguments
  • _PR_LAST_COMMAND β€” full command with arguments
  • _PR_ERROR_MSG β€” error message from the command
  • _PR_EXECUTABLES β€” a space ( ) separated list of executables in PATH. Limited to 100k characters, empty if exceeded.

Your module should print:

  • To stdout: only suggestions.
    • At the end of each suggestion, append <_PR_BR> so pay-respects knows you are either done or adding another suggestion.
  • To stderr: any relevant information that should display to the user (e.g, warning for AI generated content).

An example of a shell based module that always suggest adding a sudo or doas:

#!/bin/sh
echo "sudo $_PR_LAST_COMMAND"
echo "<_PR_BR>"
echo "doas $_PR_LAST_COMMAND"

🌈 Adding a Module

Expose your module as executable (chmod u+x) in PATH, and done! slay 🫢

🧚 LIB directories

If exposing modules in PATH annoys you, you can set the _PR_LIB environment variable to specify directories to find the modules, separated by : or ; (analogous to PATH):

Example in a FHS 3.0 compliant system:

# compile-time
export _DEF_PR_LIB="/usr/lib"
# runtime
export _PR_LIB="/usr/lib:$HOME/.local/share"

Example in Windows/DOS compliant systems:

$env:_PR_LIB = @(
  (Join-Path $env:APPDATA "pay-respects" "modules"),
  (Join-Path $env:USERPROFILE ".cargo" "bin")
) -join ';'

πŸ‘€ SEE ALSO

pay-respects-rules(5), pay-respects(1)

πŸ’– AUTHORS

iff. β€” that's the author, periodt πŸ’…

this page is pay-respects 0.8.8, dated April 2026, and it lives under PAY_RESPECTS(5) β€” bye bestie, go make a module πŸŽ€

πŸ“¦ where this page comes from