Skip to main content


The proto setup command will setup proto in your current shell by modifying an applicable profile file and appending proto's bin directory to PATH. If a shell could not be detected, you'll be prompted to select one.

$ proto setup

During setup, the following profiles will be searched or prompted for.

  • Bash
    • ~/.bash_profile
    • ~/.bashrc
    • ~/.profile
  • Elvish
    • ~/.elvish/rc.elv
    • ~/.config/elvish/rc.elv
  • Fish
    • ~/.config/fish/
  • Ion
    • ~/.config/ion/initrc
  • Murex
    • ~/.murex_preload
    • ~/.murex_profile
  • Nu
    • ~/.config/nushell/
    • ~/.config/nushell/
  • PowerShell
    • Windows
      • ~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
      • ~\Documents\PowerShell\Profile.ps1
    • Unix
      • ~/.config/powershell/Microsoft.PowerShell_profile.ps1
      • ~/.config/powershell/profile.ps1
  • Xonsh
    • ~/.config/xonsh/rc.xsh
    • ~/.xonshrc
  • Zsh
    • ~/.zprofile
    • ~/.zshenv
    • ~/.zshrc

Windows support

In addition to updating a shell profile file (most likely PowerShell), we'll also modify the PATH (or Path) system environment variable, by prepending the ~/.proto/shims and ~/.proto/bin paths.

If you would like to opt-out of this behavior, pass the --no-modify-path flag.


  • --shell - Shell to explicitly setup for.
  • --no-modify-profile - Don't update a shell profile file.
  • --no-modify-path - Don't update the system PATH environment variable (Windows only).
  • --yes - Avoid interactive prompts and use defaults.