Skip to content

roniel-rhack/envi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

envi

Stop editing .env files blind.

Diff, scan, edit, and validate environment variables across all your profiles — right from the terminal.

CI Release License: MIT

envi demo

The Problem

Every developer knows the pain:

  • You pull a repo and .env is missing 5 vars that were added to .env.example
  • Comparing dev vs production means opening two files and squinting
  • You have no idea which env vars your code actually uses
  • Sensitive values sit in plaintext, one git add . away from disaster

envi gives you a single dashboard for all of it.

Install

Homebrew (macOS / Linux)

brew tap roniel-rhack/tap
brew install envi

Download binary

Grab the latest from Releases — available for macOS (arm64, amd64), Linux (arm64, amd64), and Windows (amd64).

From source

git clone https://github.com/roniel-rhack/envi && cd envi
cargo build --release
# Binary at ./target/release/envi (~2 MB)

Quick Start

# Run in current directory
envi

# Run in a specific project
envi ~/projects/my-app

envi auto-discovers all .env variants: .env, .env.local, .env.development, .env.staging, .env.production, .env.example, .env.test, and any .env.* file.

Features

Browse & Edit

Navigate your env files with vim-style keys. Edit values inline. Add or delete variables. Save when you're ready.

Diff View d

Compare any two .env files instantly:

Symbol Meaning
- MISSING In source but not in target
+ EXTRA In target but not in source
~ CHANGED Different values between files

Press Tab to cycle through diff targets.

Code Scanner s

Scans your project for env var references across 10+ languages:

process.env.VAR        (JS/TS)          os.environ["VAR"]    (Python)
env::var("VAR")        (Rust)           os.Getenv("VAR")     (Go)
System.getenv("VAR")   (Java)           ENV["VAR"]           (Ruby)
${VAR} / $VAR          (Shell/Docker)   getenv("VAR")        (PHP/C)

Reports vars used in code but not defined, and vars defined but never used.

Search /

Live fuzzy search across variable names and values.

Validation

Automatic warnings for:

  • Empty values
  • Potentially sensitive unencrypted values
  • Non-UPPER_SNAKE_CASE keys
  • Variables missing from other profiles

Cross-File Awareness

The details panel shows which other profiles contain (or are missing) the selected variable — no more guessing.

Keybindings

Key Action
j k Navigate up / down
h l Previous / next profile
Tab Switch panel
e Edit value
a Add variable
x Delete variable
w Save
r Reload
d Diff view
s Code scan
/ Search
n Next match
? Help
q Quit

Built With

Language Rust — fast, safe, single binary
TUI ratatui + crossterm
Binary size ~2 MB
Dependencies Zero runtime dependencies
Platforms macOS, Linux, Windows

License

MIT

About

A terminal UI for managing .env files — diff, scan, edit, and validate environment variables across projects and profiles.

Topics

Resources

License

Stars

Watchers

Forks

Packages