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:

OptionDescription
-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-secretsExclude secret values (will be empty)
-f, --forceOverwrite existing file without prompting
-r, --resolve-referencesResolve ${VAR} references to their values
-F, --include-fallbacksInclude fallback values for empty variables
-s, --show-sourcesShow 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:

OptionDescription
-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-runShow what would be pushed without making changes
-f, --forcePush 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:

OptionDescription
-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:

TypeDescription
projectsList all accessible projects
environmentsList environments in a project
variablesList variables in an environment

Options:

OptionDescription
-p, --project <id>Project ID (for environments/variables)
-e, --environment <name>Environment name (default: "development")
-v, --verboseShow 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:

ActionDescription
initCreate 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

Get DevOps tips in your inbox

Security best practices and product updates. No spam.

No spam. Unsubscribe anytime.