Skip to content

Quickstart — Nextflow CLI

One command launches the pipeline and tails its progress right there in your terminal:

Terminal window
ccloud nextflow run nf-core/demo --outdir s3://my-bucket/pipeline-runs/demo-1/out -profile test

Under the hood this is the same launch API as Quickstart — API: each run gets its own ephemeral head, created for that one run and torn down automatically when it closes. The CLI just writes the JSON for you and keeps watching.

  • You live in a terminal and want the fastest path from “idea” to “running pipeline” — no head to create, nothing to SSH into.
  • You want launch + live progress in one command, with the full DAG a browser tab away.
  • You’re scripting casually (a Makefile, a cron job) but don’t want to hand-roll API calls — for serious automation or reselling, use the API quickstart.
Terminal window
curl -fsSL https://console.carolinacloud.io/static/cli/install.sh | bash
export CCLOUD_API_KEY="your-api-key-here"

Generate the key from the dashboard under Settings > API Key (see the CLI reference for details).

--outdir is required and has to be an s3:// path in a Carolina Cloud bucket you own — your auto-provisioned pipeline bucket, a personal bucket, or an org bucket (org buckets: org admins only). See Storage & buckets. Don’t have one handy? ccloud buckets list shows every bucket you can write to.

Terminal window
ccloud nextflow run nf-core/rnaseq \
--outdir s3://my-bucket/runs/rnaseq-1/out \
--input samplesheet.csv \
-profile test -resume

Everything after the pipeline name is passed through, with Nextflow’s own convention:

  • Single-dash flags (-profile test, -resume) become Nextflow engine flags.
  • Double-dash flags (--input samplesheet.csv) become pipeline params.

A few flags belong to the CLI itself:

FlagWhat it does
--outdirRequired. s3:// destination — see step 2
--config <file>A local nextflow.config, read and shipped to the head (layered on top of the head’s own executor config)
--pipeline-typeref (default — an nf-core name or git URL) or script (submit a main.nf directly)
--jsonPrint the raw launch response and exit instead of watching the run

The launch prints the run id and console link, then settles into a live status line (the same data the console DAG polls):

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧬 Pipeline launched: nf-core/rnaseq
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Run hopeful_darwin
Run ID 45d91a6b-64b9-4711-b58b-727ad0d98d90
🔗 https://console.carolinacloud.io/nextflow/45d91a6b-64b9-4711-b58b-727ad0d98d90/

Ctrl+C does not kill the run. It pauses and asks whether you want to cancel the run server-side or just detach and leave it running — so closing your laptop mid-run is safe either way. A detached run is still visible in the console, and in GET /api/pipeline-run/ if you’d rather poll.

The status line reports the failing task and Nextflow’s error. For the full story, the debug log endpoint returns an LLM-ready bug report — see the API quickstart’s debug-log step; it works for CLI-launched runs too, same run id.

  • Watching a run — the console DAG viewer, task drill-down, and work-dir browser for this same run.
  • Storage & buckets — bucket ownership, credentials, and the one-endpoint rule.
  • CLI reference — everything else ccloud can do.