Skip to content

Commands

Container lifecycle

CommandDescription
md startCreate and start a container for the current branch; SSH in automatically
md start -displayStart with X11/VNC desktop environment
md start -tailscaleStart with Tailscale networking
md start -usbStart with USB device passthrough (for ADB)
md run <cmd>Start a temporary container, run a command, then clean up
md listList all md containers
md stopStop the container (preserves filesystem)
md purgeStop and permanently remove the container

Access

CommandDescription
ssh md-<repo>-<branch>SSH into the container directly
md vncOpen VNC connection to the container desktop

Syncing

CommandDescription
md diffShow changes vs. base branch (git diff base). Passes through extra args, e.g. md diff --stat
md pullPull changes from container back to local branch
md pushPush local changes to the container

Build

CommandDescription
md build-imageBuild the base Docker image locally as md-local
md start -image md-localStart a container using the locally built image

Cache flags

FlagDescription
-no-cache <name>Exclude a specific default cache (repeatable)
-no-cachesDisable all default caches
-cache <name>Enable a specific cache (use with -no-caches)
-cache host:containerAdd a custom cache directory

Remote GUI (VNC)

Enable at startup, then open:

bash
md start -display
md vnc

The DISPLAY environment variable is automatically set in SSH sessions, so X11 apps launched from SSH appear on the VNC desktop.

Recommended VNC clients:

  • Windows: RealVNC Viewer, TightVNC, UltraVNC
  • macOS: Built-in VNC or RealVNC Viewer
  • Linux: tigervnc-viewer, vinagre, or vncviewer