Secure environment variable manager with encryption and team sharing
Project description
EnvMan ⚡
Secure environment variable manager with encryption and team sharing.
Stop juggling dozens of .env files. Manage them all in one place with military-grade encryption.
✨ Features
- 🔐 AES-256 Encryption - Your secrets stay secret
- 🌍 Multiple Environments - Dev, staging, production, and more
- 👥 Team Sharing - Share encrypted env files safely
- 💾 Auto Backups - Never lose your configs
- 🔄 Easy Switching - One command to change environments
- 📊 Diff Tool - Compare environments instantly
🚀 Quick Start
Install:
pip install envman-cli
Initialize:
envman init
# Enter your master password (used to encrypt all variables)
Add an environment:
envman add production
envman add staging
Load variables from existing .env file:
envman load production .env
Switch environment:
envman use production
# Creates .env file in current directory with production variables
📖 Commands
Setup
envman init # Initialize with master password
envman add <name> # Create new environment
Daily Usage
envman use <env> # Switch to environment
envman list # Show all environments
envman show <env> # List variables (hidden by default)
envman show <env> --show-values # Show actual values
Managing Variables
envman set <env> <KEY> # Set a variable (prompts for value)
envman load <env> <file> # Load from .env file
envman export <env> # Export to .env file
Team Collaboration
envman share <env> -o team.json # Export for sharing
envman import team.json # Import shared environment
Advanced
envman diff prod staging # Compare environments
envman backup <env> # Create backup
💡 How It Works
Encryption
- Uses AES-256-GCM for encryption
- Master password derives encryption keys using PBKDF2 (100k iterations)
- Each value encrypted separately with unique salt and nonce
- No plain text stored anywhere
Storage
- SQLite database at
~/.envman/envman.db - All values encrypted before storage
- Automatic backups with timestamps
- Fast lookups and comparisons
Workflow Example
# 1. Initialize once
envman init
# 2. Create environments
envman add development
envman add production
# 3. Load your existing .env files
envman load development .env.dev
envman load production .env.prod
# 4. Switch between them
cd ~/my-project
envman use development # Creates .env with dev vars
cd ~/my-other-project
envman use production # Creates .env with prod vars
# 5. Share with team
envman share production -o prod-config.json
# Send prod-config.json to teammate
# They run: envman import prod-config.json
🔒 Security Best Practices
- Master Password: Use a strong, unique password
- Shared Files: Already encrypted, but still share securely (not in git)
- Backups: Run
envman backupbefore major changes - .gitignore: Never commit
.envor~/.envman/to version control
🏗️ Project Structure
## 🤝 Contributing
Contributions welcome! Please:
1. Fork the repo
2. Create a feature branch
3. Make your changes
4. Submit a pull request
## 📝 License
MIT License - see LICENSE file
## 🙏 Why EnvMan?
Managing environment variables is painful:
- ❌ Scattered `.env` files across projects
- ❌ Manually copying configs between machines
- ❌ Accidentally committing secrets to git
- ❌ Forgetting which values go where
EnvMan solves all of this:
- ✅ One secure database for all environments
- ✅ Encrypted storage of all secrets
- ✅ Easy switching between environments
- ✅ Safe team sharing
---
**Made with ❤️ for developers who are tired of `.env` chaos**
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file envman_cli-1.0.2.tar.gz.
File metadata
- Download URL: envman_cli-1.0.2.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6d9ea3db798086a52be41e5500deead5b27f8ff1f16b3e47e670ab76915d146
|
|
| MD5 |
4701d682c419b6c64ed750c0226140fd
|
|
| BLAKE2b-256 |
348b13634df7f701ace3cbd321937de316184c061d21660a934682e0c01cefcf
|
Provenance
The following attestation bundles were made for envman_cli-1.0.2.tar.gz:
Publisher:
publish.yaml on ahmad0303/envman
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
envman_cli-1.0.2.tar.gz -
Subject digest:
d6d9ea3db798086a52be41e5500deead5b27f8ff1f16b3e47e670ab76915d146 - Sigstore transparency entry: 1182360225
- Sigstore integration time:
-
Permalink:
ahmad0303/envman@d6b90c4cdc1c529770c1802fe9eede9621cad5b6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ahmad0303
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@d6b90c4cdc1c529770c1802fe9eede9621cad5b6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file envman_cli-1.0.2-py3-none-any.whl.
File metadata
- Download URL: envman_cli-1.0.2-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b83c05e54edd78a666ac19ae33d3837e8715396eace33eb4b86a7776141e1e2
|
|
| MD5 |
986f11f8937d162ac76b9e017b92d68c
|
|
| BLAKE2b-256 |
f84bbd0beba2e2736a3f3ec2cb92babfe0b4c14d879183b029a7c6cc1a8fa2b7
|
Provenance
The following attestation bundles were made for envman_cli-1.0.2-py3-none-any.whl:
Publisher:
publish.yaml on ahmad0303/envman
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
envman_cli-1.0.2-py3-none-any.whl -
Subject digest:
4b83c05e54edd78a666ac19ae33d3837e8715396eace33eb4b86a7776141e1e2 - Sigstore transparency entry: 1182360230
- Sigstore integration time:
-
Permalink:
ahmad0303/envman@d6b90c4cdc1c529770c1802fe9eede9621cad5b6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ahmad0303
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@d6b90c4cdc1c529770c1802fe9eede9621cad5b6 -
Trigger Event:
push
-
Statement type: