Skip to content
CAI
Software that uses CAICheck a score

Parallels/vagrant-parallels

47.4

Weak · 20 September 2026

4.2k

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Vagrant provider plugin that enables the management of Parallels Desktop virtual machines on macOS hosts. It handles the full VM lifecycle, including booting, halting, and snapshotting, while supporting guest capabilities for shared folders and tools installation across Linux, macOS, and Windows. The plugin also manages network configurations, such as port forwarding and host-only networks, and adapts to various Parallels Desktop versions and guest OS environments.

How it got here

2013 — Initial release and modularization

9 changes.

This period established the Vagrant Parallels Provider plugin with its core structure, lifecycle actions, and guest capabilities for macOS and Linux. The work focused on delivering a functional initial release while refactoring the provider into modular action middleware and implementing comprehensive unit and acceptance testing.

2014–2020 — Parallels Desktop 11/12 support and network enhancements

8 changes.

The project expanded its Parallels provider to support versions 11 and 12, introducing dynamic driver selection and IPv6 host-only network capabilities. Significant work focused on enhancing network management through new port forwarding models and stabilized Unix mount utilities, alongside adding Windows guest tools installation. The period also included comprehensive test coverage for these new features and compatibility fixes for newer Vagrant versions.

Features

Add Windows guest tools installation capability

The Parallels provider now supports installing Parallels Tools on Windows guests via a new \install\_parallels\_tools\ guest capability. This feature handles both modern ISO-based installations and legacy executable-based setups, automatically detecting the host architecture to locate the correct tools file, uploading it to the guest, and executing a silent installation script with appropriate cleanup.

_lib/vagrant-parallels/guest\cap/windows · high confidence

Add support for Parallels Desktop 11 and 12

The driver layer now supports Parallels Desktop versions 11 and 12, replacing the previous support for versions 8, 9, and 10. The \Meta\ driver dynamically selects the appropriate driver class (\PD\_11\ or \PD\_12\) based on the installed Parallels Desktop version. \PD\_12\ extends \PD\_11\ to add support for IPv6 host-only networks, while \PD\_11\ provides the base implementation for connecting to shared networks. This change also introduces edition checks, requiring Parallels Desktop 11+ to be Pro, Business, or Enterprise editions to use the CLI functionality.

lib/vagrant-parallels/driver · high confidence

Added guest capabilities for installing Parallels Tools and mounting shared folders on macOS

macOS guests now support automatic installation of Parallels Tools and mounting of shared folders. The new \install\_parallels\_tools\ capability detects the guest architecture (via \uname -p\) to select the correct ISO, uploads it, and runs the macOS installer. The \mount\_parallels\_shared\_folder\ capability creates a symlink in the guest at the specified path pointing to the shared folder volume, handling cleanup of existing directories or symlinks, while the corresponding unmount capability removes the symlink.

_lib/vagrant-parallels/guest\cap/darwin · high confidence

Initial release of Vagrant Parallels Provider v2.4.6

This entry marks the initial commit and release of the Vagrant Parallels Provider plugin (version 2.4.6), establishing the project's core structure and documentation. The release includes the full changelog detailing improvements such as linked clone support, macOS VM compatibility, and shared folder fixes, alongside essential project files like the MIT license, contribution guidelines, and build configuration. Users can now install and use this plugin to manage Parallels Desktop virtual machines on macOS hosts via Vagrant.

(repo-wide) · high confidence

Initial release of Vagrant Parallels plugin

The Vagrant Parallels plugin is now available, providing the core module structure and autoloading for actions and error handling. This initial release establishes the plugin's entry point, allowing users to utilize Parallels as a Vagrant provider.

lib · high confidence

Initial release of the Vagrant Parallels provider plugin

This change introduces the \vagrant-parallels\ plugin (version 2.4.7), enabling Vagrant to manage and control Parallels Desktop virtual machines on macOS. The provider implements core lifecycle actions including boot, halt, destroy, package, provision, reload, and resume, along with support for port forwarding, shared folders (including specific handling for Mac VMs), and snapshot management. It registers guest capabilities for installing Parallels Tools and mounting shared folders on Linux, macOS, and Windows guests, and enforces a minimum Vagrant version requirement of 1.8.

lib/vagrant-parallels · high confidence

New Rake tasks for acceptance and unit testing

Added new Rake tasks to streamline the testing workflow. The \acceptance:run\ task executes acceptance tests using \vagrant-spec\ for a specific set of components (basic, full\_clone, network, snapshot, synced\_folder, provisioner, package) under the Parallels provider, while \acceptance:components\ lists available testable components. Additionally, \test:unit\ was added to run unit tests via RSpec, and \bundler.rake\ integrates Bundler's gem helper tasks.

tasks · high confidence

Support for configuring forwarded ports in Parallels VMs

Users can now define and manage port forwarding rules for their Parallels virtual machines. This change introduces a new \ForwardedPort\ model that allows specifying host and guest ports, IP addresses, protocols (defaulting to TCP), and an auto-correction option to handle port conflicts automatically.

vagrant-parallels · high confidence

Behavioural changes

Linux shared folders now use prl\_fsd with FUSE 3 and AppArmor support

Shared folder mounting on Linux guests has been updated to prefer the \prl\_fsd\ daemon over the legacy \prl\_fs\ mount, ensuring compatibility with Parallels Desktop 20.2.0 and later. The implementation now detects FUSE 3 environments (e.g., Ubuntu 24.04+) and adjusts mount options accordingly, specifically removing the deprecated \big\_writes\ flag for FUSE 3 guests. Additionally, it automatically configures AppArmor override rules for FUSE mounts on systems like Ubuntu 26.04+ to prevent permission blocks, and disables the native \prlfsmountd\ auto-mount script to avoid conflicts with Vagrant-managed folders.

_lib/vagrant-parallels/guest\cap/linux · high confidence

Port forwarding and mount helper utilities added

Added utility modules to support port forwarding and Unix mount operations. The new \CompileForwardedPorts\ module compiles forwarded port configurations into models, with a specific change to disable automatic port forwarding for SSH connections (using direct IP instead) to address stability issues. The \UnixMountHelpers\ module provides logic for detecting owner/group IDs, merging mount options, and emitting upstart notifications for mounted shares. A new \Common\ module was also added to detect macOS VM boxes on Apple Silicon hosts.

lib/vagrant-parallels/util · high confidence

Refactored Parallels provider into modular action middleware

The Vagrant Parallels provider has been restructured from a monolithic implementation into a chain of distinct action middleware classes (such as \boot\, \import\, \export\, \network\, and \snapshot\). This change introduces dedicated handlers for specific lifecycle events, including parallel-safe locking for box registration and port forwarding, automatic repair of shared interface disconnections, and support for linked clones and snapshots. Users benefit from improved stability in multi-machine environments, better handling of network collisions, and more granular control over VM configuration and state transitions.

lib/vagrant-parallels/action · high confidence

Synced folder mounts now use \_netdev option and support Vagrant 2.2.15+ compatibility

Synced folders in Parallels VMs now automatically include the \_netdev mount option, ensuring the system waits for network availability before mounting shared directories. Additionally, the plugin now implements explicit mount\_options and mount\_type capabilities, and fixes compatibility with Vagrant 2.2.15 and later by correctly handling the updated mount\_name interface signature.

lib/vagrant-parallels/cap · high confidence

Test coverage

Added acceptance tests for provider-specific VM behaviors; Added shared test contexts and driver examples for Parallels unit tests; Added unit tests for Parallels driver base and PD 11; Added unit tests for provider capabilities, configuration, and synced folders; Added unit tests for the Parallels network action.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 47.

Lenses

  • Code Health 96
  • Architecture 99
  • Maturity 53
  • Readiness 66
  • Security 87
  • Accessibility 25

Changes since last survey

  • 300 commits — 249 feature/other, 51 fixes

By area

  • (repo) — 88 commits
  • website/docs — 73 commits
  • lib/vagrant-parallels — 65 commits
  • (root) — 57 commits
  • test/unit — 7 commits
  • .github/dependabot.yml — 4 commits
  • locales/en.yml — 3 commits
  • test/acceptance — 2 commits
  • tasks/acceptance.rake — 1 commit

Notable commits

  • fix: Fix broken link to Vagrant downloads
  • fix: Fix running the provisioner on "vagrant up --provision"
  • fix: Fix synced folder mounting on Ubuntu 16.04
  • fix: Fix the check when the box could be un-registered
  • fix: Fix vagrant up command for macOS guests in Apple Silicon host
  • fix: Fixed meesage_attribute to be kwargs
  • fix: Fixed remaining links' version to v16 Fixed link for Parallels Tools
  • fix: Fixed some acceptance test failures for ubuntu box
  • fix: Fixed tests and cleaned up code
  • fix: Merge pull request #293 from legal90/fix-nokogiri
  • fix: Merge pull request #295 from legal90/fix-paused
  • fix: Merge pull request #296 from legal90/fix-synced-folder-id
  • fix: Merge pull request #298 from legal90/fix-nokogiri
  • fix: Merge pull request #304 from legal90/fix-box-register
  • fix: Merge pull request #308 from legal90/fix-unit
  • fix: Merge pull request #313 from legal90/fix-private-method
  • fix: Merge pull request #314 from legal90/fix-tests
  • fix: Merge pull request #318 from legal90/fix-docs
  • fix: Merge pull request #340 from legal90/fix-network-collision-msg
  • fix: Merge pull request #366 from ktursunov/fix-vagrant-spec-dependency
  • …and 280 more

Architecture

  • 0 containers · 1 bounded contexts · 0 dependency edges (baseline)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

Parallels/vagrant-parallels was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 770b5d77fe5168816242cef50fec1fcf4c95a992 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.