Introduction to RunEnv
RunEnv centralizes environment configuration and supports scoped runtime delivery, version history, and team access controls.
The Problem with .env Files
For years, developers have relied on .env files to store configuration and secrets locally. However, this approach introduces several critical issues:
- Security Risks: Secrets stored in plain text on disk are easily compromised by malware, accidental commits, or unauthorized access.
- Synchronization Issues: "It works on my machine" often stems from developers having outdated or mismatched
.envfiles. Sharing.envfiles over Slack or email is a common, insecure anti-pattern. - No Audit Trail: You cannot easily track who changed a database URL or when an API key was rotated.
- Lack of Access Control: Anyone with access to the
.envfile sees all the secrets. There is no granular control based on roles.
The RunEnv Solution: Zero-Disk Architecture
For no-file delivery, runenv run retrieves the selected environment values and injects them into the child process environment without creating a .env file. Download, offline-cache, and secret-file workflows intentionally use different storage boundaries.
How It Works
Instead of running:
node server.jsYou run:
runenv run -- node server.jsBehind the scenes:
- The RunEnv CLI authenticates your machine.
- It fetches the encrypted secrets for your specific environment (e.g.,
development). - It decrypts the secrets in memory and spawns
node server.jswith those secrets securely injected as environment variables.
Standard environment access
Applications launched through a supported runenv run workflow continue to read standard process environment variables, such as process.env.API_KEY or os.environ.get('API_KEY'). Review the CLI and SDK guides for the supported path for your stack.
Beyond the Basics
RunEnv goes far beyond simple .env replacement. As your team grows, you can leverage its enterprise-tier features:
- Change Requests: Require approvals before changing production secrets.
- Dynamic Secrets: Generate short-lived database credentials on the fly.
- Transit Engine: Use RunEnv to encrypt your application data (like PII) with our Encryption-as-a-Service API.