CLI#

Generated from the Typer application, so every command and flag below exists in the installed version.

domyn-swarm pool pool is present but incomplete — it brings a pool up and immediately tears it down again, with no way to submit work to it.

domyn-swarm#

Main entrypoint

Usage

domyn-swarm [OPTIONS] COMMAND [ARGS]...

Options

--install-completion#

Install completion for the current shell.

--show-completion#

Show completion for the current shell, to copy it or customize the installation.

db#

Manage the Domyn-Swarm state database.

Usage

domyn-swarm db [OPTIONS] COMMAND [ARGS]...

prune#

Delete swarm records with FAILED, STOPPED, or UNKNOWN live status.

Args:

yes (bool): Skip confirmation prompt when True.

Usage

domyn-swarm db prune [OPTIONS]

Options

-y, --yes#

Skip confirmation prompt before deleting records.

Default:

False

stamp#

Usage

domyn-swarm db stamp [OPTIONS]

upgrade#

Usage

domyn-swarm db upgrade [OPTIONS]

down#

Shut down a swarm allocation.

If NAME is not provided, attempts to find the last created swarm. If a CONFIG is provided, uses its ‘name’ field to find matching swarms. Use –all to shut down all matching swarms, or –select to pick one interactively.

Usage

domyn-swarm down [OPTIONS] [NAME]

Options

-y, --yes#

Force shutdown without confirmation.

Default:

False

--select#

Pick a single swarm when multiple matches.

Default:

False

--all#

Tear down all matching swarms.

Default:

False

-c, --config <config>#

Path to YAML config (must contain ‘name’).

Arguments

NAME#

Optional argument

Swarm name.

init#

Initialize a new Domyn-Swarm configuration.

Usage

domyn-swarm init [OPTIONS] COMMAND [ARGS]...

defaults#

Create a defaults.yaml configuration file to be used later.

Usage

domyn-swarm init defaults [OPTIONS]

Options

-o, --output <output>#

Path to save the defaults YAML configuration file.

--force#

Overwrite existing file if it exists.

Default:

False

job#

Submit a workload to a Domyn-Swarm allocation.

Usage

domyn-swarm job [OPTIONS] COMMAND [ARGS]...

cancel#

Cancel a submitted job.

Args:

job_id: Internal job ID selector (positional). external_id: Provider external-id selector. handle_json: Handle JSON selector, literal payload or stdin marker. name: Optional deployment name hint.

Usage

domyn-swarm job cancel [OPTIONS] [JOB_ID]

Options

--external-id <external_id>#

Provider external ID (for example Slurm step id).

--handle-json <handle_json>#

JSON handle payload (use ‘-’ to read from stdin). If omitted, stdin is auto-read.

-n, --name <name>#

Optional deployment name used to disambiguate –external-id or handle payload.

Arguments

JOB_ID#

Optional argument

Internal Domyn job ID from the local state DB.

list#

List jobs for a swarm.

Args:

name: Swarm deployment name. status: Optional status filter list. limit: Maximum number of jobs to show. json_output: Whether to emit JSON output.

Usage

domyn-swarm job list [OPTIONS]

Options

-n, --name <name>#

Required Swarm deployment name.

--status <status>#

Filter by status (repeatable). Values: PENDING,RUNNING,SUCCEEDED,FAILED,CANCELLED.

--limit <limit>#

Maximum number of jobs to return.

Default:

50

--json#

Output machine-parseable JSON instead of the default TUI view.

Default:

False

status#

Show details for a recorded job.

Args:

job_id: Internal job ID. refresh: Whether to probe the backend for live status before display. json_output: Whether to emit JSON output.

Usage

domyn-swarm job status [OPTIONS] JOB_ID

Options

--refresh#

Probe the backend for live status and persist it to the local state DB. By default the recorded status is shown without contacting the backend.

Default:

False

--json#

Output machine-parseable JSON instead of the default TUI view.

Default:

False

Arguments

JOB_ID#

Required argument

Internal Domyn job ID from the local state DB.

submit#

Submit a strongly-typed job to the swarm for DataFrame processing.

This command processes input data through a SwarmJob (DataFrame-in → DataFrame-out) within the swarm environment. Jobs are defined by a class that handles the actual processing logic, and the input/output are managed as DataFrames with configurable column mappings.

The job can either create a new swarm from a configuration file or connect to an existing swarm by name. Progress is tracked through checkpoints, and the operation supports concurrent processing with configurable retry logic.

Usage

domyn-swarm job submit [OPTIONS] [JOB_CLASS]

Options

--input <input>#

Required

--output <output>#

Required

--input-column <input_column>#
Default:

'messages'

--output-column <output_column>#
Default:

'results'

--id-column, --id-col <id_column>#

Optional column name used for stable row ids.

--job-kwargs <job_kwargs>#

JSON dict forwarded to job constructor

Default:

'{}'

--data-backend <data_backend>#

Data backend for IO (pandas, polars, ray).

--native-backend, --no-native-backend#

Use native backend batches when supported.

--native-batch-size <native_batch_size>#

Batch size for native backend mode (optional).

--backend-read-kwargs <backend_read_kwargs>#

JSON dict forwarded to backend read() call.

--backend-write-kwargs <backend_write_kwargs>#

JSON dict forwarded to backend write() call.

--job-name <job_name>#

Optional job name for logging

-c, --config <config>#

YAML that starts a fresh swarm

-n, --name <name>#

Swarm name.

-cd, --checkpoint-dir <checkpoint_dir>#

Directory to store checkpoints (default: .checkpoint/, no checkpoints)

--no-resume, --ignore-checkpoints#

Ignore existing checkpoints for this run (forces recompute).

Default:

False

--no-checkpointing#

Disable checkpointing entirely (no read/write checkpoint state).

Default:

False

--runner <runner>#

Runner implementation for non-ray backends (pandas, arrow).

Default:

'pandas'

-ci, --checkpoint-interval <checkpoint_interval>#

Batch size for processing input DataFrame (default: 32)

Default:

32

-mc, --max-concurrency <max_concurrency>#

Number of concurrent requests to process (default: 32)

Default:

32

-r, --retries <retries>#

Number of retries for failed requests (default: 5)

Default:

5

-t, --timeout <timeout>#

Timeout for each request in seconds (default: 600)

Default:

600

-nt, --num-threads <num_threads>#

How many threads should be used by the driver to run the job

Default:

1

--shard-output#

When output is a directory and using the Polars runner, write one parquet file per shard (based on –num-threads) using checkpoint outputs as the source of truth.

Default:

False

-l, --limit <limit>#

Limit the size to be read from the input dataset. Useful when debugging and testing to reduce the size of the dataset

--shard-mode <shard_mode>#

How to split input when –num-threads > 1. ‘id’ uses stable id hashing (resume-friendly), ‘index’ uses legacy row order sharding. Keep –num-threads fixed across resumes to avoid reshuffling shards.

Default:

'id'

Options:

id | index

--global-resume#

When resuming with sharded execution, filter inputs using global done ids across all shards (useful if –limit changed).

Default:

False

-d, --detach#

Detach the job from the current terminal

Default:

False

-m, --mail-user <mail_user>#

Email address to receive job notifications. If set, email notifications will be enabled.

--checkpoint-tag <checkpoint_tag>#

An optional tag to be used when checkpointing is enabled. It will be used in place of the default uuid-based tag.

--ray-address <ray_address>#

Ray cluster address to connect to when –data-backend=ray (optional).

Arguments

JOB_CLASS#

Optional argument

Job class to run, in the form module:ClassName

submit-script#

Run an arbitrary Python file inside the swarm head node.

Usage

domyn-swarm job submit-script [OPTIONS] SCRIPT_FILE [ARGS]...

Options

-c, --config <config>#

YAML that defines/creates a new swarm

-n, --name <name>#

Swarm name.

Arguments

SCRIPT_FILE#

Required argument

ARGS#

Optional argument(s)

extra CLI args passed to script

wait#

Wait for a submitted job to reach a terminal state.

Args:

job_id: Internal job ID selector. external_id: Provider external-id selector. handle_json: Handle JSON selector, literal payload or stdin marker. name: Optional deployment name hint. stream_logs: Whether to stream backend logs while waiting.

Usage

domyn-swarm job wait [OPTIONS]

Options

--job-id <job_id>#

Internal Domyn job ID from the local state DB.

--external-id <external_id>#

Provider external ID (for example Slurm step id).

--handle-json <handle_json>#

JSON handle payload (use ‘-’ to read from stdin). If omitted, stdin is auto-read.

-n, --name <name>#

Optional deployment name used to disambiguate –external-id or handle payload.

--stream-logs, --no-stream-logs#

Stream backend logs while waiting (when supported by backend).

Default:

True

monitor#

Launch grafatui pointed at the swarm’s Prometheus endpoint.

Usage

domyn-swarm monitor [OPTIONS] NAME

Options

-d, --dashboard <dashboard>#

Custom Grafana dashboard JSON to load. Defaults to the bundled vLLM dashboard.

-g, --gpu#

Load the GPU dashboard for the swarm’s configured gpu_exporter kind.

Default:

False

--prometheus-url <prometheus_url>#

Override the resolved Prometheus URL.

--range <range_>#

grafatui time range, e.g. 1h.

--step <step>#

grafatui query step, e.g. 15s.

--var <var>#

Override a dashboard variable as KEY=VALUE (repeatable). Auto-filled defaults: vllm_job, replicas.

Arguments

NAME#

Required argument

Swarm name to monitor.

pool#

Submit a pool of swarm allocations from a YAML config.

Usage

domyn-swarm pool [OPTIONS] COMMAND [ARGS]...

pool#

Deploy a pool of swarm allocations from a YAML config (not yet implemented)

Usage

domyn-swarm pool pool [OPTIONS] CONFIG

Arguments

CONFIG#

Required argument

Path to YAML config for a pool of swarm allocations

status#

Check the status of the swarm allocation.

This command will read the DB and print the status of the swarm allocation. If a name is provided, it will check the status of that specific allocation.

Usage

domyn-swarm status [OPTIONS] NAME

Options

-o, --output <output>#

Output format: ‘table’ (default, Rich TUI) or ‘json’ (stable, machine-readable).

Default:

'table'

Arguments

NAME#

Required argument

Name of the swarm allocation to check status for.

swarm#

Manage swarm allocations.

Usage

domyn-swarm swarm [OPTIONS] COMMAND [ARGS]...

describe#

Show a detailed, static description of a swarm from the local state. No live status probing (use domyn-swarm status for that).

Usage

domyn-swarm swarm describe [OPTIONS] NAME

Options

-o, --output <output>#

Output format: table (default), yaml, or json.

Default:

'table'

Options:

table | yaml | json

Arguments

NAME#

Required argument

Name of the swarm to describe.

list#

List all known swarms in a compact table (name, backend, phase, endpoint, notes).

Usage

domyn-swarm swarm list [OPTIONS]

Options

--probe, --no-probe#

Probe live status (HTTP/LB/etc.). Disable for faster listing.

Default:

True

up#

Launch a swarm allocation with the given configuration. The configuration must be provided as a YAML file.

Usage

domyn-swarm up [OPTIONS]

Options

-c, --config <config>#

Required Path to YAML config for LLMSwarmConfig

-r, --replicas <replicas>#

Number of replicas for the swarm allocation. Defaults to 1.

version#

Show the version of the domyn-swarm CLI

Usage

domyn-swarm version [OPTIONS]

Options

--short, --no-short#
Default:

False