Skip to main content

Overview

The Ensemble CLI is the unified command-line interface for the entire Ensemble ecosystem. Instead of installing and managing separate CLIs for each tool, you get a single entry point that orchestrates everything.

Why a Unified CLI?

The Ensemble CLI provides a single interface for all tools in the ecosystem:
Benefits:
  • Single installation - One package to install and update
  • Consistent interface - Same patterns across all tools
  • Automatic discovery - CLI suggests related tools as you work
  • Simplified CI/CD - One binary in your pipelines

Quick Start

Getting Started

Verify It Works

Checking for Updates (Landscape View)

The --version flag scans your directory tree and shows all discovered Ensemble projects in a tree view:
Example output:
The version command:
  • Scans your workspace - Recursively finds all Ensemble projects (up to 3 levels deep)
  • Tree view display - Shows each project with its packages and update status
  • Checks npm registry - Fetches latest versions for all packages in parallel
  • Detects package manager - Shows npm, pnpm, yarn, or bun per project

Upgrade Command

Manage updates across all your Ensemble projects with the interactive upgrade command:
Features:
  • Multi-project scanning - Finds all Conductor and Edgit projects in your workspace
  • Interactive selection - Choose which projects to upgrade
  • Batch operations - Update multiple projects at once
  • Package manager aware - Uses the correct package manager per project
Example output:

Upgrade Options

Usage Examples

Run ensemble upgrade regularly to keep all your Ensemble projects up to date. The command is designed for managing multiple projects in a monorepo or workspace.

Command Structure

The CLI follows a simple pattern:

Available Tools

Conductor Commands

Global Commands

Info Command

View project information across all Ensemble products:
Using ensemble info: The interactive menu lets you choose which product to view:
Command Naming: info is the official command. status is an alias that works identically. For Edgit specifically, ensemble edgit status passes through to git status since Edgit is git-native.

Conductor Commands

Create and manage Conductor projects:

Init Options

Start/Stop Options

The start command runs in foreground by default (you see logs in real-time): The stop command (for background servers):
Dev Container Support: When running in a dev container (VS Code Remote Containers, GitHub Codespaces, Docker), ensemble conductor start automatically binds to 0.0.0.0 for network access. Use --no-auto-host to disable this behavior.
Port Conflicts: If port 8787 is in use, the command automatically finds the next available port. No more “Address already in use” errors!

Edgit Commands

Version and deploy components:
Since Edgit is git-native, ensemble edgit status passes through to git status. Use ensemble edgit info for Edgit project information.

Cloud Commands

Manage Ensemble Cloud resources:

Configure Command

Configure AI providers, authentication, and other settings after project creation:

AI Provider Setup

The configure ai command helps you set up AI providers:
Supported Providers:

Cloudflare Authentication

The configure auth command helps you log in to Cloudflare:
If not logged in, it will open a browser to complete the OAuth flow.

How It Works

The configure command:
  • Stores secrets securely - Uses wrangler secret put to store API keys
  • Updates wrangler.toml - Enables the [ai] binding automatically
  • Works anytime - Run after initial project creation to add AI support
  • Shared with init - Same wizards used during ensemble conductor init

Wrangler Commands

Use ensemble wrangler to run any Wrangler command:
Why explicit wrangler? Previously, unknown commands were automatically passed to Wrangler. This caused confusing errors when you mistyped a command (e.g., ensemble start instead of ensemble conductor start). Now, Wrangler commands require the explicit ensemble wrangler prefix, and typos show helpful suggestions.

Cross-Tool Discovery

The CLI intelligently suggests related tools as you work:

Environment Variables

CI/CD Integration

For CI/CD pipelines, use npx to run commands without global installation:

GitHub Actions

GitLab CI

Direct Product Init for CI/CD

For automated pipelines, you can also use the product-specific init commands with the -y flag to skip interactive prompts:

Troubleshooting

Ensure your global npm/pnpm bin directory is in your PATH:
Use npx to avoid global installation entirely:
Or use a Node version manager like nvm or fnm for global installs:
The Ensemble CLI passes through to Wrangler. Ensure you’re authenticated:

Next Steps

Quick Start

Build your first project in 5 minutes

Conductor Docs

Edge orchestration framework

Edgit Docs

Component versioning system

Cloud Docs

Managed platform