Application Settings
The Settings window in VirtualProg allows you to configure global application preferences, including virtual machine storage, shared folders, appearance, and system behaviors.
π¦ Storage
πΈ Screenshot:
π Storage Path
Choose where VirtualProg stores all your virtual machines:
- Choose Folder: Select a custom folder as your VM storage location.
- Drag & Drop Folder: Alternatively, drag a folder into this area to set it.
- The Selected Item field below confirms the active storage path.
All VMs, snapshots, templates, and restore images are saved here.
π VirtIO Shared Folder Mount
Define the mount name that will be used inside Linux guests when VirtIO folder sharing is enabled.
- This name (e.g.,
macOS) is required when mounting the shared folder with VirtioFS. - Example command in Linux guest:
π Spotlight Indexing
When enabled, VirtualProg will automatically index all your virtual machine names in macOS Spotlight.
This allows you to quickly search and launch virtual machines directly from Spotlight by typing their names.
When disabled, all previously indexed virtual machines will be removed from Spotlight to keep your system index clean.
βοΈ General
πΈ Screenshot:
π¨ Appearance
Choose your preferred user interface theme:
- System: Follows the system appearance (Light or Dark).
- Light: Forces a light mode appearance.
- Dark: Forces a dark mode appearance.
π Launch at Login
- Automatically launch VirtualProg when the user logs into macOS.
π§ Minimize on Control Center Close
When enabled, clicking the close button in the Control Center window title bar will minimize the window instead of quitting VirtualProg. This helps keep VirtualProg running in the background while keeping your workspace tidy.
πΌοΈ Screenshot Background
Use a VM screenshot as the background image.
π VM Switcher
The VM Switcher lets you quickly switch between running virtual machines using a keyboard shortcut β without touching the mouse.
πΈ Screenshot:
β¨οΈ Shortcut
Configure the global keyboard shortcut used to open the VM Switcher overlay. The default is ββ₯V (Control + Option + V).
- Click the shortcut field and press your desired key combination to record a new shortcut.
- The shortcut must include at least one of β Control, β₯ Option, or β Command.
- Click the βΊ button to reset to the default shortcut.
The shortcut is also visible in the Help menu under VM Switcher, so it can also be triggered from there.
πΌοΈ Using the VM Switcher
When triggered, a floating overlay appears showing all running and suspended (non-headless) VMs as thumbnail cards:
- ββ Arrow keys or the chevron buttons to navigate between VMs.
- Number keys 1β9 to jump directly to one of the first nine VMs. For VMs beyond position 9, use the arrow keys to navigate to them.
- β© Return to switch to the selected VM.
- β Escape to dismiss without switching.
Headless VMs are excluded from the switcher. Suspended VMs are included and shown with a blue indicator.
πͺ Interface
πΈ Screenshot:
- Notifications: Display system notifications for virtual machine events.
- Menu Bar Icon: Display the VirtualProg icon in the macOS menu bar.
- Favorites: Mark VMs, templates, or snapshots as favorites for quick access.
- Tag Colors: Show or hide color-coded tags for VMs, snapshots, and templates.
- Groups: Organize VMs into groups for easier management.
- Window Border: Enable or disable a tag colored border around VM windows for better visibility.
- Widget: Enable the macOS widget to display virtual machine status on your desktop or Notification Center. When disabled, the widget is cleared immediately. More Info
π» CLI
πΈ Screenshot:
π» CLI Port
The CLI port is used to communicate with VirtualProg from the command line vpvm.
- Enable CLI port: Allows remote control and automation of VirtualProg operations via vpvm commands.
- Port: Specify the port number to use for the CLI.
- Restart : Restart the CLI service after changing the port.
- Download the vpvm cli from https://makeprog.com/Products/VirtualProg/vpvm.zip**
- More Info About Command Line
- External Access: Enable remote control of VirtualProg via vpvm commands/web dashboard from other machines on the network.
- Token: A unique authentication token required for remote CLI access. You can copy the current token or generate a new one if needed.
- There is also a Web Dashboard avaialble and you can access it from browser from local or network by typing
http://macip:port/dashboard
π IP Allowlist
When External Access is enabled, you can restrict which remote hosts are permitted to connect to the CLI server.
- Allow access from specific IPs / CIDRs only: Toggle to enable the IP allowlist. When active, only addresses in the list are granted access; all other remote connections are rejected with a
403 Forbiddenresponse. - Adding entries: Type an IPv4 address (e.g.
192.168.1.10), IPv6 address, or CIDR range (e.g.192.168.1.0/24,10.0.0.0/8) in the text field and click Add or press Return. - Removing entries: Click the ποΈ trash icon next to any entry to remove it.
- Empty list behaviur: If the allowlist is enabled but contains no entries, all remote connections are blocked.
- Localhost exemption:
127.0.0.1and::1always have access regardless of the allowlist setting. - Blocked connection attempts are recorded in the application log (accessible via Help β Logs) with the offending IP address for auditing.
π‘ Use CIDR notation to allow an entire subnet in a single entry (e.g.
192.168.0.0/16covers the whole192.168.x.xrange).
π οΈ Advanced
πΈ Screenshot:
π₯ Modern ScreenCapture
VirtualProg now supports a more reliable and efficient screen recording method using macOS ScreenCaptureKit (macOS 13+). This option ensures better compatibility and performance when recording VirtualProg's interface.
β Enabling Modern ScreenCapture
To activate this feature:
- Enable the Modern ScreenCapture checkbox in the settings.
- A macOS system prompt will appear requesting permission for VirtualProg to record your screen and audio.
- Grant screen recording access to VirtualProg by navigating to:
System Settings β Privacy & Security β Screen Recording
- After giving access, return to VirtualProg, re-enable the checkbox, and click the Test button.
πΈ Screenshot:
π§ͺ Testing Screen Access
When you click the Test button:
-
macOS will display a System Private Window Picker prompt requesting permission for VirtualProg to bypass the system's standard picker and directly access your screen.
-
Allowing this is essential for Modern ScreenCapture to function.
πΈ Screenshot:
βΉοΈ Important Notes
- Only VirtualProg windows are recorded. No other apps or parts of the screen are captured.
- If the test is successful, a confirmation message will appear.
- If the test fails:
- Disable the checkbox.
- Re-enable it.
- Repeat the process.
This screen recording method is designed to integrate securely with macOS privacy standards while offering seamless capture support for VirtualProg.
π Logs
Enable logging of VM activity. Logs can be accessed from the Help menu.
π Max Log Size (MB)
Defines the maximum size of the log and dashboard log files. When this limit is reached, the log file is cleared and recreated.
β°Scheduler
Enable or disable the scheduler. By default it is enabled.
π Safe Snapshot Restore
When enabled, snapshot restores use an atomic swap β the snapshot is copied to a temporary location first, then swapped into place only after a successful copy. This prevents data loss if an error occurs mid-restore.
β οΈ Requires approximately 2Γ the VM's disk size free during restore.
When disabled, VirtualProg deletes the current VM bundle before copying the snapshot (faster, but non-recoverable on failure).
Default: Enabled
π Network
πΈ Screenshot:
![]()
The Network tab is where you manage how your virtual machines connect to the world. You can create multiple isolated or shared interfaces here.
β Creating a New Interface
To add a new network, click the Plus (+) icon at the bottom of the sidebar. This will generate a new entry where you can define your network settings.
βοΈ Configuration Options
| Setting | Description |
|---|---|
| Enable | Toggle the checkbox to turn the network interface ON or OFF. |
| Name | Give your network a recognizable name (e.g., Shared or Development). |
| Type | Defines how traffic is routed (Shared, or Host-only). |
| Interface | Select which physical adapter (Wi-Fi, Ethernet) the VM should use. |
| Subnet | The IP address range for your virtual network. Click the π icon to randomize. |
| MTU | Set the packet size. Higher values (like 2000) can improve speed on supported hardware. |
| IPv6 | Enable this to support modern 128-bit IP addressing. |
| Prefix | The IPv6 prefix address. Click the π icon to randomize. |
ποΈ Deleting an Interface
If you no longer need a specific network configuration: 1. Select the interface from the left-hand sidebar (e.g., "Shared"). 2. Click the Trash icon at the bottom. 3. Note: This action is immediate. Ensure you have saved any important IP configurations before deleting.
πΎ Saving Changes
The Save button in the top right will highlight when changes are detected. Always click Save before switching to another tab or closing the window to ensure your network updates are applied.
[!IMPORTANT] Changing network settings is not possible while the network is in use by running Virtual Machine.
π‘ Changes here affect how VirtualProg behaves and presents across all virtual machines.
π¬ Leave a Review
You can share your feedback or rate VirtualProg on the Mac App Store by clicking Leave a Review.
Your feedback helps improve future versions of VirtualProg and supports ongoing development.
If you enjoy using the app, consider leaving a positive review β it makes a big difference!







