Is it possible to source a shell file when entering a directory, and unsource it when I leave? I.e. certain project directories would be really useful to autoload some command aliases, but only in that context.
You can define precmd or preexec hook function to setup such customization. Not sure which one is better in your case. So if the command is cd or chdir, do something you want. The cmdline is a single arg that will be passed to your hook function so you need to do some parsing.