CLI for securely sharing encrypted .env files across teams.
Project description
Env-Sync
Env-Sync is a CLI tool for sharing encrypted .env files across a team without committing secrets to Git or sending them through chat.
Env-Sync has two main parts:
- A Flask API that stores encrypted vault payloads, team memberships, and per-user wrapped vault keys
- A Python CLI package,
envsync-vault, that handles authentication, key generation, encryption, and pull/push workflows
Core Features
- User registration and login through the CLI
- Local RSA key generation on first login
- Client-side encryption of the team
.env - Per-user wrapped vault keys for team access
- Team creation and membership management
- Admin/member role controls
- Pull and push workflows for encrypted vault updates
- Team-specific interactive subshell for faster team operations
Install
Install from PyPI:
pip install envsync-vault
Verify the install:
envsync help
Configuration
By default, the CLI points to the hosted Railway API:
https://env-sync.up.railway.app
To use a different deployment:
export ENVSYNC_BASE_URL="http://127.0.0.1:7070"
Basic Workflow
Register and log in:
envsync register --email alice@example.com
envsync login --email alice@example.com
Create a team and upload the initial vault:
envsync create-team --name "Project Apollo"
envsync push --team project-apollo
Add a team member:
envsync add-member --team project-apollo --email bob@example.com
Pull secrets on another machine or account:
envsync pull --team project-apollo
Main Commands
Authentication:
envsync register --email you@example.com
envsync login --email you@example.com
envsync whoami
envsync logout
Teams:
envsync create-team --name "Project Apollo"
envsync list-teams
envsync list-members --team project-apollo
envsync add-member --team project-apollo --email bob@example.com
envsync promote --team project-apollo --email bob@example.com
envsync demote --team project-apollo --email bob@example.com
envsync leave-team --team project-apollo
envsync delete-team --team project-apollo
Vault operations:
envsync push --team project-apollo
envsync pull --team project-apollo
envsync team project-apollo
Local Development
Set up the project locally:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
Configure environment variables:
export DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DBNAME"
export JWT_KEY="replace-me"
Run migrations and start the API:
python -m flask --app app db upgrade
python app.py
Point the CLI at the local API:
export ENVSYNC_BASE_URL="http://127.0.0.1:7070"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file envsync_vault-0.0.1.tar.gz.
File metadata
- Download URL: envsync_vault-0.0.1.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7645f1ea867b0949bb0242409e69fe2d4bc1375ff62d428785a3c9d5d936422
|
|
| MD5 |
299bf8c0d15a92df11c78a834c2fa552
|
|
| BLAKE2b-256 |
6a24b7fb5557f177c7ef220294187565c8f5d0207e846f1d898546352a7b817a
|
File details
Details for the file envsync_vault-0.0.1-py3-none-any.whl.
File metadata
- Download URL: envsync_vault-0.0.1-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ee581d861b99f131fd2fb7651c7bcc489d37e2d7a8aae4339b802c7b61793db
|
|
| MD5 |
c08cd1b55b96a4a6daeec9c88ccde0c9
|
|
| BLAKE2b-256 |
6c324754b7bd68292ef7356719622113cb49cc9ff73dbbd0f1b0d35883d2d043
|