GitHub - galaxy-io/tempo: Keyboard-driven terminal client for inspecting and controlling Temporal workflows

GitHub

3 min read Original article ↗

Tempo Demo

Features

Workflow Management

  • Browse workflows across namespaces
  • View workflow details, inputs, outputs, and metadata
  • Inspect full event history with tree and timeline views
  • Cancel, terminate, or signal running workflows
  • Compare two workflow executions side-by-side (diff view)
  • Advanced search with visibility queries and saved filters

Namespace Operations

  • List and browse all namespaces
  • View namespace configuration and details
  • Quick namespace switching

Task Queues & Schedules

  • Monitor task queue activity
  • View and manage schedules

Connection Profiles

  • Save multiple Temporal server configurations
  • TLS/mTLS support with certificate paths
  • Remote payload codec support
  • Import Temporal CLI environments
  • Quick profile switching with P key

Customization

  • 26 built-in color themes (dark and light variants)
  • Themes include: TokyoNight, Catppuccin, Dracula, Nord, Gruvbox, One Dark, Solarized, Rosé Pine, Kanagawa, Everforest, Monokai, GitHub
  • Live theme preview while selecting

Installation

From Source

go install github.com/galaxy-io/tempo/cmd/tempo@latest

Brew

Brew installed versions will not recieve auto-updates you must update with brew update

brew install galaxy-io/tap/tempo

Build Locally

git clone https://github.com/galaxy-io/tempo.git
cd tempo
go build -o tempo ./cmd/tempo

Usage

tempo --address localhost:7233 // default dev server address loads without flag

Command Line Flags

Flag Description
--address Temporal server address (host:port)
--namespace Default namespace
--profile Connection profile name (from config)
--tls-cert Path to TLS certificate
--tls-key Path to TLS private key
--tls-ca Path to CA certificate
--tls-server-name Server name for TLS verification
--tls-skip-verify Skip TLS verification (insecure)
--codec-endpoint Remote payload codec endpoint
--codec-auth Authorization header for codec requests
--codec-header Codec request header (KEY=VALUE, repeatable)
--theme Theme name

Keybindings

Navigation

Key Action
j / k Navigate down / up
Enter Select / expand
Esc / Backspace Go back
q Quit (from root view)

Global

Key Action
? Show help
T Theme selector
P Profile selector
: Command mode
/ Filter (in workflow list)

Workflow Actions

Key Action
c Cancel workflow
t Terminate workflow
s Signal workflow
d Compare workflows (diff)

Configuration

Configuration is stored in ~/.config/tempo/config.yaml (or $XDG_CONFIG_HOME/tempo/config.yaml).

theme: tokyonight-night
active_profile: local

profiles:
  local:
    address: localhost:7233
    namespace: default

  staging:
    address: temporal.staging.example.com:7233
    namespace: staging
    tls:
      cert: /path/to/client.pem
      key: /path/to/client-key.pem
      ca: /path/to/ca.pem
    codec:
      endpoint: https://codec.example.com/{namespace}
      auth: ${TEMPO_CODEC_AUTH}
      headers:
        X-Codec-Tenant: payments

The optional {namespace} placeholder in a codec endpoint is replaced with the active namespace. Tempo sends the namespace in the X-Namespace header, passes codec.auth as the Authorization header, and includes any entries from codec.headers. Environment variables in codec settings are expanded when a profile is loaded, which keeps credentials out of this file.

Tempo also discovers environments from the Temporal CLI's legacy ~/.config/temporalio/temporal.yaml file and its current TOML configuration. The TOML path comes from TEMPORAL_CONFIG_FILE when set, then falls back to the platform-specific user configuration directory. Imported environments appear as read-only profiles named import:<environment>. Address, namespace, TLS, API key, and codec settings are reloaded each time Tempo starts.

Themes

Theme Selection

26 themes are available, organized by color scheme family:

Dark Themes

  • tokyonight-night, tokyonight-storm, tokyonight-moon
  • catppuccin-mocha, catppuccin-macchiato, catppuccin-frappe
  • dracula
  • nord
  • gruvbox-dark
  • onedark
  • solarized-dark
  • rosepine, rosepine-moon
  • kanagawa
  • everforest-dark
  • monokai
  • github-dark

Light Themes

  • tokyonight-day
  • catppuccin-latte
  • dracula-light
  • gruvbox-light
  • onelight
  • solarized-light
  • rosepine-dawn
  • everforest-light
  • github-light

Press T to open the theme selector with live preview.

Requirements

  • Go 1.21+
  • A running Temporal server

MIT License - see LICENSE for details.

Ways to Contribute

You can contribute by:

  • reporting bugs
  • Proposing features or design improvements
  • Improving documentation
  • Fixing issues labeled good first issue

To report a bug, make a feature request, and more, visit our issues page

Acknowledgments

  • Temporal - The workflow engine this client connects to
  • tview - Terminal UI library
  • jig - UI component framework