{"id":15813815,"url":"https://github.com/mklement0/fvm-cli","last_synced_at":"2026-01-24T04:36:07.252Z","repository":{"id":57243449,"uuid":"76801829","full_name":"mklement0/fvm-cli","owner":"mklement0","description":"macOS CLI for managing VMware Fusion VMs.","archived":false,"fork":false,"pushed_at":"2022-12-27T14:06:04.000Z","size":131,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-06T04:06:00.112Z","etag":null,"topics":["cli","macos","vms","vmware","vmware-fusion"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mklement0.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-18T19:20:43.000Z","updated_at":"2022-11-01T09:47:35.000Z","dependencies_parsed_at":"2023-01-31T03:32:15.600Z","dependency_job_id":null,"html_url":"https://github.com/mklement0/fvm-cli","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Ffvm-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Ffvm-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Ffvm-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Ffvm-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mklement0","download_url":"https://codeload.github.com/mklement0/fvm-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247182907,"owners_count":20897482,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","macos","vms","vmware","vmware-fusion"],"created_at":"2024-10-05T04:06:17.668Z","updated_at":"2026-01-24T04:36:07.189Z","avatar_url":"https://github.com/mklement0.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm version](https://img.shields.io/npm/v/fvm-cli.svg)](https://npmjs.com/package/fvm-cli) [![license](https://img.shields.io/npm/l/fvm-cli.svg)](https://github.com/mklement0/fvm-cli/blob/master/LICENSE.md)\n\n# fvm \u0026mdash; VM management CLI for VMware Fusion (macOS only)\n\n`fvm` (*F*usion *V*M *M*anager) is a convenience wrapper around the \n[`vmrun` CLI](https://www.vmware.com/support/developer/vix-api/vix112_vmrun_command.pdf)\nthat comes with [VMware Fusion](http://www.vmware.com/products/fusion.html), \nwith added functionality for managing VM window states.\n\nThe major areas of functionality are:\n\n* VMs can be targeted by display name substrings (regular expressions)  \n  instead of having to specify their VMX file path.\n\n* VMs in open windows can be activated or closed, their VMX files can be  \n  revealed in Finder or opened for editing, and Fusion can be quit as a whole.\n\n* A list of all registered VMs can be obtained with subcommand `ls`.\n\nAs such, `fvm` can make up for some of the functionality that was lost when\nAppleScript support was quietly removed from VMware Fusion v7.\n\n# Examples\n\n```shell\n# Show VMware Fusion's Library window.\nfvm         # short for: fvm library\n\n# Activate (open existing window or start) the VM whose display name\n# contains the (unambiguous) substring \"w10\":\nfvm w10     # short for: fvm activate w10\n\n# Toggle activation of the VM whose display name contains the (unambiguous) \n# substring \"w10\" (only useful when run via hotkey).\nfvm -t w10     # short for: fvm activate w10\n\n# Activate the VM whose display name contains the words \"ubuntu\" and \"14\".\nfvm 'ubuntu.*14'\n\n# Close the window of the VM whose display name is exactly \"W7 (32-bit)\".\nfvm -x close \"W7 (32-bit)\"\n\n# List all registered VMs by display name, guest OS, state, and VMX file path,\n# with open VMs listed first.\nfvm -s ls\n\n# List VMs whose display names contain the word \"ubuntu\".\nfvm ls 'ubuntu'\n\n# Quit VMware Fusion as a whole.\nfvm quit\n\n## vmrun PASS-THROUGH EXAMPLES\n## All examples below use \"w10\" as the display-name regex for identifying\n## the target VM. \n\n# Suspend a VM.\nfvm suspend w10\n\n# Check if a VM has the VMware Tools are installed.\nfvm checkToolsState w10\n\n# List a VM's snapshots.\nfvm listsnapshots w10\n\n# Gets a VM's (guest OS's) IP address.\nfvm getGuestIpAddress w10\n\n# Run a program asynchronously and interactively in the guest OS. \nfvm -gu jdoe -gp test runProgramInGuest w10 -nowait -interactive 'C:\\WINDOWS\\system32\\calc.exe'\n```\n\n# Installation\n\n**Prerequisites**\n\n* [VMware Fusion](http://www.vmware.com/products/fusion.html) v8.5 (fully tested), _likely_ down to v7 (sporadically tested).\n* Any macOS (OS X) version that can run a supported VMware Fusion version.\n\n## Installation from the npm registry\n\n\u003csup\u003eNote: Even if you don't use Node.js, its package manager, `npm`, works across platforms and is easy to install; try [`curl -L https://bit.ly/n-install | bash`](https://github.com/mklement0/n-install)\u003c/sup\u003e\n\nWith [Node.js](http://nodejs.org/) installed, install [the package](https://www.npmjs.com/package/fvm-cli) as follows:\n\n    [sudo] npm install fvm-cli -g\n\n**Note**:\n\n* Whether you need `sudo` depends on how you installed Node.js / io.js and whether you've [changed permissions later](https://docs.npmjs.com/getting-started/fixing-npm-permissions); if you get an `EACCES` error, try again with `sudo`.\n* The `-g` ensures [_global_ installation](https://docs.npmjs.com/getting-started/installing-npm-packages-globally) and is needed to put `fvm` in your system's `$PATH`.\n\n## Manual installation\n\n* Download [the CLI](https://raw.githubusercontent.com/mklement0/fvm-cli/stable/bin/fvm) as `fvm`.\n* Make it executable with `chmod +x fvm`.\n* Move it or symlink it to a folder in your `$PATH`, such as `/usr/local/bin` (OSX) or `/usr/bin` (Linux).\n\n# Usage\n\nFind concise usage information below; for complete documentation, read the [manual online](doc/fws.md) or,\nonce installed, run `man fvm` (`fvm --man` if installed manually).\n\n\u003c!-- DO NOT EDIT THE FENCED CODE BLOCK and RETAIN THIS COMMENT: The fenced code block below is updated by `make update-readme/release` with CLI usage information. --\u003e\n\n```nohighlight\n$ fvm --help\n\n\n    fvm      [-t]          [library]\n    fvm [-x] [-t]          [activate]   \u003cdisplayNameRegexOrVmxFile\u003e\n    fvm [-x]               close        \u003cdisplayNameRegexOrVmxFile\u003e\n    fvm [-x]               reveal       \u003cdisplayNameRegexOrVmxFile\u003e\n    fvm [-x]               edit         \u003cdisplayNameRegexOrVmxFile\u003e\n    fvm [-x] [-b] [-s]     ls           [\u003cdisplayNameRegexFilter\u003e]\n    fvm                    quit\n    fvm [-x] start|pause|unpause|suspend|reset \u003cdisplayNameRegexOrVmxFile\u003e\n    fvm [-x] stop                       \u003cdisplayNameRegexOrVmxFile\u003e [soft|hard]\n      CAVEAT: Append 'soft' to prevent potential VM corruption. \n    fvm [-x] [\u003cauth-opts\u003e] \u003cvmrun-cmd\u003e [...]\n    fvm --help-vmrun\n\n    -t ... toggle activation (hotkey-based invocations)\n    -x ... display name is specified literally, in full\n    -b ... bare, tab-separated output for machine parsing\n    -s ... include VM state and show open VMs first\n    --help-vmrun ... shows vmrun's command-line help\n\nStandard options: --help, --man, --version, --home\n```\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the contents of 'LICENSE.md'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n## License\n\nCopyright (c) 2016 Michael Klement, released under the [MIT license](http://opensource.org/licenses/MIT).\n\n### Acknowledgements\n\nThis project gratefully depends on the following open-source components, according to the terms of their respective licenses.\n\n[npm](https://www.npmjs.com/) dependencies below have optional suffixes denoting the type of dependency; the absence of a suffix denotes a required run-time dependency: `(D)` denotes a development-time-only dependency, `(O)` an optional dependency, and `(P)` a peer dependency.\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the dependencies from 'package.json'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n### npm dependencies\n\n* [json (D)](https://github.com/trentm/json)\n* [marked-man (D)](https://github.com/kapouer/marked-man#readme)\n* [replace (D)](https://github.com/harthur/replace)\n* [semver (D)](https://github.com/npm/node-semver#readme)\n* [tap (D)](https://github.com/isaacs/node-tap)\n* [urchin (D)](https://git.sdf.org/tlevine/urchin)\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the contents of 'CHANGELOG.md'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n## Changelog\n\n\n* **v0.1.0** (2016-12-18):\n  * Initial release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmklement0%2Ffvm-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmklement0%2Ffvm-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmklement0%2Ffvm-cli/lists"}