ghostdock 0.0.20 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1808 +0,0 @@
1
- # ghostdock CLI reference
2
-
3
- <!-- Generated by `bun run sync:cli-reference` from the CLI's command tree. Do not edit. -->
4
-
5
- Every command the `ghostdock` CLI ships, with its full description and flags.
6
- For how to install, log in and choose an organization, read [cli.md](cli.md). Concepts and
7
- workflows are in the built-in skills (`ghostdock skill list`).
8
-
9
- Binaries: `ghostdock`, `gdock`.
10
- Global flag `--base-url`: API origin (overrides GHOSTDOCK_BASE_URL and the built-in default).
11
- Global flag `--json`: Print the result as one JSON document on stdout, for scripts and agents. Without it, output is for people.
12
-
13
- ## `ghostdock app`
14
-
15
- Published apps of an organization.
16
-
17
- ### `ghostdock app list`
18
-
19
- List the live published apps (sites) of an organization, with their URLs. Each app has a siteId to pass to site unpublish.
20
-
21
- ```
22
- ghostdock app list [flags]
23
- ```
24
-
25
- | Argument | Description |
26
- | --- | --- |
27
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
28
-
29
- MCP tool: `app_list`.
30
-
31
- ## `ghostdock docker`
32
-
33
- Docker over the private network: a VM's Docker engine from this machine.
34
-
35
- ### `ghostdock docker context`
36
-
37
- Point Docker at a VM's Docker engine over the private network: plain `docker` and `docker compose` then run there. Creates (or updates) the Docker context ghostdock-<org>-<vm> for tcp://<vm>.<org>.ghostdock.internal:2376 with a client certificate of this machine's device, and makes it the current context. Needs `ghostdock network connect` first, and Docker's CLI. The certificate lives 30 days; `network connect` and this command renew it with 10 days left. An expired certificate fails Docker's TLS handshake with Docker's own error: run this command again. Docker's `no such host` on a ghostdock.internal address means this machine is not connected: run `ghostdock network connect`. After an organization rename the old name stops resolving: run it again to update the host.
38
-
39
- ```
40
- ghostdock docker context <vm> [flags]
41
- ```
42
-
43
- | Argument | Description |
44
- | --- | --- |
45
- | `<vm>` | VM name, from `network ls`. Required. |
46
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
47
- | `--use` | Make it the current Docker context (`docker context use`). `--no-use` only creates or updates it. Default: `true`. |
48
-
49
- ## `ghostdock env`
50
-
51
- Manage organization environment variables and secrets.
52
-
53
- ### `ghostdock env delete`
54
-
55
- Delete a variable or secret.
56
-
57
- ```
58
- ghostdock env delete <name> [flags]
59
- ```
60
-
61
- | Argument | Description |
62
- | --- | --- |
63
- | `<name>` | Environment variable name. Required. |
64
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
65
-
66
- MCP tool: `env_delete`.
67
-
68
- ### `ghostdock env get`
69
-
70
- Print one variable value in full (secrets cannot be read).
71
-
72
- ```
73
- ghostdock env get <name> [flags]
74
- ```
75
-
76
- | Argument | Description |
77
- | --- | --- |
78
- | `<name>` | Environment variable name. Required. |
79
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
80
-
81
- MCP tool: `env_get`.
82
-
83
- ### `ghostdock env list`
84
-
85
- List variables and secrets.
86
-
87
- ```
88
- ghostdock env list [flags]
89
- ```
90
-
91
- | Argument | Description |
92
- | --- | --- |
93
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
94
-
95
- MCP tool: `env_list`.
96
-
97
- ### `ghostdock env set`
98
-
99
- Create or replace a variable or secret.
100
-
101
- ```
102
- ghostdock env set <name> [flags]
103
- ```
104
-
105
- | Argument | Description |
106
- | --- | --- |
107
- | `<name>` | Environment variable name. Required. |
108
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
109
- | `--value <value>` | Value to store. |
110
- | `--value-stdin` | Read the value from stdin — keeps secrets out of shell history. |
111
- | `--secret` | Shorthand for --kind secret. Required when creating a secret. |
112
- | `--kind <value>` | variable or secret. Required when creating; on an update, omit to keep the existing kind or pass the other to convert. |
113
- | `--comment <value>` | Note about what this value is for. |
114
-
115
- MCP tool: `env_set`.
116
-
117
- ## `ghostdock image`
118
-
119
- Organization image catalog: OCI bookmarks, Dockerfiles and Compose files.
120
-
121
- ### `ghostdock image add`
122
-
123
- Bookmark an OCI image ref in the organization’s image catalog. Fails if it is already bookmarked.
124
-
125
- ```
126
- ghostdock image add --ref <string> [flags]
127
- ```
128
-
129
- | Argument | Description |
130
- | --- | --- |
131
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
132
- | `--ref <string>` | OCI image reference, e.g. ghcr.io/acme/app:latest. Required. |
133
- | `--label <string>` | Display label for the bookmark. Optional. |
134
-
135
- MCP tool: `image_add`.
136
-
137
- ### `ghostdock image add-compose`
138
-
139
- Add a Compose project to the organization’s image catalog. Give its files, or a reference: a Compose project published as an OCI artifact (oci://…), used through include: with an optional override. ghostdock.* service labels (of the files, or of the override) become its manifest. Fails if the name is taken.
140
-
141
- ```
142
- ghostdock image add-compose --name <string> [flags]
143
- ```
144
-
145
- | Argument | Description |
146
- | --- | --- |
147
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
148
- | `--name <string>` | Image name, unique in the organization. Required. |
149
- | `--files <object>` | Compose files by file name. Must include docker-compose.yml/yaml or compose.yml/yaml. (JSON object) |
150
- | `--reference <string>` | A published Compose project instead of files, e.g. oci://docker.io/ghostdockhq/headless-compose:ubuntu-26.04. |
151
- | `--override <string>` | With reference: a Compose file merged into it (services, environment, labels). |
152
-
153
- MCP tool: `image_add_compose`.
154
-
155
- ### `ghostdock image add-dockerfile`
156
-
157
- Add a Dockerfile to the organization’s image catalog. ghostdock.* LABEL lines become its manifest. Fails if the name is taken.
158
-
159
- ```
160
- ghostdock image add-dockerfile --name <string> --dockerfile <string> [flags]
161
- ```
162
-
163
- | Argument | Description |
164
- | --- | --- |
165
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
166
- | `--name <string>` | Image name, unique in the organization. Required. |
167
- | `--dockerfile <string>` | Dockerfile text. ghostdock.* LABEL lines become the image manifest. Required. |
168
-
169
- MCP tool: `image_add_dockerfile`.
170
-
171
- ### `ghostdock image get`
172
-
173
- Get one catalog image with its spec, manifest and requirements. Returns kind, spec and a redacted manifest with requiredEnvironment / requiredUrls / requiredMcps. An OCI bookmark’s manifest is null: its labels are read at create time.
174
-
175
- ```
176
- ghostdock image get <image-id> [flags]
177
- ```
178
-
179
- | Argument | Description |
180
- | --- | --- |
181
- | `<image-id>` | Catalog image id, from image list or image get. Required. |
182
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
183
-
184
- MCP tool: `image_get`.
185
-
186
- ### `ghostdock image list`
187
-
188
- List the images an organization can boot VMs from. OCI bookmarks, image add-dockerfile and image add-compose rows, and refs its VMs use. A discovery catalog, not an allowlist: vm create accepts any OCI ref. Items carry vmCount and a redacted manifest with requiredEnvironment / requiredUrls / requiredMcps. An OCI bookmark stores no labels (manifest null): vm create reads them from the digest the ref names then.
189
-
190
- ```
191
- ghostdock image list [flags]
192
- ```
193
-
194
- | Argument | Description |
195
- | --- | --- |
196
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
197
-
198
- MCP tool: `image_list`.
199
-
200
- ### `ghostdock image remove`
201
-
202
- Remove an image from the organization’s catalog. VMs already using it are not affected.
203
-
204
- ```
205
- ghostdock image remove <image-id> [flags]
206
- ```
207
-
208
- | Argument | Description |
209
- | --- | --- |
210
- | `<image-id>` | Catalog image id, from image list or image get. Required. |
211
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
212
-
213
- MCP tool: `image_remove`.
214
-
215
- ### `ghostdock image update-compose`
216
-
217
- Replace a catalog Compose image’s files, reference, override and/or name. Re-parses its labels.
218
-
219
- ```
220
- ghostdock image update-compose <image-id> [flags]
221
- ```
222
-
223
- | Argument | Description |
224
- | --- | --- |
225
- | `<image-id>` | Catalog image id, from image list or image get. Required. |
226
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
227
- | `--files <object>` | New Compose files by file name. Omit to keep the current files. (JSON object) |
228
- | `--reference <string>` | A new reference (oci://…): the image becomes a Compose reference. |
229
- | `--override <string>` | A reference’s new override; null removes it. |
230
- | `--name <string>` | New image name. Omit to keep it. |
231
-
232
- MCP tool: `image_update_compose`.
233
-
234
- ### `ghostdock image update-dockerfile`
235
-
236
- Replace a catalog Dockerfile, optionally renaming it. Re-parses its ghostdock.* labels.
237
-
238
- ```
239
- ghostdock image update-dockerfile <image-id> --dockerfile <string> [flags]
240
- ```
241
-
242
- | Argument | Description |
243
- | --- | --- |
244
- | `<image-id>` | Catalog image id, from image list or image get. Required. |
245
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
246
- | `--dockerfile <string>` | Dockerfile text. ghostdock.* LABEL lines become the image manifest. Required. |
247
- | `--name <string>` | New image name. Omit to keep it. |
248
-
249
- MCP tool: `image_update_dockerfile`.
250
-
251
- ## `ghostdock login`
252
-
253
- Sign in and store a device access token for this machine (~/.config/ghostdock/credentials.json).
254
-
255
- ```
256
- ghostdock login [flags]
257
- ```
258
-
259
- | Argument | Description |
260
- | --- | --- |
261
- | `--wait` | Poll until the login is approved in the browser (default timeout 5 minutes). |
262
- | `--code <value>` | Redeem the one-time paste code shown in the browser instead of polling. |
263
- | `--timeout <value>` | Max seconds to poll when using --wait (default 300). |
264
- | `--org <value>` | Set this organization (id or slug) as the default once logged in. |
265
-
266
- ## `ghostdock logout`
267
-
268
- Revoke the device session and remove stored credentials.
269
-
270
- ```
271
- ghostdock logout
272
- ```
273
-
274
- ## `ghostdock network`
275
-
276
- The private network: reach your VMs by address and name from this machine.
277
-
278
- ### `ghostdock network connect`
279
-
280
- Put this machine into the private network through one provider: WireGuard and split DNS. The organization (--org, else the default) becomes this machine's short-name organization. Also re-arms a paused device: with the tunnel up and nothing changed, without sudo.
281
-
282
- ```
283
- ghostdock network connect [provider] [flags]
284
- ```
285
-
286
- | Argument | Description |
287
- | --- | --- |
288
- | `<provider>` | Provider name or id. Omit for the organization's default provider (else the platform default). Only its VMs are reachable; connecting through another replaces the connection. |
289
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
290
-
291
- ### `ghostdock network devices`
292
-
293
- Your devices in the private network.
294
-
295
- ```
296
- ghostdock network devices <command>
297
- ```
298
-
299
- ### `ghostdock network devices remove`
300
-
301
- Remove one of your devices from the private network.
302
-
303
- ```
304
- ghostdock network devices remove <id>
305
- ```
306
-
307
- | Argument | Description |
308
- | --- | --- |
309
- | `<id>` | Device id, from `network devices`. Required. |
310
-
311
- ### `ghostdock network disconnect`
312
-
313
- Take this machine out of the private network, and remove split DNS an earlier connection left (macOS).
314
-
315
- ```
316
- ghostdock network disconnect
317
- ```
318
-
319
- ### `ghostdock network ls`
320
-
321
- VMs of an organization with their private addresses and names, and which are reachable through the current connection.
322
-
323
- ```
324
- ghostdock network ls [flags]
325
- ```
326
-
327
- | Argument | Description |
328
- | --- | --- |
329
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
330
-
331
- ### `ghostdock network status`
332
-
333
- Whether this machine is connected, through which provider, and as which device.
334
-
335
- ```
336
- ghostdock network status
337
- ```
338
-
339
- ## `ghostdock organization`
340
-
341
- Organizations you belong to.
342
-
343
- ### `ghostdock organization current`
344
-
345
- Show which organization commands use, and where it comes from.
346
-
347
- ```
348
- ghostdock organization current [flags]
349
- ```
350
-
351
- | Argument | Description |
352
- | --- | --- |
353
- | `--org <value>` | Check what this --org would resolve to. |
354
-
355
- ### `ghostdock organization list`
356
-
357
- List the organizations you belong to, with their ids and slugs.
358
-
359
- ```
360
- ghostdock organization list
361
- ```
362
-
363
- MCP tool: `organization_list`.
364
-
365
- ### `ghostdock organization use`
366
-
367
- Set the default organization for commands run without --org (in every directory).
368
-
369
- ```
370
- ghostdock organization use [org] [flags]
371
- ```
372
-
373
- | Argument | Description |
374
- | --- | --- |
375
- | `<org>` | Organization id or slug. |
376
- | `--clear` | Remove the default organization. |
377
-
378
- ## `ghostdock project`
379
-
380
- Deployable projects, their deployments and environment.
381
-
382
- ### `ghostdock project create`
383
-
384
- Create an empty project. Nothing is deployed until project publish.
385
-
386
- ```
387
- ghostdock project create --display-name <string> [flags]
388
- ```
389
-
390
- | Argument | Description |
391
- | --- | --- |
392
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
393
- | `--display-name <string>` | Project name. Required. |
394
-
395
- MCP tool: `project_create`.
396
-
397
- ### `ghostdock project deployment`
398
-
399
- Deployments of a project.
400
-
401
- ### `ghostdock project deployment get`
402
-
403
- Get one deploy attempt, with links to its stored files. fileUrls are authenticated GET paths for source.zip and generated Compose files.
404
-
405
- ```
406
- ghostdock project deployment get <deployment-id> --project-id <string> [flags]
407
- ```
408
-
409
- | Argument | Description |
410
- | --- | --- |
411
- | `<deployment-id>` | Deployment id, from project deployment list. Required. |
412
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
413
- | `--project-id <string>` | Project id, from project list (project publish returns it too). Required. |
414
-
415
- MCP tool: `project_deployment_get`.
416
-
417
- ### `ghostdock project deployment list`
418
-
419
- List a project’s deploy attempts, newest first.
420
-
421
- ```
422
- ghostdock project deployment list <project-id> [flags]
423
- ```
424
-
425
- | Argument | Description |
426
- | --- | --- |
427
- | `<project-id>` | Project id, from project list (project publish returns it too). Required. |
428
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
429
-
430
- MCP tool: `project_deployment_list`.
431
-
432
- ### `ghostdock project env`
433
-
434
- Environment a project exports.
435
-
436
- ### `ghostdock project env delete`
437
-
438
- Delete one of a project’s own variables or secrets.
439
-
440
- ```
441
- ghostdock project env delete <name> --project-id <string> [flags]
442
- ```
443
-
444
- | Argument | Description |
445
- | --- | --- |
446
- | `<name>` | Environment variable name, e.g. DATABASE_URL. Letters, digits and underscores only. Case-sensitive; stored exactly as provided. Required. |
447
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
448
- | `--project-id <string>` | Project id, from project list (project publish returns it too). Required. |
449
-
450
- MCP tool: `project_env_delete`.
451
-
452
- ### `ghostdock project env get`
453
-
454
- Get a project’s stored environment. Local entries (secret values withheld), organization opt-ins and bindings, applied on every deploy.
455
-
456
- ```
457
- ghostdock project env get <project-id> [flags]
458
- ```
459
-
460
- | Argument | Description |
461
- | --- | --- |
462
- | `<project-id>` | Project id, from project list (project publish returns it too). Required. |
463
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
464
-
465
- MCP tool: `project_env_get`.
466
-
467
- ### `ghostdock project env select`
468
-
469
- Replace the organization entries a project exports. Full replace: environment is the whole list ([] clears it), and omitting bindings clears the remaps. Read the environment skill (`ghostdock skill get environment`).
470
-
471
- ```
472
- ghostdock project env select <project-id> --environment <array> [flags]
473
- ```
474
-
475
- | Argument | Description |
476
- | --- | --- |
477
- | `<project-id>` | Project id, from project list (project publish returns it too). Required. |
478
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
479
- | `--environment <array>` | Organization catalogue entry names to export under their own names. (JSON array) Required. |
480
- | `--bindings <array>` | Slot-centric org bindings. Omit to clear existing remaps. (JSON array) |
481
-
482
- MCP tool: `project_env_select`.
483
-
484
- ### `ghostdock project env set`
485
-
486
- Create or replace one of a project’s own variables or secrets. Prefer the CLI for secret values so they stay out of the conversation.
487
-
488
- ```
489
- ghostdock project env set <name> --project-id <string> --value <string> --kind <string> [flags]
490
- ```
491
-
492
- | Argument | Description |
493
- | --- | --- |
494
- | `<name>` | Environment variable name, e.g. DATABASE_URL. Letters, digits and underscores only. Case-sensitive; stored exactly as provided. Required. |
495
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
496
- | `--project-id <string>` | Project id, from project list (project publish returns it too). Required. |
497
- | `--value <string>` | The value to store. A secret value can be replaced later but never read back. Required. |
498
- | `--kind <string>` | "variable" or "secret". A secret value can be replaced but never read back. Required. |
499
- | `--comment <string>` | Optional note shown with the entry, e.g. what it is for. |
500
-
501
- MCP tool: `project_env_set`.
502
-
503
- ### `ghostdock project get`
504
-
505
- Get a project with its latest attempt and live deployment. latestDeploymentId includes failures; liveDeploymentId / liveUrl is the success that serves the public URL.
506
-
507
- ```
508
- ghostdock project get <project-id> [flags]
509
- ```
510
-
511
- | Argument | Description |
512
- | --- | --- |
513
- | `<project-id>` | Project id, from project list (project publish returns it too). Required. |
514
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
515
-
516
- MCP tool: `project_get`.
517
-
518
- ### `ghostdock project list`
519
-
520
- List an organization’s projects. A project owns its environment, deployment history and live URL. app list lists live URLs instead.
521
-
522
- ```
523
- ghostdock project list [flags]
524
- ```
525
-
526
- | Argument | Description |
527
- | --- | --- |
528
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
529
-
530
- MCP tool: `project_list`.
531
-
532
- ### `ghostdock project publish`
533
-
534
- Inspect local source with the deploy agent and publish to the CDN or a VM.
535
-
536
- ```
537
- ghostdock project publish [path] [flags]
538
- ```
539
-
540
- | Argument | Description |
541
- | --- | --- |
542
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
543
- | `--project-id <value>` | Existing project id. Omit to create a project. |
544
- | `--replan` | Force a new planner run even when the stored spec still matches. |
545
- | `--require-verify` | Fail the deploy (verify_failed) when detected tests fail. Default false: tests still run and are reported. |
546
- | `--spec <value>` | JSON DeploymentSpec to execute on a fresh VM instead of planning. Mutually exclusive with --replan. |
547
- | `--display-name <value>` | Optional display name. |
548
- | `--tag <value>` | Optional caller tag (git SHA or free-form label) stored on the deployment. |
549
- | `--auto-stop-interval-minutes <value>` | Same as `vm create`. Omit for the 20-minute default. Pass -1 to keep it running. 0 is rejected. |
550
- | `--auto-delete-after-days <value>` | Same as `vm create`: days stopped before the record is deleted (0–365). Omit for the 14-day default. Pass 0 to delete the record when it stops. |
551
- | `--resources <value>` | Same as `vm create`: JSON { cpu, memoryGiB, diskGiB }. |
552
- | `--environment <value>` | Same as `vm create --environment`: JSON { organization, bindings, local }. Required after awaiting_configuration. |
553
- | `--auto-wake <value>` | Same as `vm url create --auto-wake`. Default true for the minted URL. |
554
- | `--public <value>` | Same as `vm url create --public`. Default true for the minted URL. |
555
- | `--provider <value>` | Same as `vm create`: configured provider instance id (omit for the organization default). |
556
- | `--zip <value>` | Local ZIP of the source tree. |
557
- | `<path>` | File or directory to publish (additional paths are allowed). |
558
-
559
- MCP tool: `project_publish`.
560
-
561
- ### `ghostdock project redeploy`
562
-
563
- Deploy a project’s stored source again, with its current environment. No new upload. Omit deploymentId to retry the last attempt that stored source. Same outcomes and settings as project publish; read the publishing skill (`ghostdock skill get publishing`).
564
-
565
- ```
566
- ghostdock project redeploy <project-id> [flags]
567
- ```
568
-
569
- | Argument | Description |
570
- | --- | --- |
571
- | `<project-id>` | Project id, from project list (project publish returns it too). Required. |
572
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
573
- | `--deployment-id <string>` | Ship this version’s stored upload and spec. Omit to retry the last attempt that stored source. |
574
- | `--require-verify` | When true, a failing verify step stops the deploy (verify_failed) and tears the VM down. Default false. |
575
- | `--tag <string>` | Optional caller tag stored on the new deployment. Metadata only. |
576
- | `--resources <object>` | Compute sizing. For image/dockerfile/compose: layered on platform defaults when omitted. For snapshot: optional override applied via resize after create. (JSON object) |
577
- | `--auto-stop-interval-minutes <number>` | Minutes of inactivity before the platform worker idle-stops the VM. -1 means always on. 0 is rejected. Omit for the platform default. Provider-native timers are optional backup. |
578
- | `--lifecycle <string>` | What may make the VM disappear on its own. ephemeral: every stop wipes the VM and its disk, and the next start runs its Compose project again (edits in the project folder kept, everything else gone; locks too). auto_delete (default): a stop keeps the disk, and the record goes autoDeleteAfterDays after the stop. keep: never removed automatically. Omit for the image label ghostdock.ephemeral, else auto_delete. ephemeral is chosen here only. |
579
- | `--auto-delete-after-days <integer>` | Days the VM stays stopped before the platform worker deletes the record (0–365; 0 deletes it when it stops). Omit for the platform default (14). Not with keep. A container a person locked holds it. |
580
- | `--provider <string>` | Provider id from provider list (not the provider kind). Omit to use the organization default (the org choice, else the platform default); if that provider lacks a capability this create needs, the first listed provider that accepts new VMs and has it is used. When no provider fits, the call fails with a not-configured error. |
581
- | `--environment <object>` | Environment to give this VM. organization: names of organization entries (from env list) to export under their own names. bindings: remap org entries onto slot names ({ name: slot, organization: orgEntryName }). local: VM-only variables/secrets to create with the VM (kind required for each). Both land as ordinary process environment variables ($NAME / process.env.NAME); a local entry overrides an organization entry of the same name. When booting from an organization snapshot, omit organization/bindings/local to keep manifest env defaults, but still supply every name in requiredEnvironment (via organization, bindings, or local). Otherwise a VM gets nothing unless listed here. (JSON object) |
582
- | `--auto-wake` | Same as urls[].autoWake on vm create. Default true for the minted URL. |
583
- | `--public` | Same as urls[].public on vm create. Default true for the minted URL. |
584
-
585
- MCP tool: `project_redeploy`.
586
-
587
- ### `ghostdock project update`
588
-
589
- Rename a project.
590
-
591
- ```
592
- ghostdock project update <project-id> --display-name <string> [flags]
593
- ```
594
-
595
- | Argument | Description |
596
- | --- | --- |
597
- | `<project-id>` | Project id, from project list (project publish returns it too). Required. |
598
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
599
- | `--display-name <string>` | New name. Null or empty clears it. Required. |
600
-
601
- MCP tool: `project_update`.
602
-
603
- ## `ghostdock provider`
604
-
605
- Providers of an organization.
606
-
607
- ### `ghostdock provider disconnect`
608
-
609
- Disconnect one of the organization’s own providers. Owner or admin. Fails while VMs still use it. If organization snapshots live on it, the first call fails: pass confirmLinkedDeletion to delete them permanently. Also frees its custom domain and removes incomplete Incus setups; a default provider falls back to the platform default.
610
-
611
- ```
612
- ghostdock provider disconnect <provider> [flags]
613
- ```
614
-
615
- | Argument | Description |
616
- | --- | --- |
617
- | `<provider>` | Provider id, from provider list. Required. |
618
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
619
- | `--confirm-linked-deletion` | Required when this provider still has organization snapshots. Permanently deletes those snapshots, then disconnects. |
620
-
621
- MCP tool: `provider_disconnect`.
622
-
623
- ### `ghostdock provider list`
624
-
625
- List the providers an organization can create VMs on. Includes its own connected providers and the platform providers it may use, in fallback order. Use an item id as provider. Only items with acceptsNewVms true take new VMs; an own provider stays incomplete until customDomain.status is active. defaultProviderId is the effective default. Read the vm skill (`ghostdock skill get vm`) for the details.
626
-
627
- ```
628
- ghostdock provider list [flags]
629
- ```
630
-
631
- | Argument | Description |
632
- | --- | --- |
633
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
634
-
635
- MCP tool: `provider_list`.
636
-
637
- ### `ghostdock provider rename`
638
-
639
- Rename one of the organization’s own providers. Owner or admin. Platform providers cannot be renamed; names must be unique in the organization.
640
-
641
- ```
642
- ghostdock provider rename <provider> --name <string> [flags]
643
- ```
644
-
645
- | Argument | Description |
646
- | --- | --- |
647
- | `<provider>` | Provider id, from provider list. Required. |
648
- | `--name <string>` | New name, unique in the organization. Required. |
649
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
650
-
651
- MCP tool: `provider_rename`.
652
-
653
- ### `ghostdock provider set-default`
654
-
655
- Set the provider used when a create omits provider. Applies to vm create, project publish and project redeploy. Pass an own connected provider or a platform provider that accepts new VMs; pass null (or platformDefaultProviderId) to follow the platform default. Owner or admin.
656
-
657
- ```
658
- ghostdock provider set-default <provider> [flags]
659
- ```
660
-
661
- | Argument | Description |
662
- | --- | --- |
663
- | `<provider>` | Instance id from provider list (own or platform), or null to follow the platform default. Passing platformDefaultProviderId also follows the platform default; it is never pinned. Required. |
664
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
665
-
666
- MCP tool: `provider_set_default`.
667
-
668
- ### `ghostdock provider start-incus`
669
-
670
- Start connecting an Incus host as a provider. Owner or admin. Returns sshPublicKey and aiSetupPrompt; then call provider verify-incus. To finish an incomplete setup, reuse it from provider list instead of starting again. Read the incus-setup skill (`ghostdock skill get incus-setup`) first.
671
-
672
- ```
673
- ghostdock provider start-incus [flags]
674
- ```
675
-
676
- | Argument | Description |
677
- | --- | --- |
678
- | `--name <string>` | Name for the new provider. Optional. |
679
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
680
-
681
- MCP tool: `provider_start_incus`.
682
-
683
- ### `ghostdock provider verify-incus`
684
-
685
- Check or finish connecting an Incus host. Owner or admin. Connects over SSH with the stored key and checks Incus 6.3+, skopeo and umoci. Omit sshHost to re-check the stored address; pass it (with the other host fields) only to move the provider. A failed check marks the provider error. Read the incus-setup skill (`ghostdock skill get incus-setup`).
686
-
687
- ```
688
- ghostdock provider verify-incus <provider> [flags]
689
- ```
690
-
691
- | Argument | Description |
692
- | --- | --- |
693
- | `<provider>` | Provider id, from provider list. Required. |
694
- | `--ssh-host <string>` | Host to SSH to. Omit to re-check the stored address; pass it only to set up or move the provider. |
695
- | `--ssh-port <integer>` | SSH port. Default 22. |
696
- | `--ssh-user <string>` | SSH login. Default incus-user. |
697
- | `--ingress-host <string>` | Public hostname for HTTP(S) when it is not the SSH host (also the DNS A/AAAA target). |
698
- | `--ssh-proxy-port <integer>` | Port for VM SSH on the host. Default 2222. |
699
- | `--name <string>` | New name. Optional. |
700
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
701
-
702
- MCP tool: `provider_verify_incus`.
703
-
704
- ## `ghostdock registry`
705
-
706
- Log in to the organization container registry.
707
-
708
- ### `ghostdock registry credentials`
709
-
710
- Print registry host, username, and the one-hour password.
711
-
712
- ```
713
- ghostdock registry credentials [flags]
714
- ```
715
-
716
- | Argument | Description |
717
- | --- | --- |
718
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
719
- | `--provider <value>` | Provider id. Omit for the provider `vm create` would pick (org default, else platform default, else the first that fits). |
720
-
721
- MCP tool: `registry_credentials`.
722
-
723
- ### `ghostdock registry login`
724
-
725
- Fetch a one-hour password and run docker login --password-stdin.
726
-
727
- ```
728
- ghostdock registry login [flags]
729
- ```
730
-
731
- | Argument | Description |
732
- | --- | --- |
733
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
734
- | `--provider <value>` | Provider id. Omit for the provider `vm create` would pick (org default, else platform default, else the first that fits). |
735
-
736
- ## `ghostdock site`
737
-
738
- Static sites on the CDN.
739
-
740
- ### `ghostdock site publish`
741
-
742
- Publish a local directory or ZIP to the CDN.
743
-
744
- ```
745
- ghostdock site publish [path] [flags]
746
- ```
747
-
748
- | Argument | Description |
749
- | --- | --- |
750
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
751
- | `--display-name <value>` | Optional site display name. |
752
- | `--zip <value>` | Local ZIP file to publish. |
753
- | `<path>` | File or directory to publish (additional paths are allowed). |
754
-
755
- MCP tool: `site_publish`.
756
-
757
- ### `ghostdock site unpublish`
758
-
759
- Take a published static site offline.
760
-
761
- ```
762
- ghostdock site unpublish <site-id> [flags]
763
- ```
764
-
765
- | Argument | Description |
766
- | --- | --- |
767
- | `<site-id>` | Site id: the slug in the public URL, as returned by site publish or app list. Required. |
768
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
769
-
770
- MCP tool: `site_unpublish`.
771
-
772
- ## `ghostdock skill`
773
-
774
- List and read Agent Skills (same catalog as MCP skill://index.json).
775
-
776
- ### `ghostdock skill get`
777
-
778
- Print one SKILL.md (URI from the discovery index, or a skill name).
779
-
780
- ```
781
- ghostdock skill get <uri>
782
- ```
783
-
784
- | Argument | Description |
785
- | --- | --- |
786
- | `<uri>` | skill:// URI, org/name, or skill name. Required. |
787
-
788
- MCP tool: `skill_get`.
789
-
790
- ### `ghostdock skill list`
791
-
792
- List the Agent Skills discovery index.
793
-
794
- ```
795
- ghostdock skill list
796
- ```
797
-
798
- MCP tool: `skill_list`.
799
-
800
- ## `ghostdock snapshot`
801
-
802
- VM snapshots.
803
-
804
- ### `ghostdock snapshot create`
805
-
806
- Save a VM’s filesystem as a reusable organization snapshot. The VM must be stopped, unless stopAndResume. Captures its URLs and environment into a manifest (secrets as required, without values). Waits up to ~120 seconds; if still pending it returns timedOut, then poll snapshot get. Setting secret values here is allowed; prefer the Ghostdock CLI so they stay out of the conversation.
807
-
808
- ```
809
- ghostdock snapshot create <vm> --name <string> [flags]
810
- ```
811
-
812
- | Argument | Description |
813
- | --- | --- |
814
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
815
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
816
- | `--name <string>` | Snapshot name, unique in the organization. Required. |
817
- | `--stop-and-resume` | When the VM is running: stop it, snapshot, then start it again. Without this it must already be stopped. |
818
- | `--include-secret-values <array>` | Names of VM-local secrets whose values to embed in the snapshot. Organization secrets cannot be copied. (JSON array) |
819
- | `--manifest <object>` | Replaces the captured URLs and environment entirely (no merge). An omitted ephemeral is copied from the VM. Secret values are stored encrypted. (JSON object) |
820
-
821
- MCP tool: `snapshot_create`.
822
-
823
- ### `ghostdock snapshot delete`
824
-
825
- Permanently delete an organization snapshot (provider artifact and record).
826
-
827
- ```
828
- ghostdock snapshot delete <snapshot-id> [flags]
829
- ```
830
-
831
- | Argument | Description |
832
- | --- | --- |
833
- | `<snapshot-id>` | Snapshot id from snapshot list (the provider snapshot name) or its database id. Required. |
834
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
835
-
836
- MCP tool: `snapshot_delete`.
837
-
838
- ### `ghostdock snapshot get`
839
-
840
- Get one snapshot with its manifest and required environment, URLs and MCPs. Returns a redacted manifest with requiredEnvironment / requiredUrls / requiredMcps. Poll it after snapshot create while status is pending.
841
-
842
- ```
843
- ghostdock snapshot get <snapshot-id> [flags]
844
- ```
845
-
846
- | Argument | Description |
847
- | --- | --- |
848
- | `<snapshot-id>` | Snapshot id from snapshot list (the provider snapshot name) or its database id. Required. |
849
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
850
-
851
- MCP tool: `snapshot_get`.
852
-
853
- ### `ghostdock snapshot list`
854
-
855
- List the snapshots an organization can boot VMs from. Each item has status (pending, active, error), the provider that holds it (providerId; boot it there), vmCount, and a redacted manifest with requiredEnvironment / requiredUrls / requiredMcps.
856
-
857
- ```
858
- ghostdock snapshot list [flags]
859
- ```
860
-
861
- | Argument | Description |
862
- | --- | --- |
863
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
864
-
865
- MCP tool: `snapshot_list`.
866
-
867
- ### `ghostdock snapshot update-manifest`
868
-
869
- Replace a snapshot’s manifest (URLs, environment, MCPs). Does not change the snapshot itself. Secret values in the body are stored encrypted; the response is redacted. Setting secret values here is allowed; prefer the Ghostdock CLI so they stay out of the conversation.
870
-
871
- ```
872
- ghostdock snapshot update-manifest <snapshot-id> --manifest <object> [flags]
873
- ```
874
-
875
- | Argument | Description |
876
- | --- | --- |
877
- | `<snapshot-id>` | Snapshot id from snapshot list (the provider snapshot name) or its database id. Required. |
878
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
879
- | `--manifest <object>` | The new manifest; replaces the stored one. An omitted ephemeral keeps the stored value. Secret values are stored encrypted. (JSON object) Required. |
880
-
881
- MCP tool: `snapshot_update_manifest`.
882
-
883
- ## `ghostdock template`
884
-
885
- ### `ghostdock template create`
886
-
887
- Save a VM create request as a template of the organization. Its members and agents make it with `ghostdock vm up <name>`. spec is what vm create takes without the organization’s own things: source (an image ref, Dockerfile, Compose files or a Compose reference; no snapshot or catalog id) and defaults (resources, lifecycle, restart, urls, mcps). Environment values stay out: a template that needs some declares them as ghostdock.env labels. A name the platform has too is allowed: the answer says shadows true, and the organization’s template wins for its members.
888
-
889
- ```
890
- ghostdock template create --name <string> --title <string> --spec <object> [flags]
891
- ```
892
-
893
- | Argument | Description |
894
- | --- | --- |
895
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
896
- | `--name <string>` | Short name, unique in the organization: lower-case words joined by hyphens, e.g. postgres-pgadmin. Required. |
897
- | `--title <string>` | Title on the tile. Required. |
898
- | `--description <string>` | What it is for, in a sentence or two. |
899
- | `--icon <string>` | An Iconify class the app bundles (i-simple-icons-postgresql, i-lucide-database) or an https image URL. Omit for the default icon. |
900
- | `--spec <object>` | The create request: { source, resources?, autoStopIntervalMinutes?, lifecycle?, autoDeleteAfterDays?, restart?, urls?, mcps? }, the same fields vm create takes. (JSON object) Required. |
901
-
902
- MCP tool: `template_create`.
903
-
904
- ### `ghostdock template delete`
905
-
906
- Delete a template of the organization by its name. VMs made from it keep running; a platform template it shadowed answers to the name again.
907
-
908
- ```
909
- ghostdock template delete <template> [flags]
910
- ```
911
-
912
- | Argument | Description |
913
- | --- | --- |
914
- | `<template>` | The organization’s template, by name. Required. |
915
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
916
-
917
- MCP tool: `template_delete`.
918
-
919
- ### `ghostdock template list`
920
-
921
- List the templates to create a VM from (headless, desktop, nginx, …). The platform’s ready-made VMs and the organization’s own, each with scope (platform or organization), title, description and the create request it stands for (spec: source plus defaults such as URLs and resources). A name means the organization’s template first: one with shadows true hides the platform template of the same name (shadowed true), which vm up --platform still reaches. Create one with vm up.
922
-
923
- ```
924
- ghostdock template list [flags]
925
- ```
926
-
927
- | Argument | Description |
928
- | --- | --- |
929
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
930
-
931
- MCP tool: `template_list`.
932
-
933
- ### `ghostdock template update`
934
-
935
- Change a template of the organization by its name. The fields given replace the stored ones (a spec replaces the whole spec). Platform templates are changed by platform admins only.
936
-
937
- ```
938
- ghostdock template update <template> [flags]
939
- ```
940
-
941
- | Argument | Description |
942
- | --- | --- |
943
- | `<template>` | The organization’s template, by name. Required. |
944
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
945
- | `--name <string>` | A new name; vm up answers to it only. |
946
- | `--title <string>` | Title on the tile. |
947
- | `--description <string>` | What it is for. |
948
- | `--icon <string>` | Iconify class or https image URL; null for the default icon. |
949
- | `--spec <object>` | The whole create request, as template create takes it. (JSON object) |
950
-
951
- MCP tool: `template_update`.
952
-
953
- ## `ghostdock tools`
954
-
955
- List available agent tools.
956
-
957
- ```
958
- ghostdock tools
959
- ```
960
-
961
- ## `ghostdock vm`
962
-
963
- Create, run and manage VMs.
964
-
965
- ### `ghostdock vm build`
966
-
967
- Create a VM from a local Dockerfile or Compose directory. Zips the directory (or takes --zip) and builds it on the provider; use it when the Dockerfile copies local files or the Compose project has build contexts.
968
-
969
- ```
970
- ghostdock vm build [path] --kind <value> [flags]
971
- ```
972
-
973
- | Argument | Description |
974
- | --- | --- |
975
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
976
- | `--kind <value>` | dockerfile or compose. Required. |
977
- | `--provider <value>` | Configured provider instance id (omit for the organization default). |
978
- | `--display-name <value>` | Optional VM display name. |
979
- | `--zip <value>` | Local ZIP of the build directory (Dockerfile or compose file at the zip root). |
980
- | `<path>` | Build directory to zip and create from. |
981
-
982
- ### `ghostdock vm command`
983
-
984
- Run commands in a VM and read their output.
985
-
986
- ### `ghostdock vm command get`
987
-
988
- Get a shell command’s status and exit code.
989
-
990
- ```
991
- ghostdock vm command get <command-id> --vm <string> --session-id <string> [flags]
992
- ```
993
-
994
- | Argument | Description |
995
- | --- | --- |
996
- | `<command-id>` | Command id returned by vm command run. Required. |
997
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
998
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
999
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1000
- | `--session-id <string>` | Session id returned by vm command run together with the commandId. Required. |
1001
- | `--start` | Start the container first when it is not running, without asking. |
1002
-
1003
- MCP tool: `vm_command_get`.
1004
-
1005
- ### `ghostdock vm command kill`
1006
-
1007
- Interrupt a running shell command.
1008
-
1009
- ```
1010
- ghostdock vm command kill <command-id> --vm <string> --session-id <string> [flags]
1011
- ```
1012
-
1013
- | Argument | Description |
1014
- | --- | --- |
1015
- | `<command-id>` | Command id returned by vm command run. Required. |
1016
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1017
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1018
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1019
- | `--session-id <string>` | Session id returned by vm command run together with the commandId. Required. |
1020
- | `--start` | Start the container first when it is not running, without asking. |
1021
-
1022
- MCP tool: `vm_command_kill`.
1023
-
1024
- ### `ghostdock vm command logs`
1025
-
1026
- Get a page of a shell command’s stdout and stderr.
1027
-
1028
- ```
1029
- ghostdock vm command logs <command-id> --vm <string> --session-id <string> [flags]
1030
- ```
1031
-
1032
- | Argument | Description |
1033
- | --- | --- |
1034
- | `<command-id>` | Command id returned by vm command run. Required. |
1035
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1036
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1037
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1038
- | `--session-id <string>` | Session id returned by vm command run together with the commandId. Required. |
1039
- | `--offset <integer>` | Character offset to continue reading from. Default 0. |
1040
- | `--start` | Start the container first when it is not running, without asking. |
1041
-
1042
- MCP tool: `vm_command_logs`.
1043
-
1044
- ### `ghostdock vm command run`
1045
-
1046
- Run a shell command in a VM. Waits up to 120 seconds, then returns sessionId and commandId to poll. Starts the VM when allowed. Sessions do not survive idle-stop: for a process that must keep running, read the vm-boot skill (`ghostdock skill get vm-boot`). Never put secret values in the command; it is logged.
1047
-
1048
- ```
1049
- ghostdock vm command run <vm> --command <string> [flags]
1050
- ```
1051
-
1052
- | Argument | Description |
1053
- | --- | --- |
1054
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1055
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1056
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1057
- | `--command <string>` | Shell command to run. Never include secret values: commands are logged. Required. |
1058
- | `--session-id <string>` | Session from vm shell create, to keep cwd and environment from earlier commands. Omit for a one-off session. |
1059
- | `--cwd <string>` | Directory to run the command in. |
1060
- | `--wait-seconds <number>` | Seconds to wait before returning handles to poll: 1 to 120, default 120. |
1061
- | `--start` | Start the container first when it is not running, without asking. |
1062
-
1063
- MCP tool: `vm_command_run`.
1064
-
1065
- ### `ghostdock vm container`
1066
-
1067
- Containers of a VM’s Docker engine.
1068
-
1069
- ### `ghostdock vm container list`
1070
-
1071
- List the containers of a VM, running or not. Each with state, health, restart policy, ports, Compose project and service, its lock (locked, and whether a person or its ghostdock.lock label decided), ghostdock.* labels, and which one is the default. A stopped VM lists none (it is not started for this).
1072
-
1073
- ```
1074
- ghostdock vm container list <vm> [flags]
1075
- ```
1076
-
1077
- | Argument | Description |
1078
- | --- | --- |
1079
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1080
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1081
-
1082
- MCP tool: `vm_container_list`.
1083
-
1084
- ### `ghostdock vm container lock`
1085
-
1086
- Lock a container against removal. A locked container cannot be removed, renamed or recreated through Docker (docker rm, compose down, a compose up that would recreate it) until it is unlocked here; start, stop and restart still work. It also pauses the VM’s auto-delete. An ephemeral VM’s stop still wipes it. Never starts the VM: a stopped one gets the lock at its next start.
1087
-
1088
- ```
1089
- ghostdock vm container lock <vm> <container> [flags]
1090
- ```
1091
-
1092
- | Argument | Description |
1093
- | --- | --- |
1094
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1095
- | `<container>` | Container, by name. Required. |
1096
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1097
-
1098
- MCP tool: `vm_container_lock`.
1099
-
1100
- ### `ghostdock vm container logs`
1101
-
1102
- Read a container’s output, as docker logs does. Oldest first, each line with its stream (stdout, stderr) and time. The last tail lines (default 200), or with after only the lines after that time: pass the last line’s time to follow. truncated says lines were left out. A stopped VM has none (it is not started for this).
1103
-
1104
- ```
1105
- ghostdock vm container logs <vm> <container> [flags]
1106
- ```
1107
-
1108
- | Argument | Description |
1109
- | --- | --- |
1110
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1111
- | `<container>` | Container, by name. Required. |
1112
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1113
- | `--tail <integer>` | The last N lines (at most 5000). |
1114
- | `--after <string>` | Only lines after this time: the time of the last line already read. |
1115
- | `--follow` | Keep printing new lines until Ctrl-C. |
1116
- | `--timestamps` | Put each line's time in front of it. |
1117
-
1118
- MCP tool: `vm_container_logs`.
1119
-
1120
- ### `ghostdock vm container restart`
1121
-
1122
- Restart a container, as docker restart does (stopping as docker stop does). Starts the VM when needed.
1123
-
1124
- ```
1125
- ghostdock vm container restart <vm> <container> [flags]
1126
- ```
1127
-
1128
- | Argument | Description |
1129
- | --- | --- |
1130
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1131
- | `<container>` | Container, by name. Required. |
1132
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1133
-
1134
- MCP tool: `vm_container_restart`.
1135
-
1136
- ### `ghostdock vm container start`
1137
-
1138
- Start a stopped container, as docker start does. A running container stays as it is. Starts the VM when needed.
1139
-
1140
- ```
1141
- ghostdock vm container start <vm> <container> [flags]
1142
- ```
1143
-
1144
- | Argument | Description |
1145
- | --- | --- |
1146
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1147
- | `<container>` | Container, by name. Required. |
1148
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1149
-
1150
- MCP tool: `vm_container_start`.
1151
-
1152
- ### `ghostdock vm container stop`
1153
-
1154
- Stop a container, as docker stop does. It gets its own stop signal, then a kill after its own stop timeout. It stays stopped while the VM sleeps and wakes, as Docker keeps a stopped container stopped, unless its restart policy is always. On a stopped VM it does nothing (note vm_stopped). A lock does not block it. note says when it was the default container or the last one running: then SSH, commands and files have nowhere to land until one runs.
1155
-
1156
- ```
1157
- ghostdock vm container stop <vm> <container> [flags]
1158
- ```
1159
-
1160
- | Argument | Description |
1161
- | --- | --- |
1162
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1163
- | `<container>` | Container, by name. Required. |
1164
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1165
-
1166
- MCP tool: `vm_container_stop`.
1167
-
1168
- ### `ghostdock vm container unlock`
1169
-
1170
- Unlock a container so Docker can remove or recreate it. Also one its image locked with the ghostdock.lock label. Never starts the VM: a stopped one gets it at its next start, and an overdue auto-delete it held goes ahead.
1171
-
1172
- ```
1173
- ghostdock vm container unlock <vm> <container> [flags]
1174
- ```
1175
-
1176
- | Argument | Description |
1177
- | --- | --- |
1178
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1179
- | `<container>` | Container, by name. Required. |
1180
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1181
-
1182
- MCP tool: `vm_container_unlock`.
1183
-
1184
- ### `ghostdock vm create`
1185
-
1186
- Create a VM from a snapshot, OCI image, Dockerfile or Compose files. Inline content only: for a directory or ZIP (Dockerfile COPY/ADD, Compose build files) use `ghostdock vm build`. Snapshots and catalog images can require environment entries, URL ports and MCP names (requiredEnvironment / requiredUrls / requiredMcps); a missing environment entry fails with its names (missingEnvironment), and removing a required URL or MCP fails with them (missingUrls / missingMcps). Every source but a snapshot becomes a Compose project in the VM, run once with docker compose up -d; after that Docker is the truth. Returns once the project is up, with `boot`: how long the VM and the project's compose up took, each in ms, and the images it pulled. Idle-stop and auto-delete apply (defaults 20 minutes / 14 days). Read the vm skill (`ghostdock skill get vm`) for sources, manifests, lifecycle and providers.
1187
-
1188
- ```
1189
- ghostdock vm create --source <object> [flags]
1190
- ```
1191
-
1192
- | Argument | Description |
1193
- | --- | --- |
1194
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1195
- | `--display-name <string>` | Display name for the VM. Optional. |
1196
- | `--source <object>` | What the VM boots from. Required. "template" boots a template by its name ({ name, scope? } from template list, e.g. headless, desktop, nginx): the organization’s of that name, else the platform’s (scope picks one), its source and defaults, under every other field of this call (a URL on the same port or an MCP of the same name replaces the template's; vm up is the short form). "image" boots an org catalog row by id ({ id } from image list / image get — image add OCI bookmarks, image add-dockerfile, and image add-compose rows) or any OCI ref ({ ref }); "dockerfile" builds inline Dockerfile text only (ghostdock.* LABEL lines parsed for manifest; this tool has no build directory, so COPY/ADD of local files fails — use the CLI `ghostdock vm build --kind dockerfile` with a directory or ZIP); "compose" runs the given inline files with docker compose up -d (must include docker-compose.yml/yaml or compose.yml/yaml; ghostdock.* service labels parsed for manifest). Every source but a snapshot becomes a Compose project in /srv/ghostdock/<vm name>, run once; an image is one service named after it, a Dockerfile the service app. A Compose project that needs extra files is not accepted here — use `ghostdock vm build --kind compose`. "compose" also takes a published Compose project instead of files ({ reference: "oci://…", override? }): it runs through include:, the override merged into it. Image, dockerfile, and compose sources never appear in snapshot list. Published static sites use site publish (CDN), not a snapshot. (JSON object) Required. |
1197
- | `--restart <string>` | Restart policy of the service an image or a Dockerfile becomes, Docker's names: unless-stopped (default), always, on-failure, or no (it does not come back after the VM sleeps). Not for Compose: its files set restart:. |
1198
- | `--resources <object>` | Compute sizing. For image/dockerfile/compose: layered on platform defaults when omitted. For snapshot: optional override applied via resize after create. (JSON object) |
1199
- | `--auto-stop-interval-minutes <number>` | Minutes of inactivity before the platform worker idle-stops the VM. -1 means always on. 0 is rejected. Omit for the platform default. Provider-native timers are optional backup. |
1200
- | `--lifecycle <string>` | What may make the VM disappear on its own. ephemeral: every stop wipes the VM and its disk, and the next start runs its Compose project again (edits in the project folder kept, everything else gone; locks too). auto_delete (default): a stop keeps the disk, and the record goes autoDeleteAfterDays after the stop. keep: never removed automatically. Omit for the image label ghostdock.ephemeral, else auto_delete. ephemeral is chosen here only. |
1201
- | `--auto-delete-after-days <integer>` | Days the VM stays stopped before the platform worker deletes the record (0–365; 0 deletes it when it stops). Omit for the platform default (14). Not with keep. A container a person locked holds it. |
1202
- | `--provider <string>` | Provider id from provider list (not the provider kind). Omit to use the organization default (the org choice, else the platform default); if that provider lacks a capability this create needs, the first listed provider that accepts new VMs and has it is used. When no provider fits, the call fails with a not-configured error. |
1203
- | `--environment <object>` | Environment to give this VM. organization: names of organization entries (from env list) to export under their own names. bindings: remap org entries onto slot names ({ name: slot, organization: orgEntryName }). local: VM-only variables/secrets to create with the VM (kind required for each). Both land as ordinary process environment variables ($NAME / process.env.NAME); a local entry overrides an organization entry of the same name. When booting from an organization snapshot, omit organization/bindings/local to keep manifest env defaults, but still supply every name in requiredEnvironment (via organization, bindings, or local). Otherwise a VM gets nothing unless listed here. (JSON object) |
1204
- | `--image-base <string>` | How the disk is made for one of Ghostdock's platform images: auto (default) clones the host's image base, a disk with the image already on it, when there is one; off always starts from an empty disk that pulls the image. For tests and comparisons; other images always start empty. |
1205
- | `--urls <array>` | Changes to the image’s or snapshot’s URLs, keyed by port. Omit for the image URLs as they are; otherwise you get the image URLs plus yours: an entry on the same port replaces that URL completely (omitted fields take their defaults), and { port, remove: true } drops it; removing a port the image does not declare does nothing. A required port cannot be removed. TCP URLs are always public. (JSON array) |
1206
- | `--mcps <array>` | Changes to the image’s or snapshot’s MCP exposures, keyed by name. Omit for the image MCPs as they are; otherwise you get the image MCPs plus yours: an entry with the same name replaces that MCP completely, and { name, remove: true } drops it; removing a name the image does not declare does nothing. A required MCP (requiredMcps) cannot be removed. (JSON array) |
1207
-
1208
- MCP tool: `vm_create`.
1209
-
1210
- ### `ghostdock vm default-container`
1211
-
1212
- Show, set or clear the VM’s default container. SSH, the terminal, files, commands and MCP land there when no container is named. Without container or clear it only shows the setting.
1213
-
1214
- ```
1215
- ghostdock vm default-container <vm> [flags]
1216
- ```
1217
-
1218
- | Argument | Description |
1219
- | --- | --- |
1220
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1221
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1222
- | `--container <string>` | Container to make the default, by name. The running VM must have it. |
1223
- | `--clear` | Clear the default. |
1224
- | `--start` | Start the container first when it is not running, without asking. |
1225
-
1226
- MCP tool: `vm_default_container`.
1227
-
1228
- ### `ghostdock vm delete`
1229
-
1230
- Permanently delete a VM and its files. Refused while it has locked containers (vm_has_locked_containers, naming them) unless deleteLocked is true.
1231
-
1232
- ```
1233
- ghostdock vm delete <vm> [flags]
1234
- ```
1235
-
1236
- | Argument | Description |
1237
- | --- | --- |
1238
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1239
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1240
- | `--delete-locked` | Delete it with its locked containers. Without it, a locked container refuses the delete. |
1241
-
1242
- MCP tool: `vm_delete`.
1243
-
1244
- ### `ghostdock vm env`
1245
-
1246
- Environment of one VM.
1247
-
1248
- ### `ghostdock vm env delete`
1249
-
1250
- Delete one of a VM’s own variables or secrets.
1251
-
1252
- ```
1253
- ghostdock vm env delete <name> --vm <string> [flags]
1254
- ```
1255
-
1256
- | Argument | Description |
1257
- | --- | --- |
1258
- | `<name>` | Environment variable name, e.g. DATABASE_URL. Letters, digits and underscores only. Case-sensitive; stored exactly as provided. Required. |
1259
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1260
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1261
- | `--restart` | When true and the VM is running, stop then start after saving so processes pick up the change. Default: sync only. |
1262
-
1263
- MCP tool: `vm_env_delete`.
1264
-
1265
- ### `ghostdock vm env get`
1266
-
1267
- Get a VM’s environment: selections, bindings and local entries. Shows each organization entry with whether it is selected, exportAs, and overriddenByLocal; secret values are withheld. Nothing is inherited.
1268
-
1269
- ```
1270
- ghostdock vm env get <vm> [flags]
1271
- ```
1272
-
1273
- | Argument | Description |
1274
- | --- | --- |
1275
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1276
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1277
-
1278
- MCP tool: `vm_env_get`.
1279
-
1280
- ### `ghostdock vm env select`
1281
-
1282
- Replace the organization entries a VM exports. Full replace: environment is the whole list ([] clears it), and omitting bindings clears the remaps. Running processes keep their old values until restarted (pass restart). Read the environment skill (`ghostdock skill get environment`).
1283
-
1284
- ```
1285
- ghostdock vm env select <vm> --environment <array> [flags]
1286
- ```
1287
-
1288
- | Argument | Description |
1289
- | --- | --- |
1290
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1291
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1292
- | `--environment <array>` | Organization catalogue entry names to export under their own names. Pass [] to clear plain selections. (JSON array) Required. |
1293
- | `--bindings <array>` | Slot-centric org bindings: export an organization entry under a (possibly different) VM env name. Omit to clear existing remaps (full replace). (JSON array) |
1294
- | `--restart` | When true and the VM is running, stop then start after saving so processes pick up the change. Default: sync only; already-running processes keep the old values until restarted. |
1295
-
1296
- MCP tool: `vm_env_select`.
1297
-
1298
- ### `ghostdock vm env set`
1299
-
1300
- Create or replace one of a VM’s own variables or secrets. It overrides an organization entry of the same name. kind is required when creating. Setting secrets via this tool is allowed; prefer the Ghostdock CLI so values stay out of the conversation, and never put them in commands.
1301
-
1302
- ```
1303
- ghostdock vm env set <name> --vm <string> --value <string> [flags]
1304
- ```
1305
-
1306
- | Argument | Description |
1307
- | --- | --- |
1308
- | `<name>` | Environment variable name, e.g. DATABASE_URL. Letters, digits and underscores only. Case-sensitive; stored exactly as provided. Required. |
1309
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1310
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1311
- | `--value <string>` | The value to store. A secret value can be replaced later but never read back. Required. |
1312
- | `--kind <string>` | Required when creating. Use "secret" for credentials; secret values can be replaced but never read back. Omit when updating to keep the existing kind. |
1313
- | `--comment <string>` | Optional note shown with the entry, e.g. what it is for. |
1314
- | `--restart` | When true and the VM is running, stop then start after saving so processes pick up the change. Default: sync only. |
1315
-
1316
- MCP tool: `vm_env_set`.
1317
-
1318
- ### `ghostdock vm file`
1319
-
1320
- Files inside a VM.
1321
-
1322
- ### `ghostdock vm file list`
1323
-
1324
- List the files in a VM directory. Default: the container's start folder (its dir).
1325
-
1326
- ```
1327
- ghostdock vm file list <vm> [flags]
1328
- ```
1329
-
1330
- | Argument | Description |
1331
- | --- | --- |
1332
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1333
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1334
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1335
- | `--path <string>` | Directory to list: absolute, or relative to the container's start folder (its dir: the login user's home, else WORKDIR, else /). Defaults to that folder. |
1336
- | `--start` | Start the container first when it is not running, without asking. |
1337
-
1338
- MCP tool: `vm_file_list`.
1339
-
1340
- ### `ghostdock vm file read`
1341
-
1342
- Read a file from a VM: utf8 text, or base64 for small binaries.
1343
-
1344
- ```
1345
- ghostdock vm file read <path> --vm <string> [flags]
1346
- ```
1347
-
1348
- | Argument | Description |
1349
- | --- | --- |
1350
- | `<path>` | File path: absolute, or relative to the container's start folder (for example src/App.vue). Required. |
1351
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1352
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1353
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1354
- | `--start` | Start the container first when it is not running, without asking. |
1355
-
1356
- MCP tool: `vm_file_read`.
1357
-
1358
- ### `ghostdock vm file upload`
1359
-
1360
- Upload local files or directories to a VM's container, into its start folder (the login user's home, else WORKDIR, else /).
1361
-
1362
- ```
1363
- ghostdock vm file upload <vm> [path] [flags]
1364
- ```
1365
-
1366
- | Argument | Description |
1367
- | --- | --- |
1368
- | `<vm>` | VM name or id. Required. |
1369
- | `--org <value>` | Organization id or slug, from `ghostdock organization list` (default: GHOSTDOCK_ORG, then `ghostdock organization use`). |
1370
- | `--container <value>` | Container the files land in, by name, from `ghostdock vm container list`. Default: the VM's default container, else the one running container. |
1371
- | `--start` | Start the container first when it is not running, without asking. |
1372
- | `--zip <value>` | Local ZIP file to upload. |
1373
- | `<path>` | File or directory to upload (additional paths are allowed). |
1374
-
1375
- MCP tool: `vm_file_upload`.
1376
-
1377
- ### `ghostdock vm list`
1378
-
1379
- List the VMs of an organization, with their lifecycle and deadlines. Each has a name (e.g. quiet-harbor), unique in the organization, that every VM tool accepts as `vm`.
1380
-
1381
- ```
1382
- ghostdock vm list [flags]
1383
- ```
1384
-
1385
- | Argument | Description |
1386
- | --- | --- |
1387
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1388
-
1389
- MCP tool: `vm_list`.
1390
-
1391
- ### `ghostdock vm mcp`
1392
-
1393
- MCP endpoints a VM exposes.
1394
-
1395
- ### `ghostdock vm mcp create`
1396
-
1397
- Expose an MCP server running in a VM. Idempotent by name.
1398
-
1399
- ```
1400
- ghostdock vm mcp create <vm> --name <string> --port <integer> [flags]
1401
- ```
1402
-
1403
- | Argument | Description |
1404
- | --- | --- |
1405
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1406
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1407
- | `--name <string>` | Endpoint name, unique in the VM. Letters, digits, _ and -, starting with a letter. Required. |
1408
- | `--port <integer>` | Port the MCP server listens on inside the VM. Required. |
1409
- | `--path <string>` | HTTP path of the MCP endpoint. Default /mcp. |
1410
- | `--auto-wake` | Start the VM when the endpoint is called while it is stopped. Default false. |
1411
-
1412
- MCP tool: `vm_mcp_create`.
1413
-
1414
- ### `ghostdock vm mcp delete`
1415
-
1416
- Delete an MCP endpoint of a VM.
1417
-
1418
- ```
1419
- ghostdock vm mcp delete <mcp-id>
1420
- ```
1421
-
1422
- | Argument | Description |
1423
- | --- | --- |
1424
- | `<mcp-id>` | MCP endpoint id, from vm mcp list or vm mcp create. Required. |
1425
-
1426
- MCP tool: `vm_mcp_delete`.
1427
-
1428
- ### `ghostdock vm mcp list`
1429
-
1430
- List the MCP endpoints a VM exposes (name, port, path, autoWake).
1431
-
1432
- ```
1433
- ghostdock vm mcp list <vm> [flags]
1434
- ```
1435
-
1436
- | Argument | Description |
1437
- | --- | --- |
1438
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1439
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1440
-
1441
- MCP tool: `vm_mcp_list`.
1442
-
1443
- ### `ghostdock vm mcp update`
1444
-
1445
- Change an MCP endpoint’s name, port, path or autoWake setting.
1446
-
1447
- ```
1448
- ghostdock vm mcp update <mcp-id> [flags]
1449
- ```
1450
-
1451
- | Argument | Description |
1452
- | --- | --- |
1453
- | `<mcp-id>` | MCP endpoint id, from vm mcp list or vm mcp create. Required. |
1454
- | `--name <string>` | New endpoint name. Omit to keep it. |
1455
- | `--port <integer>` | New port inside the VM. Omit to keep it. |
1456
- | `--path <string>` | New HTTP path. Omit to keep it. |
1457
- | `--auto-wake` | Start the VM when the endpoint is called while it is stopped. Omit to keep it. |
1458
-
1459
- MCP tool: `vm_mcp_update`.
1460
-
1461
- ### `ghostdock vm resize`
1462
-
1463
- Change a VM’s CPU and/or memory. While running only increases are allowed; stop it first to decrease (this tool does not stop it). Disk: vm resize-disk.
1464
-
1465
- ```
1466
- ghostdock vm resize <vm> [flags]
1467
- ```
1468
-
1469
- | Argument | Description |
1470
- | --- | --- |
1471
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1472
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1473
- | `--cpu <number>` | Number of CPUs. |
1474
- | `--memory-gib <number>` | Memory in GiB. |
1475
-
1476
- MCP tool: `vm_resize`.
1477
-
1478
- ### `ghostdock vm resize-disk`
1479
-
1480
- Grow a VM’s disk. The VM must be stopped first (this tool does not stop it). Disk only grows, never shrinks.
1481
-
1482
- ```
1483
- ghostdock vm resize-disk <vm> --disk-gib <number> [flags]
1484
- ```
1485
-
1486
- | Argument | Description |
1487
- | --- | --- |
1488
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1489
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1490
- | `--disk-gib <number>` | New total disk size in GiB; must be larger than the current size. Required. |
1491
-
1492
- MCP tool: `vm_resize_disk`.
1493
-
1494
- ### `ghostdock vm shell`
1495
-
1496
- Shell sessions that keep cwd and environment between commands.
1497
-
1498
- ### `ghostdock vm shell close`
1499
-
1500
- Close a shell session.
1501
-
1502
- ```
1503
- ghostdock vm shell close <session-id> --vm <string> [flags]
1504
- ```
1505
-
1506
- | Argument | Description |
1507
- | --- | --- |
1508
- | `<session-id>` | Session id from vm shell create. Required. |
1509
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1510
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1511
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1512
- | `--start` | Start the container first when it is not running, without asking. |
1513
-
1514
- MCP tool: `vm_shell_close`.
1515
-
1516
- ### `ghostdock vm shell create`
1517
-
1518
- Open a shell session that keeps cwd and environment between commands. Starts the VM when allowed; the session ends at idle-stop.
1519
-
1520
- ```
1521
- ghostdock vm shell create <vm> [flags]
1522
- ```
1523
-
1524
- | Argument | Description |
1525
- | --- | --- |
1526
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1527
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1528
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1529
- | `--session-id <string>` | Id for the new session: a slug. Omit to generate one. |
1530
- | `--start` | Start the container first when it is not running, without asking. |
1531
-
1532
- MCP tool: `vm_shell_create`.
1533
-
1534
- ### `ghostdock vm ssh`
1535
-
1536
- SSH access to a VM.
1537
-
1538
- ### `ghostdock vm ssh get`
1539
-
1540
- Get temporary SSH access to a VM (command and token, 60 minutes). Starts the VM when needed. Idle-stop still applies, independent of the token.
1541
-
1542
- ```
1543
- ghostdock vm ssh get <vm> [flags]
1544
- ```
1545
-
1546
- | Argument | Description |
1547
- | --- | --- |
1548
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1549
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1550
- | `--container <string>` | Container to work in, by name, from vm container list. Default: the VM’s default container, else the one running container. With several running and no default the call fails and lists them. |
1551
- | `--start` | Start the container first when it is not running, without asking. |
1552
-
1553
- MCP tool: `vm_ssh_get`.
1554
-
1555
- ### `ghostdock vm ssh revoke`
1556
-
1557
- Revoke a VM’s active SSH access.
1558
-
1559
- ```
1560
- ghostdock vm ssh revoke <vm> [flags]
1561
- ```
1562
-
1563
- | Argument | Description |
1564
- | --- | --- |
1565
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1566
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1567
-
1568
- MCP tool: `vm_ssh_revoke`.
1569
-
1570
- ### `ghostdock vm status`
1571
-
1572
- Get a VM’s status and lifecycle deadlines without waking it. Returns idleStopsAt, deletesAt and `boot` (the last start: VM and container times in ms) and does not reset idle activity.
1573
-
1574
- ```
1575
- ghostdock vm status <vm> [flags]
1576
- ```
1577
-
1578
- | Argument | Description |
1579
- | --- | --- |
1580
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1581
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1582
-
1583
- MCP tool: `vm_status`.
1584
-
1585
- ### `ghostdock vm stop`
1586
-
1587
- Stop a running VM without deleting its files.
1588
-
1589
- ```
1590
- ghostdock vm stop <vm> [flags]
1591
- ```
1592
-
1593
- | Argument | Description |
1594
- | --- | --- |
1595
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1596
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1597
-
1598
- MCP tool: `vm_stop`.
1599
-
1600
- ### `ghostdock vm storage`
1601
-
1602
- ### `ghostdock vm storage delete`
1603
-
1604
- Delete a named volume or a top-level VM folder, with everything in it. Refused while a container mounts it (in any state: a stopped one counts, so stopping does not help), mounts a folder above it (a bind of /), or a volume keeps its data in the folder: remove those first.
1605
-
1606
- ```
1607
- ghostdock vm storage delete <vm> --kind <string> --name <string> [flags]
1608
- ```
1609
-
1610
- | Argument | Description |
1611
- | --- | --- |
1612
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1613
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1614
- | `--kind <string>` | volume or folder. Required. |
1615
- | `--name <string>` | The volume’s name, or the folder’s path in the VM (/srv, not /srv/app). Required. |
1616
-
1617
- MCP tool: `vm_storage_delete`.
1618
-
1619
- ### `ghostdock vm storage list`
1620
-
1621
- List a VM’s volumes and VM folders. The VM folders are where bind mounts land. Each with its size and sizeState (measured; measuring: ask again in a few seconds; tooBig: too big to measure cheaply; outside: a volume bound outside the VM folders, not measured nor browsable) and the containers using it, plus every container’s mounts. truncated says entries were left out. A stopped VM lists none (it is not started for this).
1622
-
1623
- ```
1624
- ghostdock vm storage list <vm> [flags]
1625
- ```
1626
-
1627
- | Argument | Description |
1628
- | --- | --- |
1629
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1630
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1631
-
1632
- MCP tool: `vm_storage_list`.
1633
-
1634
- ### `ghostdock vm tool`
1635
-
1636
- Tools of the MCP servers inside a VM.
1637
-
1638
- ### `ghostdock vm tool call`
1639
-
1640
- Call a tool on an MCP server inside a VM. Wakes a stopped VM when the endpoint has autoWake.
1641
-
1642
- ```
1643
- ghostdock vm tool call <name> --vm <string> --arguments <object> [flags]
1644
- ```
1645
-
1646
- | Argument | Description |
1647
- | --- | --- |
1648
- | `<name>` | Tool name, from vm tool list. Required. |
1649
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1650
- | `--vm <string>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1651
- | `--arguments <object>` | Tool arguments as a JSON object. (JSON object) Required. |
1652
- | `--mcp-name <string>` | MCP endpoint to call. Needed when several endpoints expose the same tool name. |
1653
-
1654
- MCP tool: `vm_tool_call`.
1655
-
1656
- ### `ghostdock vm tool list`
1657
-
1658
- List the tools of the MCP servers a VM exposes. A server that cannot be reached is reported in errors; the others are still listed.
1659
-
1660
- ```
1661
- ghostdock vm tool list <vm> [flags]
1662
- ```
1663
-
1664
- | Argument | Description |
1665
- | --- | --- |
1666
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1667
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1668
- | `--mcp-name <string>` | Only list the tools of this MCP endpoint. |
1669
-
1670
- MCP tool: `vm_tool_list`.
1671
-
1672
- ### `ghostdock vm up`
1673
-
1674
- Create a VM from a template by its name: `ghostdock vm up nginx`. The organization’s template of that name, else the platform’s (template list); platform true takes the platform’s. The same as vm create with source { type: "template", name }: the template's source and defaults, under the fields given here. Returns like vm create, with the template it used.
1675
-
1676
- ```
1677
- ghostdock vm up <template> [flags]
1678
- ```
1679
-
1680
- | Argument | Description |
1681
- | --- | --- |
1682
- | `<template>` | Template name from template list, e.g. headless. Required. |
1683
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1684
- | `--platform` | Take the platform’s template of this name even when the organization has its own (shadows). |
1685
- | `--display-name <string>` | Display name for the VM. Optional. |
1686
- | `--resources <object>` | Compute sizing. For image/dockerfile/compose: layered on platform defaults when omitted. For snapshot: optional override applied via resize after create. (JSON object) |
1687
- | `--auto-stop-interval-minutes <number>` | Minutes of inactivity before the platform worker idle-stops the VM. -1 means always on. 0 is rejected. Omit for the platform default. Provider-native timers are optional backup. |
1688
- | `--lifecycle <string>` | What may make the VM disappear on its own. ephemeral: every stop wipes the VM and its disk, and the next start runs its Compose project again (edits in the project folder kept, everything else gone; locks too). auto_delete (default): a stop keeps the disk, and the record goes autoDeleteAfterDays after the stop. keep: never removed automatically. Omit for the image label ghostdock.ephemeral, else auto_delete. ephemeral is chosen here only. |
1689
- | `--auto-delete-after-days <integer>` | Days the VM stays stopped before the platform worker deletes the record (0–365; 0 deletes it when it stops). Omit for the platform default (14). Not with keep. A container a person locked holds it. |
1690
- | `--provider <string>` | Provider id from provider list (not the provider kind). Omit to use the organization default (the org choice, else the platform default); if that provider lacks a capability this create needs, the first listed provider that accepts new VMs and has it is used. When no provider fits, the call fails with a not-configured error. |
1691
- | `--environment <object>` | Environment to give this VM. organization: names of organization entries (from env list) to export under their own names. bindings: remap org entries onto slot names ({ name: slot, organization: orgEntryName }). local: VM-only variables/secrets to create with the VM (kind required for each). Both land as ordinary process environment variables ($NAME / process.env.NAME); a local entry overrides an organization entry of the same name. When booting from an organization snapshot, omit organization/bindings/local to keep manifest env defaults, but still supply every name in requiredEnvironment (via organization, bindings, or local). Otherwise a VM gets nothing unless listed here. (JSON object) |
1692
- | `--urls <array>` | Changes to the template’s and its image’s URLs, keyed by port, as in vm create: the same port replaces, { port, remove: true } drops. (JSON array) |
1693
-
1694
- MCP tool: `vm_up`.
1695
-
1696
- ### `ghostdock vm update`
1697
-
1698
- Change a VM’s display name, idle-stop interval or lifecycle. Omit a field to keep it; null resets it to the platform default. Ephemeral is chosen at create only.
1699
-
1700
- ```
1701
- ghostdock vm update <vm> [flags]
1702
- ```
1703
-
1704
- | Argument | Description |
1705
- | --- | --- |
1706
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1707
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1708
- | `--display-name <string>` | New display name. Null clears it; omit to keep it. |
1709
- | `--auto-stop-interval-minutes <number>` | Minutes of inactivity before the platform worker idle-stops the VM. -1 always on. 0 is rejected. Null resets to the platform default. Provider-native timers are optional backup. |
1710
- | `--lifecycle <string>` | auto_delete: the record goes autoDeleteAfterDays after the VM stops. keep: never removed automatically. |
1711
- | `--auto-delete-after-days <integer>` | Days stopped before the record is deleted (0–365; 0 deletes it when it stops). Null writes the platform default. Not with keep. |
1712
-
1713
- MCP tool: `vm_update`.
1714
-
1715
- ### `ghostdock vm url`
1716
-
1717
- URLs that expose VM ports.
1718
-
1719
- ### `ghostdock vm url create`
1720
-
1721
- Expose a VM port as a URL. Idempotent by port: when the VM already has a URL on that port, it is returned unchanged (autoWake, public and title are not applied); use vm url update to change it. HTTP defaults to private with no wake-on-visit; TCP URLs use TLS (not HTTP) and are always public — for a private port use vm ssh get and an SSH forward. Read the vm skill (`ghostdock skill get vm`) for TCP clients.
1722
-
1723
- ```
1724
- ghostdock vm url create <vm> --port <integer> [flags]
1725
- ```
1726
-
1727
- | Argument | Description |
1728
- | --- | --- |
1729
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1730
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1731
- | `--port <integer>` | Port inside the VM to expose. Required. |
1732
- | `--protocol <string>` | "http" (default) or "tcp". TCP URLs use TLS and are always public. |
1733
- | `--auto-wake` | Start the VM when the URL is visited while it is stopped. Default false. |
1734
- | `--public` | Reachable without signing in. Default false; TCP URLs are always public. |
1735
- | `--title <string>` | Name shown for the URL, up to 40 characters. A titled HTTP URL gets its own button on the VM card; TCP titles are shown in URL lists. Untitled HTTP URLs are listed under "Open URL". |
1736
-
1737
- MCP tool: `vm_url_create`.
1738
-
1739
- ### `ghostdock vm url delete`
1740
-
1741
- Delete a VM URL.
1742
-
1743
- ```
1744
- ghostdock vm url delete <url-id>
1745
- ```
1746
-
1747
- | Argument | Description |
1748
- | --- | --- |
1749
- | `<url-id>` | VM URL id, from vm url list or vm url create. Required. |
1750
-
1751
- MCP tool: `vm_url_delete`.
1752
-
1753
- ### `ghostdock vm url list`
1754
-
1755
- List the URLs that expose a VM’s ports, with protocol, access and title. A titled URL (for example `Desktop`, the desktop image’s desktop in a browser) gets its own button in the app.
1756
-
1757
- ```
1758
- ghostdock vm url list <vm> [flags]
1759
- ```
1760
-
1761
- | Argument | Description |
1762
- | --- | --- |
1763
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1764
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1765
-
1766
- MCP tool: `vm_url_list`.
1767
-
1768
- ### `ghostdock vm url update`
1769
-
1770
- Change a VM URL’s port, protocol, autoWake, public setting or title. TCP cannot be private.
1771
-
1772
- ```
1773
- ghostdock vm url update <url-id> [flags]
1774
- ```
1775
-
1776
- | Argument | Description |
1777
- | --- | --- |
1778
- | `<url-id>` | VM URL id, from vm url list or vm url create. Required. |
1779
- | `--port <integer>` | New port inside the VM. Omit to keep it. |
1780
- | `--protocol <string>` | "http" or "tcp". Omit to keep the current protocol. |
1781
- | `--auto-wake` | Start the VM when the URL is visited while it is stopped. Omit to keep it. |
1782
- | `--public` | Reachable without signing in. Omit to keep it; TCP cannot be made private. |
1783
- | `--title <string>` | Name shown for the URL, up to 40 characters. A titled HTTP URL gets its own button on the VM card; TCP titles are shown in URL lists. Untitled HTTP URLs are listed under "Open URL". Omit to keep it; null removes it. |
1784
-
1785
- MCP tool: `vm_url_update`.
1786
-
1787
- ### `ghostdock vm wake`
1788
-
1789
- Start a stopped VM, or reset the idle-stop countdown of a running one. Returns status, idleStopsAt / deletesAt, and `boot` (VM and container start times in ms; null when it was already running).
1790
-
1791
- ```
1792
- ghostdock vm wake <vm> [flags]
1793
- ```
1794
-
1795
- | Argument | Description |
1796
- | --- | --- |
1797
- | `<vm>` | VM name (e.g. quiet-harbor) or id, from vm list or vm create. Names are unique within the organization. Required. |
1798
- | `--org <string>` | Organization id or slug, from organization list. Ids survive renames; slugs change when the organization is renamed. Defaults to GHOSTDOCK_ORG, then `organization use`. |
1799
-
1800
- MCP tool: `vm_wake`.
1801
-
1802
- ## `ghostdock whoami`
1803
-
1804
- Show the account this CLI is currently authenticated as.
1805
-
1806
- ```
1807
- ghostdock whoami
1808
- ```