For an environment variable manager for local development, the first results are motdotla/dotenv, jdx/mise (jdx/mise manages environment variables per project alongside runtime versioning and tasks, but its CLI, .env file loading, templating, secret management, and project-scoped configuration directly address the core need for organizing env vars across local development projects) and direnv/direnv (direnv automatically loads and unloads environment variables per directory, which directly addresses managing env vars across local projects, though it lacks built-in encryption, multiple profiles, and template generation). theskumar/python-dotenv and ddollar/foreman round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Tools for managing and injecting configuration secrets into local development environments and application workflows.
Dotenv is a configuration management library designed to load environment variables from local files into the process environment. By separating application settings from source code, it enables developers to maintain consistent configurations across different deployment stages and team environments. The utility provides mechanisms to transform plain text configuration files into encrypted formats, allowing sensitive secrets to be stored securely within version control systems. It handles the parsing and normalization of key-value pairs, ensuring that configuration data is consistently proces
Dotenv is the foundational library for loading environment variables from .env files into Node.js applications, with support for encrypted secrets, but it lacks a standalone CLI interface and advanced features like multiple profiles or template generation that would make it a comprehensive management tool.
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
jdx/mise manages environment variables per project alongside runtime versioning and tasks, but its CLI, .env file loading, templating, secret management, and project-scoped configuration directly address the core need for organizing env vars across local development projects.
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. The project acts as a development environment isolator by localizing shell configurations, which prevents dependency conflicts and removes project-specific exports from global profile files. It includes specialized integration for Nix, allowing the loading of environ
direnv automatically loads and unloads environment variables per directory, which directly addresses managing env vars across local projects, though it lacks built-in encryption, multiple profiles, and template generation.
python-dotenv is a library and command line interface for managing environment variables in Python applications. It functions as a configuration parser and loader that reads key-value pairs from files and injects them into the system environment, enabling the decoupling of application configuration from source code. The project provides a command line interface for manipulating and editing environment variables within configuration files. It also includes a mechanism for recursive variable interpolation, allowing dynamic placeholders within configuration files to be resolved using existing en
Theskumar/python-dotenv is a library and CLI for managing environment variables via .env files, providing dotenv file support and a command-line interface that fits local development, though it lacks the requested multiple profiles, encryption, and template generation features.
Manage Procfile-based applications
Foreman manages processes defined in a Procfile and loads environment variables from .env files, but it is primarily a process manager rather than a dedicated tool for organizing environment variables across projects, and it lacks features like multiple profiles, encryption, and template generation.
phpdotenv is a PHP environment variable loader and configuration parser. It reads key-value pairs from files and populates them into PHP system environment variables and global arrays to avoid hardcoding sensitive settings in code. The project includes a configuration variable interpolator to resolve nested references and variables within environment files. It also provides an environment variable validator to ensure required variables exist and match specific data types or values. The system covers application secret management, multi-environment deployment, and the parsing of raw configura
phpdotenv is a PHP library for loading and validating environment variables from .env files, but it is a code-level component rather than a standalone CLI tool with features like encryption, template generation, or project-scoped profiles.
react-native-config is a cross-platform mobile environment manager and native build configuration tool. It implements twelve-factor app configuration principles by separating environment-specific settings from application code. The project provides a mechanism to inject environment variables directly into native project files and build settings during the compilation process. It further functions as a type-safe configuration loader that generates TypeScript definitions for environment variables to ensure autocompletion and safety. The tool manages multi-environment configurations by loading
This repository is a build-time configuration injector for React Native projects, not a general-purpose tool for managing environment variables across local development projects — it lacks CLI interface, dotenv support, and encryption, and is tied to a specific mobile framework.
This is a Unix dotfiles repository that provides a central store of configuration files to synchronize application settings and environment variables across different systems. It functions as a standardized development environment setup, offering a consistent profile for code editors, debuggers, and language runtimes across multiple machines. The repository includes specific configuration profiles for shell environments, Git identity and commit authorship, and SSH agent automation for secure credential management. It manages the loading of identity files and integrates system keychains to aut
This is a dotfiles repository that centralizes shell and editor configuration, including environment variable injection across systems, but it is not a dedicated environment variable manager with per-project dotenv files, encryption, profile switching, or a focused CLI — it is a broader development environment setup tool rather than the targeted utility you are looking for.
Tmuxinator is a configuration-driven session manager and workspace automation tool for tmux. It acts as a terminal multiplexer orchestrator that translates structured project definitions into shell commands to define and launch complex window and pane layouts. The project distinguishes itself through declarative configuration and lifecycle management. It utilizes YAML-based mapping and template-based variable injection to create reusable session configurations, while providing hook-based execution to trigger custom scripts during startup, restart, or shutdown. Its broader capabilities includ
Tmuxinator is a terminal multiplexer session manager that uses YAML-based configurations with variable injection, but its primary purpose is orchestrating tmux window layouts rather than managing environment variables across projects, so it only tangentially relates to this search.
LiteIDE is a cross-platform integrated development environment designed for writing, compiling, and debugging Go source code. It functions as both a code editor with syntax highlighting and a build tool orchestrator that manages toolchains, environment profiles, and cross-compilation targets. The environment is modular and extensible, supporting third-party plugins and custom keyboard mapping to tailor the coding workflow. It provides an integrated interface for external debuggers to inspect program execution and state. The platform covers a broad range of development capabilities, including
LiteIDE is a Go IDE that manages environment profiles as part of its build-tool orchestration, but it is not a dedicated tool for organizing environment variables across local projects and lacks dotenv file support, a CLI interface, and encryption.
gopass is a terminal-based password manager and GPG secret store used for generating, storing, and retrieving encrypted credentials. It functions as a collaborative secret manager that encrypts data using GPG or age and synchronizes it across devices and teams using Git. The system distinguishes itself by treating version control repositories as the primary storage backend, enabling secure secret sharing and version history for credentials. It utilizes a hierarchical directory structure to organize secrets on the filesystem and supports multi-store mounting to combine multiple independent rep
gopass is a collaborative secret manager and password store, not a tool purpose-built for organizing environment variables for local development projects—it lacks dotenv support and project-scoped configuration tailored to development workflows.
Infisical is a centralized secrets management platform designed to store, synchronize, and control access to sensitive credentials and configuration data across distributed development, staging, and production environments. It employs client-side encryption to ensure that secrets remain unreadable to the underlying storage infrastructure, while providing a hierarchical permission model to govern both user and machine access. The platform distinguishes itself through dynamic credential provisioning, which generates short-lived access tokens that are automatically revoked after use. It supports
Infisical is a centralized secrets management platform with CLI, encryption, and project-scoped environments, but its team-oriented, server-based design and lack of explicit dotenv file support make it more suited for enterprise secret management than the simple local development environment variable organizer you're looking for.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| motdotla/dotenv | 20.3K | JavaScript | bsd-2-clause | |
| jdx/mise | 29.9K | Rust | MIT | |
| direnv/direnv |
| 15.2K |
| Go |
| MIT |
| theskumar/python-dotenv | 8.8K | Python | BSD-3-Clause |
| ddollar/foreman | 6.2K | Ruby | MIT |
| vlucas/phpdotenv | 13.5K | PHP | BSD-3-Clause |
| luggit/react-native-config | 5K | Java | MIT |
| lewagon/dotfiles | 21.8K | Shell | MIT |
| tmuxinator/tmuxinator | 13.6K | Ruby | MIT |
| visualfc/liteide | 7.8K | C++ | LGPL-2.1 |