# envrc.el

envrc.el is an Emacs package that uses direnv to set per-project environment variables on a per-buffer basis, so processes launched from different projects' buffers pick up each project's own environment.

envrc.el integrates direnv with Emacs so that per-directory or per-project environment variables, defined in a project's .envrc file, are applied to individual buffers rather than to the whole Emacs process. Working across multiple projects with different .envrc files means each buffer's processes run with that project's own variables, letting different tool or linter versions coexist across projects.

This differs from the similar direnv.el package, which repeatedly changes Emacs's global environment based on the current buffer; envrc.el instead sets and stores the right environment as a buffer-local variable, and has earlier TRAMP support. It installs via MELPA or by downloading a release, and is enabled with envrc-global-mode, which should be turned on late in Emacs's startup sequence so it runs before other minor modes that look for executables.

Website: https://github.com/purcell/envrc
