Open Standard ยท MIT License ยท Zero Dependencies

.env is Dead.
Enter CrowEnv ๐Ÿฆโ€โฌ›

Smart secrets. Like a crow. AES-256-GCM encrypted `.cenv` files
you can safely commit to Git โ€” in every language.

bash
# Install CrowEnv
npm install -g crowenv
# Generate your master key (store this in 1Password!)
crowenv generate-key
๐Ÿ”‘ a3f8...c901  โ† 256-bit random key
# Encrypt your .env
crowenv encrypt
โœ… .cenv created (5 secrets encrypted, AES-256-GCM)
# Commit it safely
git add .cenv && git commit -m "Add encrypted secrets"
โœ… Your secrets are now in Git โ€” and still private.
12M+exposed .env files online (2026)
$2.3Mavg. cost of a secrets breach
AES-256military-grade encryption
0runtime dependencies (Node.js)

Plain .env is a Ticking Time Bomb

Real attacks. Real money lost. Happening right now.

01
๐ŸŒ

Public Web Exposure

Misconfigured Nginx/Apache serves /.env directly. 110,000+ domains scanned in one operation. 7,000+ cloud credentials stolen. Mass extortion followed.

โ€” Palo Alto Unit 42, Aug 2024
02
๐Ÿ“

Git History Leaks

One accidental git add . = permanent exposure. Even after deletion, secrets remain in git history. GitGuardian bots find them in seconds.

โ€” GitGuardian State of Secrets 2025
03
๐Ÿ–ฅ๏ธ

Plain Text on Disk

Stolen laptop. Shared server. Malware. Backup systems. Docker inspect. cat .env = game over. Plain text has zero protection.

04
๐Ÿ“‹

Logs & Crash Dumps

console.log(process.env) by mistake. Crash dumps. AI coding assistants sometimes read your env vars. Side-channels everywhere.

05
๐Ÿ”ง

Server Misconfigs

Laravel .env in public folder. One bug bounty hunter in 2025: exposed .env โ†’ PostgreSQL creds โ†’ full RCE. Happens daily.

โ†’
๐Ÿš€

The .cenv Solution

Encrypted by default. Commit it. The encrypted blob is useless without your master key. Game changed.

Get .cenv โ†’

Military-Grade Encryption. Simple API.

๐Ÿ”‘
Your Master Key
256-bit random key stored in 1Password / GitHub Secrets / Vault
+
๐Ÿง‚
Random Salt
16-byte cryptographic salt generated fresh on every encrypt
โ†’
๐Ÿ”’
PBKDF2 (600k iter)
Key derivation โ€” brute force takes millions of years
โ†’
๐Ÿ›ก๏ธ
AES-256-GCM
Authentication + Encryption. Tamper detection built in.
โ†’
๐Ÿ“„
.cenv
Encrypted JSON blob. Safe to commit.
โŒ Plain .env (hackable)
DB_PASSWORD=supersecret123
API_KEY=sk_live_abc123xyz
JWT_SECRET=very_long_string
STRIPE_KEY=sk_live_xxxxx
โ†’
โœ… .cenv (encrypted, git-safe)
{
"v": "1.0",
"s": "dGhpcyBpcyBh...",
"d": "aGVsbG8gd29y..."
}

One Command. Every Language.

# Install globally
npm install -g crowenv

# Or use without installing
npx crowenv encrypt

# Quick start
crowenv init
crowenv generate-key
echo "DB_PASS=secret" > .env
crowenv encrypt
rm .env
git add .cenv
# Install
pip install crowenv

# In your app
import cenv
cenv.load()   # loads .cenv into os.environ

import os
print(os.getenv("DB_PASS"))

# CLI
python -m cenv encrypt
python -m cenv load
# Install
go install github.com/cenv/cenv-go@latest

# Or build from source
git clone https://github.com/cenv/cenv
cd cenv/packages/cenv-go
go build -o cenv .

# Usage
cenv init
cenv generate-key
cenv encrypt
cenv verify
# Install
cargo install crowenv

# Or from source
cd crowenv/packages/cenv-rs
cargo install --path .

# Usage
crowenv init
crowenv generate-key
crowenv encrypt
crowenv load
# Dockerfile
FROM node:20-slim
RUN npm install -g crowenv
COPY .cenv /app/.cenv
CMD ["sh", "-c", "crowenv load && node app.js"]

# Run with master key from secret manager
docker run \
-e CENV_MASTER_KEY="$(vault kv get -field=key secret/app)" \
myapp

.cenv Format v1.0

PropertyValue
EncryptionAES-256-GCM
Key derivationPBKDF2-HMAC-SHA256 (600,000 iterations)
Nonce12 bytes, random per encryption
Auth tag16 bytes (tamper detection)
Salt16 bytes, random per encryption
File formatJSON {"v","s","d"}
Git safetyโœ… Safe to commit
Brute-force cost~2ยฒโตโถ key guesses

Stop the leaks. Ship .cenv today.

Join developers who chose security over convenience myths.