An environment switcher for the shell to unclutter your .profile
direnv is an environment switcher for the shell. It knows how to hook into bash, zsh, tcsh, fish shell and elvish to load or unload environment variables depending on the current directory.
This allows project-specific environment variables without cluttering your ~/.profile
(or ~/.bashrc
/etc).