Connect the agent to a Conductor server. Run through this once per environment.
--profile > CONDUCTOR_SERVER_URL > CLI auto-detection of a local server started via conductor server start.
Most commands need no flags — the CLI finds the server automatically. Only append --profile {env} when the user mentions a named environment (dev, qa, prod, staging, uat). If unsure which profile exists, read ~/.conductor-cli/config.yaml and ask the user to confirm. Only create named profiles when the user explicitly wants to switch between multiple environments.
The Python fallback script (scripts/conductor_api.py) does not auto-detect — it requires CONDUCTOR_SERVER_URL to be set explicitly.
Check whether conductor is already installed:
conductor --versionIf not installed, check for npm/Node.js:
npm --versionIf npm is also missing, install Node.js first:
# macOS
brew install node
# Linux (Debian/Ubuntu)
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && sudo apt-get install -y nodejsFor installing the CLI itself, two options:
- Recommended (no global install): invoke as
npx @conductor-oss/conductor-cli ...for one-off use. No system modification. - Global install (ask the user first):
npm install -g @conductor-oss/conductor-cli. Modifies the global npm prefix — confirm before running. Once approved, verify withconductor --version.
Fallback — only after the CLI is genuinely unavailable (conductor --version fails) and Node/npm cannot be installed (restricted environment, no package manager), fall back to the bundled REST API script:
export CONDUCTOR_API="<path-to-this-skill>/scripts/conductor_api.py"The fallback supports a subset of CLI commands — see fallback-cli.md. It does not support key/secret auth (token only), profiles, server auto-detection, taskDef CRUD, or time-range search.
Ask the user:
- Option A — Start a local server (good for development/testing).
- Option B — Connect to an existing remote server.
Don't assume — present both.
Option A — local server:
conductor server start
# custom port:
conductor server start --port 3000
# verify:
conductor server statusOption B — existing server:
export CONDUCTOR_SERVER_URL="http://your-server:8080/api"conductor workflow listIf this succeeds, the server has no auth — go to Step 4.
If you get 401 or 403, the server requires authentication. Only then ask the user for credentials. Set them via env vars (never echo the values):
# Key + Secret (recommended for Orkes / Enterprise)
export CONDUCTOR_AUTH_KEY="<ask user>"
export CONDUCTOR_AUTH_SECRET="<ask user>"
# Or a pre-existing token
export CONDUCTOR_AUTH_TOKEN="<ask user>"Re-test: conductor workflow list
Auth header: the REST API expects
X-Authorization: <token>. The CLI handles this automatically. If using the Python fallback, onlyCONDUCTOR_AUTH_TOKENis supported — key/secret exchange is not implemented.
conductor workflow listReport the result to the user. Setup complete.
For switching between multiple servers (dev / staging / prod):
conductor config save --server https://dev.example.com/api --auth-key KEY --auth-secret SECRET --profile dev
conductor config save --server https://prod.example.com/api --auth-key KEY --auth-secret SECRET --profile prodThen append --profile {env} on any command. Profiles live in ~/.conductor-cli/config.yaml.
If the user asks to upgrade or you suspect this skill is outdated:
# macOS / Linux
curl -sSL https://conductor-oss.github.io/conductor-skills/install.sh | bash -s -- --all --upgrade
# Windows
irm https://conductor-oss.github.io/conductor-skills/install.ps1 -OutFile install.ps1; .\install.ps1 -All -Upgrade