You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All VM commands require the `com.apple.security.virtualization` entitlement.
76
-
`vz self-sign` applies an ad-hoc signature that works on the local machine.
77
-
Pre-built releases (when available) ship with Developer ID signatures and Apple notarization.
78
-
79
51
## Platform support
80
52
81
53
-**Linux:** container + stack commands
82
54
-**macOS (Apple Silicon):** container + stack commands, plus `vz vm ...`
83
55
84
56
## Quick start
85
57
86
-
### 1. Boot an instant sandbox
58
+
### 1. Run commands in a Linux VM
87
59
88
60
```bash
89
-
# Create a required checked-in space definition
90
-
cat > vz.json <<'JSON'
91
-
{
92
-
"name": "my-workspace"
93
-
}
94
-
JSON
61
+
cd your-project
95
62
96
-
# Create + attach a new sandbox for the current directory
97
-
vz --name my-workspace --cpus 4 --memory 4096 \
98
-
--base-image debian:bookworm \
99
-
--main-container workspace-main
63
+
# Generate a vz.json config (auto-detects Rust, Node, Python, Go)
64
+
vz init
100
65
101
-
# Inspect persisted startup selection
102
-
vz inspect my-workspace
103
-
```
66
+
# Run any command inside the Linux VM
67
+
vz run echo"hello from Linux"
104
68
105
-
`--base-image`and `--main-container` apply when creating a new sandbox (`vz` with no `-c/-r`).
106
-
Spaces mode requires `vz.json` and Linux btrfs-backed workspace storage.
107
-
`vz.json` must not embed raw secrets; use external env references under `secrets` instead:
69
+
# Compile and run a Rust project
70
+
vz run cargo build
71
+
vz run cargo test
108
72
109
-
```json
110
-
{
111
-
"secrets": {
112
-
"db_password": { "env": "DB_PASSWORD" }
113
-
}
114
-
}
115
-
```
73
+
# Open an interactive shell
74
+
vz run -i bash
116
75
117
-
### 2. Manage sandboxes
76
+
# Check VM status
77
+
vz status
118
78
119
-
```bash
120
-
# Continue or resume
121
-
vz -c
122
-
vz -r my-workspace
79
+
# Stop the VM when done
80
+
vz stop
81
+
```
82
+
83
+
The first `vz run` boots a Linux VM (~3s), pulls the base image, and runs setup commands from `vz.json`. Subsequent runs reuse the VM and skip setup (cached by hash).
# Create a pinned base image from the stable channel
@@ -175,7 +144,7 @@ vz vm save dev --stop
175
144
vz vm run --image ~/.vz/images/base.img --name dev --restore ~/.vz/state/dev.vzsave --headless &
176
145
```
177
146
178
-
### 5. Pinned-base automation policy (macOS VM flows)
147
+
### 4. Pinned-base automation policy (macOS VM flows)
179
148
180
149
-`vz vm init --base <selector>`, `vz vm provision --base-id <selector>`, and `vz vm base verify --base-id <selector>` accept immutable base IDs plus channel aliases (`stable`, `previous`).
181
150
- Base descriptors include support lifecycle metadata (`active` or `retired`); selecting a retired or unknown base fails with explicit fallback guidance.
@@ -191,7 +160,7 @@ vz vm init --allow-unpinned --ipsw ~/Downloads/restore.ipsw
191
160
sudo vz vm provision --image ~/.vz/images/base.img --allow-unpinned
0 commit comments