direnv is a shell environment manager and directory-based environment loader that automatically loads and unloads environment variables when switching between directories. It functions as a shell hook automation tool, injecting logic into the shell configuration to trigger environment updates based on the current project context.
Les fonctionnalités principales de direnv/direnv sont : Environment Variable Loaders, Shell Environment Managers, Shell Hook Integrations, Context-Aware Environment Managers, Directory-Based Variable Synchronizers, Path Variable Resolvers, Environment Loaders, Directory-Triggered Variable Loading.
Les alternatives open-source à direnv/direnv incluent : hyperupcall/autoenv — autoenv is a directory-based environment manager and shell workflow automator that automatically loads and unloads… sorin-ionescu/prezto — Prezto is a Zsh configuration framework and shell environment manager designed to organize environment variables,… jdx/mise — Mise is a development environment orchestrator that manages software runtimes, environment variables, and task… moonrepo/moon — Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It… conda/conda — Conda is a binary package manager, cross-platform environment manager, and dependency resolution engine. It serves as… cachix/devenv — Devenv is a Nix-based development environment manager that provides declarative definitions for reproducible shells…
autoenv is a directory-based environment manager and shell workflow automator that automatically loads and unloads environment variables and scripts based on the current working directory. It functions as a hierarchical variable loader, applying configuration settings according to the directory hierarchy to isolate project environments. The utility includes a checksum-based script validator that ensures security by requiring user approval before sourcing detected files. Once a file is authorized, the system remembers the trust setting by verifying file hashes, prompting the user again only if
Prezto is a Zsh configuration framework and shell environment manager designed to organize environment variables, aliases, and startup scripts through a modular file structure. It functions as a plugin collection and prompt theme engine, utilizing Zsh-native scripting to manage shell behavior across different platforms. The framework distinguishes itself through a modular-based configuration and submodule-driven extensions, allowing users to load discrete functional modules and update core components via Git. It features a dedicated prompt engine that integrates repository metadata and system
Mise is a development environment orchestrator that manages software runtimes, environment variables, and task execution. It functions as a version manager and task runner, providing a unified interface to synchronize project-specific configurations and dependencies across different machines. By automating the installation and switching of tools, it ensures that development environments remain consistent and reproducible. The project distinguishes itself through a hierarchical configuration system that automatically discovers settings by traversing the directory tree. It uses shim-based comma
Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It functions as a dependency graph orchestrator that executes build targets in topological order and utilizes input hashing to cache results and skip redundant work. The project features a polyglot toolchain manager that automates the installation and versioning of language runtimes and CLI tools to ensure environment consistency. It also includes a plugin framework based on WebAssembly, allowing developers to extend build logic and toolchain behavior using any supported language.