Workflow Submission#

OSMO offers two flexible ways to submit workflows: through the Web UI for quick, visual submissions, or via the CLI for advanced features and automation. Choose the method that best fits your needs.

🌐 Web Browser

Quick and intuitive. Perfect for getting started, prototyping, and monitoring workflows through a visual interface.

Submit via Web UI
💻 Command Line

Powerful and script-able. Essential for uploading local files, automating submissions, and integrating with CI/CD pipelines.

Submit via CLI

Submit via Web UI#

The Web UI provides the fastest way to submit and monitor workflows with an intuitive interface.

When to use:

  • ✅ Your workflow doesn’t require local files from your machine

  • ✅ You prefer point-and-click interactions

  1. Navigate to the OSMO web interface in your browser

  2. Click “Submit Workflow” or the + button

  3. Paste your workflow YAML definition or upload a workflow file

  4. Configure any parameters or select a compute pool

  5. Click Submit

Submitting a workflow via Web UI

See also

Try the Hello World tutorial for a guided walk-through of submitting your first workflow via the Web UI.


Submit via CLI#

The CLI unlocks advanced submission capabilities, especially for workflows that use local files or require automation.

When to use:

  • ✅ You need to upload local files or directories to your workflow

  • ✅ You want to automate workflow submissions in scripts or CI/CD pipelines

  • ✅ You need to continuously sync local changes to running tasks

  • ✅ You prefer working from the terminal

Note

For CLI installation and setup, see Install Client.

Basic Submission#

Submit a workflow from a YAML file:

$ osmo workflow submit my_workflow.yaml

Workflow submit successful.
Workflow ID        - my-workflow-1
Workflow Overview  - https://osmo.example.com/workflows/my-workflow-1

CLI-Exclusive Features#

Important

The following capabilities are only available via CLI and cannot be done through the Web UI.

Uploading Local Files#

Files can be injected directly into tasks using the files field with localpath:

tasks:
- name: train
  image: pytorch/pytorch
  command: ["python"]
  args: ["/workspace/train.py"]
  files:
  - localpath: scripts/train.py       # Local file from your machine
    path: /workspace/train.py         # Destination in the container
$ osmo workflow submit training.yaml
# The CLI automatically uploads scripts/train.py during submission

See also

See File Injection for more file injection options.

Uploading Local Directories#

Large datasets or directories can be uploaded as dataset inputs:

tasks:
- name: preprocess
  image: python:3.10
  inputs:
  - dataset:
      name: my-bucket/training-data
      localpath: ./data                # Upload entire local directory
$ ls data/
train/  validation/  test/

$ osmo workflow submit preprocess.yaml
# The CLI uploads the entire data/ directory to the dataset

Caution

Local file uploads happen during submission. For continuously updating files, use the rsync feature instead.

Continuous File Sync with Rsync#

Upload files continuously to a running task as they change on your local machine:

$ osmo workflow submit training.yaml --rsync ./code:/workspace

Workflow submit successful.
Workflow ID        - training-1
Workflow Overview  - https://osmo.example.com/workflows/training-1

Rsync daemon started in detached process: PID 12345
To view daemon logs: tail -f ~/.local/state/osmo/rsync/rsync_daemon_training-1_train.log

This is perfect for:

  • Active development - Edit code locally and have it instantly available in your running task

  • Iterative debugging - Update scripts without resubmitting the workflow

  • Live data feeds - Stream data files to long-running jobs

See also

See Rsync for detailed rsync usage and options.

Advanced CLI Options#

Parameterize Workflows#

Override workflow values at submission time:

$ osmo workflow submit train.yaml \
    --set learning_rate=0.001 \
    --set batch_size=32 \
    --set-string model_name="bert-base" \
    --set-env WANDB_PROJECT=my-experiment

Dry Run Validation#

Validate your workflow without actually submitting it:

$ osmo workflow submit training.yaml --dry-run
# Prints the rendered workflow specification without submitting

Target Specific Pools#

Submit to a specific compute pool:

$ osmo workflow submit training.yaml --pool gpu-pool-a100

Set Priority#

Control scheduling priority:

$ osmo workflow submit training.yaml --priority HIGH
# Options: HIGH, NORMAL, LOW

See also

For complete CLI reference, see submit.