website/docs/proto/commands/shell.mdx
import VersionLabel from '@site/src/components/Docs/VersionLabel';
<VersionLabel version="0.54.0" header />The proto shell <tools...> (or proto sh, proto session) command will initialize a list of
tools into the environment and start an interactive shell session with that environment active.
$ proto shell node@20 npm@10
Tools will automatically detect a version to launch with based on loaded .prototools, but the
version can be provided inline by suffixing the tool with @<version>. If no tools are provided,
the list will be inherited from the current .prototools configuration.
$ proto shell node pnpm
This is effectively a convenience wrapper around proto exec that launches an interactive
shell instead of an arbitrary command. Inside the session, all configured environment variables and
PATH modifications for the provided tools are active.
By default, the current shell is detected and reused. To start a different shell, pass --shell
with the shell name.
$ proto shell node@20 --shell fish
[tools...] - List of tool identifiers with optional version. If omitted, tools are inherited
from .prototools configs.--shell - Shell to start an interactive session for (e.g. bash, pwsh).