| Crates.io | envoy-cli |
| lib.rs | envoy-cli |
| version | 0.2.3 |
| created_at | 2025-12-21 15:29:12.563859+00 |
| updated_at | 2026-01-12 23:17:21.12679+00 |
| description | A Git-like CLI for managing encrypted environment files |
| homepage | |
| repository | https://github.com/denizlg24/envoy |
| max_upload_size | |
| id | 1998128 |
| size | 554,257 |
Envoy is a secure, Git-like CLI for managing encrypted environment files across machines and teams.
It lets you encrypt once, sync safely, and restore automatically — without ever committing secrets to Git.
Managing .env files across devices is painful:
Envoy solves this by treating secrets like versioned artifacts, not source code.
Envoy is built around a few simple ideas:
If you understand Git, Envoy will feel familiar.
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/denizlg24/envoy/master/install.sh | bash
Windows (PowerShell):
iwr -useb https://raw.githubusercontent.com/denizlg24/envoy/master/install.ps1 | iex
cargo install envoy-cli
Or build locally:
cargo build --release
Envoy uses GitHub OAuth (device flow).
envy login
This stores an API token in:
$HOME/.envoy/config.toml
Logout at any time:
envy logout
envy init
This creates the .envoy/ directory and sets up the default remote (origin).
Add files (default .env) using your workflow.
Secrets are tracked internally and never committed to Git.
envy encrypt
envy encrypt --input .env.testing
envy commit -m "Add production secrets"
envy push
envy pull
envy status
The following animated demos show common Envoy workflows.



.envoy/config.json
{
"version": 1,
"project_id": "...",
"default_remote": "origin",
"remotes": {
"origin": "https://envoy-cli.vercel.app/api"
}
}
.envoy/HEAD # Current commit hash
.envoy/refs/remotes/origin/HEAD # Remote HEAD
.envoy/latest # Current manifest blob hash
.envoy/cache/ # Encrypted blobs and commits
.envoy/sessions/ # Cached session keys
| Command | Description |
|---|---|
envy init |
Initialize a new project |
envy encrypt |
Encrypt and track a file |
envy remove |
Remove a file from tracking |
envy commit -m "msg" |
Create a commit |
envy log |
View commit history |
envy status |
Show current state |
envy push |
Push commits to remote |
envy pull |
Pull and restore secrets |
envy login |
Authenticate with GitHub |
envy logout |
Clear authentication |
Envoy is designed so the server is untrusted by default.
For detailed cryptographic analysis, see IMPLEMENTATION_SECURITY.md.
MIT