Envelope – A modern environment variable cli tool
Hey HN! I've built this cli tool to manage env variables of a project, but mostly for fun and to try out Rust and the clap crate. I had this idea when I made a big mistake and broke some production stuff because I had a very messy .env file laying around in my project. I was implementing new features for one of my projects and in my .env file I had the test database url commented out and the production one was not. Long story short, I applied migrations to the production database instead of my local test one and broke a lot of production APIs :') I wanted a tool that could easily help me…
In plain words
Envelope is a command-line tool for managing environment variables across different project configurations like development and production. Built in Rust, it helps developers organize variables by environment and inject them into programs via a single command, reducing the risk of mixing up configuration files and accidentally applying changes to the wrong environment. The tool was created to prevent production incidents caused by misconfigured .env files.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
Hey HN! I've built this cli tool to manage env variables of a project, but mostly for fun and to try out Rust and the clap crate. I had this idea when I made a big mistake and broke some production stuff because I had a very messy .env file laying around in my project. I was implementing new features for one of my projects and in my .env file I had the test database url commented out and the production one was not. Long story short, I applied migrations to the production database instead of my local test one and broke a lot of production APIs :') I wanted a tool that could easily help me spot these issues before something bad happened, and so I built envelope for that reason. Instead of a \.env(\..+)? file, I now use this tool to add variables to different configurations: dev, prod etc. and I feed them to the program I am executing on a one liner. $ envelope init $ envelope add dev db_url localhost:5432/postgres $ envelope add dev db_username username $ envelope add dev db_pwd pwd $ export $(envelope list dev) $ ./run.sh This way I am explicitly exporting the dev environment without relying on the fact that everything is in order in my .env file (another approach would be to have a .env.dev file) A very useful feature that I use quite a lot is the `check` command which is going to tell you which environment you have currently active $ export $(envelope list dev) $ envelope check > dev I don't think this tool is going to be useful to anybody, but I wanted to share this with you in case there is someone that can make good use of it or find particular scenarios where this could be used instead of .env files, either way I had a lot of fun building it
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 1d ago · opentrailpaper.com

Launched alongside, June 2024
the whole month →

La Growth Machine▲1,216Create personalized, multi-channel conversations at scale
AI · 2024 · lagrowthmachine.com


PyjamaHR▲1,132Hiring on autopilot. The AI applicant tracking system (ATS).
Work · 2024 · pyjamahr.com