
I built envi — a TUI for managing .env files (diff, scan, edit, validate)
Every project has .env files. Managing them sucks.
You pull a repo and your .env is missing 5 vars that were added to .env.example. You compare dev vs production by opening two files and squinting. You have no idea which env vars your code actually uses. Sound familiar?
I built envi to fix this — a terminal UI that gives you a single dashboard for all your .env files.
What it does:
- Browse & edit
.envfiles with vim-style keybindings - Diff any two profiles — instantly see missing, extra, and changed vars between
.envand.env.production(or any pair) - Scan your codebase — detects env var usage across 10+ languages (JS, Python, Rust, Go, Java, Ruby, PHP, Shell, Docker...) and reports vars used in code but not defined, and vars defined but never used
- Search with live fuzzy matching across keys and values
- Validate — warns on empty values, sensitive unencrypted data, bad naming conventions, and vars missing from other profiles
- Auto-discovers all
.env.*variants in your project
Install:
# Homebrew
brew tap roniel-rhack/tap && brew install envi
Or grab a binary from releases (macOS, Linux, Windows)
Tech: Built in Rust with ratatui + crossterm. ~2 MB binary, zero runtime dependencies.
GitHub: https://github.com/roniel-rhack/envi
This started as a scratch-my-own-itch project. I was tired of manually diffing .env files and discovering missing vars only after deployment failures. Would love feedback — what features would make this useful for your workflow?

