Skip to main content
The output CLI is how you create projects, start development services, run workflows, and debug executions. It’s the main way you interact with Output during development.

Quick Start

Command Reference

Project Commands

output init

Create a new Output project with the standard file structure:
folder-name
string
Name of the project folder to create

output dev

Start all development services via Docker Compose:
This starts:

Running multiple dev stacks

You can run multiple isolated Output stacks on the same machine — useful when working across several projects simultaneously or testing against different versions. Each stack needs a unique project name and non-conflicting host ports. Set these in the project’s .env:
DOCKER_SERVICE_NAME isolates Docker networks, volumes, and container names so the stacks don’t interfere with each other. OUTPUT_CATALOG_ID keeps each stack’s workflow catalog separate. The three OUTPUT_*_HOST_PORT vars control which ports are exposed on your machine — the container-internal ports are unchanged, so workers in either stack still reach Temporal at temporal:7233. Run npx output dev in each project directory. Project A’s API is at http://localhost:3001 and Project B’s at http://localhost:3002. If a port is already in use, output dev names the conflicting port and the env var to override.

output dev eject

Export the Docker Compose configuration so you can customize it:

output update

Update the Output CLI and agent configuration:
With no flags, updates everything. Use flags to update specific components:

Workflow Commands

output workflow plan

Generate a workflow plan from a natural language description. The command prompts for a description, generates a plan using AI, and lets you iterate on it interactively. Type ACCEPT to save.

output workflow generate

Generate workflow code from a plan or description:
name
string
required
Name of the workflow to generate

output workflow list

List available workflows from the catalog:

output workflow runs list

List recent workflow runs, optionally filtered by workflow name:
workflowName
string
Filter by workflow name (optional)

output workflow run

Run a workflow synchronously and wait for the result:
workflowName
string
required
Name of the workflow to execute
scenario
string
Scenario name — resolved from the workflow’s scenarios/ directory

output workflow start

Start a workflow asynchronously — returns the workflow ID immediately without waiting:
workflowName
string
required
Name of the workflow to start
scenario
string
Scenario name — resolved from the workflow’s scenarios/ directory

output workflow status

Check whether a workflow is still running, completed, or failed:
workflowId
string
required
The workflow execution ID

output workflow result

Get the output of a completed workflow:
workflowId
string
required
The workflow execution ID

Workflow result JSON format

Use --format json with output workflow run or output workflow result to print the full structured workflow result:

output workflow stop

Stop a running workflow gracefully:
workflowId
string
required
The workflow execution ID

output workflow terminate

Force-stop a workflow immediately. Use this for stuck workflows or cleaning up after branch switches:
workflowId
string
required
The workflow execution ID
Unlike stop (which cancels gracefully), terminate kills the workflow immediately.

output workflow reset

Rerun a workflow from after a specific completed step. The current run is terminated and a new run is created that replays up to the given step (reusing its output), then re-executes every step after it. Useful when iterating on a late step without re-paying the cost of earlier LLM or API calls:
workflowId
string
required
The workflow execution ID
The command prints the original workflowId and a new runId for the fresh execution. Use output workflow status <workflowId> and output workflow result <workflowId> to track it.
Find valid step names with output workflow debug <workflowId> --format json — the step name you pass to --step is the one shown on completed step entries.

output workflow debug

Show the execution trace for a workflow — what steps ran, what they received and returned, and where failures happened. See Tracing for details on trace format.
workflowId
string
required
The workflow execution ID
Use --format json to get the full untruncated trace. The text format truncates long values for readability, but the JSON format preserves everything.

output workflow cost

Calculate the estimated dollar cost of a workflow execution from its trace. Covers LLM token costs and API service costs. See Cost Estimation for details on pricing configuration and the config/costs.yml override file.
workflowId
string
required
Workflow ID to calculate cost for
tracePath
string
Path to a local trace JSON file. If omitted, fetches the latest trace for the workflow.
If the report shows “Unknown models”, add them to config/costs.yml in your project root. See Cost Estimation — Pricing Configuration for the format.

Evaluation Commands

These commands run offline evaluations against your workflows using the @outputai/evals package. You define evaluators, write dataset YAML files, and use these commands to execute and manage them.

output workflow test

Run evaluations against a workflow using its datasets:
workflowName
string
required
Name of the workflow to test

Dataset Commands

output workflow dataset list

List datasets for a workflow:
workflowName
string
required
Workflow name to list datasets for

output workflow dataset generate

Generate a dataset for a workflow from a scenario, inline JSON, trace file, or S3:
workflowName
string
required
Name of the workflow
scenario
string
Scenario name — resolved from the workflow’s scenarios/ directory

Environment Configuration

By default, the CLI loads environment variables from .env in the current directory. To use a different env file: