DocumentationPricingJoin Waitlist

Getting Started

  • Introduction
  • Installation & Setup

Features

  • Modules
  • Platform
  • Recipes

Cluster

  • Details & Setup
  • Tasks, Actions & Agents
  • Assets & Files

API Reference

  • Command-Line Interface
    • ellf
    • ellf-dev
  • Recipe Development
  • Recipes API

Command-line interface

Use Ellf to navigate the CLI for you

If you’ve connected Ellf to your coding assistant, it will know the CLI in detail and will be able to use the right commands and navigate the app for you.

ellf

This is the main Ellf command line interface you can use to interact with the application and cluster and perform all actions you can also perform in the UI. To see all available commands or subcommands, you can use the --help flag.

Install CLI package
$pip install

ellf-cli

ArgumentTypeDescription
--helpboolShow subcommands, available arguments and more info.
--versionboolDisplay the version of the CLI package.

Available commands

actionsInteract with actions on the cluster.
agentsInteract with agents on the cluster.
assetsInteract with assets on the cluster.
clustersInteract with your cluster.
configConfigure the CLI.
datasetsView and manage Prodigy datasets on the cluster.
exportSave the state of the current app JSON file.
filesManage files on the cluster.
importPopulate Ellf with data from a JSON file.
infoPrint information about the CLI.
infraManage and deploy Ellf cluster infrastructure.
jobsRun jobs directly on the cluster.
loginLog in to your Ellf account.
packagesView and manage Python packages on the cluster.
pathsView and manage path aliases on the cluster.
plansView and manage project plans.
projectsView and manage Ellf projects.
publishPublish code and data to the cluster.
recipesView and manage task, action and agent recipe packages on the cluster.
secretsView and manage named pointers to secrets on the cluster.
tasksInteract with annotation tasks on the cluster.
todoView and manage in-app chat handover to coding assistant.
versionShow version info for the CLI and running services.

ellf actions

Interact with actions on the cluster.

$ellfactions--help

ellf actions list command

List the actions on the cluster. By default, this includes their ID, name and current state, e.g. created or completed.

$ellfactionslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, is_running, is_startable, is_stoppable, broker_id, name, project_id, job_type, state, plan, cli_command, stats["id", "name", "state", "project_name"]
--jsonboolOutput the result as JSON.False

ellf actions info command

Print information about an action on the cluster.

$ellfactionsinfoname_or_idproject_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the action
project_idUUIDID of action’s project (or the last project if not set)None
cluster_idUUIDID of the cluster to search for action name (or the last cluster if not set)None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, is_running, is_startable, is_stoppable, broker_id, name, project_id, job_type, state, plan, cli_command, stats, recipe_name, recipe_title, evaluation, project_name, error, executions, last_execution_id, nomad_index, url_logs, url, related_tasks, created_by_userNone
--jsonboolOutput the result as JSON.False

ellf actions create command

Create a new action. The available action recipes are fetched from your cluster and are added as dynamic subcommands. You can see more details and recipe-specific arguments by calling the subcommand with --help.

$ellfactionscreaterecipename...--exists-ok--no-start

--no-wait

--help
ArgumentTypeDescriptionDefault
recipestrName of action recipe to create.
namestrHuman-readable name of the action to create.
…Recipe-specific arguments for action.
--exists-okboolDon’t raise an error if it exists.False
--no-startboolDon’t start action after creation.False
--no-waitboolDon’t wait for the action to be ready after starting.False
--helpboolView available arguments for the recipe.False

ellf actions delete command

Delete an action by name or ID.

$ellfactionsdeletename_or_idproject_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the action.
project_idUUIDID of action’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for action name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf actions start command

Start an action on the cluster.

$ellfactionsstartname_or_idproject_idcluster_id--worker-class

--no-wait

--json
ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the action (or the last action if not set).None
project_idUUIDID of action’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for action name (or the last cluster if not set).None
--worker-classstrWorker class to launch the action on, defined when launching your cluster. Generally one of: medium, large, gpu.None
--no-waitboolDon’t wait for the action to be ready after starting.False
--jsonboolOutput the result as JSON.False

ellf actions stop command

Stop an action on the cluster.

$ellfactionsstopname_or_idproject_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the action (or the last action if not set).None
project_idUUIDID of action’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for action name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf actions logs command

Get logs for an action on the cluster.

$ellfactionslogsname_or_idproject_idcluster_id--json

--errors

--query

ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the action (or the last action if not set).None
project_idUUIDID of action’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for action name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False
--errorsboolShow structured error information instead of full logs.False
--querystrFilter log lines matching this text (requires Loki).None

ellf agents

Interact with agents on the cluster.

$ellfagents--help

ellf agents list command

List the agents on the cluster. By default, this includes their ID, name and current state, e.g. created or completed.

$ellfagentslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, is_running, is_startable, is_stoppable, broker_id, name, project_id, job_type, state, plan, cli_command, stats["id", "name", "state", "project_name"]
--jsonboolOutput the result as JSON.False

ellf agents info command

Print information about an agent on the cluster.

$ellfagentsinfoname_or_idproject_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the agent
project_idUUIDID of agent’s project (or the last project if not set)None
cluster_idUUIDID of the cluster to search for agent name (or the last cluster if not set)None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, is_running, is_startable, is_stoppable, broker_id, name, project_id, job_type, state, plan, cli_command, stats, recipe_name, recipe_title, evaluation, project_name, error, executions, last_execution_id, nomad_index, url_logs, url, related_tasks, created_by_userNone
--jsonboolOutput the result as JSON.False

ellf agents create command

Create a new agent. The available agent recipes are fetched from your cluster and are added as dynamic subcommands. You can see more details and recipe-specific arguments by calling the subcommand with --help.

$ellfagentscreaterecipename...--exists-ok--no-start

--no-wait

--help
ArgumentTypeDescriptionDefault
recipestrName of agent recipe to create.
namestrHuman-readable name of the agent to create.
…Recipe-specific arguments for agent.
--exists-okboolDon’t raise an error if it exists.False
--no-startboolDon’t start agent after creation.False
--no-waitboolDon’t wait for the agent to be ready after starting.False
--helpboolView available arguments for the recipe.False

ellf agents delete command

Delete an agent by name or ID.

$ellfagentsdeletename_or_idproject_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the agent.
project_idUUIDID of agent’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for agent name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf agents start command

Start an agent on the cluster.

$ellfagentsstartname_or_idproject_idcluster_id--worker-class

--no-wait

--json
ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the agent (or the last agent if not set).None
project_idUUIDID of agent’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for agent name (or the last cluster if not set).None
--worker-classstrWorker class to launch the agent on, defined when launching your cluster. Generally one of: medium, large, gpu.None
--no-waitboolDon’t wait for the agent to be ready after starting.False
--jsonboolOutput the result as JSON.False

ellf agents stop command

Stop an agent on the cluster.

$ellfagentsstopname_or_idproject_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the agent (or the last agent if not set).None
project_idUUIDID of agent’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for agent name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf agents logs command

Get logs for an agent on the cluster.

$ellfagentslogsname_or_idproject_idcluster_id--json

--errors

--query

ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the agent (or the last agent if not set).None
project_idUUIDID of agent’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for agent name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False
--errorsboolShow structured error information instead of full logs.False
--querystrFilter log lines matching this text (requires Loki).None

ellf agents assign command

Assign an agent to an annotation task as an annotator.

$ellfagentsassignname_or_id

--task

project_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the agent.
--taskUnion[str, UUID]Task name or ID to assign the agent to.
project_idUUIDID of agent’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for agent name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf assets

View and manage assets on the cluster, including input data files, models and other resources. See ellf files for utilities to transfer files to and from your cluster.

$ellfassets--help

ellf assets list command

List all assets on the cluster registered with Ellf.

$ellfassetslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, broker_id, name, version, kind, path, meta, num_used_by["id", "name", "kind"]
--jsonboolOutput the result as JSON.False

ellf assets info command

Get detailed info for an asset uploaded to the cluster and registered with Ellf.

$ellfassetsinfoname_or_idproject_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the asset.
project_idUUIDID of asset’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for asset name (or the last cluster if not set).None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, broker_id, name, version, kind, path, meta, num_used_by, tasks, actionsNone
--jsonboolOutput the result as JSON.False

ellf assets create command

Create an asset on the cluster and register it with Ellf. Assets point to files or directories you control. The Ellf server only has a reference to them. This command doesn’t transfer any data. See ellf files for utilities to transfer files to and from your cluster and ellf publish data for a command that combines both steps.

$ellfassetscreatename

path

--kind--version--meta--exists-ok--json
ArgumentTypeDescriptionDefault
namestrName of the asset.
pathstrPath of the asset.
--kindstrKind of the asset. Generally one of: input, model, patterns.
--versionstrVersion of the asset."0.0.0"
--metastrAsset meta, formatted as a JSON string."{}"
--exists-okboolDon’t raise an error if it exists.False
--jsonboolOutput the result as JSON.False

ellf assets delete command

Delete an asset registered with Ellf.

$ellfassetsdeletename_or_idproject_idcluster_id
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the asset.
project_idUUIDID of asset’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for asset name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf clusters

Interact with your cluster.

$ellfclusters--help

ellf clusters list command

List resources on the cluster.

$ellfclusterslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, org_id, name, address, state, cloud_provider, cloud_account, cloud_region, client_id, client_secret["id", "name", "status", "address"]
--jsonboolOutput the result as JSON.False

ellf clusters info command

Get detailed info for a cluster.

$ellfclustersinfoname_or_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the cluster.
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, org_id, name, address, state, cloud_provider, cloud_account, cloud_region, client_id, client_secret, worker_classesNone
--jsonboolOutput the result as JSON.False

ellf clusters update command

Update the cluster info.

$ellfclustersupdatename_or_id--new-name--address--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the cluster.
--new-namestrNew name of the cluster.None
--addressstrNew address of the cluster.None
--jsonboolOutput the result as JSON.False

ellf clusters delete command

Delete a cluster registered with Ellf. This only removes the record of it. The cluster itself will continue to exist – you need to shut it down separately.

$ellfclustersdeletename_or_id
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the cluster.

ellf clusters check command

Check the health of a cluster deployment. Runs CLI-side connectivity checks against the cluster broker. Use --deep to also trigger broker-side deployment checks (Kubernetes API, NFS, database, etc.).

$ellfclusterscheck--cluster--s3-bucket--nfs-path--recipe--recipe-args

--deep

ArgumentTypeDescriptionDefault
--clusterstrName or ID of the cluster.None
--s3-bucketstrRun checks involving the S3 storage.None
--nfs-pathstrRun checks involving the NFS storage.None
--recipestrRun checks that need to operate over a recipe. This argument only makes sense when used with --recipe-args.None
--recipe-argsstrRun checks that need to operate over a recipe. This argument only makes sense when used with --recipe.None
--deepboolRun broker-side deployment checks (Kubernetes, NFS, DB).False

ellf clusters nodes command

List cluster nodes with capacity and utilization.

$ellfclustersnodes--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: name, status, cpu, memory, gpu, pod_count.["name", "status", "cpu", "memory", "gpu", "pod_count"]
--jsonboolOutput the result as JSON.False

ellf clusters rotate-key command

Rotate the cluster broker RSA keypair. Generates a new keypair, updates the broker record, patches the Kubernetes secret with the new private key, and restarts the broker deployment.

$ellfclustersrotate-key--cluster

--infra-secret

--namespace

ArgumentTypeDescriptionDefault
--clusterstrName or ID of the cluster.None
--infra-secretstrName of the Kubernetes secret holding the private key."ellf-infra"
--namespacestrKubernetes namespace."ellf"

ellf clusters settings command

Show cluster settings, including auto-update, cleanup and target version configuration.

$ellfclusterssettings--cluster--json
ArgumentTypeDescriptionDefault
--clusterstrName or ID of the cluster.None
--jsonboolOutput the result as JSON.False

ellf clusters settings-update command

Update cluster settings.

$ellfclusterssettings-update--cluster--auto-update-broker--auto-update-cpl--auto-update-recipes--cleanup-orphaned-jobs--target-broker-version--target-cpl-version--json
ArgumentTypeDescriptionDefault
--clusterstrName or ID of the cluster.None
--auto-update-brokerboolEnable or disable auto-update for the broker.False
--auto-update-cplboolEnable or disable auto-update for the CPL.False
--auto-update-recipesboolEnable or disable auto-update for recipes.False
--cleanup-orphaned-jobsboolEnable or disable cleanup of orphaned jobs.False
--target-broker-versionstrSet the target broker version to install.None
--target-cpl-versionstrSet the target CPL version to install.None
--jsonboolOutput the result as JSON.False

ellf clusters releases command

List available cluster releases.

$ellfclustersreleases--json
ArgumentTypeDescriptionDefault
--jsonboolOutput the result as JSON.False

ellf config

Configure the CLI.

$ellfconfig--help

ellf config reset command

Reset all caching and configuration.

$ellfconfigreset--json
ArgumentTypeDescriptionDefault
--jsonboolOutput the result as JSON.False

ellf config project command

Set the default project. This means you won’t have to provide a project_id argument when creating tasks, actions or assets.

$ellfconfig

project

name_or_id--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the project.
--jsonboolOutput the result as JSON.False

ellf config task command

Set the default task.

$ellfconfig

task

name_or_idproject_idcluster_id
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the task.
project_idUUIDID of task’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for task name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf config action command

Set the default action.

$ellfconfig

action

name_or_idproject_idcluster_id
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the action.
project_idUUIDID of action’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for action name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf config set-cluster-host command

Set the cluster host.

$ellfconfig

set-cluster-host

host--json
ArgumentTypeDescriptionDefault
hoststrHost or URL of the cluster.
--jsonboolOutput the result as JSON.False

ellf config set-recipes-file command

Set or clear a local recipes file for recipe discovery without contacting the Ellf backend.

$ellfconfig

set-recipes-file

path

--clear

--json
ArgumentTypeDescriptionDefault
pathstrPath to a local recipes YAML file.None
--clearboolClear the recipes file setting.False
--jsonboolOutput the result as JSON.False

ellf datasets

View and manage Prodigy datasets on the cluster.

$ellfdatasets--help

ellf datasets list command

List all datasets.

$ellfdatasetslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, name, broker_id, kind, num_used_by["id", "name", "kind"]
--jsonboolOutput the result as JSON.False

ellf datasets info command

Get detailed info for a dataset.

$ellfdatasetsinfoname_or_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the dataset.
cluster_idUUIDID of the cluster to search for dataset name (or the last cluster if not set).None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, name, broker_id, kind, num_used_by, tasks, actionsNone
--jsonboolOutput the result as JSON.False

ellf datasets create command

Create a new dataset.

$ellfdatasetscreatename--kind--exists-ok--json
ArgumentTypeDescriptionDefault
namestrName of the dataset.
--kindstrKind of the dataset, used to filter in recipes to only allow specific types.
--exists-okboolDon’t raise an error if it exists.False
--jsonboolOutput the result as JSON.False

ellf datasets delete command

Delete a dataset.

$ellfdatasetsdeletename_or_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the dataset.
cluster_idUUIDID of the cluster to search for dataset name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf datasets export command

Export all the examples from a dataset and save it in the designated file as JSONL (newline-delimited JSON).

$ellfdatasetsexportname_or_id--output
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the dataset.
--output, -ostrJSON output path for data."-"

ellf export command

Save the state of the current app JSON file. If an assets directory is provided, assets will be downloaded and referenced in the JSON accordingly.

$ellfexportoutputassets_dir--include
ArgumentTypeDescriptionDefault
outputPathJSON output path for data.
assets_dirPathLocal directory to download assets to.None
--includestrComma-separated items to include.["tasks", "actions", "assets", "datasets", "paths"]

ellf files

Manage files on the cluster. Your files are only ever sent to servers or buckets you control. They are never sent to our servers.

$ellffiles--help

ellf files cp command

Copy files to and from the cluster, analog to the Unix cp command.

$ellffilescpsrcdest--recurse--make-dirs--overwrite--cluster-host
ArgumentTypeDescriptionDefault
srcstrRemote or local path of the source.
deststrRemote or local path of the destination.
--recurse, -rboolCopy whole directory recursively.False
--make-dirsboolCreate parent directories if they don’t exist.False
--overwriteboolOverwrite if exists.False
--cluster-hoststrName of the cluster (or the last cluster if not set).None

ellf files ls command

List the files under the remote path, analog to the Unix ls command.

$ellffileslsremote--recurse--json--cluster-host--expand-path-aliases
ArgumentTypeDescriptionDefault
remotestrRemote location path.
--recurse, -rboolList files recursively.False
--jsonboolOutput the result as JSON.False
--cluster-hoststrName of the cluster (or the last cluster if not set).None
--expand-path-aliasesboolExpand path aliases when displaying remote paths.False

ellf files rm command

Remove files from the cluster, analog to the Unix rm command.

$ellffilesrmremote_path--missing-ok--recurse--cluster-host
ArgumentTypeDescriptionDefault
remote_pathstrRemote location path.
--missing-okboolIf missing, don’t raise an error.False
--recurse, -rboolDelete the whole directory recursively.False
--cluster-hoststrName of the cluster (or the last cluster if not set).None

ellf files rsync command

Rsync files to and from the cluster, analog to the Unix rsync command.

$ellffilesrsyncsrcdest--cluster-host
ArgumentTypeDescriptionDefault
srcstrRemote or local path of the source.
deststrRemote or local path of the destination.
--cluster-hoststrName of the cluster (or the last cluster if not set).None

ellf files stats command

Get the stats for a file located in the remote path.

$ellffilesstatsremote_path--json--cluster-host
ArgumentTypeDescriptionDefault
remote_pathstrRemote location path.
--jsonboolOutput the result as JSON.False
--cluster-hoststrName of the cluster (or the last cluster if not set).None

ellf import command

Populate Ellf with data for projects, tasks, actions, assets and paths. Expects JSON data in the format created by ellf export.

$ellfimportdata--strict
ArgumentTypeDescriptionDefault
dataPathJSON file to import.
--strict, -SboolError if items already exist and don’t skip or overwrite anything.False

ellf info command

Print information about the CLI.

$ellf

info

field
ArgumentTypeDescriptionDefault
fieldstrField to select and show in output.None

ellf infra

Manage and deploy Ellf cluster infrastructure, including provisioning resources on your cloud provider, registering the cluster and deploying the Helm chart.

$ellfinfra--help

ellf infra register command

Register a new cluster with the Ellf backend and write credentials to cluster-creds.json.

$ellfinfraregister

--name

--domain

--cloud-provider

--json
ArgumentTypeDescriptionDefault
--namestrHuman-readable name for the cluster.
--domainstrPublic FQDN of the cluster (e.g. cluster.example.com).
--cloud-providerstrCloud provider. Available: gcp, k3s, aws.
--jsonboolOutput the result as JSON.False

ellf infra setup command

Install cluster infrastructure prerequisites such as Traefik and cert-manager. These operations are idempotent and safe to re-run.

$ellfinfrasetup

--traefik

--cert-manager

--acme-email

--public-ip

ArgumentTypeDescriptionDefault
--traefikboolInstall Traefik ingress controller.False
--cert-managerboolInstall cert-manager with Let’s Encrypt.False
--acme-emailstrEmail for ACME/Let’s Encrypt certificate registration.None
--public-ipstrStatic IP for the Traefik load balancer.None

ellf infra init-values command

Generate a values.yaml for Helm deployment from cluster credentials and provider defaults.

$ellfinfrainit-values

--creds

--cloud-provider

--domain

--out

--acme-email

ArgumentTypeDescriptionDefault
--credsPathPath to cluster-creds.json from infra register.
--cloud-providerstrCloud provider. Available: gcp, k3s, aws.
--domainstrPublic FQDN of the cluster.
--outPathOutput path for the generated values.yaml."values.yaml"
--acme-emailstrEmail for Let’s Encrypt certificates.None

ellf infra deploy command

Deploy or upgrade the Ellf Helm chart. Creates the namespace, image pull secret and broker keypair secret, then runs helm upgrade --install with the provided values.

$ellfinfradeploy

--values

--chart

--latest

--namespace

--wait

ArgumentTypeDescriptionDefault
--valuesPathPath to values.yaml for the Helm deployment.
--chartPathPath to a local chart directory (defaults to OCI registry).None
--latestboolFetch and use the latest image tags before deploying.False
--namespacestrKubernetes namespace."ellf"
--waitboolWait for pods to be ready after deploying.False

ellf infra start command

Start a cluster on infrastructure configured under your own cloud account.

$ellfinfrastart

src

config_path

--config-key

--offline

ArgumentTypeDescriptionDefault
srcPathPath to cluster definition files."."
config_pathPathPath to config.yaml. Defaults to the config.yaml in the src directory if not set.None
--config-keystrTop-level key for the cluster config. Allows multiple cluster configurations to be kept in one file. If not set, the whole config file is used.None
--offlinePathPath to a credentials JSON file. Deploys without connecting to the Ellf backend.None

ellf infra provision command

Provision the NFS wheelhouse on a cluster.

$ellfinfraprovision

src

config_path

--config-key

ArgumentTypeDescriptionDefault
srcPathPath to cluster definition files."."
config_pathPathPath to config.yaml. Defaults to the config.yaml in the src directory if not set.None
--config-keystrTop-level key for the cluster config. Allows multiple cluster configurations to be kept in one file. If not set, the whole config file is used.None

ellf infra terraform command

Apply Terraform to create or update cluster infrastructure.

$ellfinfraterraform

src

config_path

--config-key

--tf-init--tf-apply--tf-auto-accept
ArgumentTypeDescriptionDefault
srcPathPath to cluster definition files."."
config_pathPathPath to config.yaml. Defaults to the config.yaml in the src directory if not set.None
--config-keystrTop-level key for the cluster config. Allows multiple cluster configurations to be kept in one file. If not set, the whole config file is used.None
--tf-initboolForce run terraform init.False
--tf-applyboolApply the Terraform changes.False
--tf-auto-acceptboolAccept the Terraform changes without interaction.False

ellf infra get-terraform command

Download Terraform files for cluster infrastructure.

$ellfinfraget-terraform

--dest

--cloud-provider

ArgumentTypeDescriptionDefault
--destPathDirectory to save the Terraform files to."."
--cloud-providerstrCloud provider. Available: gcp, k3s, aws."gcp"

ellf infra tls command

Manage TLS certificates for local cluster access. Creates a self-signed CA and leaf certificate via cert-manager, patches the broker ingress for HTTPS, and outputs the commands needed to trust the CA on your machine.

$ellfinfratls

--self-signed

--setup

--trust

--status

--fqdn

--output

ArgumentTypeDescriptionDefault
--self-signedboolCreate a self-signed CA and certificate for the cluster.False
--setupstrSSH host: create certs remotely, then fetch and trust the CA locally.None
--truststrSSH host to fetch CA from and install into the local trust store.None
--statusboolShow current TLS configuration (issuer, certificate expiry, secret name).False
--fqdnstrCertificate FQDN."localhost"
--namespacestrKubernetes namespace."ellf"
--outputstrOutput format for trust commands. Available: human, json, shell."human"

ellf jobs

Run jobs directly on the cluster, bypassing the Ellf application backend. This is mainly used for development, debugging and advanced workflows. For regular workflows, use the tasks, actions and agents CLI instead.

$ellfjobs--help

ellf jobs run command

Run a job directly on the cluster broker from a YAML spec file.

$ellfjobs

run

spec_path

ArgumentTypeDescriptionDefault
spec_pathstrPath to a YAML job spec file.

ellf login command

Log in to your Ellf account. You normally don’t need to call this manually, except for when you first get started, and Ellf will automatically authenticate when needed. When setting up Ellf, make sure to set the --claude flag to initialize the integration so you’ll be able to use Ellf and its modules in Claude Code.

$ellflogin

--claude

--no-cluster

--no-browser

--json
ArgumentTypeDescriptionDefault
--claudeboolInitialize integration and skills for Claude Code. Needs to be set to be able to use Ellf with Claude Code.False
--no-clusterboolDon’t use a cluster.False
--no-browserboolDon’t open a browser; just print the login URL.False
--jsonboolOutput the result as JSON.False

ellf packages

View and manage Python packages on the cluster.

$ellfpackages--help

ellf packages list command

List all packages.

$ellfpackageslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, name, version, environment, num_used_by, recipe_count["id", "name", "version", "recipe_count", "num_used_by"]
--jsonboolOutput the result as JSON.False

ellf packages info command

Get detailed info for a package.

$ellfpackagesinfoname_or_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the package.
cluster_idUUIDID of the cluster to search for package name (or the last cluster if not set).None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, name, version, environment, num_used_by, recipe_count, org_id, filename, meta, tasks, actions, authorNone
--jsonboolOutput the result as JSON.False

ellf packages create command

Create a new package.

$ellfpackagescreatename--kind--exists-ok--json
ArgumentTypeDescriptionDefault
namestrName of the package.
--kindstrKind of the package, used to filter in recipes to only allow specific types.
--exists-okboolDon’t raise an error if it exists.False
--jsonboolOutput the result as JSON.False

ellf packages delete command

Delete a package.

$ellfpackagesdeletename_or_idcluster_id

--force

ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the package.
cluster_idUUIDID of the cluster to search for package name (or the last cluster if not set).None
--forceboolDelete related actions or tasks as well.False
--jsonboolOutput the result as JSON.False

ellf paths

View and manage path aliases on the cluster.

$ellfpaths--help

ellf paths list command

List all path aliases on the cluster.

$ellfpathslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, broker_id, name, path["created", "id", "name", "path"]
--jsonboolOutput the result as JSON.False

ellf paths info command

Get detailed info for a path alias.

$ellfpathsinfoname_or_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the path.
cluster_idUUIDID of the cluster to search for path name (or the last cluster if not set).None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, broker_id, name, pathNone
--jsonboolOutput the result as JSON.False

ellf paths create command

Create a new path alias.

$ellfpathscreatename

path

--exists-ok--json
ArgumentTypeDescriptionDefault
namestrName of the path.
pathstrPath of the cluster directory.
--exists-okboolDon’t raise an error if it exists.False
--jsonboolOutput the result as JSON.False

ellf paths delete command

Delete a path alias.

$ellfpathsdeletename_or_idcluster_id
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the path.
cluster_idUUIDID of the cluster to search for path name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf plans

View and manage project plans. This command is mainly used by Ellf under the hood to continuously update and sync the current plans so they can be accessed locally in your coding assistant and in the in-app chat.

$ellfplans--help

ellf plans list command

List all plans for a project.

$ellfplanslist

--project

--json
ArgumentTypeDescriptionDefault
--projectUUIDID of the project.
--jsonboolOutput as JSON.False

ellf plans read command

Read a plan for a project.

$ellfplansread

--project

--name

--json
ArgumentTypeDescriptionDefault
--projectUUIDID of the project.
--namestrPlan name."project_plan"
--jsonboolOutput as JSON.False

ellf plans write command

Create or update a plan for a project.

$ellfplanswrite

--project

--name

--content

--file

--json
ArgumentTypeDescriptionDefault
--projectUUIDID of the project.
--namestrPlan name."project_plan"
--contentstrPlan content as Markdown. Use --file to read from a file.None
--filePathPath to a file containing the plan content.None
--jsonboolOutput as JSON.False

ellf plans delete command

Delete a plan.

$ellfplansdelete

--project

--name

--id

--json
ArgumentTypeDescriptionDefault
--projectUUIDID of the project.None
--namestrPlan name.None
--idUUIDPlan UUID (alternative to --project + --name).None
--jsonboolOutput as JSON.False

ellf projects

View and manage Ellf projects.

$ellfprojects--help

ellf projects list command

List all projects.

$ellfprojectslist--select--json

--name

ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, org_id, name, description["id", "name"]
--jsonboolOutput the result as JSON.False
--namestrFilter by name.None

ellf projects info command

Get detailed info for a project.

$ellfprojectsinfoname_or_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the project.
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, org_id, name, descriptionNone
--jsonboolOutput the result as JSON.False

ellf projects create command

Create a new project.

$ellfprojectscreatename

description

--default-job-name-template

--exists-ok--json
ArgumentTypeDescriptionDefault
namestrName of the project.
descriptionstrDescription of the project.
--default-job-name-templatestrDefault name template for new jobs (e.g. {recipe}_{date}).None
--exists-okboolDon’t raise an error if it exists.False
--jsonboolOutput the result as JSON.False

ellf projects update command

Update a project.

$ellfprojectsupdatename_or_id

--name

--description

--default-job-name-template

--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the project.
--namestrNew name for the project.None
--descriptionstrNew description for the project.None
--default-job-name-templatestrDefault name template for new jobs (e.g. {recipe}_{date}).None
--jsonboolOutput the result as JSON.False

ellf projects delete command

Delete a project.

$ellfprojectsdeletename_or_id--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the project.
--jsonboolOutput the result as JSON.False

ellf publish

Publish code or data to the cluster and advertise it to Ellf.

$ellfpublish--help

ellf publish code command

Build a container image from a recipes package and publish it to the cluster.

$ellfpublish

code

name_or_path

--is-module

--is-path

--package-version
ArgumentTypeDescriptionDefault
name_or_pathstrPath or name of importable module with the recipes.
--is-module, -mboolCode to publish is an importable module.False
--is-path, -pboolCode to publish is a path.False
--package-versionstrVersion identifier for the package.None

ellf publish data command

Transfer data to the cluster, and advertise it to Ellf. These steps can also be done separately. See ellf files to transfer data to the cluster without creating an asset record for it, and ellf assets create to create an asset without transfer.

$ellfpublish

data

srcdest--name--version--kind

--loader

--meta--exists-ok
ArgumentTypeDescriptionDefault
srcPathFile or directory to publish.
deststrDestination path to copy the data to.None
--namestrName of the asset.None
--versionstrVersion of the asset.None
--kindstrKind of the asset. Generally one of: input, model, patterns.
--loaderstrLoader to convert data for Prodigy.None
--metastrAsset meta, formatted as a JSON string."{}"
--exists-okboolDon’t raise an error if it exists.False

ellf recipes

View and manage task, action and agent recipe packages on the cluster.

$ellfrecipes--help

ellf recipes list command

List all recipes.

$ellfrecipeslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, org_id, package_id, name, title, description, is_action, entry_point, num_used_by["id", "name", "package"]
--jsonboolOutput the result as JSON.False

ellf recipes export command

Export recipes from the cluster to a local YAML file.

$ellfrecipesexport

output_path

ArgumentTypeDescriptionDefault
output_pathstrOutput path for the recipes YAML file.

ellf recipes info command

Show info about a recipe.

$ellfrecipesinfoname_or_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the recipe.
cluster_idUUIDID of the cluster to search for recipe name (or the last cluster if not set).None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, org_id, package_id, name, title, description, is_action, entry_point, num_used_by, form_schema, cli_schema, meta, tasks, actions, packageNone
--jsonboolOutput the result as JSON.False

ellf recipes init command

Generate a new recipes Python package.

$ellfrecipesinitoutput_dir--name

--description

--author

--email

--url

--license

--version
ArgumentTypeDescriptionDefault
output_dirPathOutput directory for the recipe package.
--namestrName of the package (e.g. custom_recipes).None
--versionstrVersion of the package."0.1.0"
--descriptionstrDescription of the package.""
--authorstrName of the package author.""
--emailstrEmail of the package author.""
--urlstrURL or website of the package.""
--licensestrLicense of the package.""

ellf secrets

View and manage named pointers to secrets on the cluster.

$ellfsecrets--help

ellf secrets list command

List all named pointers to secrets on the cluster.

$ellfsecretslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, name, broker_id["created", "id", "name"]
--jsonboolOutput the result as JSON.False

ellf secrets info command

Show info about a secret on the cluster.

$ellfsecretsinfoname_or_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the secret.
cluster_idUUIDID of the cluster to search for secret name (or the last cluster if not set).None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, name, broker_idNone
--jsonboolOutput the result as JSON.False

ellf secrets create command

Create a secret on the cluster. The secret value is stored securely on your cluster only and never sent to our servers. If --value is omitted, you’ll be prompted to enter it interactively.

$ellfsecretscreatename--value--exists-ok--json
ArgumentTypeDescriptionDefault
namestrName of the secret.
--valuestrThe secret value. Omit to be prompted interactively.None
--exists-okboolDon’t raise an error if it exists.False
--jsonboolOutput the result as JSON.False

ellf secrets delete command

Delete a secret by name or ID.

$ellfsecretsdeletename_or_idcluster_id
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the secret.
cluster_idUUIDID of the cluster to search for secret name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf tasks

Interact with annotation tasks on the cluster.

$ellftasks--help

ellf tasks list command

List the tasks on the cluster. By default, this includes their ID, name and current state, e.g. created or completed.

$ellftaskslist--select--json
ArgumentTypeDescriptionDefault
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, project_id, broker_id, name, recipe_name, recipe_title, state, project_name, is_running, is_startable, is_stoppable, error, plan, job_type, cli_command["id", "name", "state", "project_name"]
--jsonboolOutput the result as JSON.False

ellf tasks info command

Print information about a task on the cluster.

$ellftasksinfoname_or_idproject_idcluster_id--select--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the task.
project_idUUIDID of task’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for task name (or the last cluster if not set).None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, project_id, broker_id, name, recipe_name, recipe_title, state, project_name, is_running, is_startable, is_stoppable, error, plan, job_type, cli_command, nomad_index, last_execution_id, related_actions, url_logs, url, created_by_userNone
--jsonboolOutput the result as JSON.False

ellf tasks create command

Create a new task. The available task recipes are fetched from your cluster and are added as dynamic subcommands. You can see more details and recipe-specific arguments by calling the subcommand with --help.

$ellftaskscreaterecipename...--exists-ok--no-start

--no-wait

--help
ArgumentTypeDescriptionDefault
recipestrName of task recipe to create.
namestrHuman-readable name of the task to create.
…Recipe-specific arguments for task.
--exists-okboolDon’t raise an error if it exists.False
--no-startboolDon’t start task after creation.False
--no-waitboolDon’t wait for the task to be ready after starting.False
--helpboolView available arguments for the recipe.False

ellf tasks delete command

Delete a task by name or ID.

$ellftasksdeletename_or_idproject_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idUnion[str, UUID]Name or ID of the task.
project_idUUIDID of task’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for task name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf tasks start command

Start a task on the cluster.

$ellftasksstartname_or_idproject_idcluster_id--worker-class

--no-wait

--json
ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the task (or the last task if not set).None
project_idUUIDID of task’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for task name (or the last cluster if not set).None
--worker-classstrWorker class to launch the task on, defined when launching your cluster. Generally one of: medium, large, gpu.None
--no-waitboolDon’t wait for the task to be ready after starting.False
--jsonboolOutput the result as JSON.False

ellf tasks stop command

Stop a task on the cluster.

$ellftasksstopname_or_idproject_idcluster_id--json
ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the task (or the last task if not set).None
project_idUUIDID of task’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for task name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False

ellf tasks logs command

Get logs for a task on the cluster.

$ellftaskslogsname_or_idproject_idcluster_id--json

--errors

--query

ArgumentTypeDescriptionDefault
name_or_idstrName or ID of the task (or the last task if not set).None
project_idUUIDID of task’s project (or the last project if not set).None
cluster_idUUIDID of the cluster to search for task name (or the last cluster if not set).None
--jsonboolOutput the result as JSON.False
--errorsboolShow structured error information instead of full logs.False
--querystrFilter log lines matching this text (requires Loki).None

ellf todo

View and manage requests of the in-app chat to hand over work to your local coding assistant. This is usually called by Ellf under the hood when you run /ellf-todo to pick up a request from the chat. Together with the plans CLI, it allows both chat environments to communicate with each other.

$ellftodo--help

ellf todo list command

List todo requests.

$ellftodolist

--project

--select

--status

--json
ArgumentTypeDescriptionDefault
--projectUUIDFilter by project.None
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, project_id, conversation_id, creator_id, assigned_to, description, context_summary, resolution, status["id", "project_id", "status", "description"]
--statusstrFilter by status.None
--jsonboolOutput the result as JSON.False

ellf todo info command

Get detailed info for a todo.

$ellftodoinfo

id

--select--json
ArgumentTypeDescriptionDefault
idUUIDID of the todo.
--selectList[str]Comma-separated fields to select and show in output. Available: id, created, updated, project_id, conversation_id, creator_id, assigned_to, description, context_summary, resolution, statusNone
--jsonboolOutput the result as JSON.False

ellf todo create command

Create a new todo.

$ellftodocreate

--project

--description

--context

--conversation

--json
ArgumentTypeDescriptionDefault
--projectUUIDID of todo’s project (or the last project if not set).
--descriptionstrDescription of the todo.
--contextstrContext summary for the todo.None
--conversationUUIDConversation ID to associate with the todo.None
--jsonboolOutput the result as JSON.False

ellf todo update command

Update a todo.

$ellftodoupdate

id

--status

--description

--resolution

--json
ArgumentTypeDescriptionDefault
idUUIDID of the todo.
--statusstrNew status. Available: planned, in_progress, done, cancelled.None
--descriptionstrNew description for the todo.None
--resolutionstrWhat was done (or why nothing was done). Set when closing a todo.None
--jsonboolOutput the result as JSON.False

ellf todo pull command

Pull planned todos and mark them as in progress.

$ellftodopull

--project

--json
ArgumentTypeDescriptionDefault
--projectUUIDFilter by project.None
--jsonboolOutput the result as JSON.False

ellf todo latest command

Get the most recently updated non-done todo.

$ellftodolatest--json
ArgumentTypeDescriptionDefault
--jsonboolOutput the result as JSON.False

ellf todo context command

Fetch conversation messages for a todo’s linked conversation.

$ellftodocontext

id

--json
ArgumentTypeDescriptionDefault
idUUIDID of the todo.
--jsonboolOutput the result as JSON.False

ellf todo delete command

Delete a todo.

$ellftododelete

id

--json
ArgumentTypeDescriptionDefault
idUUIDID of the todo.
--jsonboolOutput the result as JSON.False

ellf version command

Show version info for the CLI and running services.

$ellf

version

--json
ArgumentTypeDescriptionDefault
--jsonboolOutput the result as JSON.False

ellf-dev

The ellf-dev command line interface is provided by the recipes development SDK, which includes all recipe API components you need, as well as handy commands to test and preview your recipes before publishing them to the cluster. To see all available commands or subcommands, you can use the --help flag.

Install recipes development packages
$pip install

ellf-recipes-sdk

ellf-recipes

ArgumentTypeDescription
--helpboolShow subcommands, available arguments and more info.
--versionboolDisplay the version of the CLI package.

Available commands

previewPreview the UI form generated by a recipe.
runRun a recipe locally.
import-objectsAdd objects like named pointers to assets from a JSON file.
create-objectCreate an object record, like a named pointer to an asset.
list-objectsList all object records.
delete-objectDelete an object record.

ellf-dev preview command

Preview the UI form generated by a recipe. Live-reloads as you edit the recipe code. The preview also lets you generate the output created for anything you fill in. See the recipe development guide for more info and examples.

Limitations of preview

Because the preview runs outside the context of the Ellf application and isn’t connected to any cluster, it comes with some limitations and implements dummy data for datasets and assets, and only performs superficial data validation.

$ellf-devpreview

name

path

--host

--port

ArgumentTypeDescriptionDefault
namestrName of recipe to preview.
pathPathFile containing the recipe you’re developing.None
--hoststrHost to serve UI preview on."localhost"
--portintPort to serve UI preview on.9090

ellf-dev run command

Run a recipe locally. To see available recipes, run the command with --help. You can also view the arguments of a given recipe via ellf-dev run [name] --help. See the recipe development guide for more info and examples.

$ellf-devrun

name

...
ArgumentTypeDescriptionDefault
namestrName of recipe to run.
…Recipe-specific arguments.
--helpShow available arguments and documentation.

ellf-dev import-objects command

Add a set of objects, like named pointers to assets from a JSON file. This is useful for running recipes locally and mocking resources from the Ellf servers that are not available locally. The file should be keyed by named pointers, mapped to dictionaries. Each outer key is an arbitrary object name, and the dictionary provides its attributes.

$ellf-devimport-objects

path

JSON format example
{
    "test_data": {
        "id": "00000000-0000-0000-0000-000000000000",
        "broker_id": "00000000-0000-0000-0000-000000000000",
        "name": "test-data",
        "version": "0.0.1",
        "path": "./test_data/examples.jsonl",
        "meta": {"loader": "jsonl"}
    }
}
ArgumentTypeDescriptionDefault
pathPathPath to JSON file to import.

ellf-dev create-object command

Add an object record, to use for ellf-dev run recipe invocations. On the cluster, you’ll often want to use the named pointers to data that are stored on the Ellf server – for instance, to provide some input data by name, rather than a cluster path. For testing, the ellf-dev commands use a JSON file with the objects data instead.

$ellf-devcreate-object

name

attributes

ArgumentTypeDescriptionDefault
namestrName of the object
attributesstrJSON-encoded dictionary of attributes

ellf-dev list-objects command

List all local object records added with create-object or import-objects.

$ellf-devlist-objects

ellf-dev delete-object command

Delete a named object record.

$ellf-devdelete-object

name

ArgumentTypeDescriptionDefault
namestrName of the object

ellf-dev clear-objects command

Remove all local object records. See create-object.

$ellf-devclear-objects
Read next
Recipe Development

from the makers of spaCy and Prodigy

Navigation

  • Home
  • Documentation

Platform

  • Pricing
  • Waitlist

Resources

  • Case Studies
  • Blog
Terms & ConditionsPrivacy PolicyImprint© 2026 Explosion