catalog
This skill manages the Temporal Catalog, a local development page for browsing and running workflow examples in the temporalio/ui repository.
Identity proven by GitHub's verified organisation badge (temporalio)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, claude.ai and API
- License
- MIT (permissive)
- Pin
- 724b960pinned Oct 9, 2026
- Context cost
- about 2,100 tokenswhen the skill loads
- GitHub stars
- 441on temporalio/ui
- Scripts
- None found
What it does
“Find, run, inspect, author, and promote Temporal Catalog examples in the temporalio/ui repository. Use when asked to add or change a workflow example, run the catalog locally, debug a catalog example that will not start, promote a local example into the shared catalog, or explain how catalog namespaces, task queues, and prerequisites are configured.”
Generated summary from the skill's own text
This skill manages the Temporal Catalog, a local development page for browsing and running workflow examples in the temporalio/ui repository. Agents can create local examples, modify them, verify their configuration, promote them to the shared catalog, and run or debug examples using a worker and browser interface.
When to use it
- Adding or modifying workflow examples in the catalog
- Running catalog examples locally during development
- Debugging why a catalog example fails to start
- Promoting a local example to the shared catalog repository
When not to
- Accessing the catalog in non-local environments like staging or production
- Creating examples that require Cloud-specific features or assumptions
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add temporalio/ui --skill catalogInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install temporalio/ui catalog@724b96094166f72a780839c4ddb33088f7900dc0Installs the commit we checked (724b960).
Copy by hand
Download the folder at 724b960 and put it in .claude/skills/catalog for Claude Code and in .agents/skills/catalog for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "catalog" by Temporal. Source, pinned to commit 724b96094166f72a780839c4ddb33088f7900dc0: https://github.com/temporalio/ui/tree/724b96094166f72a780839c4ddb33088f7900dc0/agent-plugins/temporal-ui-catalog/skills/catalog 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/catalog/ for Claude Code and .agents/skills/catalog/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/temporal/catalog
SKILL.md at the pin
---
name: catalog
description: Find, run, inspect, author, and promote Temporal Catalog examples in the temporalio/ui repository. Use when asked to add or change a workflow example, run the catalog locally, debug a catalog example that will not start, promote a local example into the shared catalog, or explain how catalog namespaces, task queues, and prerequisites are configured.
---
# Temporal Catalog
The Catalog is a local-development page in `temporalio/ui` for browsing and running Temporal workflow examples. Examples are declared in code, generated into artifacts the browser reads, and executed by a worker this repository starts.
The catalog is only reachable in local development. Every other environment returns 404.
## Start here
```bash
pnpm catalog dev
```
This runs the UI and the catalog worker together and prints a banner with the catalog URL and each target's namespace and task queue. Open the URL it prints, which looks like:
```
http://localhost:3000/namespaces/default/catalog
```
`pnpm dev` is unaffected by the catalog and never starts a worker. To run the pieces separately, use `pnpm dev` in one terminal and `pnpm catalog worker` in another.
## Commands
All catalog work goes through one command:
```bash
pnpm catalog help # list commands
pnpm catalog scaffold <example-id> # create a local example
pnpm catalog generate # rebuild generated artifacts
pnpm catalog verify # check artifacts and boundaries
pnpm catalog promote <example-id> # move a local example into the shared catalog
pnpm catalog demote <example-id> # move a shared example back to the local catalog
pnpm catalog dev # UI plus worker
pnpm catalog worker # worker only
```
Both commands run the worker under Node's watch mode, so it restarts whenever a catalog module it loaded changes. Scaffolding, promoting, demoting, or editing an example reaches the running worker without stopping it.
`promote` and `demote` accept `--dry-run` to preview without moving anything.
## Find an example
Examples appear in the catalog list, filterable by source. Two sources exist:
- **OSS** — shared examples committed to this repository, under `src/lib/catalog/worker/examples/<id>/`.
- **Local** — your own examples, under `catalog.local/examples/<id>/`. That directory is gitignored and never ships.
The generated `src/lib/catalog/browser/catalog.generated.json` lists every shared example with its capability tags, expected evidence, input schema, and any setup instructions. Read it to answer "what examples exist" without starting anything.
## Add a local example
```bash
pnpm catalog scaffold order-lifecycle
```
This creates `catalog.local/examples/order-lifecycle/` with `example.ts` and `workflow.ts`, regenerates artifacts, and prints where to see it. Edit those two files to shape the example. Scaffolding while the worker is running restarts it, so the new example is runnable without touching the terminal. Saving the files while `pnpm catalog dev` is running regenerates the catalog, reloads the browser, and restarts the worker; there is no manual step.
`example.ts` exports `catalogExample`, which declares the id, title, description, capability tags, expected evidence, input and start-option schemas, and the execution. Registration is validated: unknown fields, empty required strings, and non-serializable values are rejected at generation time with a message naming the example.
## Run and inspect
Press **Run** on the example page. The page shows:
- **Readiness** — whether a worker is polling the target task queue, plus any declared prerequisites. A missing worker is advisory and shows the exact command to start one; a missing declared prerequisite blocks only that example.
- **Runs** — each attempt with its status, and an evidence link into the workflow history for inspecting what actually happened.
If a start fails, the page explains why rather than only saying it failed. "This server does not support that execution" usually means the running Temporal server is older than the feature the example needs.
## Declared prerequisites
An example may declare Nexus endpoints it needs:
```ts
execution: {
kind: 'workflow',
workflowType: 'nexusGreeting',
workflow: nexusGreeting,
activities: {},
nexusEndpoints: ['ui-catalog'],
nexusServices: [greetingServiceHandler],
}
```
Each declared endpoint becomes a required readiness check. On a plaintext local connection the worker creates missing endpoints itself at startup. When it lacks authority — any credentialed connection, including Temporal Cloud — it prints the exact `temporal operator nexus endpoint create` command instead, and the UI shows the same command as copyable text.
For manual steps no check can verify, add `setupMarkdown` to the example. It renders as a Setup card on the example page and travels in the generated artifact, so agents read the same guidance a person sees.
## Promote a local example into the shared catalog
Promotion is deliberate and never automatic:
```bash
pnpm catalog promote order-lifecycle --dry-run
pnpm catalog promote order-lifecycle
```
This moves `catalog.local/examples/<id>/` to `src/lib/catalog/worker/examples/<id>/`, then regenerates and verifies. After promoting, the example is committed to the repository and ships to every consumer, so review its input schema, expected evidence, and setup instructions before promoting.
## Demote a shared example into the local catalog
Demotion reverses a deliberate promotion:
```bash
pnpm catalog demote order-lifecycle --dry-run
pnpm catalog demote order-lifecycle
```
This moves `src/lib/catalog/worker/examples/<id>/` back to `catalog.local/examples/<id>/`, then regenerates and verifies through the same journaled transaction as promotion. The example is now local and ignored by Git; it is not deleted. The command never overwrites an existing local example, and a generation or verification failure restores the tracked source and generated outputs.
Only self-contained examples can move between the two roots. If an older shared example imports files outside its own directory, demotion refuses it with an explanation and leaves it tracked; make the example self-contained before trying again.
## Configuration
Two rules explain nearly every configuration question:
- **Namespace** comes from where you are. In the browser it is the namespace in the URL, so browsing `/namespaces/staging/catalog` targets `staging`. For the worker it comes from `TEMPORAL_NAMESPACE`. Point both at the same namespace or the UI will show no worker polling.
- **Task queues** come only from a target's registration. No environment variable overrides them, which keeps the UI's readiness check and the worker's polling in agreement.
Environment files layer, with real environment variables winning over both:
| File | Committed | Purpose |
| ---------------------------- | --------- | ---------------------------------------------------- |
| `.env.catalog` | yes | Address and namespace defaults for local development |
| `.env.catalog.local` | no | Your overrides and all credentials |
| `.env.catalog.local.example` | yes | Commented template for every credential mode |
Exactly one credential mode may be set: an API key, or a client certificate pair, optionally with a private CA certificate and server name override. Mixing them, or providing half a certificate pair, fails at startup with a message naming the problem.
Prefer `127.0.0.1` over `localhost` in addresses. `localhost` can resolve to IPv6 and reach a different Temporal server than the UI is reading, which shows up as a healthy worker that the catalog cannot see.
## Generated artifacts
`catalog.generated.json`, `catalog.generated.ts`, and the local assemblies are generated. Never edit them by hand; run `pnpm catalog generate`. Verification compares a hash of the declared source files, so a stale artifact fails with a message naming the command that fixes it. `pnpm catalog verify` is the check to run before committing catalog changes.
## Cloud handoff
Cloud UI consumes the packaged catalog from `@temporalio/ui` rather than copying it. This repository owns the examples, the registry, the worker runtime, and the provider-neutral UI. Cloud supplies its own routes, start policy, and connection and provisioning behavior, and runs its own worker command against the same packaged examples.
Practically: an example added and promoted here becomes available to Cloud when it takes a new package version. Do not add Cloud-specific assumptions to a shared example; keep it working against a plain local server, and use declared prerequisites and `setupMarkdown` for anything an environment must provide.
From temporalio/ui at 724b960, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at 724b960Files
- SKILL.md8.9 KB · e4cd8e89bd19
1 file, 8.9 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 724b960More from Temporal
temporal-cloud-setup
This skill sets up Temporal Cloud end-to-end for users, installing the Temporal CLI, authenticating to Temporal Cloud, creating a namespace and API key…
Contains scripts
Claude Code · about 17.1K tokens · pinned 6 days ago
temporal-developer
This skill guides developers building Temporal applications across Python, TypeScript, Go, Java, .NET, Ruby, and Rust.
Claude Code, Codex, Cursor +3 · about 1.7K tokens · pinned 6 days ago
temporal-ops
This skill administers and troubleshoots running Temporal Cloud and self-hosted Server environments through command-line tools (temporal, tcld).
Claude Code · about 8.3K tokens · pinned 6 days ago
temporal-serverless
This skill guides users through deploying Temporal Workers on AWS Lambda using a Worker Controller Instance that invokes Workers on demand.
Claude Code · about 9.7K tokens · pinned 6 days ago
temporal-cloud-setup
This skill sets up Temporal Cloud end-to-end for users by installing the Temporal CLI, signing into Temporal Cloud, creating a namespace and API key, cloning…
Contains scripts
Claude Code · about 17.1K tokens · pinned 6 days ago
temporal-ops
This skill administers and diagnoses running Temporal environments via CLI commands (temporal, tcld).
Claude Code · about 8.3K tokens · pinned 6 days ago
Related in Coding workflow
planning
This skill orchestrates multi-workflow projects with dependencies and shared data tables by creating a task graph in the orchestrator via the create-tasks tool.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.4K tokens · pinned 6 days ago
progressive-building
This skill implements incremental workflow development for agents building or extending workflows.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 1.4K tokens · pinned 6 days ago
workflow-builder
Builds and edits n8n workflows using the TypeScript SDK.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 14.2K tokens · pinned 6 days ago
remotion-upgrade
This skill upgrades Remotion and its related packages to the latest stable version.
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 460 tokens · pinned 6 days ago
remotion-upgrade
This skill upgrades Remotion and related packages across a project, automatically detecting the package manager and workspaces.
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 460 tokens · pinned 6 days ago
final-release-review
Audits Python SDK release candidates or plans against the previous release, comparing diffs for regressions, API changes, and version compatibility.
by OpenAIOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 5.4K tokens · pinned 6 days ago
Open roles at Temporal
5 of 10 open roles on the jobs board
- Senior Software Engineer, Open Source Server
Remote (United States) (Remote)
- Senior Professional Services Engineer - East
Remote (United States) | Boston, Massachusetts | Philadelphia, Pennsylvania | Raleigh, North Carolina | New York, New York (Remote)
- Software Engineer, Cloud Enablement
Remote (United States) | Seattle, Washington, United States | San Francisco, California, United States (Remote)
- Senior Software Engineer, Compute (Temporal Cloud)
Remote (United States) (Remote)
- Senior Software Engineer, Nexus Server
Seattle, Washington | San Francisco, California (Remote)