Skip to content

CLI

The QuickFlo CLI lets you push and pull workflows, install and publish packages, and manage your org from the terminal. Useful for version-controlling workflow JSON, scripting bulk operations, and wiring QuickFlo into CI pipelines.

Terminal window
# 1. Install
curl -fsSL https://cdn.quickflo.app/packages/cli/install.sh | sh
# 2. Mint an access token in the QuickFlo web UI:
# Settings → Access Tokens → New token
#
# 3. Sign in by pasting that token
quickflo auth login
# 4. Use it
quickflo workflows list
quickflo workflows pull -d ./workflows
quickflo workflows push -d ./workflows

That’s the whole flow. Everything below is detail.

Terminal window
curl -fsSL https://cdn.quickflo.app/packages/cli/install.sh | sh

Drops quickflo in ~/.local/bin. Detects your OS + arch automatically. Supports macOS (Intel and Apple Silicon), Linux (x86_64 and arm64), and Windows (x86_64).

Pin a version:

Terminal window
curl -fsSL https://cdn.quickflo.app/packages/cli/install.sh | sh -s v1.0.2

Install elsewhere:

Terminal window
curl -fsSL https://cdn.quickflo.app/packages/cli/install.sh | INSTALL_DIR=/usr/local/bin sh
Terminal window
deno install --global --force --name quickflo \
--allow-net --allow-read --allow-env --allow-write \
jsr:@quickflo/cli

Drops it in ~/.deno/bin — make sure that’s on your PATH.

The CLI authenticates with Personal Access Tokens, organized into named profiles so you can keep tokens for multiple orgs or deployments and switch between them with one command.

Mint a token in the web UI at Settings → Access Tokens, then:

Terminal window
quickflo auth login # paste token, saves under a profile named after the org
quickflo auth list # show saved profiles, * marks active
quickflo auth use <name> # switch active profile
quickflo auth status # verify the active token still works
quickflo auth logout # delete the active profile

Profiles live at ~/.config/quickflo/credentials.json (mode 0600). Each profile bundles its api URL, token, and cached org info, so switching profiles switches everything in one move.

Terminal window
export QF_TOKEN=qfp_# bypasses profiles entirely
quickflo workflows list

Resolution priority: QF_TOKEN env → QF_PROFILE env → active profile → fail with hint.

Terminal window
quickflo workflows list # table view
quickflo workflows list -j | jq # JSON for scripting
quickflo workflows list --where name:re:'^Free' # regex filter
quickflo workflows get abcd # auto-detect (UUID, SUID, or name)
quickflo workflows get abcd > my-workflow.json # save pushable shape
quickflo workflows push -d ./workflows # bulk upsert from a directory
quickflo workflows push -d ./workflows -w # + create webhook triggers
quickflo workflows push --dry-run -d ./workflows
quickflo workflows pull -d ./workflows # download all to ./workflows
quickflo workflows pull -n 'Free Tool' -d ./free # filter by name substring
Terminal window
quickflo packages list # what your org has published
quickflo packages list --installed # what's installed into your org
quickflo packages install @acme/onboarding # canonical address
quickflo packages install qfi_AbC123… # unlisted-install token
quickflo packages install ./pkg.qfpkg.zip # local file
quickflo packages publish my-pkg \
--version 1.0.0 \
--root workflow:abc123 \
--readme ./README.md

--where <field>:<op>:<value> is available on every list and pull command. Operators: eq, ne, re (regex), gt, gte, lt, lte, in, nin, like, ilike.

Terminal window
quickflo workflows list --where name:re:Free --where createdAt:gt:2026-01-01
quickflo packages list --where visibility:eq:public

Stdout is the payload; diagnostics go to stderr. Redirect freely:

Terminal window
quickflo workflows get abcd > workflow.json
quickflo workflows list -j | jq '.[].name'
Terminal window
quickflo --help
quickflo workflows --help
quickflo workflows push --help