@conductor-oss/conductor-cli
v0.0.47
Published
CLI for Conductor - The leading open-source orchestration platform
Readme
CLI for Conductor
Conductor is the leading open-source orchestration platform allowing developers to build highly scalable distributed applications.
Check out the official documentation for Conductor.
This repository provides a CLI for the Conductor Conductor Server.
⭐ Conductor OSS
Show support for the Conductor OSS. Please help spread the awareness by starring Conductor repo.
Installation
Using Homebrew (macOS/Linux)
First time installation:
# Add the Conductor tap (one-time setup)
brew tap conductor-oss/conductor
# Install the CLI
brew install conductorOr install directly in one line:
brew install conductor-oss/conductor/conductorAfter tapping, future updates are simple:
brew upgrade conductorIf you previously installed from conductor-oss/conductor-tools, migrate to the new tap:
brew uninstall conductor
brew untap conductor-oss/conductor-tools
brew install conductor-oss/conductor/conductorUsing npm
If you have Node.js installed:
npm install -g @conductor-oss/conductor-cliThis will automatically download and install the appropriate binary for your platform.
Quick Install (macOS/Linux)
Install the latest version using curl:
curl -fsSL https://raw.githubusercontent.com/conductor-oss/conductor-cli/main/install.sh | shThis will automatically:
- Detect your OS and architecture
- Download the latest release
- Install to
/usr/local/bin - Verify the installation
Custom Installation Directory
To install to a custom directory:
INSTALL_DIR=$HOME/.local/bin curl -fsSL https://raw.githubusercontent.com/conductor-oss/conductor-cli/main/install.sh | shManual Installation
Download the appropriate binary for your platform from the releases page:
- Linux amd64:
conductor_linux_amd64 - Linux arm64:
conductor_linux_arm64 - macOS amd64:
conductor_darwin_amd64 - macOS arm64:
conductor_darwin_arm64 - Windows amd64:
conductor_windows_amd64.exe - Windows arm64:
conductor_windows_arm64.exe
Then make it executable and move it to your PATH:
chmod +x conductor_*
mv conductor_* /usr/local/bin/conductorVerify Installation
conductor --versionShell Completion
Enable tab completion for commands, flags, and arguments:
Zsh (macOS default):
# One-time setup
conductor completion zsh > $(brew --prefix)/share/zsh/site-functions/_conductor
# Restart your shell or run:
source ~/.zshrcBash:
# Linux
conductor completion bash > /etc/bash_completion.d/conductor
# macOS
conductor completion bash > $(brew --prefix)/etc/bash_completion.d/conductor
# Then restart your shellFish:
conductor completion fish > ~/.config/fish/completions/conductor.fishPowerShell:
conductor completion powershell | Out-String | Invoke-ExpressionAfter installing, you'll get tab completion when typing conductor <TAB>.
Command Reference
Global Flags
These flags can be used with any command:
| Flag | Description |
|------|-------------|
| --server <url> | Conductor server URL (or set CONDUCTOR_SERVER_URL) |
| --auth-token <token> | Auth token for authentication (or set CONDUCTOR_AUTH_TOKEN) |
| --auth-key <key> | API key for authentication (or set CONDUCTOR_AUTH_KEY) |
| --auth-secret <secret> | API secret for authentication (or set CONDUCTOR_AUTH_SECRET) |
| --server-type <type> | Server type: OSS or Enterprise (default: OSS) |
| --profile <name> | Use a specific configuration profile |
| --config <path> | Path to config file (default: ~/.conductor-cli/config.yaml) |
| -v, --verbose | Print verbose logs |
| -y, --yes | Confirm yes to prompts |
| -h, --help | Help for any command |
| --version | Show CLI version |
Workflow Commands
Manage workflow definitions and executions.
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| workflow | list | --json, --csv | List all workflow definitions | conductor workflow list |
| workflow | get | <name> [version] | Get workflow definition | conductor workflow get my_workflow |
| workflow | get_all | | Get all workflow definitions (JSON) | conductor workflow get_all |
| workflow | create | <file>, --force, --js | Create/register a workflow | conductor workflow create flow.json --force |
| workflow | update | <file> | Update a workflow definition | conductor workflow update flow.json |
| workflow | delete | <name> <version> | Delete a workflow definition | conductor workflow delete my_workflow 1 |
| workflow | start | -w, -i, -f, --version, --correlation, --sync, -u | Start workflow execution | conductor workflow start -w my_workflow -i '{"key":"value"}' |
| workflow | search | -w, -s, -c, --start-time-after, --start-time-before, --json, --csv | Search workflow executions | conductor workflow search -w my_workflow -s FAILED |
| workflow | status | <workflow_id> | Get workflow execution status | conductor workflow status abc-123 |
| workflow | get-execution | <workflow_id>, -c | Get full execution details | conductor workflow get-execution abc-123 |
| workflow | terminate | <workflow_id> | Terminate a running execution | conductor workflow terminate abc-123 |
| workflow | pause | <workflow_id> | Pause a running execution | conductor workflow pause abc-123 |
| workflow | resume | <workflow_id> | Resume a paused execution | conductor workflow resume abc-123 |
| workflow | restart | <workflow_id>, --use-latest | Restart a completed workflow | conductor workflow restart abc-123 |
| workflow | retry | <workflow_id>, --resume-subworkflow-tasks | Retry the last failed task | conductor workflow retry abc-123 |
| workflow | rerun | <workflow_id>, --task-id, --task-input, --workflow-input | Rerun from a specific task | conductor workflow rerun abc-123 --task-id task1 |
| workflow | skip-task | <workflow_id> <task_ref>, --task-input, --task-output | Skip a task | conductor workflow skip-task abc-123 task1 |
| workflow | jump | <workflow_id> <task_ref>, --task-input | Jump to a specific task | conductor workflow jump abc-123 task2 |
| workflow | delete-execution | <workflow_id>, -a | Delete a workflow execution | conductor workflow delete-execution abc-123 |
| workflow | update-state | <workflow_id>, --variables, --task-updates | Update workflow state | conductor workflow update-state abc-123 --variables '{"x":1}' |
Workflow Start Options:
-w, --workflow- Workflow name (required)-i, --input- Input JSON string-f, --file- Input JSON file--version- Workflow version (optional)--correlation- Correlation ID--sync- Execute synchronously-u, --wait-until- Wait until task completes (with--sync)
Workflow Search Options:
-w, --workflow- Filter by workflow name-s, --status- Filter by status:COMPLETED,FAILED,PAUSED,RUNNING,TERMINATED,TIMED_OUT-c, --count- Number of results (default: 10, max: 1000)--start-time-after- Filter by start time (format:YYYY-MM-DD HH:MM:SS,YYYY-MM-DD, or epoch ms)--start-time-before- Filter by start time
Task Commands
Manage task definitions and executions.
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| task | list | --json, --csv | List all task definitions | conductor task list |
| task | get | <task_type> | Get task definition | conductor task get my_task |
| task | get_all | | Get all task definitions (JSON) | conductor task get_all |
| task | create | <file> | Create a task definition | conductor task create task.json |
| task | update | <file> | Update a task definition | conductor task update task.json |
| task | delete | <task_type> | Delete a task definition | conductor task delete my_task |
| task | poll | <task_type>, --count, --worker-id, --domain, --timeout | Batch poll for tasks | conductor task poll my_task --count 5 |
| task | update-execution | --workflow-id, --task-ref-name, --status, --output | Update task by reference | conductor task update-execution --workflow-id abc --task-ref-name t1 --status COMPLETED |
| task | signal | --workflow-id, --status, --output | Signal a task (async) | conductor task signal --workflow-id abc --status COMPLETED |
| task | signal-sync | --workflow-id, --status, --output | Signal a task (sync) | conductor task signal-sync --workflow-id abc --status COMPLETED |
Schedule Commands
Manage workflow schedules (Enterprise only).
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| schedule | list | --json, --csv | List all schedules | conductor schedule list |
| schedule | get | <name> | Get schedule details | conductor schedule get my_schedule |
| schedule | create | <file> or -n, -c, -w, -i, -p | Create a schedule | conductor schedule create -n daily -c "0 0 * * *" -w my_workflow |
| schedule | update | <file> or flags | Update a schedule | conductor schedule update schedule.json |
| schedule | delete | <name> | Delete a schedule | conductor schedule delete my_schedule |
| schedule | pause | <name> | Pause a schedule | conductor schedule pause my_schedule |
| schedule | resume | <name> | Resume a schedule | conductor schedule resume my_schedule |
| schedule | search | -c, -s | Search schedule executions | conductor schedule search -s FAILED |
Schedule Create Options:
-n, --name- Schedule name (required)-c, --cron- Cron expression (required)-w, --workflow- Workflow to start (required)-i, --input- Workflow input as JSON-p, --paused- Create in paused state--version- Workflow version
Secret Commands
Manage secrets (Enterprise only).
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| secret | list | --with-tags, --json, --csv | List all secrets | conductor secret list |
| secret | get | <key>, --show-value | Get a secret | conductor secret get db_password --show-value |
| secret | put | <key> [value], --value | Create/update a secret | conductor secret put db_password mySecret |
| secret | delete | <key>, -y | Delete a secret | conductor secret delete db_password -y |
| secret | exists | <key> | Check if secret exists | conductor secret exists db_password |
| secret | tag-list | <key>, --json, --csv | List tags for a secret | conductor secret tag-list db_password |
| secret | tag-add | <key>, --tag | Add tags to a secret | conductor secret tag-add db_password --tag env:prod |
| secret | tag-delete | <key>, --tag | Remove tags from a secret | conductor secret tag-delete db_password --tag env:prod |
| secret | cache-clear | --local, --redis | Clear secrets cache | conductor secret cache-clear |
Secret Put Methods:
# As argument
conductor secret put my_secret "secret_value"
# Via flag
conductor secret put my_secret --value "secret_value"
# From stdin
echo "secret_value" | conductor secret put my_secret
# From file
cat secret.txt | conductor secret put my_secretWebhook Commands
Manage webhooks (Enterprise only).
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| webhook | list | --json, --csv | List all webhooks | conductor webhook list |
| webhook | get | <webhook_id> | Get webhook details | conductor webhook get my_webhook |
| webhook | create | <file> or flags | Create a webhook | conductor webhook create webhook.json |
| webhook | update | <webhook_id>, --file | Update a webhook | conductor webhook update id --file webhook.json |
| webhook | delete | <webhook_id> | Delete a webhook | conductor webhook delete my_webhook |
Webhook Create Options:
--name- Webhook name--source-platform- Source platform (e.g.,Custom,GitHub,Slack)--verifier- Verifier type (e.g.,HEADER_BASED)--headers- Headers askey:valuepairs--receiver-workflows- Receiver workflows asworkflow:versionpairs
API Gateway Commands
Manage API Gateway services, routes, and authentication (Enterprise only).
Service Management
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| api-gateway service | list | --json | List all services | conductor api-gateway service list |
| api-gateway service | get | <service_id> | Get service details | conductor api-gateway service get my-service |
| api-gateway service | create | <file> or flags | Create a service | conductor api-gateway service create service.json |
| api-gateway service | update | <service_id> <file> | Update a service | conductor api-gateway service update my-service service.json |
| api-gateway service | delete | <service_id> | Delete a service | conductor api-gateway service delete my-service |
Service Create Options:
--service-id- Service ID--name- Display name--path- Base path--description- Description--enabled- Enable service (default: true)--mcp-enabled- Enable MCP--auth-config-id- Auth config ID--cors-allowed-origins- CORS origins (comma-separated)--cors-allowed-methods- CORS methods (comma-separated)--cors-allowed-headers- CORS headers (comma-separated)
Auth Configuration Management
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| api-gateway auth | list | --json | List auth configs | conductor api-gateway auth list |
| api-gateway auth | get | <auth_config_id> | Get auth config | conductor api-gateway auth get token-based |
| api-gateway auth | create | <file> or flags | Create auth config | conductor api-gateway auth create auth.json |
| api-gateway auth | update | <auth_config_id> <file> | Update auth config | conductor api-gateway auth update token-based auth.json |
| api-gateway auth | delete | <auth_config_id> | Delete auth config | conductor api-gateway auth delete token-based |
Auth Create Options:
--auth-config-id- Auth config ID--auth-type- Auth type:API_KEYorNONE--application-id- Application ID--api-keys- API keys (comma-separated)
Route Management
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| api-gateway route | list | <service_id>, --json | List routes | conductor api-gateway route list my-service |
| api-gateway route | create | <service_id> <file> or flags | Create a route | conductor api-gateway route create my-service route.json |
| api-gateway route | update | <service_id> <path> <file> | Update a route | conductor api-gateway route update my-service /users route.json |
| api-gateway route | delete | <service_id> <method> <path> | Delete a route | conductor api-gateway route delete my-service GET /users |
Route Create Options:
--http-method- HTTP method:GET,POST,PUT,DELETE, etc.--path- Route path--workflow-name- Workflow to execute--workflow-version- Workflow version--execution-mode-SYNCorASYNC--description- Route description--request-metadata-as-input- Include request metadata in input--workflow-metadata-in-output- Include workflow metadata in output
Server Commands
Manage a local Conductor server for development.
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| server | start | --port, --version, --oss, --orkes, -f | Start local server | conductor server start |
| server | stop | | Stop local server | conductor server stop |
| server | status | | Check server status | conductor server status |
| server | logs | -f, -n | Show server logs | conductor server logs -f |
Server Start Options:
--port- Port to run on (default: 8080)--version- Server version (default:latest)--oss- Use OSS Conductor (default)--orkes- Use Orkes Conductor (coming soon)-f, --foreground- Run in foreground
Examples:
# Start with defaults
conductor server start
# Start specific version on custom port
conductor server start --version 3.21.23 --port 9090
# Run in foreground
conductor server start -f
# View logs
conductor server logs -f -n 100Worker Commands
Run task workers (Experimental).
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| worker | stdio | --type, --count, --worker-id, --domain, --poll-timeout, --exec-timeout, --verbose | Run stdio worker | conductor worker stdio --type my_task python worker.py |
| worker | js | --type, --count, --worker-id, --domain, --timeout | Run JavaScript worker | conductor worker js --type my_task worker.js |
| worker | remote | --type, --count, --worker-id, --domain, --refresh | Run remote worker | conductor worker remote --type my_task |
| worker | list-remote | --namespace | List remote workers | conductor worker list-remote |
Worker Options:
--type- Task type to poll for (required)--count- Number of tasks per batch (default: 1)--worker-id- Worker identifier--domain- Task domain--poll-timeout- Poll timeout in ms (default: 100)--exec-timeout- Execution timeout in seconds--verbose- Print task and result JSON--refresh- Force re-download remote worker
Config Commands
Manage CLI configuration.
| Command | Sub-command | Options | Description | Example |
|---------|-------------|---------|-------------|---------|
| config | save | --profile | Save configuration (interactive) | conductor config save |
| config | list | | List all profiles | conductor config list |
| config | delete | [profile], --profile, -y | Delete a profile | conductor config delete production -y |
Other Commands
| Command | Description | Example |
|---------|-------------|---------|
| update | Update CLI to latest version | conductor update |
| whoami | Display current user info | conductor whoami |
| completion | Generate shell completion script | conductor completion zsh |
Configuration
The CLI connects to your Conductor server and can optionally persist configuration using the config save command.
Server Types
The CLI supports two types of Conductor servers:
- Enterprise (Conductor Conductor) (default): Requires server URL and authentication credentials
- OSS Conductor: Open-source Conductor - requires only server URL, no authentication
Use the --server-type flag to specify your server type (defaults to Enterprise):
# Enterprise/Conductor Conductor (default)
conductor --server https://developer.conductorcloud.com --auth-token your-token workflow list
# OSS Conductor
conductor --server http://localhost:8080/api --server-type OSS workflow listSaving Your Configuration
The config save command provides an interactive setup that guides you through configuring your Conductor connection. It prompts you for:
- Server URL
- Server type (OSS or Enterprise)
- Authentication method (API Key + Secret or Auth Token for Enterprise)
If a configuration already exists, you can press Enter to keep existing values (credentials are masked as ****).
Interactive Configuration:
# Run interactive configuration
conductor config save
# Example interaction:
# Server URL [http://localhost:8080/api]: https://developer.conductorcloud.com
# Server type (OSS/Enterprise) [Enterprise]: ← Press Enter to keep
#
# Authentication method:
# 1. API Key + Secret
# 2. Auth Token
# Choose [1]: 2
# Auth Token []: your-token-here
# ✓ Configuration saved to ~/.conductor-cli/config.yamlUpdating Existing Configuration:
When a configuration file already exists, the interactive prompts show your current values. Press Enter to keep them:
conductor config save
# Example with existing config:
# Server URL [https://developer.conductorcloud.com]: ← Press Enter to keep
# Server type (OSS/Enterprise) [Enterprise]: ← Press Enter to keep
#
# Authentication method:
# 1. API Key + Secret
# 2. Auth Token
# Choose [2]: ← Press Enter to keep
# Auth Token [****]: ← Press Enter to keep or enter new tokenNon-Interactive (Legacy):
You can still save configuration non-interactively by providing flags:
# Enterprise with auth token (default server type)
conductor --server https://developer.conductorcloud.com --auth-token your-token config save
# Enterprise with API key + secret
conductor --server https://developer.conductorcloud.com --auth-key your-key --auth-secret your-secret config save
# OSS Conductor
conductor --server http://localhost:8080/api --server-type OSS config saveOnce saved, you can run commands without providing flags:
# After saving config, simply run:
conductor workflow listNote: Server URLs can be provided with or without /api suffix (e.g., http://localhost:8080 or http://localhost:8080/api).
Using Profiles for Multiple Environments
Profiles allow you to manage multiple Conductor environments (e.g., development, staging, production) and easily switch between them.
Creating Profiles:
Use the --profile flag with config save to create named profiles. The command will run in interactive mode:
# Interactively configure development profile
conductor config save --profile dev
# Interactively configure staging profile
conductor config save --profile staging
# Interactively configure production profile
conductor config save --profile productionYou can also use the non-interactive method with flags:
# Save Enterprise staging environment (default server type)
conductor --server https://staging.example.com --auth-token staging-token --profile staging config save
# Save Enterprise production environment
conductor --server https://prod.example.com --auth-token prod-token --profile production config save
# Save local OSS development environment
conductor --server http://localhost:8080/api --server-type OSS --profile dev config saveUsing Profiles:
Switch between environments by specifying the profile:
# Using --profile flag
conductor --profile production workflow list
# Using CONDUCTOR_PROFILE environment variable
export CONDUCTOR_PROFILE=production
conductor workflow list
# Flag takes precedence over environment variable
CONDUCTOR_PROFILE=staging conductor --profile production workflow list # Uses productionProfile File Structure:
~/.conductor-cli/
├── config.yaml # Default profile
├── config-production.yaml # Production profile
├── config-staging.yaml # Staging profile
└── config-dev.yaml # Development profileListing Profiles:
# List all configuration profiles
conductor config listThis shows:
default- for the defaultconfig.yamlfile- Profile names (e.g.,
production,staging) - for named profiles likeconfig-production.yaml
Deleting Profiles:
# Delete default config (with confirmation prompt)
conductor config delete
# Delete named profile
conductor config delete production
# Delete without confirmation using -y flag
conductor config delete production -yProfile Error Handling:
If you reference a profile that doesn't exist, you'll get a clear error:
conductor --profile nonexistent workflow list
# Error: Profile 'nonexistent' doesn't exist (expected file: ~/.conductor-cli/config-nonexistent.yaml)Configuration Precedence
The CLI can be configured using command-line flags, environment variables, or a configuration file. Configuration is handled with the following precedence (highest to lowest):
- Command-line flags
- Environment variables
- Configuration file
Command-line Flags
You can override saved configuration by providing flags directly:
# Override server URL for a single command
conductor --server http://different-server:8080/api workflow list
# Use different auth token temporarily
conductor --auth-token temporary-token workflow list
# Use OSS server type
conductor --server http://localhost:8080/api --server-type OSS workflow listEnvironment Variables
Set these environment variables to configure the CLI without flags:
# Server and authentication
export CONDUCTOR_SERVER_URL=http://localhost:8080/api
export CONDUCTOR_AUTH_TOKEN=your-auth-token
# Or using API key + secret
export CONDUCTOR_SERVER_URL=http://localhost:8080/api
export CONDUCTOR_AUTH_KEY=your-api-key
export CONDUCTOR_AUTH_SECRET=your-api-secret
# Server type (OSS or Enterprise, defaults to Enterprise)
export CONDUCTOR_SERVER_TYPE=OSS
# Profile selection
export CONDUCTOR_PROFILE=productionDisabling Colored Output
If you want to disable color output for any reason (CI/CD, etc), you can use:
export NO_COLOR=1Any non-null value in the NO_COLOR variable will disable colored output.
Configuration File Format
Configuration files use YAML format and are stored in ~/.conductor-cli/:
# Example config.yaml for Enterprise with auth token (default)
server: https://developer.conductorcloud.com/api
auth-token: your-auth-token
verbose: false# Example config.yaml for Enterprise with API key + secret
server: https://developer.conductorcloud.com/api
auth-key: your-api-key
auth-secret: your-api-secret
verbose: false# Example config.yaml for OSS Conductor (no authentication)
server: http://localhost:8080/api
server-type: OSS
verbose: falseNotes:
server-typedefaults toEnterpriseif not specified- Enterprise requires one authentication method (
auth-tokenORauth-key+auth-secret) - OSS Conductor doesn't require
auth-token,auth-key, orauth-secret
You can also specify a custom config file location:
conductor --config /path/to/my-config.yaml workflow listWorkers
⚠️ EXPERIMENTAL FEATURES
The CLI supports two types of workers for processing Conductor tasks:
Stdio Workers
Execute tasks using external programs written in any language (Python, Node.js, Go, Rust, shell scripts, etc.).
The CLI polls for tasks and passes them to your worker via stdin/stdout.
Best for: Complex logic, heavy dependencies, full language ecosystem access
👉 Complete Stdio Worker Documentation →
Quick example:
# Run a Python worker (continuous polling with parallel execution)
conductor worker stdio --type greet_task python3 worker.py
# Poll multiple tasks per batch for higher throughput
conductor worker stdio --type greet_task python3 worker.py --count 5JavaScript Workers (Built-in)
Execute tasks using JavaScript scripts with built-in utilities (HTTP, crypto, string functions). No external dependencies needed.
Best for: Prototyping, Lightweight tasks, quick scripts, HTTP integrations
👉 Complete JavaScript Worker Documentation →
Quick example:
# Run a JavaScript worker
conductor worker js --type greet_task worker.jsRemote Workers (Registry-based)
⚠️ EXPERIMENTAL - Download and execute workers directly from your Conductor Conductor instance without managing local files.
Remote workers are stored in the Conductor Conductor job-runner registry and can be generated using the AI Assistant in your Conductor instance. Once created, workers are automatically downloaded, cached locally, and executed with all dependencies installed.
Best for: Team collaboration, centralized worker management, zero local setup
Key features:
- Zero configuration: No manual worker setup or file management
- Automatic dependencies: Python workers get a virtual environment with all dependencies installed automatically (including
conductor-pythonSDK) - Smart caching: Workers are cached locally after first download for fast startup
- Multi-language support: JavaScript (Node.js) and Python workers supported
- Version control: Workers are versioned and can be updated centrally
Quick examples:
# List available workers in your Conductor instance
conductor worker list-remote
# Run a remote worker (downloads and caches automatically)
conductor worker remote --type greet_task
# Force refresh to get latest version
conductor worker remote --type greet_task --refresh
# Run with batch processing for higher throughput
conductor worker remote --type greet_task --count 10How it works:
- Create workers using the AI Assistant in your Conductor Conductor instance
- Workers are stored in the job-runner registry with all metadata and dependencies
- CLI downloads worker code on first run and sets up the environment automatically
- Subsequent runs use the cached worker for instant startup
- Python workers get an isolated virtual environment with dependencies installed
- Workers authenticate automatically using your CLI configuration
Note: Remote workers must exist in your Conductor Conductor instance. Currently, workers are generated by the AI Assistant feature in Conductor Conductor.
Exit Codes
The CLI uses standard exit codes for error handling:
| Exit Code | Description |
|-----------|-------------|
| 0 | Command completed successfully |
| 1 | General error (connection failed, authentication error, resource not found, etc.) |
Example usage in scripts:
if conductor execution start --workflow my_workflow; then
echo "Workflow started successfully"
else
echo "Failed to start workflow" >&2
exit 1
fiError Handling
Common errors and solutions:
Connection Errors
Error: Get "https://...": dial tcp: no such hostSolution: Verify your --server URL or CONDUCTOR_SERVER_URL environment variable
Authentication Errors
Error: 401 UnauthorizedSolution: Check your authentication credentials (--auth-token or --auth-key/--auth-secret)
Resource Not Found
Error: 404 Not FoundSolution: Verify the resource name or ID exists on the server
Profile Not Found
Error: Profile 'prod' doesn't exist (expected file: ~/.conductor-cli/config-prod.yaml)Solution: Create the profile using --save-config=prod or verify the profile name
For AI Assistants & LLMs
For a concise, LLM-optimized reference with command tables, exit codes, and canonical examples, see CLAUDE.md.
