cond is the command-line interface for Conductor Engine. It lets you run tasks, inspect capabilities, and review task history from a terminal.
pip install -e .Start the HTTP control-plane API server (FastAPI / Uvicorn).
cond serve
cond serve --host 0.0.0.0 --port 8080Requires the [api] extra: pip install -e ".[api]".
Flags:
| Flag | Default | Description |
|---|---|---|
--host |
127.0.0.1 |
Bind address |
--port |
8080 |
TCP port |
--policy |
risk |
Policy engine: risk (deny above HIGH), deny-all (block everything), null (allow all) |
--tls-cert |
— | Path to TLS certificate file (enables HTTPS) |
--tls-key |
— | Path to TLS private key file |
--api-key-path |
.conductor/api_keys.json |
Path to API key store (auto-enabled when TLS is active) |
When the API key store is empty, the API runs in open mode for backward compatibility.
Execute a task defined in a YAML or JSON file.
cond run task.yamlOutput:
╭─ Echo smoke test ──────────────────────╮
│ status ✓ completed │
│ capability echo │
│ attempts 1 │
│ output {"message":"hello from…"} │
╰────────────────────────────────────────╯
On failure the border turns red and shows an error row instead of output.
List all capabilities registered in the engine.
cond capability listOutput:
Name Risk Tags
echo low testing, utility
filesystem medium io, local
http medium network, api
Show all tasks recorded in the local store (.conductor/tasks.json).
cond task listOutput:
ID Name Status Capability Attempts
6ebe9f69… Echo smoke test completed echo 1
4ed6f5e8… Retry on failure failed http 3 / 3
Show offline reference pages for commands and capabilities.
man cond
cond help
cond help echo
cond help workflowUse man cond for the stable CLI reference. Use cond help for runtime-aware topics such as loaded capabilities. Standard CLI usage help still works with cond -h and cond --help.
Generate a new API key for HTTP API authentication.
cond api-key generate
cond api-key generate --actor deploy-bot --scope "*"
cond api-key generate --actor ci-runner --scope "task:submit" --scope "task:list"The raw key is printed exactly once. Keys are stored as SHA-256 hashes.
Flags:
| Flag | Default | Description |
|---|---|---|
--actor |
"anonymous" |
Human-readable actor name |
--scope |
["*"] |
Authorization scopes (repeatable) |
--store |
.conductor/api_keys.json |
Path to API key store file |
List all API keys with prefix, actor, scopes, and revocation status.
cond api-key listOutput:
Prefix Actor Scopes Revoked
cond_a1b2c3… default * no
cond_d4e5f6… deploy-bot task:* yes
Revoke an API key by its prefix. Running servers detect the change on next request via file mtime check.
cond api-key revoke cond_a1b2c3List all failure knowledge records stored in the guild knowledge base.
cond guild listShow a single guild record with full failure context and resolution hints.
cond guild show echo:TimeoutError:abc123Remove all guild records from the store.
cond guild clear| Flag | Default | Description |
|---|---|---|
--store <path> |
.conductor/tasks.json |
Path to the local task store |
--config <path> |
config/conductor.capabilities.yaml |
Path to capability config YAML |
name: My task # human-readable title
capability: echo # which capability to execute
input: # capability-specific payload
message: hello
max_retries: 0 # optional — retry on failure (default: 0)
metadata: # optional caller context
source: cliname: Echo smoke test
capability: echo
input:
message: hello from conductorcond run examples/echo.yamlname: Write a note
capability: filesystem
input:
action: write_text
path: notes/hello.txt
content: "hello from conductor engine"cond run examples/write-file.yamlSupported action values: write_text, read_text, list_dir.
name: Read the note back
capability: filesystem
input:
action: read_text
path: notes/hello.txtname: List notes
capability: filesystem
input:
action: list_dir
path: notesname: Fetch status
capability: http
input:
method: GET
url: https://httpbin.org/getname: Post data
capability: http
input:
method: POST
url: https://httpbin.org/post
body:
key: valueAdd max_retries to any task. The engine will attempt execution 1 + max_retries times before marking the task failed.
name: Retry on failure
capability: http
input:
method: GET
url: https://flaky.internal/api
max_retries: 3cond task list will show 4 / 4 in the Attempts column if all retries were exhausted.
Load plugins or override the default capability config:
cond --config my-capabilities.yaml run task.yamlPlugin config format:
include_builtins: true
capabilities:
- import_path: my_package.capabilities:CustomCapability
config:
api_base_url: https://example.internal