ENVM - Environment Variable Management

ENVM is a powerful environment variable management and synchronization tool designed to help developers and teams securely manage, share, and sync environment variables across projects and environments. Built with security as a top priority, ENVM provides encryption at rest, role-based access control, and seamless collaboration features.
Features
- Secure: AES-256 encryption, audit logging, and RBAC
- Team Collaboration: Share sensitive environment variables safely without exposure
- Multi-Environment Support: Manage dev, staging, and production environments effortlessly
- API-First: RESTful API for programmatic access
- CLI Tool: Command-line interface for CI/CD integration
Installation
To install the pre-compiled binary directly:
curl -fsSL https://raw.githubusercontent.com/envm-org/envm/dev/install.sh | bash
Alternatively, if you want to install locally from the source:
# Clone the repository
git clone https://github.com/envm-org/envm.git
cd envm
# Install the CLI locally
./scripts/install-cli.sh
# Start the application services
docker compose up -d
Configuration
Create a .env file in the root directory:
DATABASE_URI=postgres://postgres:password@localhost:5432/envm?sslmode=disable
TOKEN_SECRET=your-super-secret-jwt-key
ADDR=:5000
ENCRYPTION_KEY=your-32-byte-encryption-key
Usage
envm COMMAND
# runs the command
envm --help COMMAND
# outputs help for specific command
Commands
envm completion
Generate the autocompletion script for the specified shell
USAGE
$ envm completion [bash|zsh|fish|powershell]
DESCRIPTION
Generates autocompletions. Automatically installed via install.sh for bash and zsh.
envm env
Manage environment variables
USAGE
$ envm env [COMMAND]
DESCRIPTION
Create, list, or delete environment variables.
envm init
Initialize ENVM configuration in the current directory
USAGE
$ envm init
DESCRIPTION
Creates an .envm file and links to your current project.
envm load
Load environment variables into the current shell
USAGE
$ envm load
DESCRIPTION
Sources environment variables managed by ENVM into your session.
envm login
log in with your ENVM account
USAGE
$ envm login
DESCRIPTION
Authenticates you with the ENVM server.
envm logout
log out
USAGE
$ envm logout
DESCRIPTION
Clears the local authentication token.
envm project
Manage projects
USAGE
$ envm project [COMMAND]
DESCRIPTION
Create, read, or configure your projects.
envm pull
Pull environment variables from the server
USAGE
$ envm pull
DESCRIPTION
Fetches the latest variables for the current project.
envm push
Push environment variables to the server
USAGE
$ envm push
DESCRIPTION
Uploads local changes to the configured environment.
envm register
Register a new ENVM account
USAGE
$ envm register
DESCRIPTION
Creates a new user profile on the ENVM server.
envm uninstall
Uninstall the envm CLI
USAGE
$ envm uninstall
DESCRIPTION
Removes the envm binary and its configuration directory from your system.
envm users
Manage users
USAGE
$ envm users [COMMAND]
DESCRIPTION
Administer users on the platform.
envm whoami
show the username you are logged in as
USAGE
$ envm whoami
DESCRIPTION
Displays your active session details.
envm version
Print the CLI version
USAGE
$ envm version
$ envm --version
$ envm -v
DESCRIPTION
Displays the current version of the envm CLI.
Documentation
Contributing
We welcome contributions from the community!
License
This project is licensed under the MIT License - see the LICENSE file for details.
Security
Security is paramount for ENVM. If you discover a security vulnerability, please follow our Security Policy for responsible disclosure. Do not report security vulnerabilities through public GitHub issues.