Configure Your Shell
After installing poof, it's necessary to add its bin directory to $PATH.
Automatically
Via poof itself by running:
poof enable
Then reload your shell.
You can safely re-run poof enable. It will detect the existing line and do nothing if it's already present.
Manually
Add the following command to your shell configuration:
poof init --shell <shell>
Replace <shell> with one of the supported shells:
bashzshfishelvishnushellpowershellxonsh
Supported Shells
Bash
# Add the following to ~/.bashrc or ~/.bash_profile
eval "$(poof init --shell bash)"
# Then reload your shell config
source ~/.bashrc
Zsh
# Add the following to ~/.zshrc
eval "$(poof init --shell zsh)"
# Then reload your shell config
source ~/.zshrc
Fish
# Add the following to ~/.config/fish/config.fish
poof init --shell fish >> ~/.config/fish/config.fish
# Then reload your shell config
source ~/.config/fish/config.fish
Documentation: fish_add_path
Elvish
# Add the following to ~/.config/elvish/rc.elv
eval (poof init --shell elvish)
# Then reload your shell config
use rc; rc:reload
Documentation: Elvish PATH Management
Nushell
# Run the following to add to ~/.config/nushell/env.nu (for environment variables)
poof init --shell nushell >> ~/.config/nushell/env.nu
# Then restart your shell or run
source ~/.config/nushell/env.nu
Documentation: Nushell Environment Variables
PowerShell
# Add the following to PowerShell profile
# typically `~/.config/poweshell/Microsoft.PowerShell_profile.ps1` on Linux/macOS
# and `$env:HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` on Windows
Add-Content $PROFILE 'Invoke-Expression (& poof init --shell powershell)'
# Then reload your profile
. $PROFILE
Notes:
- PowerShell uses semicolons (
;) as PATH separators on all platforms. - PowerShell uses
Invoke-Expression(oriex) instead ofeval, and&for command invocation.
Documentation: PowerShell Environment Variables
Xonsh
# Add the following to ~/.xonshrc
poof init --shell xonsh >> ~/.xonshrc
# Then reload your shell config
source ~/.xonshrc
Documentation: Xonsh Cheatsheet
Verification
After adding the init script to your shell configuration, verify that poof is in your PATH:
poof --help
Conditional PATH addition
To avoid adding the poof directory if poof is not installed, you can add a conditional check in your shell config:
Bash
if command -v poof > /dev/null 2>&1; then
eval "$(poof init --shell bash)"
fi
Zsh
if command -v poof > /dev/null 2>&1; then
eval "$(poof init --shell zsh)"
fi
Additional Notes
- The
poof initcommand detects the poof bin directory automatically based on your system configuration - All shells prepend the poof bin directory to PATH, ensuring poof-installed binaries take precedence over system binaries
- Changes to shell configuration only affect new shell sessions; existing sessions need to reload the configuration
Troubleshooting
PATH not updated after adding init script
Please:
- Make sure you've reloaded your shell configuration:
- Bash/Zsh:
source ~/.bashrcorsource ~/.zshrc - Fish:
source ~/.config/fish/config.fish - Or simply restart your terminal
- Bash/Zsh:
- Check if the init script was added correctly to your config file.
Duplicate PATH entries
If you accidentally added the init script multiple times, you may have duplicate PATH entries. To fix:
- Edit your shell configuration file
- Remove duplicate lines
- Reload your shell configuration
Permission issues
If binaries aren't executable:
chmod +x ~/.local/share/poof/bin/*
See Also
- poof README - Main project documentation
- Shell-specific documentation (linked throughout this guide)