direnv is an extension for your shell that automatically loads and unloads environment variables based on the current directory by checking for .envrc or .env files. This allows for project-specific settings, such as 12factor app variables or deployment secrets, without cluttering global profile files.
- Supports multiple shells including bash, zsh, fish, tcsh, elvish, powershell, murex, and nushell.
- Language-agnostic design implemented as a fast, single static executable.
- Uses sub-shells to safely capture environment changes for the active shell session.
An Emacs library that integrates with the direnv tool to manage per-directory and project environment variables on a buffer-local basis. This approach allows different versions of linters or other tools to be used in each project by setting environment variables specifically for individual buffers, rather than mutating the global Emacs process-environment.
- Buffer-local environment management via direnv.
- Support for TRAMP sessions.
- Minimal overhead with cached environments.
- Integration through MELPA or manual installation.