activate
The proto activate <shell>
command will activate proto for the current shell session, by exporting
environment variables and prepending PATH
for each tool configured in the current directory.
Activation is ran each time the current directory changes using a shell hook.
Learn more about shell activation in the official workflow documentation!
Arguments
<shell>
- The shell to activate for.
Options
--export
- Print the activate instructions in shell-specific syntax.--json
- Print the activate instructions in JSON format.--no-bin
- Do not include~/.proto/bin
when appendingPATH
.--no-shim
- Do not include~/.proto/shims
when prependingPATH
.--on-init
- Trigger activation when initialized in the shell, instead of waiting for a cd/prompt change. v0.43.0
Caveats
- Only tools that have a version configured in
.prototools
will be activated. - Tool versions configured in the global
~/.proto/.prototools
are not included by default. Pass--config-mode all
during activation to include them.- Do note that this will worsen performance depending on the number of tools.
- Activation is only applied after changing directories and not when a new shell session is
started, unless the
--on-init
argument is passed.
Setup
The following activation steps should be added after all environment variable and PATH
modifications have happened in your shell, typically at the end of your shell profile.
Any PATH
modifications after proto activate
will be lost when activation triggers. This
happens because we take a snapshot of PATH
when executed from your shell, and reset PATH
on each
activation to the snapshot. To avoid this problem, modify PATH
before proto activate
.
Bash
Add the following line to the end of your ~/.bashrc
or ~/.bash_profile
.
eval "$(proto activate bash)"
Elvish
Generate the hook:
proto activate elvish > ~/.elvish/lib/proto-hook.elv
Then add the following line to your ~/.elvish/rc.elv
file.
use proto-hook
Fish
Add the following line to the end of your ~/.config/fish/config.fish
.
proto activate fish | source
Murex
Add the following line to the end of your ~/.murex_profile
.
proto activate murex -> source
Nu
Generate the hook:
(proto activate nu) | save ~/.config/nushell/proto-hook.nu
Then add the following line to your ~/.config/nushell/config.nu
file.
use proto-hook.nu
Pwsh
Add the following line to the end of your profile ($PROFILE
).
Invoke-Expression "$(proto activate pwsh)"
Zsh
Add the following line to the end of your ~/.zshrc
.
eval "$(proto activate zsh)"