Directory-based environments.
Shell Python Makefile
Latest commit 644903c Jun 20, 2016 @kennethreitz committed on GitHub Merge pull request #108 from c960657/patch-1


Autoenv: Directory-based Environments

Magic per-project shell environments. Very pretentious.

What is it?

If a directory contains a .env file, it will automatically be executed when you cd into it.

This is great for...

  • auto-activating virtualenvs
  • project-specific environment variables
  • making millions

Foreman env files are completely compatible.

You can also nest envs within eachother. How awesome is that!?


Follow the white rabbit:

$ touch project/.env
$ echo "echo 'woah'" > project/.env
$ cd project


Install it easily:

Mac OS X Using Homebrew

$ brew install autoenv
$ echo 'source /usr/local/opt/autoenv/' >> ~/.bash_profile

Using pip

$ pip install autoenv
$ echo "source `which`" >> ~/.bashrc

Using git

$ git clone git:// ~/.autoenv
$ echo 'source ~/.autoenv/' >> ~/.bashrc


Autoenv overrides cd. If you already do this, invoke autoenv_init within your custom cd after sourcing

Autoenv can be disabled via unset cd if you experience I/O issues with certain file systems, particularly those that are FUSE-based (such as smbnetfs).


Install the test runner:

$ make
gem install dtf --version 0.1.2
Successfully installed dtf-0.1.2


$ make test
dtf tests/*
##### Processed commands 14 of 14, success tests 12 of 12.