Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
🛡️ InterEnv
Hardware-Enclave Protected Secrets for Terminal & Git
Eradicate Plaintext .env Files from Developer Disks Forever
⚡ Why InterEnv?
Every software engineer uses .env files to store critical credentials: OPENAI_API_KEY, AWS_SECRET_ACCESS_KEY, Stripe webhooks, database connection strings, and private keys.
- ❌ The Catastrophic Problem: Plaintext
.envfiles get accidentally committed to public GitHub repositories daily. Maliciousnpmandpippackages scan developers' hard drives to exfiltrate plaintext secrets. - ❌ The Flaw in Other Tools:
dotenvxencrypts secrets but stores the decryption key in another plaintext file (.env.keys) on disk! Cloud secret managers (1Password, Doppler, Infisical) are cloud-locked, slow, and require expensive monthly subscriptions. - 🛡️ The InterEnv Solution: InterEnv seals your project secrets inside your Host Hardware Security Enclave (Apple Secure Enclave on macOS, TPM 2.0 / Windows Hello on Windows, Secret Service on Linux). Secrets are decrypted strictly in volatile process memory for the exact lifecycle of your command, and then erased with cryptographic zeroization (
zeroize).
📊 Security Architecture Comparison
| Feature | Plaintext .env |
dotenvx |
1Password / Doppler | InterEnv (This Tool) |
|---|---|---|---|---|
| Storage Security | 🔴 Zero (Plaintext on disk) | 🟡 Key file on disk (.env.keys) |
🟢 Cloud Vault | 🟢 Hardware Enclave (TPM / TouchID) |
| Disk Plaintext | 🔴 Exposed | 🟡 Exposes decrypted files | 🟢 None | 🟢 ZERO Plaintext on Disk |
| Cloud Dependency | 🟢 Offline | 🟢 Offline | 🔴 Required (Vendor Lock-in) | 🟢 100% Offline & Local-First |
| Pricing | Free | Free | $19–$39/user/month | 🟢 100% Free & Open Source (MIT) |
| Git Pre-Commit Hook | ❌ Manual | ❌ Manual | ❌ Complex setup | 🟢 Built-in 1-Click Guard |
| Secure Shredding | ❌ None | ❌ None | ❌ None | 🟢 DoD 5220.22-M Multi-Pass Wipe |
| Runtime Speed | Instant | Slow (Node.js) | Slow CLI (Cloud round-trips) | ⚡ < 1ms (Pure Rust) |
🚀 Installation
Via Cargo (Rust)
Via NPM / NPX (Node.js)
# Or run instantly without installation:
From Source
💡 Quickstart in 10 Seconds
1. Seal Your .env into Hardware Enclave
Inside any project with an existing .env file:
What happens:
- Generates an XChaCha20-Poly1305 master project key and binds it to your Hardware Enclave (TouchID / TPM / Windows Hello).
- Creates an encrypted, git-safe
.interenv.lockfile. - Cryptographically shreds and destroys the plaintext
.envfrom physical storage using DoD 5220.22-M 3-pass overwriting!
2. Run Any App with Secrets in Volatile Memory
Execute any tool, test runner, or web server:
# Node / Next.js
# Rust
# Python / AI Agents
# Docker / Go / Any Binary
Secrets are injected directly into child process memory. Nothing ever touches disk.
3. Edit Secrets Safely
Need to add a new API key?
Opens your default $EDITOR in a secure temporary buffer, updates keys, re-encrypts into .interenv.lock, and securely shreds the temp buffer.
4. Install Git Pre-Commit Protection
Installs an automated guard in .git/hooks/pre-commit that detects and immediately aborts any accidental staging or commit of .env files or hardcoded API keys.
💻 Multi-Language Programmatic SDKs
InterEnv provides native, zero-dependency SDKs across all major programming ecosystems. Secrets are injected directly into process memory without creating or touching plaintext .env files on disk.
Node.js & TypeScript
import { config } from "interenv";
config(); // Injects into process.env in-memory
console.log(process.env.OPENAI_API_KEY);
Python & AI Agents
# Injects into os.environ in-memory
Go Microservices
package main
import (
"fmt"
"os"
"github.com/Bharathcoorg/interenv/go/interenv"
)
func main()
PHP & Laravel
🛠️ Command Reference
| Command | Description |
|---|---|
interenv lock [file] |
Encrypt .env into hardware enclave and securely shred the plaintext |
interenv run <cmd...> |
Execute command with secrets injected into child process memory |
interenv edit |
Open decrypted secrets in $EDITOR and re-seal automatically on save |
interenv show |
Display sealed environment keys (masked by default, --reveal to unmask) |
interenv status |
Inspect repository security status and hardware enclave binding |
interenv doctor |
Audit filesystem CoW behavior, swap configuration, and enclave status |
interenv hook install |
Install Git pre-commit hook to prevent secret leaks |
interenv shred <file> |
Securely erase any file with 3-pass DoD overwrite |
🔒 Security Model & Guarantees
- Authenticated Encryption (AEAD): All environment payloads are encrypted with XChaCha20-Poly1305 using 192-bit (24-byte) random nonces sourced from the OS RNG (
rand::rngs::OsRng). - Hardware Enclave Sealing: Master encryption keys are stored directly in the host OS credential enclave:
- macOS: Apple Keychain backed by Apple Secure Enclave & TouchID (
macos-secure-enclave-v1). - Windows: Windows Credential Manager protected by TPM 2.0 (
windows-ncrypt-tpm-v2) and DPAPI. - Linux: TPM 2.0 hardware primary key binding (
linux-tpm2-v1) or FreeDesktop Secret Service.
- macOS: Apple Keychain backed by Apple Secure Enclave & TouchID (
- Headless & CI/CD Support: For automated CI runners and Docker containers, pass
--passphraseor setINTERENV_PASSPHRASEto derive master keys via Argon2id (memory-hard password hashing with OWASP defaults: 19 MiB RAM, 2 iterations, parallelism = 1). - Memory Zeroization: Plaintext secret buffers implement
zeroize::ZeroizeOnDrop, ensuring keys and values are actively wiped from RAM upon release.
Security Guarantees Table
| Vector | Guarantee | Implementation |
|---|---|---|
| Disk Inspection | Zero Plaintext | Master key sealed in OS hardware vault; .env shredded immediately. |
| Peer Process Sniffing | Process Sandbox | Linux Seccomp BPF filter; macOS Sandbox profile; Windows Job Object. |
| Cross-Host Replay | Machine Bound | Hardware KEK prevents decrypting lockfile on foreign machines without passphrase. |
| Accidental Commits | Pre-Commit Abort | Automatic hook intercepts git commit staging .env or plain credentials. |
| Memory Dump on Drop | Buffer Scrubber | Custom Drop scrubs key and value buffers in-place via raw slice zeroization. |
⚖️ Comparison with Other Tools
| Feature | interenv |
dotenv-vault |
sops |
git-crypt |
|---|---|---|---|---|
| Hardware Enclave KEK | 🟢 Native (TPM / SE) | ❌ Cloud Only | 🟡 Optional (KMS/PGP) | ❌ GPG Symmetric |
| Zero Plaintext on Disk | 🟢 Strict Guarantee | ❌ Decrypts on disk | ❌ Decrypts to disk | ❌ In-place filter |
| Process Sandboxing | 🟢 Seccomp / Sandbox | ❌ None | ❌ None | ❌ None |
| Cloud Dependency | 🟢 100% Offline | 🔴 Cloud Vault | 🟡 Cloud KMS / PGP | 🟢 100% Offline |
| DoD Multi-Pass Shred | 🟢 3-Pass + Platform | ❌ None | ❌ None | ❌ None |
| Language Runtime | ⚡ Pure Rust (<1ms) | 🟡 Node.js CLI | 🟡 Go CLI | ⚡ C++ Filter |
🌐 Platform Support Matrix
| Operating System | Enclave Key Storage | Process Sandbox Isolation | Disk Shredding Hook |
|---|---|---|---|
| Windows 10 / 11 / Server | TPM 2.0 (NCrypt) + DPAPI | Windows Job Object (KILL_ON_CLOSE) |
SetFileValidData + ADS Wipe |
| macOS (Apple Silicon / Intel) | Apple Secure Enclave + Keychain | Apple Sandbox Profile (sandbox_init) |
F_FULLFSYNC Cache Flush |
| Linux (Ubuntu / Fedora / Arch) | TPM 2.0 (tss-esapi) / Secret Service |
Seccomp BPF (PR_SET_NO_NEW_PRIVS) |
FALLOC_FL_PUNCH_HOLE + TRIM |
Note: For real Linux TPM2 hardware binding, build with cargo build --release --features tpm. Without it, falls back to software KEK.
⚠️ Limitations
- Root / Ring-0 Access: An attacker with root or kernel privileges on the local machine can dump arbitrary memory.
- Solid State Drive Wear-Leveling: CoW filesystems (APFS, Btrfs, ZFS) and SSD flash translation layers (FTL) may wear-level blocks. InterEnv applies filesystem decommit calls (
fallocate,BLKDISCARD,SetFileValidData) and warns ininterenv doctor. - Hardware Failure / Reinstall: If a machine-bound TPM is reset, locally sealed lockfiles cannot be retrieved without an Argon2id passphrase backup (
interenv lock --passphrase).
🛡️ Audits & Reviews
InterEnv has undergone multi-phase adversarial security hardening:
- v0.1.0 Security Audit: Argon2id OWASP parameters, XChaCha20-Poly1305 cipher migration,
Secretsfull memory zeroization, crash-safe temporary file guards. - v0.2.0 Platform Hardening: Windows Job Object containment, Linux Seccomp BPF privilege filter, macOS Sandbox profile, Windows NCrypt TPM 2.0 KEK, safe atomic path canonicalization (
safe_canonicalize). - v1.0.0 Release Candidate Hardening: macOS Secure Enclave hardware binding, Linux TPM 2.0 KEK feature flag, supply chain verification (
cargo-audit,cargo-deny), fuzz testing targets, criterion benchmarks, and lockfile schema v3.0 migration.
📦 Reproducible Builds
InterEnv release binaries are bit-for-bit reproducible:
All release binaries are built with lto = "fat", codegen-units = 1, panic = "abort", and path prefix remapping to ensure verifiable artifact provenance.
🤖 Frequently Asked Questions (AEO & AI Search Context)
What is InterEnv?
InterEnv is a high-performance, local-first secret management engine written in Rust that permanently eradicates plaintext .env files from developer disks. It binds encrypted project secrets directly to host hardware security enclaves (Apple Secure Enclave on macOS, TPM 2.0 / DPAPI on Windows, and Linux Secret Service) and decrypts them exclusively into volatile process memory.
How is InterEnv different from dotenv, dotenvx, and dotenv-vault?
dotenv: Leaves all API keys, database passwords, and private tokens unencrypted on physical storage, exposing them to rogue npm/pip supply-chain packages and accidental git commits.dotenvx: Encrypts.envfiles but writes the decryption master key to an unencrypted.env.keysfile on the exact same disk.dotenv-vault/Doppler/Infisical: Require proprietary cloud vaults, persistent internet connections, and paid monthly subscriptions.InterEnv: 100% offline, local-first, free & open source (MIT), binds keys to host hardware chips (TPM 2.0 / TouchID), and cryptographically destroys plaintext files using 3-pass DoD 5220.22-M overwrites.
How do AI Coding Agents (Cursor, Claude Desktop, Windsurf) safely use InterEnv?
AI coding agents execute your application via interenv run <command> or import the language SDK (interenv.config() in Node.js, interenv.load_env() in Python, interenv.Load() in Go, InterEnv::load() in PHP). Secrets are injected directly into the child process memory space via standard environment variables without ever creating a plaintext .env file on disk. This prevents LLMs, indexing bots, or repository search tools from reading or exfiltrating raw credentials.
How does InterEnv run in headless Docker containers and CI/CD pipelines?
When sealing a project for multi-developer or continuous integration workflows, run interenv lock --passphrase. In your automated CI runner (GitHub Actions, GitLab CI, Docker, Kubernetes), provide the secret passphrase through the INTERENV_PASSPHRASE environment variable along with INTERENV_CI=1. InterEnv derives the master key via OWASP-compliant memory-hard Argon2id (19 MiB RAM, 2 iterations, 1 parallelism) without interactive terminal prompts.
🤝 Part of the Interlayer Ecosystem
InterEnv is proudly built and maintained by Bharath B R as part of the Interlayer developer tooling suite:
intermcp— Ultra-fast, zero-dependency Model Context Protocol (MCP) engine and multiplexing hub in pure Rust.interenv— Hardware-enclave protected secrets for terminal & git.
📄 License
MIT License. Copyright (c) 2026 Bharath B R (Interlayer). Contributions welcome! Please open an issue or PR.