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.yamlCreates 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.ymlDispatches 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 ..