CLI guide
Full command reference

The zipline command reference

Every command, flag, and global option of the zipline operator CLI - the client for the Zipline runtime control plane. Commands talk to the control plane over mTLS unless tagged local.

auth

Operator authentication (enroll/whoami)

auth enroll

Redeem an operator enroll token for an operator client cert. Cache-first and idempotent; fails if the cached cert is not an operator cert (OU ≠ operator).

--token string - operator enroll token (or use --token-file) --token-file string - file containing the operator enroll token --enroll string - enroll-plane address (env ZIPLINE_ENROLL; default: control port + 2)
auth whoami local

Show the current operator certificate identity. Reads the cached cert (common name, OU, expiry, cert dir) - no control-plane round-trip.

context

Manage context profiles (list/use/set/current) - stored locally in ~/.zipline/config

context list local

List context profiles (* marks the current).

context use <name> local

Select the current context.

context set <key> <value> local

Set a field - runtime_address, operator_cert_dir, or output - on the current context.

context current local

Show the current context.

connect <addr>

Point at a runtime and authenticate (onboarding) - composes a context profile with operator enroll.

connect <addr>

Records the runtime address and cert dir in a named context, sets it current, and - if a token is supplied - enrolls into the same cert dir.

--name string - context name (default default) --token string - operator enroll token --token-file string - file with the operator enroll token --enroll string - enroll-plane address (default: control port + 2) --web bool - browser-mediated auth (reserved; not yet implemented)

pipeline

Manage pipelines

pipeline apply

Apply a pipeline spec (YAML via -f or stdin).

-f, --file string - pipeline YAML (- or empty reads stdin)
pipeline plan

Dry-run a pipeline spec and print the diff (YAML via -f or stdin) - route changes, source-restart flag, commit-mode change.

-f, --file string - pipeline YAML
pipeline get <name>

Print a pipeline spec as YAML.

pipeline list

List pipelines (name, state, bound instance).

pipeline status <name>

Print a pipeline's status (state, instance, incidents) plus a per-slot table (role, route, state, placement, profile).

pipeline delete <name>

Delete a pipeline.

pipeline bind <name>

Bind an instance id to a pipeline (source) or a sink slot (--route).

--instance string required - runtime-minted instance id --route string - sink-slot route name (empty = source bind) --force bool - unbind any conflicting binding first
pipeline unbind <name>

Clear the binding for a pipeline (or a single sink slot with --route; the route stays in the spec and is re-bindable).

pipeline disable <name>

Disable a sink route (in-proc or external): detach + release floor, keep binding, re-enablable.

--route string required - route name to disable
pipeline enable <name>

Enable a previously-disabled sink route (attach from-now).

--route string required - route name to enable
pipeline pause <name>

Pause a sink route (--route) or the source (no --route): HOLD; resume keeps the cursor (no gap).

--route string - sink route to pause; omit to pause the source
pipeline resume <name>

Resume a paused sink route (--route) or the source (no --route).

--route string - sink route to resume; omit to resume the source
pipeline skip <name> [route]

Accept the loss of a corrupt frame on a stalled route. Give a route, or --all (mutually exclusive).

--all bool - skip every currently-stalled route of the pipeline
pipeline route add <name>

Add a route to a pipeline (read-modify-write over apply).

--route string required - route name (cursor identity) --sink-type string required - sink type (kafka | file) --sink-config string - sink config as JSON --dlq-failure string - halt_route | drop_and_continue (default halt_route)
pipeline route remove <name> <route>

Remove a route from a pipeline (read-modify-write over apply).

pipeline set commit-mode <name> <value>

Set a pipeline's commit mode (read-modify-write over apply).

instance

Inspect runtime instances

instance list

List runtime instances (instance, display, role, bound). Role is source or sink; bound shows the pipeline or (unbound).

secret

Manage control-plane secrets

secret set <ref> <value>

Store a secret value under a ref. The value is positional (never lands in flag history), crosses mTLS, and is never printed back.

secret list

List stored secret refs (names only, never values).

secret rm <ref>

Remove a secret by ref.

profile

Manage connector profiles

profile apply

Create or update a connector profile from a YAML file.

-f, --file string required - path to the profile YAML
profile list

List stored connector profiles (name + type).

profile get <name>

Get a connector profile by name (prints YAML).

profile rm <name>

Remove a connector profile by name.

connector

Manage the connector catalog (build/describe/add/list/inspect/selfcheck/test)

connector build local

Package the in-binary descriptor for a type into a .zcp. Reflects the in-binary registry; no daemon needed.

--type string required - connector type to package --out string - output .zcp path (default <type>.zcp) --wire-protocol int - wire protocol version to stamp (default 3)
connector describe <type> local

Pretty-print the in-binary descriptor + ConfigSchema for a type.

connector selfcheck local

Print this binary's connector baseline (wire protocol + built-ins: file, kafka, mssql, postgres).

connector add <pkg.zcp> remote

Static-eval a .zcp on the runtime and persist its descriptor. The CLI never loads or compiles the connector.

connector list remote

List the runtime catalog (built-ins ∪ added) - type, direction, version.

connector inspect <type> remote

Fetch + pretty-print one catalog descriptor by type (the remote twin of describe).

connector test <type>

Run the G7 conformance suite for a type in a subprocess and optionally record it on the runtime.

--no-record bool - local verification only; skip recording --suite-timeout duration - hard deadline for the subprocess run (default 120s)

connector __conformance-child is an internal hidden subprocess re-invoked by connector test - not meant to be called directly.

token

Mint enroll tokens for new operators, gateways, or connectors

token issue

Mint a single-use enroll token for a handle. The handle class determines the OU the CA stamps.

--handle string required - token handle (see classes below) --ttl string - token lifetime as a Go duration (default 720h)
HandleStampsUse
operator-<name>OU=operatorcontrol-plane client (e.g. operator-gateway)
sink-<name>OU=sinkexternal sink connector (required by bind --route)
source-<name>OU=sourcesource connector (explicit, new-style)
<other>no OUlegacy source connector (backward compat)
token list

List all enroll-token handles known to the CA (handle, expires_at, used, outstanding).

token revoke

Burn an enroll-token handle (marks it Used; idempotent).

--handle string required - token handle to revoke

tui

tui

Open the live operator cockpit: six screens over the control plane covering throughput, pipelines, topology, instances, incidents, and a log tail. Takes no arguments. Running zipline with no subcommand on an interactive terminal opens it too. Full walkthrough.

status · version

status

Aggregate pipeline + instance overview in a single dial - a summary line, a pipelines table, and an instances table.

version local

Print the zipline version (stamped at build).

Global & persistent flags

Inherited by every subcommand. Resolution precedence: flag > env > context profile > built-in default.

FlagTypeDefaultEnv
--contextstringcurrent contextZIPLINE_CONTEXT
--runtimestring-ZIPLINE_RUNTIME
--cert-dirstring-ZIPLINE_CERT_DIR
--state-dirstring./data/state-
-o, --outputstringtextZIPLINE_OUTPUT
--insecure-transportboolfalse- (loopback only)
-v, --verboseboolfalseZIPLINE_VERBOSE
-q, --quietboolfalseZIPLINE_QUIET
--timeoutduration10s-

Environment variables

Each maps to the flag of the same purpose; a flag always wins over its env var.

VariableMaps to
ZIPLINE_CONTEXT--context
ZIPLINE_RUNTIME--runtime
ZIPLINE_CERT_DIR--cert-dir
ZIPLINE_OUTPUT-o, --output
ZIPLINE_VERBOSE-v, --verbose
ZIPLINE_QUIET-q, --quiet
ZIPLINE_ENROLL--enroll (auth enroll)

Output formats

Every command accepts -o text|json|yaml (a context profile may set the default).

text - human-readable tables and formatted output (the default).

json - indented JSON of the structured payload, for scripting.

yaml - YAML of the structured payload, for diffs and review.

Mutation verbs honor -q to suppress text confirmations; under json/yaml they always print the structured result - you explicitly asked for machine output.

Auth & mTLS model

Enroll once, then mutual TLS

An operator redeems a single-use enroll token whose reserved handle makes the CA stamp OU=operator on the issued client certificate. The cert triplet is cached in the resolved cert dir (default <state-dir>/operator/certs).

Every later command dials the control plane over mutual TLS using that cached triplet - there is nothing to log in to and no bearer token on the wire. The control-plane authz gate admits leaves whose OU is operator (or an operator-* variant such as operator-gateway).

Cert-dir resolution

The cert dir is resolved from, in order: --cert-dirZIPLINE_CERT_DIR → the context profile → <state-dir>/operator/certs.

Local vs remote

auth whoami, all of context, and connector build/describe/selfcheck run locally with no dial. Everything else dials the control plane.

Back to the guide

Concepts, common workflows, and install instructions.