Viable now supports shared folders, iCloud and more in beta 5

At last I’ve found time to work on my lightweight macOS virtualiser for Apple silicon Macs, Viable, and now have a new beta-release with full support for shared folders.

The first step in this was to take Viable out of the sandbox. This means that the app now has full access to share any folder you wish. Privacy protections can complicate that, and you may wish to give the app full disk access; if you don’t, you will be prompted to give it access to some locations, of course.

With that done, Viable now gives shared access to four folders on the host:

  • Host Documents: ~/Documents for the current user,
  • Host Downloads: ~/Downloads,
  • Host Home: ~/
  • VM Bundle: this is the top level within the folder of the active VM bundle.

The fifth you can select for yourself, which could be anywhere to which permissions give you access, including your iCloud Drive (see below).

I accept that some wanting to virtualise macOS might want a fully sandboxed environment without shared folders, to ensure that whatever is in the VM can’t go beyond to the host Mac. If you’d like a locked-down version of Viable that does that, please let me know and I will maintain special builds for that purpose.

viable1051

For most users, these shared folders should provide as much access as you need. Note that folder sharing is limited to hosts and guests with support for the virtiofs file system, which unfortunately excludes Monterey even as a guest OS. While you can designate the main Applications folder as shared, running apps within that in the VM doesn’t work around the limitation on third-party App Store apps or other features requiring an Apple ID.

However, folder sharing does give you access to iCloud without signing in, provided the host is already signed into iCloud Drive. To use that, make your iCloud Drive your custom shared folder before starting your VM. There is a snag, though, as apps in the VM aren’t aware that shared folder is in iCloud. If they automatically save versions, as a most apps do now, they will try to save versions to iCloud as if it was a folder on a normal volume, which breaks. Those apps thus can’t save directly to a shared iCloud Drive, and you’ll have to work on a local copy of the document, and copy that back to iCloud Drive when ready.

For writing files, shared folders are significantly faster than the VM’s own storage. One neat way to use this is to create a working folder inside the VM bundle to store active documents. This keeps them accessible from both the VM and the host, and they’ll be copied or moved to anywhere you copy/move the VM bundle.

xcodevm

In case you missed it, a couple of days ago I explained how you can install and use Xcode in a VM run by Viable.

In addition to shared folder support, this version adds full support for trackpads in Ventura. Apple provides two Virtio drivers for this, only one of which is available in Monterey VMs. Oddly, I had expected that would enable the Trackpad item in System Settings, but it doesn’t yet.

The one area that I’ve been less successful in is supporting the clipboard between guest and host. Although I put code in place for that, it doesn’t work at present, and awaits further documentation or implementation from Apple.

The other area I still have to attend to is handling errors more gracefully. Some of the fatal errors that can occur, for instance when trying to open a damaged VM bundle, still result in app termination. I hope to be refactoring the code to handle those better over Christmas.

viable12n13

Finally, as evidence that this new beta works well, here are two macOS VMs running concurrently, each with 3 vCPUs and 8 GB vRAM on a Mac Studio Max. Apple imposes a limit of two concurrent copies of macOS running at any time in virtualisation, otherwise I’d be happy to show you more. Here, Monterey 12.4 is at the upper left, and Ventura 13.0.1 at the lower right, for comparison.

Note: Viable 1.0.6 (beta 6) corrects one small bug in beta 5: it sets the default extension for saved VM bundles to .bundle. Without that extension, beta 5 behaved unpredictably. I’m very grateful to Wolfgang for drawing attention to this.

Viable beta 6 (version 1.0.6) is now available from here: viable1b6
from Downloads above, and from its Product Page. Because it’s still a beta-release, it doesn’t support auto-updating yet.

I hope you find this more useful.