@exedev/sdk 0.0.6 → 0.1.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.
@@ -0,0 +1,1432 @@
1
+ import type { CommandResults } from "./types.js";
2
+ /** Options every command method accepts. */
3
+ export interface CallOptions {
4
+ /** Aborts the request. */
5
+ signal?: AbortSignal;
6
+ }
7
+ /**
8
+ * The JSON a command returns: the type CommandResults declares for its path,
9
+ * or unknown.
10
+ */
11
+ export type CommandResult<P extends string> = P extends keyof CommandResults ? CommandResults[P] : unknown;
12
+ /**
13
+ * How Commands.run writes an option on the command line: bool as --name or
14
+ * --name=false, number and string as --name=value, and repeated as one
15
+ * --name=value per element.
16
+ */
17
+ export type FlagKind = "bool" | "number" | "string" | "repeated";
18
+ /** A positional argument as passed to Commands.run; arrays are spread. */
19
+ export type Arg = string | readonly string[] | undefined;
20
+ /** Options for {@link Commands.ls}. */
21
+ export interface LsOptions extends CallOptions {
22
+ /** group VMs by none|tag|region|type (default: none) */
23
+ group?: "none" | "tag" | "region";
24
+ /** show detailed information */
25
+ l?: boolean;
26
+ }
27
+ /** Options for {@link Commands.new}. */
28
+ export interface NewOptions extends CallOptions {
29
+ /** short note about the VM (max 200 bytes) */
30
+ comment?: string;
31
+ /** number of CPUs (default 2; run 'billing plan' for plan limits) */
32
+ cpu?: number;
33
+ /** disk size (e.g., 20, 20GB, 50G) */
34
+ disk?: string;
35
+ /** environment variable in KEY=VALUE format (can be specified multiple times) */
36
+ env?: string | readonly string[];
37
+ /** container image (default: exeuntu) */
38
+ image?: string;
39
+ /** integration name to attach (can be specified multiple times or comma-separated) */
40
+ integration?: string | readonly string[];
41
+ /** memory allocation (e.g., 4, 4GB, 8G) */
42
+ memory?: string;
43
+ /** VM name (auto-generated if not specified) */
44
+ name?: string;
45
+ /** do not send email notification */
46
+ "no-email"?: boolean;
47
+ /** use ordinary placement (not available on plans that place new VMs in pools) */
48
+ "no-pool"?: boolean;
49
+ /** create the VM in one of your team's pools (see 'pool list') */
50
+ pool?: string;
51
+ /** initial prompt to send to Shelley after VM creation (requires an image with Shelley, like exeuntu); use /dev/stdin to read from stdin */
52
+ prompt?: string;
53
+ /** private container registry credentials as USERNAME:PASSWORD (e.g. octocat:ghp_xxx) for the registry hosting --image */
54
+ "registry-auth"?: string;
55
+ /** alias for --standalone */
56
+ sandbox?: boolean;
57
+ /** setup script to run on first boot (max 10KiB); supports \n for newlines; use /dev/stdin to pipe from stdin */
58
+ "setup-script"?: string;
59
+ /** create a standalone VM with its own reserved capacity (requires a plan with standalone VMs and team approval) */
60
+ standalone?: boolean;
61
+ /** tag to add to the VM (can be specified multiple times or comma-separated) */
62
+ tag?: string | readonly string[];
63
+ }
64
+ /** Options for {@link Commands.tag}. */
65
+ export interface TagOptions extends CallOptions {
66
+ /** delete tag */
67
+ d?: boolean;
68
+ }
69
+ /** Options for {@link Commands.cp}. */
70
+ export interface CpOptions extends CallOptions {
71
+ /** copy tags from source VM (use --copy-tags=false to disable) (default: true) */
72
+ "copy-tags"?: boolean;
73
+ /** number of CPUs */
74
+ cpu?: number;
75
+ /** disk size (e.g., 20, 20GB, 50G) */
76
+ disk?: string;
77
+ /** memory allocation (e.g., 4, 4GB, 8G) */
78
+ memory?: string;
79
+ /** create the copy in one of your team's pools (see 'pool list') */
80
+ pool?: string;
81
+ /** alias for --standalone */
82
+ sandbox?: boolean;
83
+ /** create the copy as a standalone VM with its own reserved capacity (requires a plan with standalone VMs and team approval) */
84
+ standalone?: boolean;
85
+ }
86
+ /** Options for {@link Commands.resize}. */
87
+ export interface ResizeOptions extends CallOptions {
88
+ /** number of CPUs */
89
+ cpu?: number;
90
+ /** new total disk size (e.g., 25, 25GB) - disk size can only increase; billed by usage above your plan's included disk, not by size */
91
+ disk?: string;
92
+ /** memory allocation (e.g., 4, 4GB, 8G) */
93
+ memory?: string;
94
+ }
95
+ /** Options for {@link Commands.domainAdd}. */
96
+ export interface DomainAddOptions extends CallOptions {
97
+ /** issue a wildcard (*.<parent>) certificate via DNS-01 delegation */
98
+ wildcard?: boolean;
99
+ }
100
+ /** Options for {@link Commands.domainLs}. */
101
+ export interface DomainLsOptions extends CallOptions {
102
+ /** list domains across all your VMs */
103
+ a?: boolean;
104
+ }
105
+ /** Options for {@link Commands.shareShow}. */
106
+ export interface ShareShowOptions extends CallOptions {
107
+ /** show QR code for the URL */
108
+ qr?: boolean;
109
+ }
110
+ /** Options for {@link Commands.shareAdd}. */
111
+ export interface ShareAddOptions extends CallOptions {
112
+ /** message to include in share invitation */
113
+ message?: string;
114
+ /** show QR code for the URL */
115
+ qr?: boolean;
116
+ /** grant/revoke shell (SSH, Terminal, Shelley) access instead of web-only */
117
+ root?: boolean;
118
+ }
119
+ /** Options for {@link Commands.shareRemove}. */
120
+ export interface ShareRemoveOptions extends CallOptions {
121
+ /** grant/revoke shell (SSH, Terminal, Shelley) access instead of web-only */
122
+ root?: boolean;
123
+ }
124
+ /** Options for {@link Commands.shareAddLink}. */
125
+ export interface ShareAddLinkOptions extends CallOptions {
126
+ /** show QR code for the URL */
127
+ qr?: boolean;
128
+ }
129
+ /** Options for {@link Commands.shareReceiveEmail}. */
130
+ export interface ShareReceiveEmailOptions extends CallOptions {
131
+ /** restrict who the VM may email: all|known|owner|none */
132
+ "reply-policy"?: string;
133
+ }
134
+ /** Options for {@link Commands.sshKeyAdd}. */
135
+ export interface SshKeyAddOptions extends CallOptions {
136
+ /** scope key to VMs with this tag */
137
+ tag?: string;
138
+ }
139
+ /** Options for {@link Commands.sshKeyGenerateApiKey}. */
140
+ export interface SshKeyGenerateApiKeyOptions extends CallOptions {
141
+ /** comma-separated list of allowed commands (empty = defaults) */
142
+ cmds?: string;
143
+ /** expiry duration (e.g. 30d, 1y) or 'never' */
144
+ exp?: string;
145
+ /** label for this token's SSH key */
146
+ label?: string;
147
+ /** scope key to a VM (authenticates to its HTTPS endpoints instead of exe.dev commands) */
148
+ vm?: string;
149
+ }
150
+ /** Options for {@link Commands.integrationsList}. */
151
+ export interface IntegrationsListOptions extends CallOptions {
152
+ /** include per-VM usage (lastUsedAt, usedByVMs); JSON only */
153
+ usage?: boolean;
154
+ }
155
+ /** Options for {@link Commands.integrationsSetupGithub}. */
156
+ export interface IntegrationsSetupGithubOptions extends CallOptions {
157
+ /** disconnect GitHub account */
158
+ d?: boolean;
159
+ /** disconnect GitHub account */
160
+ delete?: boolean;
161
+ /** list connected GitHub accounts */
162
+ list?: boolean;
163
+ /** verify GitHub connections are working */
164
+ verify?: boolean;
165
+ }
166
+ /** Options for {@link Commands.integrationsSetupChatgpt}. */
167
+ export interface IntegrationsSetupChatgptOptions extends CallOptions {
168
+ /** disconnect ChatGPT account */
169
+ d?: boolean;
170
+ /** disconnect ChatGPT account */
171
+ delete?: boolean;
172
+ /** list connected ChatGPT accounts */
173
+ list?: boolean;
174
+ /** local ChatGPT account name (default chatgpt) */
175
+ name?: string;
176
+ /** verify ChatGPT connections are working */
177
+ verify?: boolean;
178
+ }
179
+ /** Options for {@link Commands.integrationsAdd}. */
180
+ export interface IntegrationsAddOptions extends CallOptions {
181
+ /** authenticate as your GitHub user instead of the exe.dev app (github only); pushes and API calls are attributed to your GitHub account */
182
+ "act-as-user"?: boolean;
183
+ /** attach to a spec (vm:<name>, tag:<name>, or auto:all); can be repeated */
184
+ attach?: string | readonly string[];
185
+ /** bearer token (shorthand for --header="Authorization:Bearer TOKEN"; combines with --header) */
186
+ bearer?: string;
187
+ /** optional free-form comment stored with the integration */
188
+ comment?: string;
189
+ /** install the canonical reflection integration with all fields; attaches to auto:all unless --attach=vm:<name> is supplied; no other customization */
190
+ default?: boolean;
191
+ /** comma-separated reflection fields to expose (email, integrations, tags, comment, default_port); 'all' exposes every field including ones added in the future; 'none' disables every field (default: all) */
192
+ fields?: string;
193
+ /** time-box every --attach to a duration from now (e.g. 2h, 45m); access lapses automatically */
194
+ for?: string;
195
+ /** header to inject (e.g. X-Auth:secret); can be repeated */
196
+ header?: string | readonly string[];
197
+ /** host keys for ssh-key: authorized_keys or known_hosts lines (hostnames are ignored), or '*' for any; can be repeated; one - reads them piped in, e.g. from ssh-keyscan */
198
+ "host-key"?: string | readonly string[];
199
+ /** integration name (required unless --default) */
200
+ name?: string;
201
+ /** create an endpoint integration with no injected authentication */
202
+ "no-auth"?: boolean;
203
+ /** authenticate with a generated API key scoped to the target VM; combines with --header/--bearer */
204
+ peer?: boolean;
205
+ /** restrict the integration to read access (github only); git push and write API calls are rejected */
206
+ readonly?: boolean;
207
+ /** GitHub repository in owner/repo format (required for github) */
208
+ repository?: string;
209
+ /** path prefix to strip from each request before forwarding (http-proxy only; e.g. /api/v3 makes /api/v3/users reach the target as /users) */
210
+ "strip-prefix"?: string;
211
+ /** target URL (required for http-proxy) */
212
+ target?: string;
213
+ /** create as a team integration */
214
+ team?: boolean;
215
+ }
216
+ /** Options for {@link Commands.integrationsRemove}. */
217
+ export interface IntegrationsRemoveOptions extends CallOptions {
218
+ /** operate on a team integration */
219
+ team?: boolean;
220
+ }
221
+ /** Options for {@link Commands.integrationsTest}. */
222
+ export interface IntegrationsTestOptions extends CallOptions {
223
+ /** operate on a team integration */
224
+ team?: boolean;
225
+ }
226
+ /** Options for {@link Commands.integrationsEdit}. */
227
+ export interface IntegrationsEditOptions extends CallOptions {
228
+ /** authenticate as your GitHub user instead of the exe.dev app (github only) */
229
+ "act-as-user"?: boolean;
230
+ /** bearer token (shorthand for --header="Authorization:Bearer TOKEN"; combines with --header) */
231
+ bearer?: string;
232
+ /** remove injected headers for http-proxy */
233
+ "clear-header"?: boolean;
234
+ /** free-form comment stored with the integration */
235
+ comment?: string;
236
+ /** comma-separated reflection fields to expose (email, integrations, tags, comment, default_port); 'all' exposes every field including ones added in the future; 'none' disables every field */
237
+ fields?: string;
238
+ /** header to inject for http-proxy; can be repeated; replaces all existing headers */
239
+ header?: string | readonly string[];
240
+ /** replacement host keys for ssh-key; replaces the whole list; can be repeated; one - reads them piped in */
241
+ "host-key"?: string | readonly string[];
242
+ /** remove injected authentication for http-proxy */
243
+ "no-auth"?: boolean;
244
+ /** restrict the integration to read access (github only) */
245
+ readonly?: boolean;
246
+ /** GitHub repository in owner/repo format */
247
+ repository?: string;
248
+ /** path prefix to strip from each request before forwarding (http-proxy only; e.g. /api/v3; empty clears it) */
249
+ "strip-prefix"?: string;
250
+ /** target URL for http-proxy */
251
+ target?: string;
252
+ /** edit a team integration */
253
+ team?: boolean;
254
+ /** replacement Slack or Discord webhook URL */
255
+ "webhook-url"?: string;
256
+ }
257
+ /** Options for {@link Commands.integrationsAttach}. */
258
+ export interface IntegrationsAttachOptions extends CallOptions {
259
+ /** time-box the attachment to a duration from now (e.g. 2h, 45m); access lapses automatically */
260
+ for?: string;
261
+ /** operate on a team integration */
262
+ team?: boolean;
263
+ /** time-box the attachment until an RFC3339 instant (e.g. 2026-08-03T20:00:00Z) */
264
+ until?: string;
265
+ }
266
+ /** Options for {@link Commands.integrationsDetach}. */
267
+ export interface IntegrationsDetachOptions extends CallOptions {
268
+ /** operate on a team integration */
269
+ team?: boolean;
270
+ }
271
+ /** Options for {@link Commands.integrationsRename}. */
272
+ export interface IntegrationsRenameOptions extends CallOptions {
273
+ /** operate on a team integration */
274
+ team?: boolean;
275
+ }
276
+ /** Options for {@link Commands.teamDisable}. */
277
+ export interface TeamDisableOptions extends CallOptions {
278
+ /** skip the confirmation prompt (required for non-interactive use, e.g. the web UI) */
279
+ yes?: boolean;
280
+ }
281
+ /** Options for {@link Commands.teamRemove}. */
282
+ export interface TeamRemoveOptions extends CallOptions {
283
+ /** transfer the member's VMs to this team member before removing them */
284
+ "transfer-vms-to"?: string;
285
+ }
286
+ /** Options for {@link Commands.teamBillingPlan}. */
287
+ export interface TeamBillingPlanOptions extends CallOptions {
288
+ /** list the plans you can switch to */
289
+ all?: boolean;
290
+ }
291
+ /** Options for {@link Commands.teamBillingUpdate}. */
292
+ export interface TeamBillingUpdateOptions extends CallOptions {
293
+ /** billing address city */
294
+ "address-city"?: string;
295
+ /** billing address country code */
296
+ "address-country"?: string;
297
+ /** billing address line 1 */
298
+ "address-line1"?: string;
299
+ /** billing address line 2 */
300
+ "address-line2"?: string;
301
+ /** billing address postal code */
302
+ "address-postal-code"?: string;
303
+ /** billing address state or province */
304
+ "address-state"?: string;
305
+ /** business name shown on invoices */
306
+ "business-name"?: string;
307
+ /** billing email shown on invoices */
308
+ email?: string;
309
+ /** customer name shown on invoices */
310
+ name?: string;
311
+ /** phone number shown on invoices */
312
+ phone?: string;
313
+ /** tax ID type shown on invoices (e.g. eu_vat, pl_nip, us_ein) */
314
+ "tax-id-type"?: string;
315
+ /** tax ID value shown on invoices */
316
+ "tax-id-value"?: string;
317
+ }
318
+ /** Options for {@link Commands.teamAuthSet}. */
319
+ export interface TeamAuthSetOptions extends CallOptions {
320
+ /** OIDC client ID */
321
+ "client-id"?: string;
322
+ /** OIDC client secret */
323
+ "client-secret"?: string;
324
+ /** display name for the SSO provider */
325
+ "display-name"?: string;
326
+ /** OIDC issuer URL (e.g. https://accounts.google.com) */
327
+ "issuer-url"?: string;
328
+ }
329
+ /** Options for {@link Commands.teamSettingsVmPlacementMemberPool}. */
330
+ export interface TeamSettingsVmPlacementMemberPoolOptions extends CallOptions {
331
+ /** CPUs to reserve for each member pool (required) */
332
+ cpus?: number;
333
+ /** maximum VMs in each member pool (Work defaults to 25 per vCPU, up to 1000) (default: 100) */
334
+ "max-vms"?: number;
335
+ }
336
+ /** Options for {@link Commands.teamVmLs}. */
337
+ export interface TeamVmLsOptions extends CallOptions {
338
+ /** group VMs by none|tag|region|type|user|access (default: none) */
339
+ group?: "none" | "tag" | "region" | "user" | "access";
340
+ /** show detailed information */
341
+ l?: boolean;
342
+ }
343
+ /** Options for {@link Commands.poolNew}. */
344
+ export interface PoolNewOptions extends CallOptions {
345
+ /** number of CPUs reserved for the pool (required; an even number of vCPUs from 2 through 512 (2, 4, 6, and so on; memory is 2 GiB per vCPU)) */
346
+ cpus?: number;
347
+ /** maximum VMs in the pool (Work defaults to the size limit of up to 25 VMs per vCPU, capped at 1000 VMs) (default: 100) */
348
+ "max-vms"?: number;
349
+ /** region code for the pool (required unless your team has dedicated hosts, which decide the region) */
350
+ region?: string;
351
+ }
352
+ /** Options for {@link Commands.poolList}. */
353
+ export interface PoolListOptions extends CallOptions {
354
+ /** statistics range: live, 24h, 7d, or 30d (requires --usage) (default: live) */
355
+ range?: string;
356
+ /** show live or historical CPU and starvation statistics */
357
+ usage?: boolean;
358
+ }
359
+ /** Options for {@link Commands.poolAdopt}. */
360
+ export interface PoolAdoptOptions extends CallOptions {
361
+ /** pool to adopt into (required) */
362
+ pool?: string;
363
+ /** VM to adopt (required) */
364
+ vm?: string;
365
+ }
366
+ /** Options for {@link Commands.poolDetach}. */
367
+ export interface PoolDetachOptions extends CallOptions {
368
+ /** leave the VM outside any pool instead of making it standalone (only while your team has poolless VMs) */
369
+ poolless?: boolean;
370
+ /** VM to detach from its pool (required) */
371
+ vm?: string;
372
+ }
373
+ /** Options for {@link Commands.poolResize}. */
374
+ export interface PoolResizeOptions extends CallOptions {
375
+ /** new pool size in vCPUs (required unless --max-vms is set; even, from 2 up to the placement limit) */
376
+ cpus?: number;
377
+ /** allow --max-vms below the current VM count (does not stop or evict VMs) */
378
+ force?: boolean;
379
+ /** maximum VMs in the pool (Work: at most 25 per vCPU, up to 1000) */
380
+ "max-vms"?: string;
381
+ }
382
+ /** Options for {@link Commands.billingPlan}. */
383
+ export interface BillingPlanOptions extends CallOptions {
384
+ /** list the plans you can switch to */
385
+ all?: boolean;
386
+ }
387
+ /** Options for {@link Commands.billingUsage}. */
388
+ export interface BillingUsageOptions extends CallOptions {
389
+ /** group usage by: vm */
390
+ group?: string;
391
+ /** time range: cycle (current billing cycle), 24h, 7d, or 30d (default: cycle) */
392
+ range?: string;
393
+ }
394
+ /** Options for {@link Commands.billingCreditsUsage}. */
395
+ export interface BillingCreditsUsageOptions extends CallOptions {
396
+ /** break each group down: models under a day or VM, VMs under a model */
397
+ detail?: boolean;
398
+ /** group spend by model, day, or box (default: model) */
399
+ group?: string;
400
+ /** calendar month to report, as YYYY-MM (default: this month, UTC) */
401
+ month?: string;
402
+ }
403
+ /** Options for {@link Commands.billingCreditsTransactions}. */
404
+ export interface BillingCreditsTransactionsOptions extends CallOptions {
405
+ /** how many transactions to show, 1-100 (default 20) */
406
+ limit?: string;
407
+ }
408
+ /** Options for {@link Commands.billingCreditsBuy}. */
409
+ export interface BillingCreditsBuyOptions extends CallOptions {
410
+ /** retry key so a repeated purchase of the same amount charges once */
411
+ "idempotency-key"?: string;
412
+ /** skip the confirmation prompt (required when not running interactively) */
413
+ yes?: boolean;
414
+ }
415
+ /** Options for {@link Commands.billingCapacity}. */
416
+ export interface BillingCapacityOptions extends CallOptions {
417
+ /** Personal capacity in vCPUs: 2, 4, 8, or 16 */
418
+ cpu?: number;
419
+ /** skip interactive confirmation (required for non-interactive changes) */
420
+ yes?: boolean;
421
+ }
422
+ /** Options for {@link Commands.billingUpdate}. */
423
+ export interface BillingUpdateOptions extends CallOptions {
424
+ /** billing address city */
425
+ "address-city"?: string;
426
+ /** billing address country code */
427
+ "address-country"?: string;
428
+ /** billing address line 1 */
429
+ "address-line1"?: string;
430
+ /** billing address line 2 */
431
+ "address-line2"?: string;
432
+ /** billing address postal code */
433
+ "address-postal-code"?: string;
434
+ /** billing address state or province */
435
+ "address-state"?: string;
436
+ /** business name shown on invoices */
437
+ "business-name"?: string;
438
+ /** billing email shown on invoices */
439
+ email?: string;
440
+ /** customer name shown on invoices */
441
+ name?: string;
442
+ /** phone number shown on invoices */
443
+ phone?: string;
444
+ /** tax ID type shown on invoices (e.g. eu_vat, pl_nip, us_ein) */
445
+ "tax-id-type"?: string;
446
+ /** tax ID value shown on invoices */
447
+ "tax-id-value"?: string;
448
+ }
449
+ /** Options for {@link Commands.billingInvoicesList}. */
450
+ export interface BillingInvoicesListOptions extends CallOptions {
451
+ /** account whose invoices to list: personal or team (default: personal) */
452
+ account?: string;
453
+ }
454
+ /** Options for {@link Commands.billingInvoicesShow}. */
455
+ export interface BillingInvoicesShowOptions extends CallOptions {
456
+ /** list VMs without a pool individually */
457
+ vms?: boolean;
458
+ }
459
+ /** Options for {@link Commands.billingReceipts}. */
460
+ export interface BillingReceiptsOptions extends CallOptions {
461
+ /** start of the period, YYYY-MM-DD */
462
+ from?: string;
463
+ /** end of the period, YYYY-MM-DD */
464
+ to?: string;
465
+ }
466
+ /** Options for {@link Commands.billingStatement}. */
467
+ export interface BillingStatementOptions extends CallOptions {
468
+ /** start of the period, YYYY-MM-DD */
469
+ from?: string;
470
+ /** end of the period, YYYY-MM-DD */
471
+ to?: string;
472
+ }
473
+ /** Options for {@link Commands.billingProviderLink}. */
474
+ export interface BillingProviderLinkOptions extends CallOptions {
475
+ /** team size: no marketplace team plans are available */
476
+ size?: string;
477
+ /** name for the team to create (only when you have no team yet) */
478
+ "team-name"?: string;
479
+ /** marketplace link token from the exe.dev link page */
480
+ token?: string;
481
+ }
482
+ /** Options for {@link Commands.browser}. */
483
+ export interface BrowserOptions extends CallOptions {
484
+ /** show QR code for the URL */
485
+ qr?: boolean;
486
+ }
487
+ /** Options for {@link Commands.stat}. */
488
+ export interface StatOptions extends CallOptions {
489
+ /** time range: 24h, 7d, or 30d (default: 24h) */
490
+ range?: string;
491
+ }
492
+ export declare abstract class Commands {
493
+ /**
494
+ * Runs the command at path. Undefined args are omitted; options are written
495
+ * as flags per flags, keyed by flag name.
496
+ */
497
+ protected abstract run(path: string, args: readonly Arg[], options: CallOptions | undefined, flags: Readonly<Record<string, FlagKind>>): Promise<any>;
498
+ /**
499
+ * Browse documentation
500
+ *
501
+ * Usage: `doc [slug-or-query...]`
502
+ *
503
+ * Tag-scoped API keys may run this command.
504
+ */
505
+ doc(slugOrQueries?: string | readonly string[], options?: CallOptions): Promise<CommandResult<"doc">>;
506
+ /**
507
+ * List your VMs
508
+ *
509
+ * Usage: `ls [-l] [--group=tag|region|type] [name|pattern]`
510
+ *
511
+ * Tag-scoped API keys may run this command.
512
+ */
513
+ ls(nameOrPattern?: string, options?: LsOptions): Promise<CommandResult<"ls">>;
514
+ /**
515
+ * Create a new VM
516
+ *
517
+ * CLI examples:
518
+ * ```
519
+ * new # just give me a computer
520
+ * new --name=b --image=ubuntu:22.04 # custom image and name
521
+ * new --cpu=4 --memory=16GB # 4 CPUs, 16GB RAM
522
+ * new --disk=50GB # 50GB disk
523
+ * new --tag=prod,staging # create with tags
524
+ * new --env FOO=bar --env BAZ=qux # with environment variables
525
+ * new --integration=myproxy # attach an integration
526
+ * echo 'build me a web app' | ssh exe.dev new --prompt=/dev/stdin
527
+ * ```
528
+ *
529
+ * Tag-scoped API keys may run this command.
530
+ */
531
+ new(options?: NewOptions): Promise<CommandResult<"new">>;
532
+ /**
533
+ * Delete a VM
534
+ *
535
+ * Usage: `rm <vmname>...`
536
+ *
537
+ * Tag-scoped API keys may run this command.
538
+ */
539
+ rm(vmnames: string | readonly string[], options?: CallOptions): Promise<CommandResult<"rm">>;
540
+ /**
541
+ * Restart a VM
542
+ *
543
+ * Usage: `restart <vmname>`
544
+ *
545
+ * Tag-scoped API keys may run this command.
546
+ */
547
+ restart(vmname: string, options?: CallOptions): Promise<CommandResult<"restart">>;
548
+ /**
549
+ * Pause a VM (snapshot RAM to disk, free its CPU and memory)
550
+ *
551
+ * Usage: `pause <vmname>`
552
+ *
553
+ * CLI examples:
554
+ * ```
555
+ * pause my-vm # snapshot RAM to disk; resume later with 'resume my-vm'
556
+ * ```
557
+ *
558
+ * Tag-scoped API keys may run this command.
559
+ */
560
+ pause(vmname: string, options?: CallOptions): Promise<CommandResult<"pause">>;
561
+ /**
562
+ * Resume a paused VM (restore RAM from disk)
563
+ *
564
+ * Usage: `resume <vmname>`
565
+ *
566
+ * Tag-scoped API keys may run this command.
567
+ */
568
+ resume(vmname: string, options?: CallOptions): Promise<CommandResult<"resume">>;
569
+ /**
570
+ * rename a vm
571
+ *
572
+ * Usage: `rename <oldname> <newname>`
573
+ *
574
+ * Tag-scoped API keys may run this command.
575
+ */
576
+ rename(oldname: string, newname: string, options?: CallOptions): Promise<CommandResult<"rename">>;
577
+ /**
578
+ * Add or remove tags on a VM
579
+ *
580
+ * Usage: `tag [-d] <vm> <tag-name> [tag-name...]`
581
+ *
582
+ * CLI examples:
583
+ * ```
584
+ * tag my-vm prod web # add tags
585
+ * tag -d my-vm prod web # remove tags
586
+ * ```
587
+ *
588
+ * Tag-scoped API keys may run this command.
589
+ */
590
+ tag(vm: string, tagNames: string | readonly string[], options?: TagOptions): Promise<CommandResult<"tag">>;
591
+ /**
592
+ * Copy an existing VM
593
+ *
594
+ * Usage: `cp <source-vm> [new-name] [--pool=<name>] [--memory=<size>] [--cpu=<count>] [--disk=<size>]`
595
+ *
596
+ * CLI examples:
597
+ * ```
598
+ * cp my-vm # copy with auto-generated name
599
+ * cp my-vm my-vm-copy # copy with specific name
600
+ * cp my-vm --cpu=4 --memory=16GB # copy with different resources
601
+ * cp my-vm my-pool-copy --pool=build # copy into a team pool
602
+ * cp my-vm --copy-tags=false # copy without tags
603
+ * ```
604
+ *
605
+ * Tag-scoped API keys may run this command.
606
+ */
607
+ cp(sourceVm: string, newName?: string, options?: CpOptions): Promise<CommandResult<"cp">>;
608
+ /**
609
+ * Resize a VM's resources (memory, CPU, disk)
610
+ *
611
+ * Usage: `resize <vmname> [--memory=<size>] [--cpu=<count>] [--disk=<size>]`
612
+ *
613
+ * Tag-scoped API keys may run this command.
614
+ */
615
+ resize(vmname: string, options?: ResizeOptions): Promise<CommandResult<"resize">>;
616
+ /**
617
+ * Set or clear a short comment on a VM
618
+ *
619
+ * Usage: `comment <hostname> <text>`
620
+ *
621
+ * CLI examples:
622
+ * ```
623
+ * comment my-vm staging copy
624
+ * comment my-vm "" # clear the comment
625
+ * ```
626
+ *
627
+ * Tag-scoped API keys may run this command.
628
+ */
629
+ comment(hostname: string, text: string, options?: CallOptions): Promise<CommandResult<"comment">>;
630
+ /**
631
+ * Link a custom domain to a VM
632
+ *
633
+ * Usage: `domain add [--wildcard] <vm> <domain>`
634
+ */
635
+ domainAdd(vm: string, domain: string, options?: DomainAddOptions): Promise<CommandResult<"domain add">>;
636
+ /**
637
+ * Remove a custom domain from a VM
638
+ *
639
+ * Usage: `domain rm <vm> <domain>`
640
+ */
641
+ domainRm(vm: string, domain: string, options?: CallOptions): Promise<CommandResult<"domain rm">>;
642
+ /**
643
+ * List custom domains for a VM (or -a for all your VMs)
644
+ *
645
+ * Usage: `domain ls <vm> | domain ls -a`
646
+ */
647
+ domainLs(args?: readonly string[], options?: DomainLsOptions): Promise<CommandResult<"domain ls">>;
648
+ /**
649
+ * Show current shares for a VM
650
+ *
651
+ * Usage: `share show <vm>`
652
+ *
653
+ * Tag-scoped API keys may run this command.
654
+ */
655
+ shareShow(vm: string, options?: ShareShowOptions): Promise<CommandResult<"share show">>;
656
+ /**
657
+ * Set the HTTP proxy port for a VM
658
+ *
659
+ * Usage: `share port <vm> [port]`
660
+ *
661
+ * CLI examples:
662
+ * ```
663
+ * share port mybox 8080
664
+ * ```
665
+ *
666
+ * Tag-scoped API keys may run this command.
667
+ */
668
+ sharePort(vm: string, port?: string, options?: CallOptions): Promise<CommandResult<"share port">>;
669
+ /**
670
+ * Make the HTTP proxy publicly accessible
671
+ *
672
+ * Usage: `share set-public <vm>`
673
+ *
674
+ * Tag-scoped API keys may run this command.
675
+ */
676
+ shareSetPublic(vm: string, options?: CallOptions): Promise<CommandResult<"share set-public">>;
677
+ /**
678
+ * Restrict the HTTP proxy to authenticated users
679
+ *
680
+ * Usage: `share set-private <vm>`
681
+ *
682
+ * Tag-scoped API keys may run this command.
683
+ */
684
+ shareSetPrivate(vm: string, options?: CallOptions): Promise<CommandResult<"share set-private">>;
685
+ /**
686
+ * Share VM with a user via email, or grant shell access with --root
687
+ *
688
+ * Usage: `share add <vm> <email|team> [--root] [--message='...']`
689
+ *
690
+ * CLI examples:
691
+ * ```
692
+ * share add mybox user@example.com
693
+ * share add mybox user@example.com --message='Check this out'
694
+ * share add mybox team
695
+ * share add mybox teammate@example.com --root
696
+ * share add mybox team --root
697
+ * ```
698
+ *
699
+ * Tag-scoped API keys may run this command.
700
+ */
701
+ shareAdd(vm: string, emailOrTeam: string, options?: ShareAddOptions): Promise<CommandResult<"share add">>;
702
+ /**
703
+ * Revoke a user's access to a VM, or downgrade shell access to web with --root
704
+ *
705
+ * Usage: `share remove <vm> <email|team> [--root]`
706
+ *
707
+ * CLI examples:
708
+ * ```
709
+ * share remove mybox user@example.com
710
+ * share remove mybox team
711
+ * share remove mybox teammate@example.com --root
712
+ * share remove mybox team --root
713
+ * ```
714
+ *
715
+ * Tag-scoped API keys may run this command.
716
+ */
717
+ shareRemove(vm: string, emailOrTeam: string, options?: ShareRemoveOptions): Promise<CommandResult<"share remove">>;
718
+ /**
719
+ * Create a shareable link for a VM
720
+ *
721
+ * Usage: `share add-link <vm>`
722
+ *
723
+ * Tag-scoped API keys may run this command.
724
+ */
725
+ shareAddLink(vm: string, options?: ShareAddLinkOptions): Promise<CommandResult<"share add-link">>;
726
+ /**
727
+ * Revoke a shareable link
728
+ *
729
+ * Usage: `share remove-link <vm> <token>`
730
+ *
731
+ * Tag-scoped API keys may run this command.
732
+ */
733
+ shareRemoveLink(vm: string, token: string, options?: CallOptions): Promise<CommandResult<"share remove-link">>;
734
+ /**
735
+ * Enable or disable inbound email for a VM
736
+ *
737
+ * Usage: `share receive-email <vm> [on|off] [--reply-policy=all|known|owner|none]`
738
+ *
739
+ * CLI examples:
740
+ * ```
741
+ * share receive-email mybox on
742
+ * share receive-email mybox off
743
+ * share receive-email mybox --reply-policy=known
744
+ * share receive-email mybox
745
+ * ```
746
+ *
747
+ * Tag-scoped API keys may run this command.
748
+ */
749
+ shareReceiveEmail(vm: string, onOrOff?: "on" | "off", options?: ShareReceiveEmailOptions): Promise<CommandResult<"share receive-email">>;
750
+ /**
751
+ * Show user information (email, keys, etc)
752
+ *
753
+ * Usage: `whoami`
754
+ *
755
+ * Tag-scoped API keys may run this command.
756
+ */
757
+ whoami(options?: CallOptions): Promise<CommandResult<"whoami">>;
758
+ /**
759
+ * List all SSH keys associated with your account
760
+ *
761
+ * Usage: `ssh-key list`
762
+ *
763
+ * Tag-scoped API keys may run this command.
764
+ */
765
+ sshKeyList(options?: CallOptions): Promise<CommandResult<"ssh-key list">>;
766
+ /**
767
+ * Add a new SSH key to your account
768
+ *
769
+ * Usage: `ssh-key add [--tag=TAG] <public-key>`
770
+ *
771
+ * CLI examples:
772
+ * ```
773
+ * ssh-key add 'ssh-ed25519 AAAA... my-laptop'
774
+ *
775
+ * To generate a new key locally:
776
+ * ssh-keygen -t ed25519 -C "mnemonic-for-this-key" -f ~/.ssh/id_exe
777
+ *
778
+ * The -C flag sets a name for the key.
779
+ *
780
+ * Then add the public key from your local shell:
781
+ * cat ~/.ssh/id_exe.pub | ssh exe.dev ssh-key add
782
+ *
783
+ * Or from the exe.dev shell:
784
+ * ssh-key add 'ssh-ed25519 AAAA... my-laptop'
785
+ * ```
786
+ *
787
+ * Tag-scoped API keys may run this command.
788
+ */
789
+ sshKeyAdd(publicKey: string, options?: SshKeyAddOptions): Promise<CommandResult<"ssh-key add">>;
790
+ /**
791
+ * Remove an SSH key from your account
792
+ *
793
+ * Usage: `ssh-key remove <name|fingerprint|public-key>`
794
+ *
795
+ * Tag-scoped API keys may run this command.
796
+ */
797
+ sshKeyRemove(nameOrFingerprintOrPublicKey: string, options?: CallOptions): Promise<CommandResult<"ssh-key remove">>;
798
+ /**
799
+ * Rename an SSH key
800
+ *
801
+ * Usage: `ssh-key rename <old-name> <new-name>`
802
+ *
803
+ * Tag-scoped API keys may run this command.
804
+ */
805
+ sshKeyRename(oldName: string, newName: string, options?: CallOptions): Promise<CommandResult<"ssh-key rename">>;
806
+ /**
807
+ * Generate an API key for the exe.dev HTTPS API or for a specific VM
808
+ *
809
+ * Usage: `ssh-key generate-api-key [--label=NAME] [--vm=VMNAME] [--cmds=CMD1,CMD2] [--exp=30d]`
810
+ *
811
+ * CLI examples:
812
+ * ```
813
+ * # Generate a key for the exe.dev API (lobby commands like ls, new, whoami):
814
+ * ssh-key generate-api-key --label=ci --cmds=ls,new --exp=90d
815
+ *
816
+ * # Generate a key scoped to a VM (authenticates to its HTTPS proxy):
817
+ * ssh-key generate-api-key --vm=my-vm --label=deploy
818
+ * ```
819
+ *
820
+ * Tag-scoped API keys may run this command.
821
+ */
822
+ sshKeyGenerateApiKey(options?: SshKeyGenerateApiKeyOptions): Promise<CommandResult<"ssh-key generate-api-key">>;
823
+ /**
824
+ * Set your preferred region for new VMs.
825
+ *
826
+ * Usage: `set-region <region-code>`
827
+ */
828
+ setRegion(regionCode: string, options?: CallOptions): Promise<CommandResult<"set-region">>;
829
+ /**
830
+ * List your integrations
831
+ *
832
+ * Usage: `integrations list [--json [--usage]]`
833
+ *
834
+ * Tag-scoped API keys may run this command.
835
+ */
836
+ integrationsList(options?: IntegrationsListOptions): Promise<CommandResult<"integrations list">>;
837
+ /**
838
+ * Set up GitHub integration
839
+ *
840
+ * Usage: `integrations setup github [--list|--verify|-d]`
841
+ */
842
+ integrationsSetupGithub(options?: IntegrationsSetupGithubOptions): Promise<CommandResult<"integrations setup github">>;
843
+ /**
844
+ * Set up ChatGPT account access for LLM integrations
845
+ *
846
+ * Usage: `integrations setup chatgpt [--name=<account-name>|--list|--verify|-d]`
847
+ */
848
+ integrationsSetupChatgpt(options?: IntegrationsSetupChatgptOptions): Promise<CommandResult<"integrations setup chatgpt">>;
849
+ /**
850
+ * Add a new integration
851
+ *
852
+ * Credential value flags (keys, tokens, passwords, bearer tokens, and webhook URLs) accept - to read from stdin.
853
+ *
854
+ * Usage: `integrations add <type> [--default | --name=<name> [--team] [args...]]`
855
+ */
856
+ integrationsAdd(type: string, options?: IntegrationsAddOptions): Promise<CommandResult<"integrations add">>;
857
+ /**
858
+ * Remove an integration
859
+ *
860
+ * Usage: `integrations remove <name> [--team]`
861
+ */
862
+ integrationsRemove(name: string, options?: IntegrationsRemoveOptions): Promise<CommandResult<"integrations remove">>;
863
+ /**
864
+ * Test an integration's credential (connection check)
865
+ *
866
+ * Usage: `integrations test <name> [--team]`
867
+ */
868
+ integrationsTest(name: string, options?: IntegrationsTestOptions): Promise<CommandResult<"integrations test">>;
869
+ /**
870
+ * Edit an integration
871
+ *
872
+ * Credential value flags (keys, tokens, passwords, bearer tokens, and webhook URLs) accept - to read from stdin.
873
+ *
874
+ * Usage: `integrations edit <name> [--team] [args...]`
875
+ */
876
+ integrationsEdit(name: string, args?: string | readonly string[], options?: IntegrationsEditOptions): Promise<CommandResult<"integrations edit">>;
877
+ /**
878
+ * Attach an integration to a VM, tag, or all VMs
879
+ *
880
+ * A <spec> controls where the integration is mounted:
881
+ * vm:<vm-name> attach to a specific VM (personal only)
882
+ * tag:<tag-name> attach to every VM with the given tag
883
+ * auto:all attach to all current and future VMs (personal only)
884
+ *
885
+ * You can attach the same integration multiple times with different specs.
886
+ * Team integrations only support tag:<tag-name>.
887
+ *
888
+ * A grant can be time-boxed with --for <duration> or --until <RFC3339>;
889
+ * when it lapses, access stops immediately, with nothing to revoke.
890
+ * Re-attaching the same spec with a new --for/--until extends or shortens it.
891
+ *
892
+ * Usage: `integrations attach <name> <spec> [--team] [--for <duration> | --until <time>]`
893
+ *
894
+ * CLI examples:
895
+ * ```
896
+ * int attach my-mcp vm:dev1
897
+ * int attach my-mcp tag:production
898
+ * int attach my-mcp auto:all
899
+ * int attach shared-mcp tag:production
900
+ * int attach gmail vm:dev1 --for 2h
901
+ * ```
902
+ */
903
+ integrationsAttach(name: string, spec: string, options?: IntegrationsAttachOptions): Promise<CommandResult<"integrations attach">>;
904
+ /**
905
+ * Detach an integration from a VM, tag, or all VMs
906
+ *
907
+ * Usage: `integrations detach <name> <spec> [--team]`
908
+ */
909
+ integrationsDetach(name: string, spec: string, options?: IntegrationsDetachOptions): Promise<CommandResult<"integrations detach">>;
910
+ /**
911
+ * Rename an integration
912
+ *
913
+ * Usage: `integrations rename <name> <new-name> [--team]`
914
+ */
915
+ integrationsRename(name: string, newName: string, options?: IntegrationsRenameOptions): Promise<CommandResult<"integrations rename">>;
916
+ /**
917
+ * Browse the catalog of ready-made service integrations
918
+ *
919
+ * Usage: `integrations catalog [service-or-search-term]`
920
+ *
921
+ * CLI examples:
922
+ * ```
923
+ * int catalog
924
+ * int catalog stripe
925
+ * ```
926
+ */
927
+ integrationsCatalog(serviceOrSearchTerm?: string, options?: CallOptions): Promise<CommandResult<"integrations catalog">>;
928
+ /**
929
+ * View and manage your team
930
+ */
931
+ team(options?: CallOptions): Promise<CommandResult<"team">>;
932
+ /**
933
+ * Disband your team
934
+ *
935
+ * Usage: `team disable`
936
+ */
937
+ teamDisable(options?: TeamDisableOptions): Promise<CommandResult<"team disable">>;
938
+ /**
939
+ * List team members
940
+ *
941
+ * Usage: `team members`
942
+ */
943
+ teamMembers(options?: CallOptions): Promise<CommandResult<"team members">>;
944
+ /**
945
+ * Show team pool, disk, and bandwidth usage for the billing period
946
+ *
947
+ * Usage: `team usage`
948
+ */
949
+ teamUsage(options?: CallOptions): Promise<CommandResult<"team usage">>;
950
+ /**
951
+ * Add a user to the team
952
+ *
953
+ * Usage: `team add <email> [<user|admin|billing_owner>]`
954
+ */
955
+ teamAdd(email: string, userOrAdminOrBillingOwner?: "user" | "admin" | "billing_owner", options?: CallOptions): Promise<CommandResult<"team add">>;
956
+ /**
957
+ * Remove a user from the team
958
+ *
959
+ * Usage: `team remove <email> [--transfer-vms-to <email>]`
960
+ */
961
+ teamRemove(email: string, options?: TeamRemoveOptions): Promise<CommandResult<"team remove">>;
962
+ /**
963
+ * Change a team member's role
964
+ *
965
+ * Usage: `team role <email> <user|admin|billing_owner>`
966
+ */
967
+ teamRole(email: string, userOrAdminOrBillingOwner: "user" | "admin" | "billing_owner", options?: CallOptions): Promise<CommandResult<"team role">>;
968
+ /**
969
+ * Rename your team
970
+ *
971
+ * Usage: `team rename <name>`
972
+ */
973
+ teamRename(name: string, options?: CallOptions): Promise<CommandResult<"team rename">>;
974
+ /**
975
+ * Show your team's plan
976
+ *
977
+ * Usage: `team billing plan [--all]`
978
+ *
979
+ * CLI examples:
980
+ * ```
981
+ * team billing plan
982
+ * team billing plan --all # plans your team can switch to
983
+ * ```
984
+ */
985
+ teamBillingPlan(options?: TeamBillingPlanOptions): Promise<CommandResult<"team billing plan">>;
986
+ /**
987
+ * Update team billing information
988
+ *
989
+ * Usage: `team billing update [--email=<email>] [--name=<name>] [--business-name=<name>] [--phone=<phone>] [--address-line1=<line>] [--address-line2=<line>] [--address-city=<city>] [--address-state=<state>] [--address-postal-code=<code>] [--address-country=<country>] [--tax-id-type=<type>] [--tax-id-value=<value>]`
990
+ */
991
+ teamBillingUpdate(options?: TeamBillingUpdateOptions): Promise<CommandResult<"team billing update">>;
992
+ /**
993
+ * Transfer a VM to another team member
994
+ *
995
+ * Usage: `team transfer <vm_name> <target_email>`
996
+ */
997
+ teamTransfer(vmName: string, targetEmail: string, options?: CallOptions): Promise<CommandResult<"team transfer">>;
998
+ /**
999
+ * View and manage team auth settings
1000
+ *
1001
+ * Usage: `team auth`
1002
+ */
1003
+ teamAuth(options?: CallOptions): Promise<CommandResult<"team auth">>;
1004
+ /**
1005
+ * Require OIDC for web login (web|off)
1006
+ *
1007
+ * Usage: `team auth require-oidc <web|off>`
1008
+ */
1009
+ teamAuthRequireOidc(webOrOff: "web" | "off", options?: CallOptions): Promise<CommandResult<"team auth require-oidc">>;
1010
+ /**
1011
+ * Set the team auth provider (default, google, oidc)
1012
+ *
1013
+ * Usage: `team auth set <default|google|oidc> [--issuer-url=<url> --client-id=<id> --client-secret=<secret>]`
1014
+ */
1015
+ teamAuthSet(defaultOrGoogleOrOidc: "default" | "google" | "oidc", options?: TeamAuthSetOptions): Promise<CommandResult<"team auth set">>;
1016
+ /**
1017
+ * View and manage team settings
1018
+ *
1019
+ * Usage: `team settings`
1020
+ */
1021
+ teamSettings(options?: CallOptions): Promise<CommandResult<"team settings">>;
1022
+ /**
1023
+ * View and manage automatic VM placement
1024
+ *
1025
+ * Usage: `team settings vm-placement`
1026
+ */
1027
+ teamSettingsVmPlacement(options?: CallOptions): Promise<CommandResult<"team settings vm-placement">>;
1028
+ /**
1029
+ * Use ordinary VM placement
1030
+ *
1031
+ * Usage: `team settings vm-placement default`
1032
+ */
1033
+ teamSettingsVmPlacementDefault(options?: CallOptions): Promise<CommandResult<"team settings vm-placement default">>;
1034
+ /**
1035
+ * Send bare new commands to a shared team pool
1036
+ *
1037
+ * Usage: `team settings vm-placement pool <name>`
1038
+ */
1039
+ teamSettingsVmPlacementPool(name: string, options?: CallOptions): Promise<CommandResult<"team settings vm-placement pool">>;
1040
+ /**
1041
+ * Create or reuse one team pool per member for bare new commands
1042
+ *
1043
+ * Usage: `team settings vm-placement member-pool --cpus=N [--max-vms=N]`
1044
+ */
1045
+ teamSettingsVmPlacementMemberPool(options?: TeamSettingsVmPlacementMemberPoolOptions): Promise<CommandResult<"team settings vm-placement member-pool">>;
1046
+ /**
1047
+ * Keep bare new commands outside pools while migrating (legacy)
1048
+ *
1049
+ * Usage: `team settings vm-placement poolless`
1050
+ */
1051
+ teamSettingsVmPlacementPoolless(options?: CallOptions): Promise<CommandResult<"team settings vm-placement poolless">>;
1052
+ /**
1053
+ * Set who can create standalone VMs
1054
+ *
1055
+ * Usage: `team settings standalone <off|admins-only|all-users>`
1056
+ */
1057
+ teamSettingsStandalone(offOrAdminsOnlyOrAllUsers: "off" | "admins-only" | "all-users", options?: CallOptions): Promise<CommandResult<"team settings standalone">>;
1058
+ /**
1059
+ * Allow or block the exe.dev LLM gateway (your own API keys are unaffected)
1060
+ *
1061
+ * Usage: `team settings llm-gateway <on|off>`
1062
+ */
1063
+ teamSettingsLlmGateway(onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"team settings llm-gateway">>;
1064
+ /**
1065
+ * Allow team VMs to share CPU cores with each other
1066
+ *
1067
+ * Usage: `team settings core-sharing <on|off>`
1068
+ */
1069
+ teamSettingsCoreSharing(onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"team settings core-sharing">>;
1070
+ /**
1071
+ * Set who can share team VMs
1072
+ *
1073
+ * Usage: `team settings vm-sharing <admins-only|all-members>`
1074
+ */
1075
+ teamSettingsVmSharing(adminsOnlyOrAllMembers: "admins-only" | "all-members", options?: CallOptions): Promise<CommandResult<"team settings vm-sharing">>;
1076
+ /**
1077
+ * Set how long members stay signed in on the web and mobile apps
1078
+ *
1079
+ * Usage: `team settings session-length <length>`
1080
+ *
1081
+ * CLI examples:
1082
+ * ```
1083
+ * team settings session-length 1d
1084
+ * team settings session-length default
1085
+ * ```
1086
+ */
1087
+ teamSettingsSessionLength(length: string, options?: CallOptions): Promise<CommandResult<"team settings session-length">>;
1088
+ /**
1089
+ * Allow users from your email domain to join this team on signup
1090
+ *
1091
+ * Usage: `team settings auto-join <on|off>`
1092
+ */
1093
+ teamSettingsAutoJoin(onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"team settings auto-join">>;
1094
+ /**
1095
+ * List all VMs across your team
1096
+ *
1097
+ * Usage: `team vm ls [-l] [--group=tag|region|type|user|access] [name|pattern]`
1098
+ *
1099
+ * Tag-scoped API keys may run this command.
1100
+ */
1101
+ teamVmLs(nameOrPattern?: string, options?: TeamVmLsOptions): Promise<CommandResult<"team vm ls">>;
1102
+ /**
1103
+ * Create a pool: reserved capacity for your team's VMs
1104
+ *
1105
+ * Usage: `pool new <name> --cpus=N [--region=<region>] [--max-vms=M]`
1106
+ */
1107
+ poolNew(name: string, options?: PoolNewOptions): Promise<CommandResult<"pool new">>;
1108
+ /**
1109
+ * Show your team's dedicated hosts, where its new pools are placed
1110
+ *
1111
+ * Usage: `pool hosts`
1112
+ */
1113
+ poolHosts(options?: CallOptions): Promise<CommandResult<"pool hosts">>;
1114
+ /**
1115
+ * List your team's pools, or show live or historical usage with --usage
1116
+ *
1117
+ * Usage: `pool list [pool-name] [--usage [--range=live|24h|7d|30d]]`
1118
+ */
1119
+ poolList(poolName?: string, options?: PoolListOptions): Promise<CommandResult<"pool list">>;
1120
+ /**
1121
+ * Adopt a VM into a pool; this can take several minutes
1122
+ *
1123
+ * Usage: `pool adopt --vm=<vm-name> --pool=<pool-name>`
1124
+ *
1125
+ * CLI examples:
1126
+ * ```
1127
+ * pool adopt --vm=builder --pool=compile
1128
+ * ```
1129
+ */
1130
+ poolAdopt(options?: PoolAdoptOptions): Promise<CommandResult<"pool adopt">>;
1131
+ /**
1132
+ * Detach a VM from its pool into its own standalone capacity (--poolless leaves it outside any pool)
1133
+ *
1134
+ * Usage: `pool detach --vm=<vm-name> [--poolless]`
1135
+ *
1136
+ * CLI examples:
1137
+ * ```
1138
+ * pool detach --vm=builder
1139
+ * pool detach --vm=builder --poolless
1140
+ * ```
1141
+ */
1142
+ poolDetach(options?: PoolDetachOptions): Promise<CommandResult<"pool detach">>;
1143
+ /**
1144
+ * Change a pool's CPU capacity or VM cap
1145
+ *
1146
+ * Usage: `pool resize <name> --cpus=N | pool resize <name> --max-vms=N [--force]`
1147
+ */
1148
+ poolResize(args?: readonly string[], options?: PoolResizeOptions): Promise<CommandResult<"pool resize">>;
1149
+ /**
1150
+ * Rename a pool without changing its capacity or VMs
1151
+ *
1152
+ * Usage: `pool rename <old-name> <new-name>`
1153
+ */
1154
+ poolRename(oldName: string, newName: string, options?: CallOptions): Promise<CommandResult<"pool rename">>;
1155
+ /**
1156
+ * Delete a pool (refused while it has VMs; --force detaches them)
1157
+ *
1158
+ * Usage: `pool delete <name> [--force]`
1159
+ */
1160
+ poolDelete(name: string, options?: CallOptions): Promise<CommandResult<"pool delete">>;
1161
+ /**
1162
+ * Show your current plan and resource limits
1163
+ *
1164
+ * Usage: `billing plan [--all]`
1165
+ *
1166
+ * CLI examples:
1167
+ * ```
1168
+ * billing plan
1169
+ * billing plan --all # plans you can switch to
1170
+ * ```
1171
+ */
1172
+ billingPlan(options?: BillingPlanOptions): Promise<CommandResult<"billing plan">>;
1173
+ /**
1174
+ * Show VM resource usage against your plan quotas
1175
+ *
1176
+ * Usage: `billing usage [--range=cycle|24h|7d|30d] [--group=vm]`
1177
+ *
1178
+ * CLI examples:
1179
+ * ```
1180
+ * billing usage --range=7d
1181
+ * billing credits usage # Shelley/LLM credit spend instead
1182
+ * ```
1183
+ */
1184
+ billingUsage(options?: BillingUsageOptions): Promise<CommandResult<"billing usage">>;
1185
+ /**
1186
+ * Show Shelley credit balances
1187
+ *
1188
+ * Usage: `billing credits [usage|transactions|buy]`
1189
+ */
1190
+ billingCredits(options?: CallOptions): Promise<CommandResult<"billing credits">>;
1191
+ /**
1192
+ * Show Shelley (LLM) credit spend by model, day, or VM
1193
+ *
1194
+ * Usage: `billing credits usage [--month=YYYY-MM] [--group=model|day|box] [--detail]`
1195
+ *
1196
+ * CLI examples:
1197
+ * ```
1198
+ * billing credits usage --group=day
1199
+ * billing credits usage --group=box --detail
1200
+ * billing credits usage --month=2026-05 --group=box
1201
+ * ```
1202
+ */
1203
+ billingCreditsUsage(options?: BillingCreditsUsageOptions): Promise<CommandResult<"billing credits usage">>;
1204
+ /**
1205
+ * Show your credit purchases and gifts
1206
+ *
1207
+ * Usage: `billing credits transactions [--limit=N]`
1208
+ */
1209
+ billingCreditsTransactions(options?: BillingCreditsTransactionsOptions): Promise<CommandResult<"billing credits transactions">>;
1210
+ /**
1211
+ * Buy Shelley credits with your personal payment method
1212
+ *
1213
+ * Usage: `billing credits buy <dollars> [--yes]`
1214
+ *
1215
+ * CLI examples:
1216
+ * ```
1217
+ * billing credits buy 25
1218
+ * billing credits buy 100 --yes
1219
+ * ```
1220
+ */
1221
+ billingCreditsBuy(dollars: string, options?: BillingCreditsBuyOptions): Promise<CommandResult<"billing credits buy">>;
1222
+ /**
1223
+ * Show invite rewards you've earned
1224
+ *
1225
+ * Usage: `billing rewards`
1226
+ */
1227
+ billingRewards(options?: CallOptions): Promise<CommandResult<"billing rewards">>;
1228
+ /**
1229
+ * Change your subscription capacity
1230
+ *
1231
+ * Usage: `billing capacity [--cpu=N] [--yes]`
1232
+ *
1233
+ * CLI examples:
1234
+ * ```
1235
+ * billing capacity
1236
+ * billing capacity --cpu=4 --yes
1237
+ * ```
1238
+ */
1239
+ billingCapacity(options?: BillingCapacityOptions): Promise<CommandResult<"billing capacity">>;
1240
+ /**
1241
+ * Show your payment methods
1242
+ *
1243
+ * Usage: `billing payment [list]`
1244
+ */
1245
+ billingPayment(options?: CallOptions): Promise<CommandResult<"billing payment">>;
1246
+ /**
1247
+ * List all payment methods on file
1248
+ *
1249
+ * Usage: `billing payment list`
1250
+ */
1251
+ billingPaymentList(options?: CallOptions): Promise<CommandResult<"billing payment list">>;
1252
+ /**
1253
+ * Remove a saved payment method
1254
+ *
1255
+ * Usage: `billing payment remove <ref>`
1256
+ *
1257
+ * CLI examples:
1258
+ * ```
1259
+ * billing payment remove 4f1c2a9b8d3e
1260
+ * ```
1261
+ */
1262
+ billingPaymentRemove(ref: string, options?: CallOptions): Promise<CommandResult<"billing payment remove">>;
1263
+ /**
1264
+ * Make a saved payment method the default
1265
+ *
1266
+ * Usage: `billing payment default <ref>`
1267
+ *
1268
+ * CLI examples:
1269
+ * ```
1270
+ * billing payment default 4f1c2a9b8d3e
1271
+ * ```
1272
+ */
1273
+ billingPaymentDefault(ref: string, options?: CallOptions): Promise<CommandResult<"billing payment default">>;
1274
+ /**
1275
+ * Open the billing management page
1276
+ *
1277
+ * Usage: `billing manage`
1278
+ */
1279
+ billingManage(options?: CallOptions): Promise<CommandResult<"billing manage">>;
1280
+ /**
1281
+ * Open the personal plan activation page
1282
+ *
1283
+ * Usage: `billing activate`
1284
+ */
1285
+ billingActivate(options?: CallOptions): Promise<CommandResult<"billing activate">>;
1286
+ /**
1287
+ * Update your billing contact information
1288
+ *
1289
+ * Usage: `billing update [--email=<email>] [--name=<name>] [--business-name=<name>] [--phone=<phone>] [--address-line1=<line>] [--address-line2=<line>] [--address-city=<city>] [--address-state=<state>] [--address-postal-code=<code>] [--address-country=<country>] [--tax-id-type=<type>] [--tax-id-value=<value>]`
1290
+ */
1291
+ billingUpdate(options?: BillingUpdateOptions): Promise<CommandResult<"billing update">>;
1292
+ /**
1293
+ * Show recent invoices
1294
+ *
1295
+ * Usage: `billing invoices`
1296
+ */
1297
+ billingInvoices(options?: CallOptions): Promise<CommandResult<"billing invoices">>;
1298
+ /**
1299
+ * List invoices for your personal or team account
1300
+ *
1301
+ * Usage: `billing invoices list [--account=personal|team]`
1302
+ *
1303
+ * CLI examples:
1304
+ * ```
1305
+ * billing invoices list --account=team
1306
+ * ```
1307
+ */
1308
+ billingInvoicesList(options?: BillingInvoicesListOptions): Promise<CommandResult<"billing invoices list">>;
1309
+ /**
1310
+ * Show one invoice with its usage breakdown
1311
+ *
1312
+ * Usage: `billing invoices show <id> [--vms]`
1313
+ *
1314
+ * CLI examples:
1315
+ * ```
1316
+ * billing invoices show in_1Abc --vms
1317
+ * ```
1318
+ */
1319
+ billingInvoicesShow(id: string, options?: BillingInvoicesShowOptions): Promise<CommandResult<"billing invoices show">>;
1320
+ /**
1321
+ * Show credit purchase receipts and purchases (this billing account only)
1322
+ *
1323
+ * Usage: `billing receipts [--from=<YYYY-MM-DD>] [--to=<YYYY-MM-DD>]`
1324
+ *
1325
+ * CLI examples:
1326
+ * ```
1327
+ * billing receipts --from=2026-01-01 --to=2026-06-30
1328
+ * ```
1329
+ */
1330
+ billingReceipts(options?: BillingReceiptsOptions): Promise<CommandResult<"billing receipts">>;
1331
+ /**
1332
+ * Open a consolidated credit purchase statement
1333
+ *
1334
+ * Usage: `billing statement [--from=<YYYY-MM-DD>] [--to=<YYYY-MM-DD>]`
1335
+ *
1336
+ * CLI examples:
1337
+ * ```
1338
+ * billing statement --from=2026-01-01 --to=2026-06-30
1339
+ * ```
1340
+ */
1341
+ billingStatement(options?: BillingStatementOptions): Promise<CommandResult<"billing statement">>;
1342
+ /**
1343
+ * Connect a marketplace subscription to your team
1344
+ *
1345
+ * Usage: `billing provider link <aws|azure> --token=<link-token> [--size=<team-size>] [--team-name=<name>]`
1346
+ */
1347
+ billingProviderLink(awsOrAzure: "aws" | "azure", options?: BillingProviderLinkOptions): Promise<CommandResult<"billing provider link">>;
1348
+ /**
1349
+ * Manage your invite link and rewards
1350
+ */
1351
+ invite(options?: CallOptions): Promise<CommandResult<"invite">>;
1352
+ /**
1353
+ * Show your active invite link and reward
1354
+ *
1355
+ * Usage: `invite show`
1356
+ */
1357
+ inviteShow(options?: CallOptions): Promise<CommandResult<"invite show">>;
1358
+ /**
1359
+ * Print only your active invite link
1360
+ *
1361
+ * Usage: `invite link`
1362
+ */
1363
+ inviteLink(options?: CallOptions): Promise<CommandResult<"invite link">>;
1364
+ /**
1365
+ * List invite rewards you can use
1366
+ *
1367
+ * Usage: `invite rewards`
1368
+ */
1369
+ inviteRewards(options?: CallOptions): Promise<CommandResult<"invite rewards">>;
1370
+ /**
1371
+ * Choose the reward for your invite link
1372
+ *
1373
+ * Usage: `invite set-reward standard|bonus-credits|extra-memory|extra-disk`
1374
+ */
1375
+ inviteSetReward(standardOrBonusCreditsOrExtraMemoryOrExtraDisk: "standard" | "bonus-credits" | "extra-memory" | "extra-disk", options?: CallOptions): Promise<CommandResult<"invite set-reward">>;
1376
+ /**
1377
+ * Show signups, upgrades, and reward status
1378
+ *
1379
+ * Usage: `invite activity`
1380
+ */
1381
+ inviteActivity(options?: CallOptions): Promise<CommandResult<"invite activity">>;
1382
+ /**
1383
+ * Request more trial invites
1384
+ *
1385
+ * Usage: `invite request`
1386
+ */
1387
+ inviteRequest(options?: CallOptions): Promise<CommandResult<"invite request">>;
1388
+ /**
1389
+ * Open the invites page
1390
+ *
1391
+ * Usage: `invite manage`
1392
+ */
1393
+ inviteManage(options?: CallOptions): Promise<CommandResult<"invite manage">>;
1394
+ /**
1395
+ * Install or upgrade Shelley to the current version
1396
+ *
1397
+ * Usage: `shelley install <vm>`
1398
+ *
1399
+ * Tag-scoped API keys may run this command.
1400
+ */
1401
+ shelleyInstall(vm: string, options?: CallOptions): Promise<CommandResult<"shelley install">>;
1402
+ /**
1403
+ * Generate a magic link to log in to the website
1404
+ *
1405
+ * Usage: `browser`
1406
+ */
1407
+ browser(options?: BrowserOptions): Promise<CommandResult<"browser">>;
1408
+ /**
1409
+ * Allow exe.dev support to log in to a VM
1410
+ *
1411
+ * Usage: `grant-support-root <vmname> on|off`
1412
+ *
1413
+ * Tag-scoped API keys may run this command.
1414
+ */
1415
+ grantSupportRoot(vmname: string, onOrOff: "on" | "off", options?: CallOptions): Promise<CommandResult<"grant-support-root">>;
1416
+ /**
1417
+ * Show vCPU, disk, IO, and network (RX/TX) metrics for a VM
1418
+ *
1419
+ * Usage: `stat <vm-name> [--range=24h|7d|30d]`
1420
+ *
1421
+ * CLI examples:
1422
+ * ```
1423
+ * stat my-vm # last 24 hours (default)
1424
+ * stat my-vm --range=7d # last 7 days
1425
+ * stat my-vm --range=30d # last 30 days
1426
+ * ```
1427
+ *
1428
+ * Tag-scoped API keys may run this command.
1429
+ */
1430
+ stat(vmName: string, options?: StatOptions): Promise<CommandResult<"stat">>;
1431
+ }
1432
+ //# sourceMappingURL=commands.gen.d.ts.map