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