Skip to main content

local-temporal

Instructions for running the UI against a local Temporal server build instead of the built-in CLI dev server. Use when asked how to start the dev environment, run the UI locally, or connect to a local Temporal repo.

Source facts

Repository
temporalio/ui
Last source activity
April 20, 2026 at 16:57
Detected SKILL.md language
English
Stars
447
Forks
202

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
local-temporal
description
Instructions for running the UI against a local Temporal server build instead of the built-in CLI dev server. Use when asked how to start the dev environment, run the UI locally, or connect to a local Temporal repo.
# Local Temporal Dev Setup To develop against a local build of the Temporal server, you need two things running in separate terminals. ## Terminal 1 — Temporal server (from your local temporal repo) Navigate to your local clone of the `temporalio/temporal` repo and start the server: ```bash make start ``` This builds and starts the server with SQLite in-memory. If you want a specific branch, check it out first: ```bash git checkout <branch-name> make bins # safe to run even if already built — outputs "Nothing to be done" and exits cleanly make start ``` The server runs gRPC on port `7233` and HTTP on `7243`. ## Terminal 2 — UI dev server (this repo) From this repo, use the `local-temporal` script instead of the default `dev` script: ```bash pnpm dev:local-temporal ``` This loads `.env.local-temporal` which points the UI at the local server instead of spinning up its own. ## Why not `pnpm dev`? `pnpm dev` (aliased to `pnpm dev:ui-server`) starts a bundled Temporal server alongside the UI. `pnpm dev:local-temporal` skips that and connects to whatever is already running on the configured ports. ## Keeping the ui-server in sync with the Temporal server branch This is **critical** when working on unreleased features. The ui-server (`server/`) is a separate Go binary that acts as a grpc-gateway — it decodes HTTP/JSON into proto messages and forwards them to the Temporal server over gRPC. Its proto descriptors are baked in at compile time from its own `server/go.mod`. If the Temporal server branch uses a newer `go.temporal.io/api` version than `server/go.mod`, the ui-server will reject any new HTTP fields as "unknown field" before the request ever reaches the Temporal server. **When switching to a Temporal branch with API changes:** 1. Check what `go.temporal.io/api` version the Temporal server branch uses: ```bash grep "go.temporal.io/api" ~/code/temporal/go.mod ``` 2. Update `server/go.mod` to match: ```bash cd server go get go.temporal.io/api@<version> ``` 3. Rebuild the ui-server binary: ```bash go build -o ui-server ./cmd/server ``` 4. Then restart `pnpm dev:local-temporal` to pick up the new binary.
View on GitHub