How to remove (base) from terminal prompt after updating conda

anaconda, bash, conda, miniconda, terminal

Solution

Use the `base` env's activation hook

For each env, any scripts in the `etc/conda/activate.d` directory will be executed post-activation (likewise `etc/conda/deactivate.d` scripts for deactivation). If you add a script to remove the `(base)`, similar to @ewindes suggestion, you'll get the behavior you desire.

I had to create this directory for base, which is just the root of your Anaconda/Miniconda folder. E.g.,

mkdir -p miniconda3/etc/conda/activate.d

Then made a simple file in there (e.g., `remove_base_ps1.sh`) with one line:

PS1="$(echo "$PS1" | sed 's/(base) //') "

If you are using zsh, use this instead.

PROMPT=$(echo $PROMPT | sed 's/(base) //')

Launching a new shell then does not show `(base)`, and deactivating out of nested envs also takes care of the PS1 change.

Note: You must add quotes around $PS1 if you want to preserve ending spaces.

Problem

After updating miniconda3, whenever I open a terminal it shows "(base)" in front of my username and host. In this answer post https://askubuntu.com/a/1113206/315699 it was suggested to use ``` conda config --set changeps1 False ``` To remove it. But that would remove the indication for any conda environment. I would like to remove it only for the base one, so that I can maintain it always active and have access to its python and installed packages without having to always see this (base) taking up space.

Original source

Related problems