Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
7533706
docs: unified cli draft
lennessyy Jan 14, 2026
420a340
fix broken link
lennessyy Jan 14, 2026
cfa16e1
docs: fix link errors
lennessyy Jan 14, 2026
7764080
docs: add to cli page
lennessyy Jan 16, 2026
83a4dae
docs: login callout
lennessyy Jan 26, 2026
3558000
docs: change auth docs
lennessyy Jan 28, 2026
7bd7bd9
docs: broken link fix
lennessyy Apr 13, 2026
fdd5446
docs: add cloud command reference
lennessyy Apr 14, 2026
9510c02
docs: add command ref
lennessyy Apr 14, 2026
bc506d1
fix broken link
lennessyy Apr 14, 2026
a80300d
fix link
lennessyy Apr 14, 2026
8c9e16f
fix: space for command children
lennessyy Apr 15, 2026
1cdd1f9
update use with cloud page
lennessyy Apr 15, 2026
46557d0
fix sidebar
lennessyy Apr 15, 2026
828e73e
docs: unified cli draft
lennessyy Jan 14, 2026
63986bc
fix broken link
lennessyy Jan 14, 2026
69aa020
docs: fix link errors
lennessyy Jan 14, 2026
d6d72c1
docs: add to cli page
lennessyy Jan 16, 2026
a7b2059
docs: login callout
lennessyy Jan 26, 2026
fda194b
docs: change auth docs
lennessyy Jan 28, 2026
e1d5056
docs: broken link fix
lennessyy Apr 13, 2026
0944930
docs: add cloud command reference
lennessyy Apr 14, 2026
fb69c3d
docs: add command ref
lennessyy Apr 14, 2026
ca936b8
fix broken link
lennessyy Apr 14, 2026
ccf6ba4
fix link
lennessyy Apr 14, 2026
1679396
fix: space for command children
lennessyy Apr 15, 2026
e68aa5b
update use with cloud page
lennessyy Apr 15, 2026
1ff4a81
fix sidebar
lennessyy Apr 15, 2026
4f42153
add prerelease banner
lennessyy Apr 15, 2026
84ec016
resolve conflicts
lennessyy Apr 15, 2026
681a18c
fix conflicts
lennessyy Apr 15, 2026
e1c2cf6
docs: small edit
lennessyy Apr 15, 2026
e252c8b
copy edit
lennessyy Apr 15, 2026
c35e3ee
docs: add pre-release banner
lennessyy Apr 15, 2026
2d2e749
fix broken link
lennessyy Apr 15, 2026
268abfa
docs: fix broken links
lennessyy Apr 15, 2026
d2bfe26
Merge branch 'main' into unified-cli
lennessyy Apr 16, 2026
98ee551
Merge branch 'main' into unified-cli
lennessyy Apr 20, 2026
d5a4e17
Merge branch 'main' into unified-cli
lennessyy Apr 30, 2026
91e8e03
update workflow subcommand
lennessyy May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions .github/workflows/update-cli-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,20 @@ jobs:
with:
go-version: '1.22'

- name: Checkout cloud-cli repo
uses: actions/checkout@v4
with:
path: cloud-cli
submodules: recursive
persist-credentials: true
token: ${{ steps.generate_token.outputs.token }}
repository: temporalio/cloud-cli

- name: Generate CLI docs
working-directory: cli
run: go run ./cmd/gen-docs -input internal/temporalcli/commands.yaml -input cliext/option-sets.yaml -output dist/docs
run: |
go run ./cmd/gen-docs -input internal/temporalcli/commands.yaml -input cliext/option-sets.yaml -output dist/docs
go run ./cmd/gen-docs -input ../cloud-cli/temporalcloudcli/commands.yml -output dist/docs -subdir cloud

- name: Publish generated docs to documentation repo
env:
Expand All @@ -78,7 +89,9 @@ jobs:

branch_name="update-cli-docs-$CLI_RELEASE_TAG"
git checkout -b "$branch_name"
cp ../cli/dist/docs/*.mdx docs/cli/
rm -rf docs/cli/command-reference
mkdir -p docs/cli/command-reference
cp -r ../cli/dist/docs/* docs/cli/command-reference/
git add .
git commit -m "$COMMIT_MESSAGE"
git push origin "$branch_name"
Expand Down
2 changes: 1 addition & 1 deletion docs/best-practices/cost-optimization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ For expensive external operations like this, consider:
- Increasing `InitialInterval` (for example, to 10s) to reduce retry frequency
- Adding error types to `NonRetryableErrorTypes` for errors that won't resolve on retry (such as 4xx HTTP status codes)
- Using [next retry delay](/encyclopedia/retry-policies#per-error-next-retry-delay) to dynamically control retry timing based on failure types (for example, respecting rate-limit headers)
- Implementing an [Activity pause pattern](/cli/activity#pause) to wait for manual intervention rather than automatic retries
- Implementing an [Activity pause pattern](/cli/command-reference/activity#pause) to wait for manual intervention rather than automatic retries

Use the [Activity Retry Simulator](/develop/activity-retry-simulator) to visualize how different Retry Policy configurations affect retry behavior and Action consumption.

Expand Down
247 changes: 247 additions & 0 deletions docs/cli/cli-basics.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
---
id: cli-basics
title: CLI basics
sidebar_label: CLI basics
slug: /cli/common-operations
description:
Common Temporal CLI operations for running a development server, starting and managing Workflows, and working with
Schedules and Namespaces.
keywords:
- Temporal CLI
- workflow start
- workflow list
- workflow describe
- workflow signal
- workflow terminate
- schedule
- namespace
hide_table_of_contents: true
---

import { SetupSteps, SetupStep, CodeSnippet } from '@site/src/components/elements/SetupSteps';

This page walks through the operations you're most likely to reach for when using the Temporal CLI. For the full set of
commands, see the [command reference](/cli#command-reference).

<SetupSteps>
<SetupStep code={
<>
<CodeSnippet language="bash">
temporal server start-dev
</CodeSnippet>
<CodeSnippet language="bash">
temporal server start-dev --db-filename temporal.db
</CodeSnippet>
</>
}>

## Run a development server

The Temporal CLI ships with a complete Temporal binary. Start a local Temporal Service for development with a single
command.

The Temporal Service is available on `localhost:7233` and the Web UI at `http://localhost:8233`.

To keep Workflow data between restarts, specify a database file.

See [Install and configure](/cli/setup-cli#run-a-local-development-server) for more development server options.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
{`temporal workflow start \\
--task-queue my-task-queue \\
--type MyWorkflow \\
--workflow-id my-workflow-id \\
--input '"my-input-value"'`}
</CodeSnippet>
<CodeSnippet language="bash">
{`temporal workflow execute \\
--task-queue my-task-queue \\
--type MyWorkflow \\
--workflow-id my-workflow-id \\
--input '"my-input-value"'`}
</CodeSnippet>
</>
}>

## Start a Workflow

Start a Workflow Execution with `temporal workflow start`.

To start a Workflow and wait for the result, use `temporal workflow execute` instead.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
temporal workflow list
</CodeSnippet>
<CodeSnippet language="bash">
temporal workflow describe --workflow-id my-workflow-id
</CodeSnippet>
<CodeSnippet language="bash">
temporal workflow show --workflow-id my-workflow-id
</CodeSnippet>
</>
}>

## Check Workflow status

List running Workflows.

Get details about a specific Workflow Execution.

View the Event History for a Workflow Execution.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
{`temporal workflow signal \\
--workflow-id my-workflow-id \\
--name my-signal \\
--input '"signal-value"'`}
</CodeSnippet>
<CodeSnippet language="bash">
{`temporal workflow query \\
--workflow-id my-workflow-id \\
--name my-query`}
</CodeSnippet>
</>
}>

## Send Signals and Queries

Send a [Signal](/sending-messages#sending-signals) to a running Workflow.

[Query](/sending-messages#sending-queries) a running Workflow for its current state.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
temporal workflow cancel --workflow-id my-workflow-id
</CodeSnippet>
<CodeSnippet language="bash">
temporal workflow terminate --workflow-id my-workflow-id
</CodeSnippet>
</>
}>

## Cancel or Terminate a Workflow

Cancel a Workflow Execution. Cancellation allows cleanup logic to run before the Workflow completes.

Terminate a Workflow Execution. Termination stops the Workflow immediately with no cleanup.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
temporal cloud login
</CodeSnippet>
<CodeSnippet language="bash">
{`temporal workflow list \\
--address <namespace>.<account>.tmprl.cloud:7233 \\
--namespace <namespace>.<account>`}
</CodeSnippet>
</>
}>

## Log in to Temporal Cloud

Log in to Temporal Cloud with `temporal cloud login`. After login, you can run commands against Temporal Cloud by
providing the address and Namespace.

See [Use with Temporal Cloud](/cli/temporal-cloud) for all authentication options.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
{`temporal schedule create \\
--schedule-id my-schedule \\
--interval 1h \\
--task-queue my-task-queue \\
--type MyScheduledWorkflow`}
</CodeSnippet>
<CodeSnippet language="bash">
temporal schedule list
</CodeSnippet>
<CodeSnippet language="bash">
{`temporal schedule toggle \\
--schedule-id my-schedule \\
--pause --reason "maintenance"`}
</CodeSnippet>
<CodeSnippet language="bash">
{`temporal schedule toggle \\
--schedule-id my-schedule \\
--unpause --reason "maintenance complete"`}
</CodeSnippet>
</>
}>

## Work with Schedules

Create a [Schedule](/schedule) that starts a Workflow on an interval.

List all Schedules.

Pause and unpause a Schedule.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
temporal operator namespace list
</CodeSnippet>
<CodeSnippet language="bash">
temporal operator namespace create --namespace my-namespace
</CodeSnippet>
</>
}>

## Manage Namespaces

List available [Namespaces](/namespaces).

Create a new Namespace.

To manage Namespaces on Temporal Cloud, use the Temporal Cloud extension and
[`temporal cloud namespace`](/cli/command-reference/cloud/namespace) commands.

</SetupStep>

<SetupStep code={
<>
<CodeSnippet language="bash">
temporal workflow list --output json
</CodeSnippet>
<CodeSnippet language="bash">
{`temporal workflow list --output json | jq '.[].type.name'`}
</CodeSnippet>
</>
}>

## Format and filter output

Use `--output json` to get machine-readable output from any command.

Combine with [jq](https://jqlang.github.io/jq/) for filtering.

</SetupStep>
</SetupSteps>

## Next steps

- [Use with Temporal Cloud](/cli/temporal-cloud) to connect the CLI to Temporal Cloud.
- [Command reference](/cli#command-reference) for the full set of commands and options.
Loading