Skip to main content

Overview

The Ensemble Cloud CLI provides commands for deploying and managing your projects on Ensemble Cloud. Access these commands through the unified Ensemble CLI:
ensemble cloud <command> [options]
Ensemble Cloud is currently in private beta. Join the waitlist to get early access.

Getting Started

No installation needed - use npx to run the CLI:
# Run cloud commands via npx (no installation required)
npx @ensemble-edge/ensemble cloud --help

# Or if you have ensemble installed
ensemble cloud --help

Authentication

ensemble cloud login

Authenticate with Ensemble Cloud:
ensemble cloud login
This opens your browser to authenticate with your Ensemble Cloud account. The CLI stores credentials securely in your system keychain. Options:
OptionDescription
--token <token>Use an API token instead of browser auth
--no-browserPrint login URL instead of opening browser
Examples:
# Interactive browser login
ensemble cloud login

# Use API token (for CI/CD)
ensemble cloud login --token $ENSEMBLE_CLOUD_TOKEN

ensemble cloud logout

Remove stored credentials:
ensemble cloud logout

ensemble cloud whoami

Display current authenticated user:
ensemble cloud whoami
# Output: Logged in as [email protected] (team: acme-corp)

Deployment

ensemble cloud deploy

Deploy your project to Ensemble Cloud:
ensemble cloud deploy [options]
Options:
OptionDescription
--env <environment>Target environment (staging, production)
--message <msg>Deployment message
--dry-runPreview deployment without executing
--waitWait for deployment to complete
Examples:
# Deploy to production
ensemble cloud deploy

# Deploy to staging
ensemble cloud deploy --env staging

# Preview what would be deployed
ensemble cloud deploy --dry-run

# Deploy with message
ensemble cloud deploy --message "Fix payment processing bug"

ensemble cloud rollback

Rollback to a previous deployment:
ensemble cloud rollback [deployment-id] [options]
Options:
OptionDescription
--env <environment>Target environment
--steps <n>Roll back n deployments (default: 1)
Examples:
# Rollback to previous deployment
ensemble cloud rollback

# Rollback to specific deployment
ensemble cloud rollback dep_abc123

# Rollback 3 deployments
ensemble cloud rollback --steps 3

Monitoring

ensemble cloud status

View cloud connection and deployment status:
ensemble cloud status [options]
Options:
OptionDescription
--env <environment>Target environment (default: production)
--jsonOutput as JSON
--compactCompact single-line format
Example Output (Full):
┌─────────────────────────────┐
│ ✓ ☁️  Cloud Status          │
│                             │
│ Environment: production     │
└─────────────────────────────┘

Connection
  Status:         ✓ Enabled
  GitHub Repo:    acme/my-project

Deployment
  Worker URL:     https://my-project.workers.dev
  Health:         ✓ Reachable (v2.4.0)

Docs: https://docs.ensemble.ai/cloud
Example Output (Compact):
ensemble cloud status --compact
☁️  Cloud Status

Environment: production
Status:      ✓ Enabled
Worker:      ✓ (v2.4.0) https://my-project.workers.dev
Example Output (JSON):
ensemble cloud status --json
{
  "enabled": true,
  "environment": "production",
  "github_repo": "acme/my-project",
  "workerUrl": "https://my-project.workers.dev",
  "stealthMode": false,
  "health": {
    "ok": true,
    "version": "2.4.0"
  }
}
When stealthMode is enabled in your conductor.config.ts, the health endpoint is hidden and the status command will show a 404 error with a helpful tip about stealth mode.

ensemble cloud logs

Stream or view logs:
ensemble cloud logs [options]
Options:
OptionDescription
--follow, -fStream logs in real-time
--env <environment>Target environment
--ensemble <name>Filter by ensemble
--level <level>Filter by log level (debug, info, warn, error)
--since <duration>Show logs since duration (1h, 30m, 1d)
--limit <n>Number of log entries (default: 100)
Examples:
# Stream production logs
ensemble cloud logs -f

# View staging errors from last hour
ensemble cloud logs --env staging --level error --since 1h

# Filter by ensemble
ensemble cloud logs --ensemble company-intel --limit 50

ensemble cloud metrics

View performance metrics:
ensemble cloud metrics [options]
Options:
OptionDescription
--env <environment>Target environment
--period <duration>Time period (1h, 24h, 7d, 30d)
--ensemble <name>Filter by ensemble
--jsonOutput as JSON
Example Output:
Metrics (last 24h) - production

Requests:     1.2M total
  Success:    1.18M (98.3%)
  Errors:     24K (1.7%)

Latency (p50/p95/p99):
  company-intel:    45ms / 120ms / 250ms
  data-pipeline:    230ms / 890ms / 1.2s
  email-processor:  89ms / 210ms / 450ms

AI Operations:
  Total:      890K
  Tokens:     45M input / 12M output
  Cost:       $127.45

Project Management

ensemble cloud projects list

List all projects:
ensemble cloud projects list [options]
Options:
OptionDescription
--team <team>Filter by team
--jsonOutput as JSON

ensemble cloud projects create

Create a new cloud project:
ensemble cloud projects create <name> [options]
Options:
OptionDescription
--team <team>Team to create project in
--region <region>Primary region (us, eu, asia)

ensemble cloud projects delete

Delete a project:
ensemble cloud projects delete <name> [options]
Options:
OptionDescription
--forceSkip confirmation prompt

Environment Management

ensemble cloud env list

List environments:
ensemble cloud env list

ensemble cloud env create

Create a new environment:
ensemble cloud env create <name> [options]
Options:
OptionDescription
--copy-from <env>Copy configuration from existing environment
--region <region>Primary region
Examples:
# Create staging environment
ensemble cloud env create staging

# Create preview environment copying from staging
ensemble cloud env create preview --copy-from staging

Secrets Management

ensemble cloud secrets set

Set a secret:
ensemble cloud secrets set <name> [value] [options]
Options:
OptionDescription
--env <environment>Target environment (default: all)
--from-file <path>Read value from file
Examples:
# Set secret (prompts for value)
ensemble cloud secrets set ANTHROPIC_API_KEY

# Set with value
ensemble cloud secrets set DATABASE_URL "postgres://..."

# Set for specific environment
ensemble cloud secrets set API_KEY --env staging

ensemble cloud secrets list

List secret names (not values):
ensemble cloud secrets list [options]

ensemble cloud secrets delete

Delete a secret:
ensemble cloud secrets delete <name> [options]

Team Management

ensemble cloud team members

List team members:
ensemble cloud team members [options]

ensemble cloud team invite

Invite a team member:
ensemble cloud team invite <email> [options]
Options:
OptionDescription
--role <role>Role: admin, developer, viewer

CI/CD Integration

GitHub Actions

name: Deploy to Ensemble Cloud

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Deploy
        run: npx @ensemble-edge/ensemble cloud deploy --wait
        env:
          ENSEMBLE_CLOUD_TOKEN: ${{ secrets.ENSEMBLE_CLOUD_TOKEN }}

Environment Variables

VariableDescription
ENSEMBLE_CLOUD_TOKENAPI token for authentication
ENSEMBLE_CLOUD_PROJECTOverride project name
ENSEMBLE_CLOUD_ENVDefault target environment

Exit Codes

CodeDescription
0Success
1General error
2Authentication required
3Project not found
4Deployment failed
5Invalid configuration

Next Steps