# Quickstart ## What is this? `conda spawn` is a replacement subcommand for the `conda activate` and `conda deactivate` workflow. Instead of writing state to your current shell session, `conda spawn -n ENV-NAME` starts a new shell with your activated environment. To deactivate, exit the process with Ctrl+D, or run the command `exit`. The typical workflow looks like this: ```bash ~ $ which python python not found ~ $ which conda /Users/user/Miniforge/condabin/conda ~ $ conda spawn -n base (base) ~ $ which python /Users/user/Miniforge/bin/python (base) ~ $ python my_project.py working ... ok! (base) ~ $ export VAR=1 (base) ~ $ echo $VAR 1 (base) ~ $ exit ~ $ echo $VAR ~ $ ``` As you can see, variables set during the `spawn`ed shell session do not leak in the parent session once closed with `exit`. If you have used `poetry shell` or `pixi shell`, this is essentially the same but for `conda`. ## Installation This is a `conda` plugin and goes in the `base` environment: ```bash conda install -n base conda-forge::conda-spawn ``` After this, you might want to {ref}`shell-cleanup`. ## Usage To activate an environment named `my-project`: ```bash conda spawn -n my-project ``` To deactivate, exit the process with Ctrl+D, or run the command `exit`. ## Why? The main reasons include: - Cleaner shell interaction with no need for a `conda` shell function. - Avoid messing with existing shell processes. - Faster shell startup when `conda` is not needed. - Simpler installation and bookkeeping. Do you want to learn more? Head over to {doc}`why`.