@codecompose/envi
v1.4.0
Published
Envi makes it easy to capture files that live outside of version control (like .env and .dev.vars) from a codebase in a central location that can be version controlled, and restored for new checkouts and spawning git worktree instances.
Maintainers
Readme
Envi
Capture, store, and restore files that live outside of version control — .env, Cloudflare Workers .dev.vars, and any other filename you declare per repo — across your projects.
Features
- Centralized Storage - Capture
.env, Cloudflare Workers.dev.vars, and any extra filenames you list undercapture_patternsinenvi.config.maml— all into a central, version-controlled location - Extensible per repo - Declare your own filename patterns (
.flaskenv, custom secret files — anything inKEY=valueformat) without waiting on a release - Easy Restoration - Restore captured files on new systems or git worktrees when working with parallel AI agents
- Secure Sharing - Share configurations safely with team members using encrypted, compressed blobs
- At-Rest Encryption - Optional per-repo encryption key (
envi.config.maml) encrypts captured values in storage and the GitHub backup - GitHub Integration - Optional automatic version control
- Comment Preservation - Keeps full-line and inline comments
- Monorepo Support - Works seamlessly with monorepos
- 100% Test Coverage - Core logic (encryption, parsing, storage) fully tested
Quick Start
# Install globally
pnpm add -g @codecompose/envi
# Capture env files
cd /path/to/your/project
envi capture
# Restore env files
envi restoreDocumentation
Visit envi.codecompose.dev for complete documentation including:
- Getting Started - Installation and basic usage
- Commands - Detailed command documentation
- Git Worktrees with AI Tools - Configure parallel agents
- Multi-Language Support - Using with Rust, Go, Python, and more
- GitHub Integration - Set up automatic version control
- Monorepo Support - Working with monorepos
Commands
envi capture- Capture files outside of version control (.env,.dev.vars, plus anycapture_patternsyou declare) from a repositoryenvi restore- Restore captured files from storageenvi pack- Create encrypted blob for sharing with team membersenvi unpack <blob>- Decrypt and restore configuration from blobenvi create-key- Generateenvi.config.mamlto enable at-rest encryptionenvi clear- Delete stored configuration for current projectenvi global github enable- Enable GitHub version controlenvi global github disable- Disable GitHub version controlenvi global github restore- Restore envi store from GitHubenvi global clear- Delete entire envi directory and all stored configurations
Run any command with --help for more information or see the Commands documentation.
Development
Setup
pnpm installBuild
pnpm buildDevelopment Mode
pnpm devTesting
pnpm test # Run tests
pnpm test:ui # Run tests with UI
pnpm test:coverage # Run tests with coverageTest Coverage: Core business logic (encryption, compression, parsing, storage) has 100% test coverage.
Linting & Formatting
pnpm lint # Run linter
pnpm lint:fix # Run linter and fix issues
pnpm format # Format code with Prettier
pnpm check-format # Check if code is formatted
pnpm check-types # Run TypeScript type checkingDocumentation
pnpm docs:dev # Start documentation dev server
pnpm docs:build # Build documentation site
pnpm docs:preview # Preview built documentationLicense
MIT
