# ...
spec:
  containers:
    - args:
        - -k
        - supersecretkey
        - -s
        - billing
      env:
        - name: FRAUD_API_URL
          value: http://billing-api:8084
        - name: TEMPORAL_ADDRESS
          value: temporal-frontend.temporal:7233
      image: ghcr.io/temporalio/reference-app-orders-go-worker:latest
      name: billing-worker
      imagePullPolicy: Always
  enableServiceLinks: false
```

{/* SNIPEND */}

### Separate Task Queues logically

Use separate Task Queues for distinct workloads. This isolation allows you to control rate limiting, prioritize certain
workloads, and prevent one workload from starving another. For each Task Queue, ensure you configure at least two
Workers to poll the Task Queue.

In the order management reference app, each microservice has its own Task Queue. For example, the Billing Worker polls
the `billing` Task Queue, while the Order Worker polls the `order` Task Queue. This separation allows each service to
scale independently based on its workload.

<CaptionedImage
  src="/diagrams/worker-best-practice-oms-architecture.png"
  title="Diagram showing separate Task Queues for different Workers"
/>

The following code snippet shows how the Billing Worker is set up to poll its Task Queue. The default value for
`TaskQueue` is a constant defined in the `api.go` configuration file and is set to `billing`.

Since Task Queues are created dynamically when first used, a mismatch between the Client and Worker Task Queue names
does not result in an error. Instead, it creates two different Task Queues, and the Worker never receives Tasks from the
Temporal Service because it's polling the wrong queue. Define the Task Queue name as a constant that both the Client and
Worker reference to avoid this issue.

{/* SNIPSTART oms-billing-worker-go {"selectedLines": ["12-23"]} */}
[app/billing/worker.go](https://github.com/temporalio/reference-app-orders-go/blob/main/app/billing/worker.go)

```go
// ...
// RunWorker runs a Workflow and Activity worker for the Billing system.
func RunWorker(ctx context.Context, config config.AppConfig, client client.Client) error {
	w := worker.New(client, TaskQueue, worker.Options{
		MaxConcurrentWorkflowTaskPollers: 8,
		MaxConcurrentActivityTaskPollers: 8,
	})

	w.RegisterWorkflow(Charge)
	w.RegisterActivity(&Activities{FraudCheckURL: config.FraudURL})

	return w.Run(temporalutil.WorkerInterruptFromContext(ctx))
}
```

{/* SNIPEND */}

### Use Worker Versioning to safely deploy new Workflow code

Use Worker Versioning to deploy new Workflow code without breaking running Executions. Worker Versioning lets you map
each Workflow Execution to a specific Worker Deployment Version identified by a build ID, which guarantees that pinned
Workflows always run on the same Worker version where they started.

To learn more about versioning Workflows, see the
[Workflow Versioning](/production-deployment/worker-deployments/worker-versioning.mdx) guide or take our
[Worker Versioning course](https://learn.temporal.io/courses/worker_versioning/).

:::tip

In addition to Worker Versioning, you can also use [Patching](/patching) to introduce changes to your Workflow code
without breaking running Executions. Patching reduces complexity on the infrastructure side compared to Worker
Versioning, but it introduces some complexity on the Workflow code side. Choose the approach that best fits your needs.

:::

### Manage Event History growth

If a Worker goes offline and another Worker picks up the same Workflow Execution, the new Worker must replay the
existing Event History to resume the Workflow Execution. If the Event History is too large or has too many Events,
replay affects the performance of the new Worker and may even cause timeout errors well before the hard limit of 51,200
Events is reached.

We recommend not exceeding a few thousand Events in a single Workflow Execution. The best way to handle Event History
growth is to use the [Continue-As-New](/workflow-execution/continue-as-new) mechanism to continue under a new Workflow
Execution with a new Event History, repeating this process as you approach the limits again.

All Temporal SDKs provide functions to suggest when to use [Continue-As-New](/workflow-execution/continue-as-new). For
example, the Python SDK has the
[`is_continue_as_new_suggested()`](https://python.temporal.io/temporalio.workflow.Info.html#is_continue_as_new_suggested)
function that returns a `bool` indicating whether to use Continue-As-New.

In addition to the number of Events, monitor the size of the Event History. Input parameters and output values of both
Workflows and Activities are stored in the Event History. Storing large amounts of data can lead to performance
problems, so the Temporal Cluster limits both the size of individual payloads and the total Event History size. A
Workflow Execution may be terminated if any single payload exceeds 2 MB or if the entire Event History exceeds 50 MB.

To avoid hitting these limits, avoid passing large amounts of data into and out of Workflows and Activities. A common
way to reduce payload and Event History size is the
[Claim Check](https://dataengineering.wiki/Concepts/Software+Engineering/Claim+Check+Pattern) pattern, widely used with
messaging systems such as Apache Kafka. Instead of passing large data into your function, store that data external to
Temporal in a database or file system. Pass an identifier for the data, such as a primary key or path, into the function
and use an Activity to retrieve it as needed. If your Activity produces large output, use a similar approach: write the
data to an external system and return an identifier that can be used to retrieve it later.

## Scaling, monitoring, and tuning

Scaling and tuning are critical to Worker performance and cost efficiency. The goal is to balance concurrency,
throughput, and resource utilization while maintaining low Task latency.

### Actively tune Worker options instead of relying on defaults

Default Worker settings are designed to work across a wide range of use cases primarily for ease in development and
testing. In production environments, your Workflow complexity, Activity duration, payload sizes, and infrastructure
constraints all influence optimal Worker configuration. Actively tuning your Workers ensures they perform well under
your specific workload conditions.

To get started, focus on these key Worker options:

- **Task slots**: Limits how many Tasks execute concurrently. Set based on your Worker's CPU, memory, and the resource
  demands of your code. You can choose different types of Slot Suppliers or implement a custom Slot Supplier to control
  how Task slots are assigned to different Task types. Refer to
  [Slot Suppliers](/develop/worker-performance#slot-suppliers) for more details.
- **Sticky cache size**: Controls the size of the sticky cache for Workflow Executions. Larger caches reduce replay
  overhead but consume more memory. Refer to [Workflow Cache Tuning](/develop/worker-performance#workflow-cache-tuning)
  for more details.
- **Poller counts**: Controls the number of pollers for Tasks. We recommend you use the Poller Autoscaling feature to
  automatically adjust the number of pollers based on your workload. Refer to
  [Configuring Poller Options](/develop/worker-performance#configuring-poller-options) for more details.

Use the metrics listed in [Interpret metrics as a whole](#interpret-metrics-as-a-whole) to guide your tuning decisions.

### Interpret metrics as a whole

No single metric tells the full story. The following are some of the most useful Worker-related metrics to monitor. We
recommend having all metrics listed below on your Worker monitoring dashboard. When you observe anomalies, correlate
across multiple metrics to identify root causes.

- Worker CPU and memory utilization
- `workflow_task_schedule_to_start_latency` and `activity_task_schedule_to_start_latency`
- `worker_task_slots_available`
- `temporal_long_request_failure`, `temporal_request_failure`, `temporal_long_request_latency`, and
  `temporal_request_latency`

For example, Schedule-to-Start latency measures how long a Task waits in the queue before a Worker starts it. High
latency means your Workers or pollers can’t keep up with incoming Tasks, but the root cause depends on your resource
metrics:

- High Schedule-to-Start latency and high CPU/memory: Workers are saturated. Scale up your Workers or add more Workers.
  It's also possible your Workers are blocked on Activities. Refer to
  [Troubleshooting - Depletion of Activity Task Slots](../troubleshooting/performance-bottlenecks.mdx#depletion-of-temporal_worker_task_slots_available-for-activityworker)
  for guidance.
- High Schedule-to-Start latency and low CPU/memory: Workers are underutilized. Increase the number of pollers, executor
  slots, or both. If this is accompanied by high `temporal_long_request_latency` or `temporal_long_request_failure`,
  your Workers are struggling to reach the Temporal Service. Refer to
  [Troubleshooting - Long Request Latency](../troubleshooting/performance-bottlenecks.mdx#high-temporal_long_request_failure)
  for guidance.
- Low Schedule-to-Start latency and low CPU/memory: Depending on your workload, this could be normal. If you are
  consistently seeing low memory usage and low CPU usage, you may be over-provisioning your Workers and can consider
  scaling down.

Refer to [Intro to Worker Tuning](https://temporal.io/blog/an-introduction-to-worker-tuning) for more details and
examples on how to interpret Worker metrics.

### Optimize Worker cache

Workers keep a cache of Workflow Executions to improve performance by reducing replay overhead. However, larger caches
consume more memory. The `temporal_sticky_cache_size` tracks the size of the cache. If you observe high memory usage for
your Workers and high `temporal_sticky_cache_size`, you can be reasonably sure the cache is contributing to memory
pressure.

Having a high `temporal_sticky_cache_size` by itself isn't necessarily an issue, but if your Workers are memory-bound,
consider reducing the cache size to allow more concurrent executions. We recommend you experiment with different cache
sizes in a staging environment to find the optimal setting for your Workflows. Refer to
[Troubleshooting - Caching](../troubleshooting/performance-bottlenecks.mdx#caching) for more details on how to interpret
the different cache-related metrics.

### Manage scale-down safely

Before shutting down a Worker, verify that it does not have too many active Tasks. This is especially relevant if your
Workers are handling long-running, expensive Activities.

If `worker_task_slots_available` is at or near zero, the Worker is running active Tasks. Shutting it down could trigger
expensive retries or timeouts for long-running Activities. Use
[Graceful Shutdowns](/encyclopedia/workers/worker-shutdown#graceful-shutdown) to allow the Worker to complete its
current Tasks before shutting down. All SDKs provide a way to configure Graceful Shutdowns. For example, the Go SDK has
the [`WorkerStopTimeout` option](https://pkg.go.dev/go.temporal.io/sdk@v1.38.0/internal#WorkerOptions) that lets you
configure how long the Worker has to complete its current Tasks before shutting down.

---

## Temporal CLI activity command reference

{/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten.
This file is generated from https://github.com/temporalio/cli/blob/main/temporalcli/commandsgen/commands.yml */}
## complete

Complete an Activity, marking it as successfully finished. Specify the
Activity ID and include a JSON result for the returned value:

```
temporal activity complete \
    --activity-id YourActivityId \
    --workflow-id YourWorkflowId \
    --result '{"YourResultKey": "YourResultVal"}'
```

Use the following options to change the behavior of this command.

**Flags:**

**--activity-id** _string_

Activity ID to complete. Required.

**--result** _string_

Result `JSON` to return. Required.

**--run-id**, **-r** _string_

Run ID.

**--workflow-id**, **-w** _string_

Workflow ID. Required.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## fail

Fail an Activity, marking it as having encountered an error. Specify the
Activity and Workflow IDs:

```
temporal activity fail \
    --activity-id YourActivityId \
    --workflow-id YourWorkflowId
```

Use the following options to change the behavior of this command.

**Flags:**

**--activity-id** _string_

Activity ID to fail. Required.

**--detail** _string_

Reason for failing the Activity (JSON).

**--reason** _string_

Reason for failing the Activity.

**--run-id**, **-r** _string_

Run ID.

**--workflow-id**, **-w** _string_

Workflow ID. Required.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## pause

Pause an Activity.

If the Activity is not currently running (e.g. because it previously
failed), it will not be run again until it is unpaused.

However, if the Activity is currently running, it will run until the next
time it fails, completes, or times out, at which point the pause will kick in.

If the Activity is on its last retry attempt and fails, the failure will
be returned to the caller, just as if the Activity had not been paused.

Activities should be specified either by their Activity ID or Activity Type.

For example, specify the Activity and Workflow IDs like this:

```
temporal activity pause \
    --activity-id YourActivityId \
    --workflow-id YourWorkflowId
```

To later unpause the activity, see [unpause](#unpause). You may also want to
[reset](#reset) the activity to unpause it while also starting it from the beginning.

Use the following options to change the behavior of this command.

**Flags:**

**--activity-id**, **-a** _string_

The Activity ID to pause. Either `activity-id` or `activity-type` must be provided, but not both.

**--activity-type** _string_

All activities of the Activity Type will be paused. Either `activity-id` or `activity-type` must be provided, but not both. Note: Pausing Activity by Type is an experimental feature and may change in the future.

**--identity** _string_

The identity of the user or client submitting this request.

**--run-id**, **-r** _string_

Run ID.

**--workflow-id**, **-w** _string_

Workflow ID. Required.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## reset

Reset an activity. This restarts the activity as if it were first being
scheduled. That is, it will reset both the number of attempts and the
activity timeout, as well as, optionally, the
[heartbeat details](#reset-heartbeats).

If the activity may be executing (i.e. it has not yet timed out), the
reset will take effect the next time it fails, heartbeats, or times out.
If is waiting for a retry (i.e. has failed or timed out), the reset
will apply immediately.

If the activity is already paused, it will be unpaused by default.
You can specify `keep_paused` to prevent this.

If the activity is paused and the `keep_paused` flag is not provided,
it will be unpaused. If the activity is paused and `keep_paused` flag
is provided - it will stay paused.

Activities can be specified by their Activity ID or Activity Type.

### Resetting activities that heartbeat {#reset-heartbeats}

Activities that heartbeat will receive a [Canceled failure](/references/failures#cancelled-failure)
the next time they heartbeat after a reset.

If, in your Activity, you need to do any cleanup when an Activity is
reset, handle this error and then re-throw it when you've cleaned up.

If the `reset_heartbeats` flag is set, the heartbeat details will also be cleared.

Specify the Activity Type of ID and Workflow IDs:

```
temporal activity reset \
    --activity-id YourActivityId \
    --workflow-id YourWorkflowId
    --keep-paused
    --reset-heartbeats
```

Either `activity-id`, `activity-type`, or `--match-all` must be specified.

Activities can be reset in bulk with a visibility query list filter. 
For example, if you want to reset activities of type Foo:

```
temporal activity reset \
    --query 'TemporalResetInfo="property:activityType=Foo"'
```

Use the following options to change the behavior of this command.

**Flags:**

**--activity-id**, **-a** _string_

The Activity ID to reset.  Mutually exclusive with `--query`, `--match-all`, and `--activity-type`. Requires `--workflow-id` to be specified.

**--activity-type** _string_

Activities of this Type will be reset. Mutually exclusive with `--match-all` and `activity-id`.

**--jitter** _duration_

The activity will reset at random a time within the specified duration. Can only be used with --query.

**--keep-paused** _bool_

If the activity was paused, it will stay paused.

**--match-all** _bool_

Every activity should be reset. Every activity should be updated. Mutually exclusive with `--activity-id` and `--activity-type`.

**--query**, **-q** _string_

Content for an SQL-like `QUERY` List Filter. You must set either --workflow-id or --query.

**--reason** _string_

Reason for batch operation. Only use with --query. Defaults to user name.

**--reset-attempts** _bool_

Reset the activity attempts.

**--reset-heartbeats** _bool_

Reset the Activity's heartbeats. Only works with --reset-attempts.

**--restore-original-options** _bool_

Restore the original options of the activity.

**--rps** _float_

Limit batch's requests per second. Only allowed if query is present.

**--run-id**, **-r** _string_

Run ID. Only use with --workflow-id. Cannot use with --query.

**--workflow-id**, **-w** _string_

Workflow ID. You must set either --workflow-id or --query.

**--yes**, **-y** _bool_

Don't prompt to confirm signaling. Only allowed when --query is present.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## unpause

Re-schedule a previously-paused Activity for execution.

If the Activity is not running and is past its retry timeout, it will be
scheduled immediately. Otherwise, it will be scheduled after its retry
timeout expires.

Use `--reset-attempts` to reset the number of previous run attempts to
zero. For example, if an Activity is near the maximum number of attempts
N specified in its retry policy, `--reset-attempts` will allow the
Activity to be retried another N times after unpausing.

Use `--reset-heartbeat` to reset the Activity's heartbeats.

Activities can be specified by their Activity ID or Activity Type.
One of those parameters must be provided.

Specify the Activity ID or Type and Workflow IDs:

```
temporal activity unpause \
    --activity-id YourActivityId \
    --workflow-id YourWorkflowId
    --reset-attempts
    --reset-heartbeats
```

Activities can be unpaused in bulk via a visibility Query list filter.
For example, if you want to unpause activities of type Foo that you
previously paused, do:

```
temporal activity unpause \
    --query 'TemporalPauseInfo="property:activityType=Foo"'
```

Use the following options to change the behavior of this command.

**Flags:**

**--activity-id**, **-a** _string_

The Activity ID to unpause.  Mutually exclusive with `--query`, `--match-all`, and `--activity-type`. Requires `--workflow-id` to be specified.

**--activity-type** _string_

Activities of this Type will unpause. Can only be used without --match-all. Either `activity-id` or `activity-type` must be provided, but not both.

**--jitter** _duration_

The activity will start at random a time within the specified duration. Can only be used with --query.

**--match-all** _bool_

Every paused activity should be unpaused. This flag is ignored if activity-type is provided.

**--query**, **-q** _string_

Content for an SQL-like `QUERY` List Filter. You must set either --workflow-id or --query.

**--reason** _string_

Reason for batch operation. Only use with --query. Defaults to user name.

**--reset-attempts** _bool_

Reset the activity attempts.

**--reset-heartbeats** _bool_

Reset the Activity's heartbeats. Only works with --reset-attempts.

**--rps** _float_

Limit batch's requests per second. Only allowed if query is present.

**--run-id**, **-r** _string_

Run ID. Only use with --workflow-id. Cannot use with --query.

**--workflow-id**, **-w** _string_

Workflow ID. You must set either --workflow-id or --query.

**--yes**, **-y** _bool_

Don't prompt to confirm signaling. Only allowed when --query is present.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## update-options

Update the options of a running Activity that were passed into it from
a Workflow. Updates are incremental, only changing the specified options.

For example:

```
temporal activity update-options \
    --activity-id YourActivityId \
    --workflow-id YourWorkflowId \
    --task-queue NewTaskQueueName \
    --schedule-to-close-timeout DURATION \
    --schedule-to-start-timeout DURATION \
    --start-to-close-timeout DURATION \
    --heartbeat-timeout DURATION \
    --retry-initial-interval DURATION \
    --retry-maximum-interval DURATION \
    --retry-backoff-coefficient NewBackoffCoefficient \
    --retry-maximum-attempts NewMaximumAttempts
```

You may follow this command with `temporal activity reset`, and the new values will apply after the reset.

Either `activity-id`, `activity-type`, or `--match-all` must be specified.

Activity options can be updated in bulk with a visibility query list filter. 
For example, if you want to reset for activities of type Foo, do:

```
temporal activity update-options \
    --query 'TemporalPauseInfo="property:activityType=Foo"'
    ...
```

Use the following options to change the behavior of this command.

**Flags:**

**--activity-id**, **-a** _string_

The Activity ID to update options. Mutually exclusive with `--query`, `--match-all`, and `--activity-type`. Requires `--workflow-id` to be specified.

**--activity-type** _string_

Activities of this Type will be updated. Mutually exclusive with `--match-all` and `activity-id`.

**--heartbeat-timeout** _duration_

Maximum permitted time between successful worker heartbeats.

**--match-all** _bool_

Every activity should be updated. Mutually exclusive with `--activity-id` and `--activity-type`.

**--query**, **-q** _string_

Content for an SQL-like `QUERY` List Filter. You must set either --workflow-id or --query.

**--reason** _string_

Reason for batch operation. Only use with --query. Defaults to user name.

**--restore-original-options** _bool_

Restore the original options of the activity.

**--retry-backoff-coefficient** _float_

Coefficient used to calculate the next retry interval. The next retry interval is previous interval multiplied by the backoff coefficient. Must be 1 or larger.

**--retry-initial-interval** _duration_

Interval of the first retry. If retryBackoffCoefficient is 1.0 then it is used for all retries.

**--retry-maximum-attempts** _int_

Maximum number of attempts. When exceeded the retries stop even if not expired yet. Setting this value to 1 disables retries. Setting this value to 0 means unlimited attempts(up to the timeouts).

**--retry-maximum-interval** _duration_

Maximum interval between retries. Exponential backoff leads to interval increase. This value is the cap of the increase.

**--rps** _float_

Limit batch's requests per second. Only allowed if query is present.

**--run-id**, **-r** _string_

Run ID. Only use with --workflow-id. Cannot use with --query.

**--schedule-to-close-timeout** _duration_

Indicates how long the caller is willing to wait for an activity completion. Limits how long retries will be attempted.

**--schedule-to-start-timeout** _duration_

Limits time an activity task can stay in a task queue before a worker picks it up. This timeout is always non retryable, as all a retry would achieve is to put it back into the same queue. Defaults to the schedule-to-close timeout or workflow execution timeout if not specified.

**--start-to-close-timeout** _duration_

Maximum time an activity is allowed to execute after being picked up by a worker. This timeout is always retryable.

**--task-queue** _string_

Name of the task queue for the Activity.

**--workflow-id**, **-w** _string_

Workflow ID. You must set either --workflow-id or --query.

**--yes**, **-y** _bool_

Don't prompt to confirm signaling. Only allowed when --query is present.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

---

## Temporal CLI batch command reference

{/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten.
This file is generated from https://github.com/temporalio/cli/blob/main/temporalcli/commandsgen/commands.yml */}
## describe

Show the progress of an ongoing batch job. Pass a valid job ID to display its
information:

```
temporal batch describe \
    --job-id YourJobId
```

Use the following options to change the behavior of this command.

**Flags:**

**--job-id** _string_

Batch job ID. Required.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## list

Return a list of batch jobs on the Service or within a single Namespace. For
example, list the batch jobs for "YourNamespace":

```
temporal batch list \
    --namespace YourNamespace
```

Use the following options to change the behavior of this command.

**Flags:**

**--limit** _int_

Maximum number of batch jobs to display.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## terminate

Terminate a batch job with the provided job ID. You must provide a reason for
the termination. The Service stores this explanation as metadata for the
termination event for later reference:

```
temporal batch terminate \
    --job-id YourJobId \
    --reason YourTerminationReason
```

Use the following options to change the behavior of this command.

**Flags:**

**--job-id** _string_

Job ID to terminate. Required.

**--reason** _string_

Reason for terminating the batch job. Required.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn, error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

---

## Temporal CLI command options reference

## active-cluster

Active cluster name.

## activity-id

Identifies the Activity Execution.

## activity-jitter

If set, the Activity will start at a random time within the specified jitter duration.

## activity-type

Command is applied to the all running activities with of this type.

## address

The host and port (formatted as host:port) for the Temporal Frontend Service.

## api-key

API key for request.

## archived

List archived Workflow Executions.

:::note

Caution: `--archived` is experimental.

:::

## build-id

Identifies the build to retrieve reachability information for. Can be specified multiple times.

## calendar

Calendar specification in JSON `({"dayOfWeek":"Fri","hour":"17","minute":"5"})` or as a Cron string
`("30 2 \* \* 5" or "@daily")`.

## catchup-window

Maximum allowed catch-up time if server is down.

## cluster

Cluster name.

## codec-auth

Sets the authorization header on requests to the Codec Server.

## codec-endpoint

Endpoint for a remote Codec Server.

## color

When to use color: auto, always, never. (default: auto)

## command-timeout

The command execution timeout. 0s means no timeout.

## concurrency

Request concurrency.

## cron

The Cron schedule can be formatted like the following:

```text
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12)
│ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
│ │ │ │ │
* * * * *
```

## data

Namespace data in a key=value format.

Values must be in JSON format.

## db-filename

File in which to persist Temporal state. By default, Workflows are lost when the process dies.

## depth

The number of Child Workflows to fetch and expand. Use `-1` to fetch Child Workflows at any depth.

## description

Namespace description or Nexus Endpoint description. You may use Markdown formatting in the Nexus Endpoint description.

## description-file

Path to the Nexus Endpoint description file. The contents of the description file may use Markdown formatting.

## detail

A provided reason for failing an Activity.

## dry-run

Simulate reset without resetting any Workflow Executions.

## dynamic-config-value

Dynamic config value, formatted as `KEY=JSON_VALUE`. String values require quotation marks.

## email

Owner email.

## enable-connection

Enable cross-cluster connection.

## end-time

Backfill end time.

## env

Name of the environment to read environment variables from.

## env-file

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

## event-id

The Event Id for any Event after WorkflowTaskStarted you want to reset to (exclusive). It can be WorkflowTaskCompleted,
WorkflowTaskFailed or others.

## exclude-file

Input file that specifies Workflow Executions to exclude from resetting.

## execution-timeout

Timeout (in seconds) for a [Workflow Execution](/workflow-execution), including retries and `ContinueAsNew` tasks.

## existing-compatible-build-id

A Build Id that already exists in the version sets known by the Task Queue. New Build Ids are stored in the version set
containing this Id, making them compatible with the versions in that set.

## fields

Customize fields to print. Set to 'long' to automatically print more of main fields.

## first-execution-run-id

Run update on the last execution in the chain that started with this Run Id.

## fold

Statuses for which Child Workflows will be folded in (this will reduce the number of information fetched and displayed).
Case-insensitive and ignored if `--no-fold` is supplied.

## follow

Follow the progress of a Workflow Execution.

## frontend-address

Frontend address of the remote Cluster.

## global

Flag to indicate whether a Namespace is a Global Namespace.

## grpc-meta

Contains gRPC metadata to send with requests (format: `key=value`). Values must be in a valid JSON format.

## headless

Disable the Web UI.

## heartbeat-timeout

Maximum permitted time between successful Worker Heartbeats.

## history-archival-state

Sets the history archival state. Valid values are "disabled" and "enabled".

## history-uri

Optionally specify history archival URI (cannot be changed after first time archival is enabled).

## id-reuse-policy

Allows the same Workflow Id to be used in a new Workflow Execution. Options: AllowDuplicate, AllowDuplicateFailedOnly,
RejectDuplicate, TerminateIfRunning.

## identity

Specify operator's identity.

## input

Use the `--input` command option to include data in the command.

This command option accepts a valid JSON string. If the entity that the command is acting on accepts multiple
parameters, pass "null" for null values within the JSON string.

The following is an example of starting a Workflow with the `--input` command option. This Workflow expects a single
string as a parameter:

```shell
temporal workflow start --input '"+1 555-555-5555"'
```

## input-file

Passes optional input for the Workflow from a JSON file. If there are multiple JSON files, concatenate them and separate
by space or newline. Input from the command line will overwrite file input.

## input-parallelism

Number of goroutines to run in parallel. Each goroutine processes one line for every second.

## input-separator

Separator for the input file. The default is a tab (`\t`).

## interval

Interval duration, such as 90m, or 90m/13m to include phase offset.

## ip

IPv4 address to bind the frontend service to. (default: 127.0.0.1)

## jitter

Jitter duration.

## job-id

Batch Job Id.

## keep-paused

If this flag is provided and Activity was paused, it will stay paused after reset.

## limit

Number of items to print on a page.

## log-format

Set the log formatting. Options: ["json", "pretty"].

## log-level

Set the log level. Options: ["debug" "info" "warn" "error" "fatal"].

## match-all

If set, all currently running activities will be unpaused.

## max-field-length

Maximum length for each attribute field.

## max-sets

Limits how many compatible sets will be returned. Specify 1 to return only the current default major version set. 0
returns all sets.

## memo

Set a memo on a schedule (format: key=value). Use valid JSON formats for value.

## memo-file

Set a memo from a file. Each line should follow the format key=value. Use valid JSON formats for value.

## metrics-port

Port for `/metrics`. Enabled by default with a randomly assigned port.

## name

Frontend address of the remote Cluster or the Endpoint name.

## namespace

Identifies a Namespace in the Temporal Workflow.

## namespace-id

Namespace Id.

## no-fold

Disable folding. All Child Workflows within the set depth will be fetched and displayed.

## no-json-shorthand-payloads

Raw payload output, even if the JSON option was used.

## no-pager

Disables the interactive pager.

## non-deterministic

Reset Workflow Execution only if its last Event is `WorkflowTaskFailed` with a nondeterminism error.

## notes

Initial value of notes field.

## output

Format of output. Options: table, json, card.

## overlap-policy

Overlap policy. Options: Skip, BufferOne, BufferAll, CancelOther, TerminateOther, AllowAll.

## pager

Sets the pager for the Temporal CLI to use. Options are less, more, and favoritePager.

## pause

Pauses the Schedule.

## pause-on-failure

Pause schedule after any Workflow failure.

## port

Port for the frontend gRPC service.

## promote-global

Promote local Namespace to Global Namespace.

## query

Provides a SQL-like Query of Search Attributes to return Workflow Executions to reset. For more information, refer to
the [`temporal workflow list`](/cli/workflow#list) command.

## raw

Print raw data in a JSON format. For scripting, we recommend using this option instead of `-o json`.

## reachability-type

Specify how you'd like to filter the reachability of Build IDs. The following are valid choices:

- `open`: reachable by one or more open Workflows.
- `closed`: reachable by one or more closed Workflows.
- `existing`: reachable by either open or closed Workflows.

Build IDs that are reachable by new Workflows are always reported.

## reapply-type

Event types to reapply after the reset point. Options: Signal, None.

## reason

Reason for the operation.

## reject-condition

Optional flag for rejecting Queries based on Workflow state. Valid values are "not_open" and "not_completed_cleanly".

## remaining-actions

Total number of actions allowed.

## reset-attempts

Providing this flag will reset the number of attempts.

## reset-heartbeat

Providing this flag will reset the heartbeat details.

## reset-points

Only show Workflow Events that are eligible for reset.

## result

Set the result value of Activity completion.

## retention

Workflow Execution retention.

## retry-backoff-coefficient

Coefficient used to calculate the next retry interval. The next retry interval is previous interval multiplied by the
coefficient. Must be 1 or larger.

## retry-initial-interval

Interval of the first retry. If retryBackoffCoefficient is 1.0 then it is used for all retries.

## retry-maximum-attempts

Maximum number of attempts. When exceeded the retries stop even if not expired yet. 1 disables retries. 0 means
unlimited (up to the timeouts).

## retry-maximum-interval

Maximum interval between retries. Exponential backoff leads to interval increase. This value is the cap of the increase.
Default is 100x of the initial interval.

## run-id

Identifies the current Workflow Run.

## run-timeout

Timeout (in seconds) of a single Workflow run.

## schedule-id

Schedule Id.

## schedule-to-close-timeout

Indicates how long the caller is willing to wait for an Activity completion. Limits how long retries will be attempted.

## schedule-to-start-timeout

Limits time an Activity Task can stay in a task queue before a Worker picks it up. This timeout is always non retryable,
as all a retry would achieve is to put it back into the same queue. Defaults to `schedule_to_close_timeout` or workflow
execution timeout if not specified.

## search-attribute

Set Search Attribute on a Schedule (formatted as `key=value`). Use valid JSON formats for value.

## set-as-default

When set, establishes the compatible set being targeted as the default for the Task Queue.

If a different set is the current default, the targeted set replaces it.

## skip-base-is-not-current

Skip a Workflow Execution if the base Workflow Run is not the current Workflow Run.

## skip-current-open

Skip a Workflow Execution if the current Run is open for the same Workflow Id as the base Run.

## sqlite-pragma

Specify sqlite pragma statements in pragma=value format. Pragma options: ["journal_mode" "synchronous"].

## start-delay

Specify a delay before the workflow starts.

## start-time

Backfill start time.

## start-to-close-timeout

Maximum time an Activity is allowed to execute after being picked up by a Worker. This Timeout is always retryable.

## target-namespace

Namespace in which a handler Worker will poll for Nexus tasks.

## target-task-queue

Task Queue in which a handler Worker will poll for Nexus tasks.

## target-url

An external Nexus Endpoint where Nexus requests are forwarded to. May be used as an alternative to `--target-namespace`
and `--target-task-queue`.

:::note

Caution: `--target-url` is experimental.

:::

## task-queue

Task Queue.

## task-queue-type

Task Queue type, which can be either Workflow or Activity. The default type is Workflow.

## task-timeout

Start-to-close timeout for a Workflow Task (in seconds).

## time-format

Format time as: relative, iso, raw.

## time-zone

Time zone (IANA name).

## tls

Enable TLS encryption without additional options such as mTLS or client certificates.

## tls-ca-data

Data for server CA certificate. Can't be used with --tls-ca-path.

## tls-ca-path

Path to server CA certificate.

## tls-cert-data

Data for x509 certificate. Can't be used with --tls-cert-path.

## tls-cert-path

Path to x509 certificate.

## tls-disable-host-verification

Disables TLS host name verification.

## tls-key-data

Private certificate key data. Can't be used with --tls-key-path.

## tls-key-path

Path to private certificate key.

## tls-server-name

Overrides the target TLS server name.

## type

Search attribute type. Options: Text, Keyword, Int, Double, Bool, Datetime, KeywordList.

## ui-asset-path

UI Custom Assets path.

## ui-codec-endpoint

UI Remote data converter HTTP endpoint.

## ui-ip

IPv4 address to bind the Web UI to.

## ui-port

Port for the Web UI. Default: `--port` + 1000 (for example, 4000).

## unpause

Unpauses the Schedule.

## unset-description

Unset the description.

## verbose

Print applied Namespace changes.

## visibility-archival-state

Visibility Archival state. Valid values: "disabled", "enabled".

## visibility-uri

Specify URI for Visibility Archival. This cannot be changed after Archival is enabled.

## workflow-id

Workflow Id.

## workflow-type

Workflow type name.

## yes

Confirm all prompts.

---

## Temporal CLI config command reference

{/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from
https://github.com/temporalio/cli/blob/main/temporalcli/commandsgen/commands.yml  */}

## delete

Remove a property within a profile.

```
temporal env delete \
    --prop tls.client_cert_path
```

Use the following options to change the behavior of this command.

**Flags:**

**--prop**, **-p** _string_

Specific property to delete. If unset, deletes entire profile. Required.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporalio/temporal.toml` where `$CONFIG_PATH` is defined
as `$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## delete-profile

Remove a full profile entirely. The `--profile` must be set explicitly.

```
temporal env delete-profile \
    --profile my-profile
```

Use the following options to change the behavior of this command.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## get

Display specific properties or the entire profile.

```
temporal config get \
    --prop address
```

or

```
temporal config get
```

Use the following options to change the behavior of this command.

**Flags:**

**--prop**, **-p** _string_

Specific property to get.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## list

List profile names in the config file.

```
temporal config list
```

Use the following options to change the behavior of this command.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## set

Assign a value to a property and store it in the config file:

```
temporal config set \
    --prop address \
    --value us-west-2.aws.api.temporal.io:7233
```

Use the following options to change the behavior of this command.

**Flags:**

**--prop**, **-p** _string_

Property name. Required.

**--value**, **-v** _string_

Property value. Required.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

---

## Temporal CLI env command reference

{/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from
https://github.com/temporalio/cli/blob/main/temporalcli/commandsgen/commands.yml  */}

## delete

Remove a presets environment entirely _or_ remove a key-value pair within an environment. If you don't specify an
environment (with `--env` or by setting the `TEMPORAL_ENV` variable), this command updates the "default" environment:

```
temporal env delete \
    --env YourEnvironment
```

or

```
temporal env delete \
    --env prod \
    --key tls-key-path
```

Use the following options to change the behavior of this command.

**Flags:**

**--key**, **-k** _string_

Property name.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## get

List the properties for a given environment:

```
temporal env get \
    --env YourEnvironment
```

Print a single property:

```
temporal env get \
    --env YourEnvironment \
    --key YourPropertyKey
```

If you don't specify an environment (with `--env` or by setting the `TEMPORAL_ENV` variable), this command lists
properties of the "default" environment.

Use the following options to change the behavior of this command.

**Flags:**

**--key**, **-k** _string_

Property name.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## list

List the environments you have set up on your local computer. Environments are stored in
"$HOME/.config/temporalio/temporal.yaml".

Use the following options to change the behavior of this command.

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

## set

Assign a value to a property key and store it to an environment:

```
temporal env set \
    --env environment \
    --key property \
    --value value
```

If you don't specify an environment (with `--env` or by setting the `TEMPORAL_ENV` variable), this command sets
properties in the "default" environment.

Storing keys with CLI option names lets the CLI automatically set those options for you. This reduces effort and helps
avoid typos when issuing commands.

Use the following options to change the behavior of this command.

**Flags:**

**--key**, **-k** _string_

Property name (required).

**--value**, **-v** _string_

Property value (required).

**Global Flags:**

**--address** _string_

Temporal Service gRPC endpoint. (default "localhost:7233")

**--api-key** _string_

API key for request.

**--client-authority** _string_

Temporal gRPC client :authority pseudoheader.

**--client-connect-timeout** _duration_

The client connection timeout. 0s means no timeout.

**--codec-auth** _string_

Authorization header for Codec Server requests.

**--codec-endpoint** _string_

Remote Codec Server endpoint.

**--codec-header** _string[]_

HTTP headers for requests to codec server. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple
headers.

**--color** _string-enum_

Output coloring. Accepted values: always, never, auto. (default "auto")

**--command-timeout** _duration_

The command execution timeout. 0s means no timeout.

**--config-file** _string_

File path to read TOML config from, defaults to `$CONFIG_PATH/temporal/temporal.toml` where `$CONFIG_PATH` is defined as
`$HOME/.config` on Unix, "$HOME/Library/Application Support" on macOS, and %AppData% on Windows.

:::note

Option is experimental.

:::

**--disable-config-env** _bool_

If set, disables loading environment config from environment variables.

:::note

Option is experimental.

:::

**--disable-config-file** _bool_

If set, disables loading environment config from config file.

:::note

Option is experimental.

:::

**--env** _string_

Active environment name (`ENV`). (default "default")

**--env-file** _string_

Path to environment settings file. Defaults to `$HOME/.config/temporalio/temporal.yaml`.

**--grpc-meta** _string[]_

HTTP headers for requests. Format as a `KEY=VALUE` pair. May be passed multiple times to set multiple headers. Can also
be made available via environment variable as `TEMPORAL_GRPC_META_[name]`.

**--identity** _string_

The identity of the user or client submitting this request. Defaults to "temporal-cli:$USER@$HOST".

**--log-format** _string-enum_

Log format. Accepted values: text, json. (default "text")

**--log-level** _string-enum_

Log level. Default is "info" for most commands and "warn" for `server start-dev`. Accepted values: debug, info, warn,
error, never. (default "info")

**--namespace**, **-n** _string_

Temporal Service Namespace. (default "default")

**--no-json-shorthand-payloads** _bool_

Raw payload output, even if the JSON option was used.

**--output**, **-o** _string-enum_

Non-logging data output format. Accepted values: text, json, jsonl, none. (default "text")

**--profile** _string_

Profile to use for config file.

:::note

Option is experimental.

:::

**--time-format** _string-enum_

Time format. Accepted values: relative, iso, raw. (default "relative")

**--tls** _bool_

Enable base TLS encryption. Does not have additional options like mTLS or client certs. This is defaulted to true if
api-key or any other TLS options are present. Use --tls=false to explicitly disable.

**--tls-ca-data** _string_

Data for server CA certificate. Can't be used with --tls-ca-path.

**--tls-ca-path** _string_

Path to server CA certificate. Can't be used with --tls-ca-data.

**--tls-cert-data** _string_

Data for x509 certificate. Can't be used with --tls-cert-path.

**--tls-cert-path** _string_

Path to x509 certificate. Can't be used with --tls-cert-data.

**--tls-disable-host-verification** _bool_

Disable TLS host-name verification.

**--tls-key-data** _string_

Private certificate key data. Can't be used with --tls-key-path.

**--tls-key-path** _string_

Path to x509 private key. Can't be used with --tls-key-data.

**--tls-server-name** _string_

Override target TLS server name.

---

## Temporal CLI command reference

The Temporal CLI provides direct access to a Temporal Service via the terminal. It's a powerful tool for managing,
monitoring, and debugging Temporal Applications. You can use it to start, stop, inspect and operate on Workflows and
Activities, and perform administrative tasks such as Namespace, Schedule, and Task Queue management.

The Temporal CLI also includes an embedded Temporal Service suitable for use in development and CI/CD. It includes the
[Temporal Server](/temporal-service/temporal-server), SQLite persistence, and the [Temporal Web UI](/web-ui).

:::note

When upgrading from [tctl](/tctl-v1) to the Temporal CLI, make sure to update your environment variables and use updated
commands. For details, see [CLI release notes](https://github.com/temporalio/cli/releases/).

:::

## Install the Temporal CLI {#install}

The Temporal CLI is available on macOS, Windows, and Linux, or as a Docker image.

### macOS

Choose one of the following install methods to install the Temporal CLI on macOS:

- Install the Temporal CLI with Homebrew.

```shell
brew install temporal
```

- Install the Temporal CLI from CDN.

  1. Select the platform and architecture needed.

  - Download for Darwin amd64: https://temporal.download/cli/archive/latest?platform=darwin&arch=amd64
  - Download for Darwin arm64: https://temporal.download/cli/archive/latest?platform=darwin&arch=arm64

  2. Extract the downloaded archive.

  3. Add the Temporal CLI binary to your PATH.

### Linux

Choose one of the following install methods to install the Temporal CLI on Linux:

- Install the Temporal CLI from CDN.

  1. Select the platform and architecture needed.

  - Download for Linux amd64: https://temporal.download/cli/archive/latest?platform=linux&arch=amd64
  - Download for Linux arm64: https://temporal.download/cli/archive/latest?platform=linux&arch=arm64

  2. Extract the downloaded archive.

  3. Add the `temporal` binary to your PATH.

### Windows

Choose one of the following methods to install the Temporal CLI on Windows:

- Install the Temporal CLI from CDN.

  1. Select the platform and architecture needed and download the binary.

  - Download for Windows amd64: https://temporal.download/cli/archive/latest?platform=windows&arch=amd64
  - Download for Windows arm64: https://temporal.download/cli/archive/latest?platform=windows&arch=arm64

  2. Extract the downloaded archive.

  3. Add the `temporal.exe` binary to your PATH.

### Docker

The Temporal CLI container image is available on [DockerHub](https://hub.docker.com/r/temporalio/temporal) and can be
run directly:

```shell
docker run --rm temporalio/temporal --help
```

:::note

When running the Temporal CLI inside Docker, for the development server to be accessible from the host system, the
server needs to be configured to listen on external IP and the ports need to be forwarded:

```shell
docker run --rm -p 7233:7233 -p 8233:8233 temporalio/temporal server start-dev --ip 0.0.0.0