Core Commands
These commands handle the basic workflow of syncing environment variables between EnvManager and your local .env files.
pull
Download variables from EnvManager to a local file.
envmanager pull [options]
Options:
| Option | Description |
|---|---|
-e, --environment <name> | Environment name (default: from config or "development") |
-p, --project <id> | Project ID (default: from config) |
-o, --output <file> | Output file path (default: .env) |
--format <type> | Export format (see Export Formats) |
--k8s-namespace <ns> | Kubernetes namespace (default: "default") |
--k8s-name <name> | Kubernetes resource name |
--no-secrets | Exclude secret values (will be empty) |
-f, --force | Overwrite existing file without prompting |
-r, --resolve-references | Resolve ${VAR} references to their values |
-F, --include-fallbacks | Include fallback values for empty variables |
-s, --show-sources | Show value source as inline comments |
Examples:
# Pull from configured project/environment
envmanager pull
# Pull specific environment
envmanager pull --environment production
# Pull to custom file
envmanager pull --output .env.local
# Pull without secret values
envmanager pull --no-secrets
# Pull as Docker Compose YAML
envmanager pull --format docker-compose -o docker-compose.env.yml
# Pull as Kubernetes Secret
envmanager pull --format k8s-secret --k8s-name my-app --k8s-namespace production -o secrets.yaml
Output:
Pulled 12 variables to .env (dotenv)
8 plain, 4 secrets
For details on all supported export formats, see Export Formats.
push
Upload local .env file to EnvManager.
envmanager push [options]
Options:
| Option | Description |
|---|---|
-e, --environment <name> | Environment name (default: "development") |
-p, --project <id> | Project ID (default: from config) |
-i, --input <file> | Input file path (default: .env) |
--secrets <keys> | Comma-separated list of keys to mark as secrets |
--dry-run | Show what would be pushed without making changes |
-f, --force | Push without confirmation |
Examples:
# Push from .env
envmanager push
# Preview changes first
envmanager push --dry-run
# Mark specific variables as secrets
envmanager push --secrets "DATABASE_URL,API_SECRET"
# Push different file
envmanager push --input .env.production --environment production
Conflict Handling:
If remote variables have changed since your last pull, push will show conflicts:
Conflicts detected:
API_KEY: local differs from remote
Use --force to overwrite remote values.
diff
Compare local .env file with remote variables.
envmanager diff [options]
Options:
| Option | Description |
|---|---|
-e, --environment <name> | Environment name (default: "development") |
-p, --project <id> | Project ID |
-i, --input <file> | Local file to compare (default: .env) |
Output:
Comparing .env with development environment
+ NEW_VAR=value # Only in local
- OLD_VAR # Only in remote
~ API_URL # Different values
DATABASE_URL # Same (secret - values hidden)
Summary: 1 added, 1 removed, 1 changed, 8 unchanged
Secret values are never shown in diff output.
list
List projects, environments, or variables.
envmanager list <type> [options]
Types:
| Type | Description |
|---|---|
projects | List all accessible projects |
environments | List environments in a project |
variables | List variables in an environment |
Options:
| Option | Description |
|---|---|
-p, --project <id> | Project ID (for environments/variables) |
-e, --environment <name> | Environment name (default: "development") |
-v, --verbose | Show additional details |
Examples:
# List all projects
envmanager list projects
# List environments in a project
envmanager list environments --project abc123
# List variables (uses config if no project specified)
envmanager list variables
# Verbose output with IDs
envmanager list projects --verbose
Output:
Projects:
my-app 3 environments
backend-api 2 environments
marketing-site 4 environments
Variables in development:
DATABASE_URL [secret]
API_KEY [secret]
DEBUG false
LOG_LEVEL info
PORT 3000
config
Manage project configuration.
envmanager config <action> [options]
Actions:
| Action | Description |
|---|---|
init | Create envmanager.json interactively |
get <key> | Get a config value |
set <key> <value> | Set a config value |
Examples:
# Initialize configuration
envmanager config init
# Get current project
envmanager config get project_id
# Change environment
envmanager config set environment staging
debug
Collect diagnostic info for troubleshooting. Share the output with support when reporting issues.
envmanager debug
Output:
=== EnvManager CLI Debug Report ===
Timestamp: 2026-02-19T15:48:27.806Z
CLI Version: 0.1.5
Node: v22.14.0
Platform: darwin arm64
--- Config ---
Config file: /path/to/envmanager.json
project_id: not set
environment: not set
--- Authentication ---
Auth method: CLI session key (em_abc1234...)
API URL: default (production)
--- API Connection ---
Auth exchange: 120ms
getUser: 45ms
User ID: abc-123...
Email: user@example.com
Org query: 32ms
Organizations (1):
- My Org (owner) [abc12345...]
=== End Debug Report ===
API keys are partially redacted. No secrets are exposed.
Common Workflows
Initial Setup
# Login once
envmanager login
# Initialize project
envmanager init --project <id>
# Pull current variables
envmanager pull
Daily Development
# Check what's different
envmanager diff
# Pull latest changes
envmanager pull --force
# Or use real-time sync
envmanager dev
Updating Production
# Compare with production
envmanager diff --environment production
# Push changes (with review)
envmanager push --environment production
# Or dry-run first
envmanager push --environment production --dry-run