Developer docs

Dora manager executor

Dora ships a small Go-based manager executor for interactive maintenance, VM automation, and CI dispatch. It runs as a TUI first, with subcommands for repeatable workflows.

The executor lives in tools/dora-cli and is designed for the work that usually gets split across a terminal, a VM shell, and GitHub Actions. If you run it with no arguments, you get the interactive TUI. If you pass a subcommand, it switches to the CLI path.

The main goal is to keep release, test, and maintenance flows close to the repository. That makes it easier to automate repeatable developer tasks without introducing a separate toolchain or a second control surface.

Common commands

Interactive runner

cd tools/dora-cli && go run .

Launches the Bubble Tea TUI for build, VM, release, and maintenance flows.

VM bootstrap

dora-manager-executor vm init --config .dora-vm.yaml

Creates the VM config, prepares storage, and can download the base image when configured.

VM execution

dora-manager-executor vm ensure && dora-manager-executor vm run --command "..."

Ensures the guest is defined and running, then runs a command through the guest agent.

macOS CI dispatch

dora-manager-executor ci mac --ref main --workflow ci-mac.yml

Dispatches the GitHub Actions workflow used for the macOS CI path.

What the executor is used for

  • Built in Go 1.24 with Bubble Tea and Lip Gloss for the TUI.
  • Supports Linux-hosted VM automation through KVM/libvirt and qemu-guest-agent.
  • Finds the repository root automatically so the runner works from nested folders.
  • Falls back to the interactive TUI when no subcommand is provided.

VM workflow

The VM flow is driven by dora-manager-executor vm init, dora-manager-executor vm ensure, dora-manager-executor vm run, and the cleanup commands that stop or remove the managed guest. The config lives in .dora-vm.yaml at the repository root.

That keeps the guest shell, image path, storage directory, and guest-agent command in one place so the same executor can bootstrap, run, inspect logs, and clean up the VM without manual setup in every session.

CI dispatch

dora-manager-executor ci mac wraps GitHub CLI workflow dispatch for the macOS pipeline. It accepts a ref, workflow name, and optional repo override, then streams the gh workflow run command for you.

This is useful when you want the runner to stay close to the repository rather than copy workflow names into a separate script or remember the exact GitHub CLI flags every time.

Setup notes

The module targets Go 1.24 and uses Bubble Tea for the terminal UI. The VM commands are Linux-only on the host because they rely on KVM/libvirt and qemu-guest-agent.

If you want the same commands in your shell, run the module from tools/dora-cli with go run . or build it with go build -o ../../dora-manager-executor ..