Skip to content

TerminalPackage YAML Reference

TerminalPackage bundles a prompt, plugins, emulator settings, and theme preferences into a single installable resource. Packages support single inheritance via the extends field.


Full Example

apiVersion: devopsmaestro.io/v1
kind: TerminalPackage
metadata:
  name: developer                              # Unique name (required)
  description: Developer-focused terminal package
  category: work                               # Category for filtering
  tags:                                        # Optional tags
    - dev
    - git
    - productivity
spec:
  extends: core                                # Inherit from another package
  plugins:                                     # Plugin names to include
    - zsh-autosuggestions
    - zsh-syntax-highlighting
    - fzf
    - zsh-z
  prompts:                                     # Prompt names to include
    - starship-powerline
  profiles:                                    # Profile names to include
    - developer-profile
  promptStyle: powerline                       # Prompt style name
  promptExtensions:                            # Prompt extension names
    - git
    - directory
    - time
    - node
  theme: catppuccin-mocha                      # Theme name
  wezterm:                                     # WezTerm-specific overrides
    fontSize: 14
    colorScheme: "Catppuccin Mocha"
    fontFamily: "MesloLGS Nerd Font Mono"

Field Reference

metadata fields

Field Type Required Description
name string Yes Unique identifier for this package
description string No Human-readable description
category string No Category for filtering (dvt package list -c)
tags list No Arbitrary tags for filtering

spec fields

Field Type Required Description
extends string No Name of another package to inherit from (single inheritance)
plugins list No Names of TerminalPlugin resources to include
prompts list No Names of TerminalPrompt resources to include
profiles list No Names of TerminalProfile resources to include
promptStyle string No Name of a prompt style to apply
promptExtensions list No Names of prompt extensions to apply
theme string No Theme name to associate with this package
wezterm object No WezTerm-specific configuration overrides

wezterm object fields

Field Type Description
fontSize int WezTerm font size in points
colorScheme string WezTerm color scheme name
fontFamily string WezTerm font family name

Inheritance with extends

A package can extend one other package, inheriting its plugins, prompts, profiles, and theme. Child fields override inherited values.

# Base package
apiVersion: devopsmaestro.io/v1
kind: TerminalPackage
metadata:
  name: core
spec:
  plugins:
    - zsh-autosuggestions
    - zsh-syntax-highlighting
  prompts:
    - starship-minimal
  theme: catppuccin-latte

---
# Derived package
apiVersion: devopsmaestro.io/v1
kind: TerminalPackage
metadata:
  name: developer
spec:
  extends: core                 # Inherits plugins and prompts from core
  plugins:
    - fzf                       # Added on top of core's plugins
    - zsh-z
  prompts:
    - starship-powerline        # Overrides core's starship-minimal
  theme: catppuccin-mocha       # Overrides core's theme

String or List Shorthand

Plugin, prompt, profile, and extension fields accept either a single string or a list:

# Single string
plugins: zsh-autosuggestions

# List
plugins:
  - zsh-autosuggestions
  - fzf

Usage Examples

Minimal package

apiVersion: devopsmaestro.io/v1
kind: TerminalPackage
metadata:
  name: minimal
  description: Minimal terminal setup
  category: minimal
spec:
  plugins:
    - zsh-autosuggestions
  prompts:
    - starship-minimal

Full developer package with WezTerm

apiVersion: devopsmaestro.io/v1
kind: TerminalPackage
metadata:
  name: full-dev
  description: Complete developer terminal with WezTerm
  category: developer
  tags:
    - dev
    - wezterm
    - git
spec:
  extends: core
  plugins:
    - zsh-autosuggestions
    - zsh-syntax-highlighting
    - fzf
    - zsh-z
    - zsh-completions
  prompts:
    - starship-powerline
  promptExtensions:
    - git
    - directory
    - node
    - rust
  theme: catppuccin-mocha
  wezterm:
    fontSize: 13
    colorScheme: "Catppuccin Mocha"
    fontFamily: "JetBrains Mono Nerd Font"

Install and use a package

# Install from the built-in library
dvt package install developer

# Or apply a custom package from YAML (via emulator/profile apply commands)
# Then list to confirm
dvt package list
dvt package get developer -o yaml

Built-in Library Packages

Name Extends Description
core (none) Base package with essential plugins and minimal prompt
developer core Developer-focused with git tools and powerline prompt
maestro developer Full DevOpsMaestro setup with workspace context prompt