The manager and CLI
Since ModAVD 0.36.0 the package includes two management programs. Their source is in ModAVDManager:
| Program | Location | Who uses it |
|---|---|---|
The manager ModAVD.exe | Package root | People: instance cards, start and stop, create, settings, screen view, logs |
The CLI modavd.exe | tools\ | Scripts, AUTO-MAS and AI assistants; modavd mcp is an MCP server |
Instance files and mas-avd.json are written the same way as in AUTO-MAS, so instances created by either one can be started by the other.
The manager
Double-click ModAVD.exe in the package root. It starts a local server that listens only on 127.0.0.1, then opens a window in Edge app mode (Edge comes with Windows 10 / 11); if Edge is not found, it uses the default browser. The page is embedded in the program and does not use the network.
- Features: instance cards (with a screen thumbnail when the instance is online), start and stop (with progress), create, settings, delete, PC check, activity panel, screen view (a click is a tap; Back / Home / Recents), logs, install APK, open folder; light / dark / follow system. Since manager 0.4.0 there is also the per-app proxy.
- The manager always starts instances with a window; use the CLI or MCP for headless starts. Headless instances can also be shut down here.
- One server runs per root folder; double-clicking again only reopens the window. The log is at
<root>\logs\modavd-ui.log. - After you close the window, it waits for the running tasks to finish before it exits.
The CLI
modavd [--root <dir>] [--json] [--quiet] [--verbose] <command> [args]| Command | Description |
|---|---|
list | All instances and their status |
info <i> / status <i> | Detailed information / status of one instance |
create [--index N] [--title T] [--memory 6G] [--cpu N] [--data-gb N] [--fps 30|60] [--resolution 1080|720] [--no-bridge] | Create an instance. It includes the arm64 execution bridge by default, installed on the first boot |
set <i> [--title T] [--memory M] [--cpu N] [--fps F] [--resolution 1080|720] [--data-gb N] | Change settings; they take effect on the next start. --data-gb can only grow the disk; game data is untouched |
delete <i> --yes | Delete a shut-down instance together with its game data |
start <i> [--window | --headless] [--timeout 300] [--no-bridge] | Start headless by default; --window starts with a window and --headless explicitly requests headless mode. Wait until boot and post-boot setup are complete |
stop <i> [--force], stop --all | Shut down: first ask Android for a clean shutdown; if that fails, sync + kill. --force is sync + force-kill |
bridge <i> install|uninstall|verify | Install, uninstall or check the arm64 execution bridge |
proxy <i> [on|off|test] [--server URL|auto] [--add pkg] [--remove pkg] [--apps pkg] | Since manager 0.4.0: the per-app proxy; the listed apps use the proxy, the others go direct |
check [--memory M] | PC check before starting |
window <i> show|hide | Show or hide the window of an instance started with one; headless instances have no window |
install <i> <apk>, shell <i> <command>, adb <i> -- <args> | Install an APK, guest command, adb passthrough |
servers, version, mcp, help [command] |
- Write
<i>as3ormas_3(0–9, except 5). Write memory as6144,6144Mor6G; there are only four levels: 3 / 4 / 5 / 6 GB. Cores are 2 / 4 / 6, frame rate 30 / 60. - Root folder:
--root; if it is not given, the environment variableMODAVD_ROOT; otherwise the folder containingmodavd.exeor its parent. - Windowed / headless mode cannot change while an instance is running; shut it down, then start it in the desired mode.
--windowand--headlessare mutually exclusive. Since 0.3.0 there is norestartcommand; usestopfollowed bystart. - adb uses only the root folder's private server (
adbServerPortinmas-avd.json) and never touches the default 5037. - Shutdown syncs first and then stops, so it does not leave 0-byte files behind.
For machine-readable output (--json), exit codes and the full option reference, see the ModAVDManager README.
Choose the display preset in the manager’s create or instance settings form, with CLI --resolution 1080|720, or with MCP resolution in create_instance and update_instance. New instances default to 1080p (1920×1080 / DPI 280). 720p (1280×720 / DPI 240) uses fewer resources. Changing the preset updates width, height and DPI together, preserves orientation, and takes effect at the next boot. Existing landscape or portrait 1920×1080 configurations stay at 1080p; other configurations, including missing dimensions, stay at 720p. DPI is not a separate option. Update your automation tool’s resolution as well.
AUTO-MAS#1837 adds both presets to creation, instance settings and the Python launch path used when no packaged CLI is present. The selected preset survives restarts. Update AUTO-MAS and the packaged CLI before using 1080p; a CLI without preset support reports that an update is needed before it can change the configuration. Older AUTO-MAS versions still force 720p in the Python launch path.
MCP
modavd mcp --root D:\ModAVDTools: list_instances, get_instance, check_host, create_instance, update_instance, delete_instance, start_instance (with progress), stop_instance, set_window_visible, shell, install_apk. Since manager 0.4.0 also get_app_proxy and set_app_proxy (the per-app proxy).
To register it in Claude Code (in PowerShell, -- must be quoted, or it gets swallowed):
claude mcp add --transport stdio --scope user modavd '--' D:\ModAVD\tools\modavd.exe mcp --root D:\ModAVDOr in a project's .mcp.json:
{"mcpServers": {"modavd": {"command": "D:\\ModAVD\\tools\\modavd.exe", "args": ["mcp", "--root", "D:\\ModAVD"]}}}Downloading separately
The manager has its own version number (from v0.1.0) and is released separately on ModAVDManager Releases.
- Normally just use the copy that comes in the ModAVD package; it is replaced together with the package when you upgrade.
- A separately downloaded package can go in any folder; point it at the ModAVD root folder with
--rootorMODAVD_ROOT. Do not extract it into the ModAVD root folder and overwrite the files from the package. - After downloading, check the hash against
SHA256SUMS.txtin the release.