Skip to content

Interactive UI

flow provides both a powerful terminal user interface (TUI) and flexible command-line options to fit your workflow. This guide covers using the interactive browser, customizing the experience, and working with different output formats.

Looking for a native desktop experience?

Mochi is a desktop app built on Flow with a full GUI for browsing, running, and managing your workflows. Join the waitlist →

Using the TUI Browser

The flow browse command launches an interactive browser for discovering and running executables.

Basic Navigation

shell
flow browse  # Launch the interactive browser

Keyboard shortcuts:

  • / - Move up/down through the list
  • / - Navigate between panels (workspaces, executables)
  • Enter - Select the highlighted workspace or executable
  • Space - Toggle the namespace list for the selected workspace
  • Tab - Toggle the executable detail viewer
  • R - Run the selected executable (when applicable)
  • H - Show help menu with all shortcuts
  • Q - Quit the browser

Filter executables by various criteria:

shell
# Filter by workspace
flow browse --workspace api-service

# Filter by namespace
flow browse --namespace deployment

# Filter by verb
flow browse --verb deploy

# Filter by tags
flow browse --tag production --tag critical

# Search by name or description
flow browse --filter "database backup"

# Show executables from all namespaces (not just current)
flow browse --all

Combine filters for precise results:

shell
flow browse --workspace api --verb deploy --tag production

Running Executables

From the browser:

  • Select an executable and press R to run it
  • Arguments and prompts will be handled interactively

Direct execution:

shell
# View specific executable details
flow browse deploy api:production

# Run without browsing
flow deploy api:production

Output Formats

Control how flow displays information with output format options.

TUI vs Non-Interactive

shell
# Interactive TUI (default)
flow browse
flow browse --output tui
flow workspace list
flow workspace list --output tui
flow secret list
flow secret list --output tui

# Simple list output
flow browse --output json
flow workspace list --output json
flow secret list --output yaml

Disabling the TUI

For scripts, CI/CD, or personal preference:

shell
# Permanently disable TUI
flow config set tui false

# Temporarily disable with environment variable
DISABLE_FLOW_INTERACTIVE=true flow browse

Customization

Themes

Choose from several built-in themes:

shell
# Available themes
flow config set theme default      # Everforest (default)
flow config set theme light        # Light theme
flow config set theme dark         # Dark theme
flow config set theme dracula      # Dracula
flow config set theme tokyo-night  # Tokyo Night

Custom Colors

Override theme colors by editing your config file:

yaml
# In your flow config file
colorOverride:
  primary: "#83C092"
  secondary: "#D699B6"
  background: "#2D353B"
  border: "#7FBBB3"
  # See config reference for all options

Complete reference: See the config file reference for all color options.

Notifications

Get notified when long-running executables complete:

shell
# Enable desktop notifications
flow config set notifications true

# Enable notification sound
flow config set notifications true --sound

# Disable notifications
flow config set notifications false

Log Display

Control how command output is displayed:

shell
# Set global log mode
flow config set log-mode logfmt    # Structured logs (default)
flow config set log-mode text      # Plain text output
flow config set log-mode json      # JSON format
flow config set log-mode hidden    # Hide output

Per-executable log modes:

yaml
executables:
  - name: debug-task
    exec:
      logMode: text  # Override global setting
      cmd: echo "Debug output"

Workspace Modes

Control how flow determines your current workspace:

shell
# Dynamic mode - auto-switch based on directory
flow config set workspace-mode dynamic

# Fixed mode - always use set workspace
flow config set workspace-mode fixed

Learn more: See the Workspaces guide for detailed workspace mode explanations.

Timeouts

Set default timeout for all executables:

shell
# Set global timeout
flow config set timeout 45m

# Examples: 30s, 5m, 2h
flow config set timeout 10m

Configuration Management

View Current Settings

shell
# View all settings
flow config get

# View specific setting
flow config get --output json | jq '.theme'

Reset to Defaults

shell
# Reset all configuration
flow config reset

# Warning: This overwrites all customizations

Configuration File Location

Your config is stored in:

  • Linux: ~/.config/flow/config.yaml
  • macOS: ~/Library/Application Support/flow/config.yaml