A minimal local web UI for managing dotenv[x] environment files.
β‘ Fast, zero-config, developer-friendly
This tool is 100% local and offline.
- β No data leaves your machine - All operations happen locally
- β No external API calls - Zero network requests to third parties
- β No telemetry or analytics - We don't track anything
- β No cloud storage - Your secrets stay on your disk
- β No authentication required - It's your local machine
- β Open source - Inspect the code yourself
The server runs on localhost only and is not accessible from other machines. Your environment variables and encryption keys never leave your computer.
π‘ Tip: You can verify this by checking the network tab in your browser's developer tools while using the app - you'll see only local requests to
localhost.
- π Scan and list all
.env*files in current directory - π Fuzzy folder search - quickly switch between projects
- π Mask values by default with show/hide toggle
- βοΈ Inline editing of environment variables
- β Add new keys
- ποΈ Delete keys
- π dotenvx encryption support (decrypt/encrypt with DOTENV_KEY)
- πΎ Preserve comments and formatting when saving
- β Save favorite folders for quick access
- π Recent folders history
- π¨ Beautiful dark theme UI
The main UI shows your environment variables with masked values. Click the π button to reveal values.
Fuzzy search to quickly find and switch between project folders.
npm install# Start in current directory
node cli.js
# Or specify a port
node cli.js --port 8080
# Or run via npm
npm startThe UI will automatically open in your default browser.
π Security: By default, the server starts on a random port to prevent browser extension attacks.
Press Ctrl+C to stop the server.
| Option | Description |
|---|---|
-p, --port PORT |
Port to run server on (default: random) |
-h, --help |
Show help message |
-v, --version |
Show version number |
| Shortcut | Action |
|---|---|
Enter |
Save current edit |
Escape |
Cancel edit or close modal |
Ctrl+S |
Save current edit |
Ctrl+N |
Add new key (when file is selected) |
β / β |
Navigate folder search results |
The UI scans for these files in the current working directory:
.env.env.local.env.development.env.staging.env.production.env.test.env.*(any other .env files)
This tool fully supports dotenvx encryption for secure environment variable management.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β dotenvx Encryption Flow β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β π .env.production π .env.keys β
β βββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ β
β β DB_HOST=localhost β β DOTENV_PRIVATE_KEY_PROD=... β β
β β DB_PASS=encrypted:... βββββββββββΊβ DOTENV_PUBLIC_KEY_PROD=... β β
β β API_KEY=encrypted:... β decrypt β β β
β βββββββββββββββββββββββββββ encrypt βββββββββββββββββββββββββββββββ β
β β β β
β β β β
β βΌ βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β envx-ui β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β DB_HOST β localhost β π βοΈ π β β β
β β β DB_PASS β β’β’β’β’β’β’β’β’ β π βοΈ π π encrypted β β β
β β β API_KEY β β’β’β’β’β’β’β’β’ β π βοΈ π π encrypted β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β [π Encrypt] - Encrypts all plain text values β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
your-project/
βββ .env # Plain text (development)
βββ .env.production # Contains encrypted values
βββ .env.staging # Contains encrypted values
βββ .env.keys # π Private keys (add to .gitignore!)
βββ DOTENV_PRIVATE_KEY_PRODUCTION=ec...
βββ DOTENV_PUBLIC_KEY_PRODUCTION=03...
βββ DOTENV_PRIVATE_KEY_STAGING=ab...
βββ DOTENV_PUBLIC_KEY_STAGING=02...
Encrypted values in .env files look like this:
# Plain text value
DB_HOST=localhost
# Encrypted value (dotenvx format)
DB_PASSWORD="encrypted:BE9Y7LKANx8setup0uyYkBA+Z..."
API_KEY="encrypted:BA3pP5eKIxqN6rSFWz9nXw4C..."-
Reading Encrypted Files
- UI detects
.env.keysfile in the project - Loads private keys (
DOTENV_PRIVATE_KEY_*) - Automatically decrypts values for display
- Shows π indicator for encrypted values
- UI detects
-
Editing Encrypted Values
- Click βοΈ to edit any value
- Edit the decrypted plain text
- Save - value is re-encrypted automatically
-
Encrypting Plain Text Files
- Click "π Encrypt" button
- All plain text values are encrypted
- Creates/updates
.env.keyswith new keys - Original file is updated with encrypted values
| Item | Recommendation |
|---|---|
.env.keys |
|
.env.production |
β Safe to commit (values are encrypted) |
| Private keys | π Share securely with team (1Password, etc.) |
| Public keys | β Can be shared openly |
# Environment files with secrets
.env
.env.local
.env.*.local
# dotenvx private keys - NEVER COMMIT
.env.keys
# Encrypted env files are safe to commit
# .env.production
# .env.stagingThis UI is fully compatible with dotenvx CLI:
# Encrypt a file
dotenvx encrypt -f .env.production
# Decrypt and run
dotenvx run -- node app.js
# Set specific key
dotenvx set API_KEY "secret" -f .env.productionValues encrypted by dotenvx CLI can be read/edited in envx-ui, and vice versa.
- Local Server: Starts an Express.js server on localhost
- File System Access: Reads/writes
.envfiles in your project directory - Browser UI: Opens automatically in your default browser
- No Network: All communication stays between your browser and local server
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Your Computer β
β ββββββββββββ localhost ββββββββββββββββ β
β β Browser β ββββββββββββββββββββΊ β Express.js β β
β β UI β β Server β β
β ββββββββββββ ββββββββ¬ββββββββ β
β β β
β ββββββββΌββββββββ β
β β .env files β β
β β (your disk) β β
β ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β No external connections
envx-ui/
βββ cli.js # Entry point
βββ package.json
βββ server/
β βββ index.js # Express server & routes
β βββ env.service.js # Env file parsing/writing
β βββ crypto.service.js # Encryption/decryption
β βββ folder.service.js # Folder management
βββ views/
β βββ index.ejs # Main UI template
βββ public/
βββ style.css # Dark theme styles
βββ app.js # Client-side interactions
- Node.js 18+
- npm or yarn
express- Web serverejs- Template engineopen- Browser launcher@dotenvx/dotenvx- Encryption supporthelmet- Security headers (CSP, XSS protection)
# Release a new version (patch/minor/major)
npm run release
# Or specify version
npm run release -- patch
npm run release -- minor
npm run release -- major- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT
Made with β‘ by litepacks

