Linux VMs, AI agents and Apple silicon, explained.
Step-by-step guides, measured benchmarks and plain-English explainers for running Linux, macOS and AI agents in virtual machines on your Mac.
Start here
What's new in 1.2, and the complete picture if you only read one post.
What's New in Velo Workspaces 1.2: Linux VMs in a Minute
Official cloud images that are ready in about a minute, installers that run themselves, an Image Library, a built-in SSH terminal, and more distributions. What changed, what's free, and how to try it.
Run AI Coding Agents in a Linux VM on Mac with Local LLMs
The complete guide: an isolated Ubuntu VM for the agent, Ollama or MLX on the Mac's GPU for the model, and AI Bridge between them. Model and VM sizing, setup commands, and four agents configured.
The Local Development Stack on Apple Silicon: A 2026 Map
A reading path through the whole blog: how VMs work on Apple silicon, choosing and setting up a Linux distro, running AI agents safely, disposable workflows, measured costs, and comparisons.
Step-by-step guides
Every screen from the + button to a signed-in terminal, with screenshots, for each way of creating a workspace.
An Ubuntu VM from a Cloud Image in 30 Seconds
Every screen from the + button to a signed-in terminal. Type the disk size you want, and the disk, partition and filesystem are grown for you: no qemu-img resize, no growpart.
Install Ubuntu Desktop Automatically
Pick the Desktop ISO, enter your account once, and come back to an installed Ubuntu desktop with SSH ready. The installer asks nothing.
Fedora Server with an Automatic Kickstart
Velo Workspaces writes the kickstart and Anaconda does the rest. From the netinst ISO to an SSH session, every screen shown.
Install Kali Linux, Then Turn On SSH
Kali's own installer, the one disk choice that matters, then SSH with your Mac's key and the built-in terminal.
Install NixOS with the Graphical Installer
NixOS 26.05's GNOME installer from download to desktop in about ten minutes, plus the lines of configuration.nix that turn on SSH.
One SSH Key for the Terminal, Terminal.app and VS Code
Import your Mac's key into Velo Workspaces or export the app's key to ~/.ssh, then connect VS Code Remote-SSH with the config the Access tab gives you.
Apple Silicon virtualization fundamentals
The mechanics behind every other post: what a VM is, and how it works on this hardware.
Apple Silicon Virtual Machines, Explained Simply
What a virtual machine is on an M-series Mac, why it isn't emulation, what Apple's Virtualization framework gives Linux and macOS guests, and where the overhead comes from.
How Apple's Virtualization Framework Works, Device by Device
What a shipping app's configuration declares, device by device: boot loaders, three kinds of disk, NAT networking, graphics, shared folders, vsock, and the identity object that silently breaks saved state.
Linux VM Networking on a Mac: NAT, SSH and Port Forwards
Mac to VM, VM to internet, and another computer to VM are three different paths. Only two work without setup; the third needs a forward or an ssh -J jump through the Mac.
Virtualization.framework vs. QEMU on Apple Silicon Macs
Both ride the same Hypervisor framework for arm64 guests. The real differences: cross-architecture emulation, device breadth, supported guests, and an entitlement most comparisons skip.
Why Fedora's ARM ISO Wouldn't Boot, and the Fix
A black screen, two misleading errors, and the CD-only layout of Fedora's, Rocky's and NixOS's ARM ISOs. One partition entry makes them boot as disks; here's a script.
VM vs. Container vs. Sandbox on macOS: What's Different
Three words used interchangeably for three different mechanisms. Where each boundary lives, what enforces it, what an escape can reach, and which to use for code you don't fully trust.
ARM64 vs. x86-64 on Apple Silicon: A Developer's Guide
Two different Rosettas, Homebrew's two install prefixes, multi-arch container images, and CI runners that may not match what you ship. The architecture questions in one place.
Why ARM64 Linux VMs Feel Native on Apple Silicon
The accessible version: why the old "VMs are a bit laggy" instinct came from x86 history, what ARM did differently, what that means day to day, and where the native feeling ends.
Why Your Mac's Disk Numbers Don't Add Up
APFS clones and sparse files make files take less space than Finder says. How they work, how to see the real numbers, and when they stop working.
Guides by operating system
Getting each guest OS running on Apple silicon, what's different about it, and what trips people up.
Best Linux Distro for an Apple Silicon Mac VM in 2026
Which Linux distribution fits your work on an M-series Mac, what each one is best at, and which ones Velo Workspaces can set up for you in about a minute.
Ubuntu on Apple Silicon: Run an Ubuntu VM on Your Mac
Ubuntu runs natively on arm64 on an M-series Mac. The one-minute cloud image, hands-free Server and Desktop installs, the Netplan gotcha on cloned VMs, and what Rosetta can and can't do.
Ubuntu Cloud Images on a Mac, by Hand
Why a cloud image boots to a 3.5 GB disk with no login, how to fix both with a cloud-init seed built on macOS, and the GPT detail most guides skip.
Debian on Apple Silicon: Run a Debian 13 VM on a Mac
Native arm64 like Ubuntu, but a different installer and different networking defaults. The one-minute Debian cloud image, installing by hand, and why Ubuntu's clone gotcha usually doesn't apply.
Fedora on Apple Silicon: Run a Fedora 44 VM on a Mac
Three ways to get Fedora 44 running on an M-series Mac, including a kickstart install that asks nothing, and the defaults that differ from Ubuntu and Debian: SELinux enforcing, NetworkManager, and a different Rosetta setup.
Arch Linux on Apple Silicon: What Works in a Mac VM
The odd one out in this series: no official arm64 build, no installer ISO from Arch Linux ARM, and nothing configured by default, networking included. What works, and when Arch is worth the effort.
Kali Linux on Apple Silicon: Set Up an arm64 Kali VM
Kali ships an official arm64 installer, and Velo Workspaces downloads it for you. How the install goes, what NAT networking means for a pentest lab, and why a fresh workspace per engagement makes sense.
NixOS on Apple Silicon: Install NixOS in a VM on a Mac
NixOS's aarch64 ISOs, in the catalog and bootable on Apple silicon. Installing by hand, getting SSH keys in declaratively, and how configuration.nix and base images answer reproducibility differently.
Rocky Linux on Apple Silicon: RHEL-Compatible VMs on a Mac
If production runs RHEL, test against Rocky rather than Fedora. Rocky Linux 10 and 9 from the cloud image in a minute or a kickstart install that asks nothing, and what carries over from Fedora.
Ubuntu Server or Desktop for a Linux VM on a Mac?
A headless server plus SSH covers more work than most people expect, including full VS Code editing. When you need a desktop inside the VM, and why it doesn't change the graphics you get.
macOS VMs on Apple Silicon: How macOS Guests Differ
The other guest type Velo Workspaces runs. Real GPU acceleration, native trackpad input, shared folders with no mount command, a restore image that's kept and reused, and the gotcha that can cost you a workspace.
Compatibility & Rosetta
When arm64 isn't enough: running x86 software, and knowing which fix applies.
Rosetta 2 in Linux VMs on Apple Silicon: How It Works
What a workspace's Rosetta switch attaches, what you still set up inside the guest, and why getting one of three layers wrong looks like nothing happening rather than an error.
Can You Run x86 Linux on an Apple Silicon Mac?
The short answer is no, not as a hardware-accelerated VM. Why the framework draws that line, what full emulation costs, and the faster fixes for running one x86 program or one x86 container.
Run x86 (amd64) Docker Images on an Apple Silicon Mac
When you need an amd64-only image on an arm64 Mac: what --platform linux/amd64 triggers, why it's slow, how Rosetta in a Linux VM can take over, and when to build multi-arch instead.
Linux Software Won't Run on ARM64? How to Find the Fix
"It doesn't work on arm64" is four different problems. How to tell which one you have from the error, and the right fix for each, in a short triage table.
Setting up AI agents & local models
AI Bridge, local model servers, and building or testing agents against them.
How to Run Local LLMs on a Mac: Ollama, MLX, LM Studio
The model on its own: which tool to install, which format to pull, where models come from, how much memory you need, and how to talk to it, before any VM or agent is involved.
How Much RAM Do You Need for Local LLMs on a Mac?
The arithmetic behind the model-size tables: weights from parameters and quantization, a KV cache that grows with every turn, and the share macOS keeps, so you can size any model.
LLM Quantization Explained: Q4_K_M vs. Q5 vs. Q8 on a Mac
What quantization does to a model's weights, why "4-bit" isn't one thing once you read real GGUF names, and how to pick a level on purpose instead of copying a guide.
MLX + OpenCode in a Linux VM on Mac: Setup Guide
A practical walkthrough: MLX serving a model on the Mac's GPU, an Ubuntu workspace from the cloud image for the agent, and OpenCode connected over AI Bridge. Fully local.
Local AI Coding Assistant in VS Code: Continue + Ollama
Inline autocomplete and chat edits from a local model, with the editing and execution happening in an isolated Linux VM over VS Code Remote-SSH and the model on your Mac's GPU.
Claude Code with a Local Model (Ollama) in a Mac VM
Claude Code speaks the Anthropic Messages API, not OpenAI's, so it needs a different variable and a host provider that speaks the right protocol. The working setup with Ollama and AI Bridge.
AI Bridge: Run AI Agents in a Linux VM at GPU Speed on Mac
Why "safe" and "fast" pull apart for AI agents on Apple silicon, the vsock architecture that splits them, and measured results: a 1% throughput cost, and faster agent loops in the VM.
Build and Test AI Agents Locally on a Mac, Safely
Agent development means running code you don't trust yet against a model you want fast and local. The AI Sandbox profile, AI Bridge's four backends, a switching gotcha, and fast resets.
What Leaves Your Mac with AI Bridge (and What Doesn't)
"Stays on your Mac", checked at the code level: why the bridge can only reach your own loopback, why the guest's normal network can't reach the model, and what the app itself connects to.
Local LLM vs. Cloud LLM for Coding Agents: How to Choose
Where frontier cloud models still win, where local models win on cost, privacy and reliability, why isolating the agent is a separate decision, and a practical split between the two.
Workflows & infrastructure
Getting the most from disposable workspaces and base images, day to day.
What Is a Disposable Development Environment?
Create, use, discard, recreate. The definition, and the three things it's most often confused with: a snapshot, a container, and a cloud dev environment.
Disposable VM vs. Snapshot: What's the Difference?
What a Velo Workspaces restore point copies on disk, what a disposable workspace does instead, when to reach for each, and why you'll often use both.
Base Image vs. Snapshot vs. Clone: VM Terms Explained
Four terms in one place. Clone is the mechanism under two of them; the real choice is between a base image, a snapshot and a disposable workspace, which answer three different questions.
One VM Per Project: A Clean Dev Environment Habit on Mac
Version managers scope the runtime, not everything else. One workspace per project, code in a shared folder, a base image to hand teammates, and throwaway workspaces for trying new tools.
One VM Per Git Branch: Isolated Development on a Mac
Switching branches leaves node_modules and build output behind. git worktree plus one workspace per branch gives each branch its own files and its own toolchain.
Disposable VMs for QA and DevOps on a Mac: A Clean Workflow
Why "reset" and "throw away" are different guarantees, how a base image plus a disposable workspace per run looks for QA and for DevOps, and where Vagrant, Multipass and Lima fit.
Clean-Room Bug Reproduction with Disposable VMs on a Mac
"Can't reproduce" is sometimes a finding and sometimes a confession about your own machine. A five-step clean-room workflow, and why throwing the environment away matters.
Test Untrusted Software Safely on a Mac with a Disposable VM
The no-agent version of the untrusted-code problem: install scripts, repo setup steps, builds and dependencies all run as you. Where to run them instead.
Match Your CI Runner Locally: Disposable VMs for DevOps
Use a disposable workspace that matches your CI runner's OS, so environment drift, like ubuntu-latest moving to 26.04, shows up on your Mac before it fails a pipeline.
Unattended Ubuntu and Fedora Installs, Without PXE
The labelled disk both installers look for, the kernel argument Ubuntu still needs, a keyboard-layout trap, and how a VM can tell the host the install is done.
Versioning VM Base Images: A Naming Convention That Works
What Save as Base Image records (and doesn't), why every reseal is a new generation, a four-part naming convention that stands in for version history, and how to prune.
Linux VM Performance Tuning on Apple Silicon: 5 Settings
Most VM tuning guides are written for servers or KVM. Five settings that matter inside a Linux guest on a Mac, what each buys you, what it costs, and which only make sense for disposable VMs.
Security
How an AI agent uses your machine, what goes wrong when it runs unsandboxed, and what stops it.
How AI Coding Agents Use Your Computer
The calm, mechanical version: an agent is an ordinary process running as you, so it gets your shell, files, Git credentials, installers, network and environment. Why isolation has to come from outside it.
What Can an AI Coding Agent Access on Your Mac?
The concrete inventory of what sits in a typical developer's home folder, and a realistic debugging session where an agent touches all of it without doing anything wrong.
Can You Trust an AI Coding Agent with Your Git Repository?
Commits and pushes aren't the interesting risk. Hook managers that undo Git's own safety, install scripts that add hooks, and secrets that end up committed are, along with the fix.
AI Coding Agent Security: 2026 Incidents and What Stops Them
Four documented incidents in depth, three more from early 2026, and which level of sandboxing would have contained each one rather than slowed it down.
Safe Local AI Agent Setup on a Mac: A Checklist
The rest of this blog explains why. This is the checklist, in the order to think about it, with each item linking to the reasoning.
Putting an SSH Terminal Inside a Sandboxed Mac App
Why /usr/bin/ssh doesn't work in the App Sandbox, and what does: SwiftNIO SSH, Ed25519 keys kept in the Keychain, pinned host keys, and an app that never listens on a port.
Benchmarks & performance deep dives
Measured numbers on what virtualization costs on Apple silicon, and why.
What Sandboxing an AI Agent in a VM Costs: MLX vs. Ollama
The same architecture benchmarked against two inference engines gave two different answers under load. Both results, a theory for why they disagree, and a methodology mistake worth learning from.
Benchmark: AI Agent in a VM on Apple Silicon, ~1% Slower
Three benchmarks on an M4 Mac mini with MLX: single-request speed, eight concurrent clients, and a real OpenCode agent loop, host versus Linux VM over AI Bridge.
ARM Virtualization Performance: Why VMs Are Fast on M-Series
The four things that decide VM performance, how ARM's EL2, two-stage translation and vGIC handle each, what paravirtualization and passthrough trade off, and why it explains our benchmarks.
How Many vCPUs Should a Linux VM Get on Apple Silicon?
What macOS does with a workspace's vCPU count: no E-core vCPUs, contention above the P-core count, no gain for single-threaded work, and sensible numbers per workload.
Linux VM Disk Speed on a Mac: virtio-blk vs. virtio-fs
The biggest disk-performance decision in a Mac VM isn't a setting; it's which device a file lives behind. The workspace's own disk versus a shared folder, and how to split your work between them.
Linux VM Network Performance on a Mac: NAT, vmnet and VPNs
What networking every workspace gets, why NAT here is fast kernel-level vmnet rather than a userspace proxy, why the address stays put, and the host-side VPN gotcha.
How Much Memory Should a Linux VM Get on a Mac?
Sizing memory for dev, build and CI workloads: what the framework's limits mean, starting points from the built-in profiles, what the balloon device does, and a way to size that isn't guessing.
How Many Linux VMs Can You Run on an Apple Silicon Mac?
Three budgets that run out at different rates: memory (usually first), P-cores under concurrent load, and disk, which copy-on-write clones make much cheaper than it looks.
Why Some Mac VMs Boot Faster: Linux VM Startup Explained
Startup cost isn't one number. What the EFI boot loader trades, why a cloud image is ready in a minute while an install takes longer, why later boots are cheaper, and when a restore beats any boot.
Comparisons
Sourced comparisons with Parallels, UTM, Docker Desktop, OrbStack, Apple's container tool, Codespaces and Ona.
Velo Workspaces vs. Parallels vs. UTM for Linux VMs on Mac
Three different tools rather than three rivals for one job: sourced pricing, what each does about a Linux guest's GPU, getting Linux running, disposable workspaces, and which fits which work.
Docker Desktop vs. OrbStack vs. a VM on Mac: Which to Use
Docker Desktop and OrbStack do the same job well; Velo Workspaces does a different one. Sourced pricing, and the real question underneath: is a shared kernel the boundary you need?
Apple Containers vs. Linux VMs on a Mac: What's Different?
Apple's container tool already runs each container in its own micro-VM, so the difference from a Linux VM workspace isn't isolation. It's what each is built for, and how they fit together.
Apple Containers vs. Docker Desktop vs. OrbStack (2026)
Three ways to get a Linux kernel for containers on a Mac: what Apple's per-container VMs get right, what the 1.0 still lacks, where Docker Desktop and OrbStack still win, and which to pick.
Velo Workspaces vs. GitHub Codespaces vs. Ona (Gitpod)
All three pitch disposable, isolated environments. Underneath it's local and flat-rate against cloud and metered, and since 2025, the cloud side has no GPU option at all.
Local vs. Cloud Development Environments: Real Trade-offs
The category question under the product comparisons: who owns the hardware decides GPU access, offline behavior, data residency and cost model. Plus what cloud does better, and a way to choose.
Windows VMs on Apple Silicon: Why Velo Workspaces Can't
Short answer: no. Why Apple's Virtualization framework is the blocker, what Velo Workspaces runs instead, and where to go if you need a Windows VM on a Mac.
Migrate a Linux VM from UTM, Fusion or Parallels on a Mac
Apple's framework attaches raw disks only. Since 1.2, QCOW2 (UTM) imports directly; VMDK (Fusion) and Parallels disks need one qemu-img command. Where each file lives, and the mistakes to avoid.