Stop leaking secrets. Stop losing .env files. Start shipping safely.
Features β’ Quick Start β’ CLI Usage β’ API Docs β’ Contributing
Every developer has done this:
# Monday
cp .env.example .env # "I'll fill this later"
# Tuesday
git add . # accidentally commits .env π
# Wednesday
slack: "hey what's the DB password?" # sharing secrets in plain text π
# Thursday
new team member: "what env vars do I need?" # nobody knows πSmart Env Vault fixes all of this.
| Feature | Description |
|---|---|
| π AES-256 Encryption | All secrets encrypted locally before storage |
| π Web UI | Beautiful dashboard to manage all your project envs |
| β‘ CLI First | Full terminal workflow β vault push, vault pull, vault sync |
| π₯ Team Sharing | Share encrypted vaults with teammates via tokens |
| π¦ Multi-Project | Manage envs across unlimited projects |
| π Version History | Roll back to any previous env state |
| π·οΈ Environment Tags | Separate dev / staging / prod configs |
| π Secret Scanner | Detect accidentally committed secrets in your repo |
pip install smart-env-vault
# Initialize vault in your project
vault init
# Push your current .env to vault
vault push --env development
# Pull env on another machine / CI
vault pull --env development --out .envgit clone https://github.com/ashish7802/smart-env-vault
cd smart-env-vault
# Start backend
cd backend
pip install -r requirements.txt
uvicorn main:app --reload
# Start frontend (new terminal)
cd frontend
npm install && npm run devOpen http://localhost:5173 π
docker-compose up -d# Initialize a new vault
vault init [--project my-app]
# Push secrets
vault push # push .env
vault push --file .env.production # push specific file
vault push --env staging # tag as staging
# Pull secrets
vault pull # pull latest
vault pull --env production # pull specific env
vault pull --out /path/to/.env # output to specific path
# Team management
vault invite teammate@email.com # invite with read access
vault invite teammate@email.com --write # invite with write access
vault token create --expires 7d # create expiring share token
# Scan for leaked secrets
vault scan # scan current repo
vault scan --path /path/to/project # scan specific path
# Version history
vault history # list all versions
vault rollback --version 3 # rollback to version 3
# Environment tags
vault envs # list all environments
vault switch production # switch active environmentsmart-env-vault/
βββ backend/ # FastAPI server
β βββ main.py # App entry point
β βββ routers/ # API routes
β β βββ vault.py # Vault CRUD operations
β β βββ auth.py # Authentication
β β βββ team.py # Team management
β βββ services/
β β βββ crypto.py # AES-256 encryption/decryption
β β βββ scanner.py # Secret leak scanner
β β βββ vault.py # Business logic
β βββ models/ # Pydantic models
β
βββ frontend/ # React + Vite dashboard
β βββ src/
β βββ pages/ # Dashboard, Projects, Settings
β βββ components/ # Vault cards, Secret editor, etc.
β
βββ cli/ # Python CLI (Click)
β βββ vault_cli.py
β
βββ docker-compose.yml
- Zero-knowledge: Server never sees plaintext secrets
- AES-256-GCM encryption with per-vault keys
- Master password never leaves your machine
- Keys derived using PBKDF2 (100k iterations)
- All API endpoints require JWT auth
- Optional 2FA support
API docs auto-generated at http://localhost:8000/docs
Key endpoints:
POST /api/auth/register
POST /api/auth/login
GET /api/vaults # list all vaults
POST /api/vaults # create vault
GET /api/vaults/{id}/secrets # get encrypted secrets
PUT /api/vaults/{id}/secrets # update secrets
GET /api/vaults/{id}/history # version history
POST /api/team/invite # invite teammate
POST /api/scan # scan for leaks
Backend: Python Β· FastAPI Β· SQLite/PostgreSQL Β· Pydantic Β· Python-jose (JWT) Β· Cryptography (AES-256)
Frontend: React 18 Β· Vite Β· TailwindCSS Β· Zustand Β· React Query
CLI: Python Β· Click Β· Rich (terminal UI)
DevOps: Docker Β· GitHub Actions CI
PRs welcome! See CONTRIBUTING.md
git clone https://github.com/ashish7802/smart-env-vault
cd smart-env-vault
# Pick an issue labeled `good first issue`MIT Β© Ashish Yadav
