direnv is a Go program that hooks into the shell that allows per directory variables and arbitrary scripts to be run on cd into the directory. This is particularly useful in programming projects where you may want to set up environmental variables or the execution environment (e.g. switching Ruby/Python/javascript version).