Skip to main content
ventstreamctl is the command-line administration client for VentStream Cloud. Use it to manage organization-scoped environments, pipelines, configuration revisions, agent deployments, lifecycle operations, and runtime status. The CLI sends authenticated HTTPS requests to the managed control plane. It never connects directly to an engine, source database, sink, Kubernetes API, or agent gateway.
A standalone engine has no Cloud management connection and cannot be administered with ventstreamctl. Use the CLI for engines attached to VentStream Cloud with a deployment agent key.

Install

ventstreamctl binaries are published in the VentStream releases repository.

macOS and Linux

Install the latest release:
The installer detects the operating system and architecture, downloads the matching archive and SHA256SUMS, verifies the archive checksum and binary version, and stages the executable into $HOME/.local/bin. It does not use sudo, modify a shell profile, or send GitHub credentials. To use a different install directory:
Rerun the installer to upgrade to the latest release. For a reproducible installation, pin both the installer and binary version:
Replace 0.2.33 with the release selected for your environment.

Windows

Download ventstreamctl-<version>-windows-amd64.zip from GitHub Releases, extract ventstreamctl.exe, and place it in a directory on PATH.

Verify a release

The installer performs checksum verification automatically. For manual checksum, immutable-release, attestation, and SBOM verification, follow the verification guide.

Authenticate

The CLI requires a VentStream Cloud organization and an authorized user account. Create an account at ventstream.dev/signup, or accept an organization invitation. Then sign in through the browser. The CLI stores the resulting session in a named profile and prompts for an organization and environment when more than one is available:
For a non-interactive terminal, add --organization <uuid|short-id|slug> and --environment <uuid|short-id|slug>. The complete browser, enterprise OIDC, account lifecycle, recovery, refresh, and logout behavior is covered in Authentication.

Profiles and context

A profile stores the control-plane origin, credentials, and optional organization and environment defaults. Use separate profiles for separate control planes or identities:
Login normally selects the context. To change it later, list the organizations visible to the authenticated principal and select one:
Then list and select an environment:
After context is selected, routine commands do not need repeated URLs or UUIDs:
Use --profile <name> for a one-command profile override. Use --organization and --environment only for a one-command context override.

Organization context and environments

The CLI lists the organizations available to the authenticated account and stores one as its working context. Creating organizations, accepting invitations, and managing members happen in the VentStream Cloud dashboard, not the CLI. Organization owners can create another environment from the CLI:
Users can belong to multiple organizations. Invitations, membership, roles, billing, and organization settings remain dashboard workflows; the CLI stays focused on pipeline and agent operations.

Pipelines

Create one logical workload in the selected environment:
Pipeline arguments accept a UUID, a unique UUID prefix (8+ characters), or the slug/name within the selected environment.

Lifecycle

Lifecycle mutations create durable operations:
--wait returns success only when the operation reaches succeeded. Without it, the command returns after the operation is durably queued. rebootstrap is destructive and requires both --reason and --confirm. Use --expected-revision for explicit CI concurrency control. Interactive use can omit it; the CLI reads the current revision and supplies the required If-Match value.

Managed configuration

Create an immutable configuration revision from a canonical ventstream.yaml (plus any referenced non-secret files via --file), then validate and select it:
Selecting a valid revision activates it and delivers it to connected deployments. It does not implicitly resume a paused pipeline. Use apply only when the active revision must be delivered again without creating or selecting a new revision:
Roll back to an earlier valid revision:
See Managed configuration for the full worked example, the bundle format, and the secret boundary.

Deployments and agent keys

The CLI calls engine installations deployments under the agents command group. VentStream Cloud stores desired state and identity, while Kubernetes, Docker Compose, or another scheduler creates the actual workload. The CLI does not deploy pods or connect to your cluster.
Mint the deployment’s agent key. The key attaches the public engine to this deployment; on first connect the engine performs the enrollment handshake and binds an mTLS identity:
The key command prints only the secret to stdout and deliberately has no table or JSON wrapper. Pipe it directly into a secret-management workflow — for example | kubectl create secret generic orders-agent-key --from-file=key=/dev/stdin — and do not log it. The key is shown once at mint time; the same key keeps working across restarts until revoked. Minting a new key revokes the previous one, so rotation is a single key create. List key metadata or revoke a key explicitly:
See Managed agent on Kubernetes for the complete customer-side installation workflow. After the workload connects, inspect aggregate and per-instance health:
Irreversibly revoke active workload identities when a deployment is retired or compromised:
After identity revocation, the next engine start re-binds through the deployment’s agent key; revoke the key as well to keep the deployment offline. See Agent keys and the enrollment handshake.

Legacy: enrollment tokens

Deployments bootstrapped before agent keys used a short-lived, single-use enrollment grant and a rendered installation manifest. Both remain available through the deprecation window:
New installations should use agent keys instead. To migrate an existing token-enrolled deployment, see Migrating from enrollment tokens.

Operations

List operation history for the selected environment or one pipeline:
Inspect terminal results and delivery attempts:
Only a queued operation can be canceled. Cancellation does not roll back desired state; issue a new lifecycle action when desired state must change.

MCP keys

ventstreamctl mcp keys generate --name <agent> mints an MCP access token and its hash locally for a keys file — it never contacts the control plane. See MCP server.

Automation

  • Add --output json to commands that support structured output.
  • Collection commands accept --limit and an opaque --cursor returned by the preceding page.
  • Set VENTSTREAMCTL_PROFILE to select a profile without a command-line flag.
  • Set VENTSTREAMCTL_ACCESS_TOKEN to provide a short-lived OIDC access token in ephemeral automation.
  • Use --idempotency-key when a workflow needs a stable retry identity; otherwise the CLI creates one.
  • Waited commands exit non-zero for failed, canceled, expired, or timed-out operations.
Run ventstreamctl <group> <command> --help for every supported flag and default.