Supported Platforms
Wallfacer runs VMs on two platforms: Linux (Firecracker micro-VMs) and macOS (Tart / Apple Virtualization). Each platform has different pre-installed tools, workspace paths, and capabilities.
Linux (linux/amd64)
The default platform for most development work. Linux VMs run inside Firecracker micro-VMs, providing lightweight and fast isolation.
Default workspace: /workspace
Set in manifest:
platform:
os: linux/amd64Pre-Installed Tools
| Tool | Description |
|---|---|
| Node.js 22 | Primary runtime for JavaScript/TypeScript projects and agent-api |
| Claude Code CLI | AI coding assistant |
| Git | Version control |
GitHub CLI (gh) | Pull requests, issues, and GitHub API access |
| Docker + Docker Compose | Full Docker-in-Docker support for containerized projects |
| code-server (VSCode) | Browser-based IDE, available on demand |
| SSH server | Key-based access for platform automation |
| tmux | Terminal multiplexer |
| jq, yq | JSON and YAML processing |
| curl, wget | HTTP clients |
| build-essential | C/C++ compiler toolchain (gcc, make, etc.) |
Capabilities
- Build and run web applications in any language or framework
- Use Docker Compose for multi-container stacks (databases, caches, message queues)
- Access a browser-based VSCode editor alongside Claude Code
- Run full test suites with real databases and services
- Install additional packages via
apt(sudo access is available) - Use npm global packages without root access (pre-configured npm prefix)
Docker-in-Docker
Linux VMs include a full Docker daemon. Projects that rely on Docker Compose can spin up their entire stack -- database, cache, background workers -- exactly as they would on a developer's local machine.
macOS (darwin/arm64)
For iOS, macOS, and Swift development. macOS VMs run on Apple Silicon hardware via Tart (Apple Virtualization.framework).
Default workspace: /Users/admin/workspace
Set in manifest:
platform:
os: darwin/arm64Pre-Installed Tools
Common development tooling via Homebrew, plus:
| Tool | Description |
|---|---|
| Xcode (full installation + CLI tools) | Build iOS, macOS, and Swift projects |
| iOS Simulator | Run and test iOS apps inside the VM |
| CocoaPods | Dependency manager for Swift and Objective-C |
| SimulatorCapture | Stream and control the iOS Simulator from a web browser |
| Python 3.11 | Runtime for tooling and general scripting |
Capabilities
- Build and run iOS apps using Xcode and the iOS Simulator
- Test on specific device types (iPhone, iPad)
- View the simulator screen in real time via WebSocket streaming
- Send touch input, swipes, and gestures through the browser
- Take screenshots and record video
- Install dependencies via CocoaPods or Swift Package Manager
- Run Expo and React Native projects with hot reload
iOS Simulator
The iOS Simulator is auto-configured when you include a simulators section in the manifest. wallfacer-agent boots the simulator, starts SimulatorCapture for browser-based streaming, and registers an MCP server so Claude Code can interact with the simulator directly (screenshots, taps, swipes, text input).
The simulator and its build/run commands execute asynchronously after the VM is declared ready, so they do not block session start.
Docker is not available on macOS VMs.
Tools the Agent Is Offered
An agent is offered only the controls its own computer can run, so it does not reach for something that was never going to work on that platform.
- Browser control (open a page, read it, click, fill, screenshot it, read its DOM) comes with Linux, where headless Chromium is part of the base image. It is not offered on macOS.
- iOS simulator control (screenshot, tap, swipe, type, press a button, open a URL, list or terminate apps) is offered only when the environment's manifest declares a
simulatorssection, which needs the macOS platform. An environment without one, on either platform, is not offered the simulator controls.
Everything else, the shell, the files, search, and the platform's own tools, is offered on both platforms. Adding a simulators section to a macOS environment is what turns the simulator controls on for the sessions that boot from it; there is no separate setting.
Choosing a Platform
| Factor | Linux | macOS |
|---|---|---|
| Xcode / iOS Simulator | Not available | Full support |
| Docker | Full support | Not available |
| Snapshot restore speed | Faster | Slower |
| Boot overhead | Lower | Higher |
| Package manager | apt | Homebrew |
| Use cases | Web apps, APIs, CLIs, most projects | iOS/macOS apps, Swift, Xcode projects |
Use Linux unless you need Xcode or the iOS Simulator. Linux VMs boot faster, restore from snapshots more quickly, and have lower resource overhead. macOS VMs exist specifically for Apple platform development.
Set the platform in your environment configuration (via the app or API) or directly in the manifest's platform.os field.
Platform Comparison
| Property | Linux (Firecracker) | macOS (Tart) |
|---|---|---|
| Base system | Debian (node:slim) | macOS Tahoe + Xcode |
| Virtualization | Firecracker micro-VM | Apple Virtualization.framework |
| Workspace path | /workspace | /Users/admin/workspace |
| User | appuser | admin |
| Package manager | apt | Homebrew |
| Log directory | /var/log/ | ~/Library/Logs/ |
| Docker support | Full Docker-in-Docker | Not available |
| VSCode web IDE | Available (code-server) | Not available |
| iOS Simulator | Not available | Full support with streaming |
| Xcode | Not available | Full installation |
| Snapshot restore | Faster | Slower |
| sudo behavior | Setup commands auto-wrapped with sudo -E | No sudo wrapping (admin user has permissions) |
Pre-Installed Tool Versions
| Tool | Linux | macOS |
|---|---|---|
| Node.js | 22 | 22 (via Homebrew) |
| Claude Code CLI | Latest (installed via npm) | Latest (installed via npm) |
| Git | System package | Xcode CLI tools |
| GitHub CLI | System package | Homebrew |
| Docker | Full daemon + Compose | Not available |
| tmux | System package | Homebrew |
| jq | System package | Homebrew |
| yq | System package | Homebrew |
| curl | System package | System + Homebrew |
| Python | System (3.x) | 3.11 (Homebrew) |
| Xcode | Not available | Full installation with CLI tools |
| CocoaPods | Not available | Homebrew |
| SimulatorCapture | Not available | Pre-installed at /opt/wallfacer/SimulatorCapture |
Base images are updated periodically. Tool versions reflect the latest base image build. wallfacer-agent and agent-api are updated independently via rollouts.