Quick Start
1. Log in
Section titled “1. Log in”envsh login# Email: alice@example.com# Code: 483921 ← check your email for the 6-digit code# ok: Logged in as alice@example.com# ok: SSH key registered from /Users/alice/.ssh/id_ed25519.pubOn first login, envsh automatically creates your workspace and registers your SSH public key.
2. Check your setup
Section titled “2. Check your setup”envsh doctor# ok SSH key at ~/.ssh/id_ed25519.pub# ok Credentials file exists# ok Active session token# ok Server reachable at https://api.envsh.dev# ok SSH key registered on server## ok: All checks passed3. Create a project
Section titled “3. Create a project”envsh project create "My API" my-api# ok: Created project My API (slug: my-api)4. Push secrets
Section titled “4. Push secrets”envsh push .env --project my-api --env production# ok: Pushed v1 → my-api/productionYour .env file is encrypted locally and uploaded as ciphertext.
5. Pull secrets
Section titled “5. Pull secrets”On another machine (or after cloning a fresh repo):
envsh pull production --project my-api# ok: Pulled v1 from my-api/production → .env6. Run with secrets
Section titled “6. Run with secrets”Inject secrets as environment variables without writing them to disk:
envsh run --project my-api production -- node server.jsThe process receives your secrets as env vars. When it exits, they’re gone.
What just happened?
Section titled “What just happened?”When you pushed:
- envsh generated a random AES-256 key
- Encrypted your
.envwith AES-256-GCM - Wrapped the AES key with your SSH public key (and every team member’s key)
- Sent only the ciphertext to the server
When you pulled:
- Downloaded the ciphertext bundle
- Used your SSH private key to unwrap the AES key
- Decrypted locally
- Wrote
.envwith0600permissions
The server never saw your plaintext. It can’t — it doesn’t have anyone’s private key.
Invited to a team?
Section titled “Invited to a team?”If someone invited you, log in and switch to their workspace:
envsh loginenvsh workspace list# NAME SLUG ROLE ID# you@example.com you admin abc123-...# Acme Corp acme member def456-...
envsh workspace switch def456-...# ok: Switched to workspace Acme Corp
envsh pull production --project my-api