fluxctl fleet: command reference
Every fluxctl fleet command talks to a Mac cloud's central registry (fluxvm-agent central). This page is generated
from the commands' own --help, so it matches the binary; run fluxctl fleet <command> --help for the same text.
Concepts (tenants, leases, quotas, drain) are in mac-cloud-tenancy.md; the REST routes behind
each command are in its API summary.
Connecting
| Setting | Flag | Environment | Default |
|---|---|---|---|
| Central's URL | --central URL | CENTRAL_URL | http://127.0.0.1:7799 |
Bearer token: a tenant's primary token, one of its named keys, or the operator's (all start fvt_) | --token TOKEN | FLUXVM_AGENT_TOKEN | none |
| Output | -o json|table|wide | FLUXCTL_OUTPUT | human on a terminal, JSON when piped |
export CENTRAL_URL=https://cloud.example.com
export FLUXVM_AGENT_TOKEN=fvt_...
fluxctl fleet status
fluxctl fleet vms -o json | jq '.items[].name' # scripts get JSON
- Output. On a terminal you get tables and plain sentences, with a suggested next command. Piped, or with
-o json, you get central's JSON unchanged.-o tableand-o wideforce the human form (and wide adds columns). Colour is off withNO_COLOR. - Naming a VM. By the name you gave it, by a unique ID prefix, or as
node/id. - Confirmation.
stop,restartandrmask[y/N]on a terminal. With input that is not a terminal (a script, CI) they proceed without asking. - What a token may do. A tenant sees and changes only its own VMs, leases, volumes and pools. A read-only key can
run the commands that only read and gets
403on the rest. Members of a tenant who sign in with SSO use the console; the CLI always uses a token. Commands marked (operator) need the operator token. - Exit status.
0on success, non-zero on an error. In the human formfleet runprints the guest's output and exits with the guest command's own status; with-o json(or piped) it prints the JSON result and exits0.
Start here
fluxctl fleet status
What you have and what needs attention: a tenant's quota, Macs and next step, or the operator's fleet health. Start here
Usage: fluxctl fleet status [OPTIONS]
Options:
fluxctl fleet launch
Launch a VM from the image catalog (or a disk path on the Mac). Picks a name, the image's default
size and a Mac with room; --mac pins one. Example: fluxctl fleet launch --image macos-27-xcode --ttl 8h
Usage: fluxctl fleet launch [OPTIONS] [NAME]
Arguments:
[NAME] VM name (default: the image name plus a number)
Options:
--image <IMAGE> Catalog image (`fluxctl fleet images`)
--disk <DISK> A disk path on the Mac instead of a catalog image
--guest <GUEST> Guest OS for `--disk` [possible values: macos, linux]
--vcpus <VCPUS>
--memory-gib <MEMORY_GIB>
--mac <MAC> The Mac to run on
--network <NETWORK> Join a private network across Macs (`fluxctl fleet networks`).
Repeatable
--ttl <TTL> Delete the VM automatically after this long (`30m`, `8h`, `7d`)
--volume <VOLUME> Attach a persistent volume (`fluxctl fleet volumes`), by name or
id. Repeatable. The VM runs on the volumes' Mac; Linux guests only
fluxctl fleet run
Run a command in a VM, found by name or ID prefix. Output and exit code are the guest's. Example:
fluxctl fleet run ios-build-1 -- xcodebuild -version
Usage: fluxctl fleet run [OPTIONS] <VM> <COMMAND>...
Arguments:
<VM>
<COMMAND>...
Options:
--timeout <TIMEOUT>
Power, screen and logs
fluxctl fleet start
Start a stopped VM (by name or ID prefix)
Usage: fluxctl fleet start [OPTIONS] <VM>
Arguments:
<VM>
Options:
fluxctl fleet stop
Shut a VM down; its disk is kept (asks first on a terminal)
Usage: fluxctl fleet stop [OPTIONS] <VM>
Arguments:
<VM>
Options:
-y, --yes
fluxctl fleet restart
Restart a VM (asks first on a terminal)
Usage: fluxctl fleet restart [OPTIONS] <VM>
Arguments:
<VM>
Options:
-y, --yes
fluxctl fleet pause
Pause a running VM (its memory is kept; it does not run)
Usage: fluxctl fleet pause [OPTIONS] <VM>
Arguments:
<VM>
Options:
fluxctl fleet resume
Resume a paused VM
Usage: fluxctl fleet resume [OPTIONS] <VM>
Arguments:
<VM>
Options:
fluxctl fleet logs
The end of a VM's console log
Usage: fluxctl fleet logs [OPTIONS] <VM>
Arguments:
<VM>
Options:
--lines <LINES> [default: 100]
fluxctl fleet screen
Save a picture of a VM's display (found by name or ID prefix). Example: fluxctl fleet screen ios-build-1
Usage: fluxctl fleet screen [OPTIONS] <VM>
Arguments:
<VM>
Options:
-f, --file <FILE> Where to write it (default: `<vm>.png`, or `.svg` from a simulated
Mac)
--max-width <MAX_WIDTH> Largest width in pixels [default: 1920]
fluxctl fleet exec
Run a command in a VM through its node's guest agent. REST: POST /fleet/vms/{node}/{id}/exec
Usage: fluxctl fleet exec [OPTIONS] <NODE> <ID> <COMMAND>...
Arguments:
<NODE>
<ID>
<COMMAND>...
Options:
--timeout <TIMEOUT>
fluxctl fleet rm
Delete a VM, found by name or ID prefix. Asks first on a terminal
Usage: fluxctl fleet rm [OPTIONS] <VM>
Arguments:
<VM>
Options:
-y, --yes Do not ask
VMs and nodes (placement view)
fluxctl fleet create
Create a VM through the fleet: residual-capacity placement picks a healthy, uncordoned node unless
--node names one explicitly (which bypasses placement entirely, same as kubectl with
spec.nodeName set — including landing on a cordoned node and ignoring any --node-selector). REST
equivalent: POST /fleet/vms
Usage: fluxctl fleet create [OPTIONS] --spec <SPEC>
Options:
--spec <SPEC> Path to a `CreateVmRequest` JSON spec, same shape `fluxvm
create --spec` takes
--node <NODE> Exact node name to create on, bypassing automatic placement
--node-selector <NODE_SELECTOR> Restrict automatic placement to a node whose labels (set via
`fluxvm-agent node --label key=value`) match, as `key=value`.
Repeatable. Ignored when `--node` is also given. Merged with
(and overriding) any `"nodeSelector"` already in the spec
file, the same override relationship `--node` has with the
spec's own `"node"` field
fluxctl fleet vms
The fleet-wide VM list, each entry tagged with which node it's on. Any node this couldn't account
for (unreachable, stale, or erroring) is named in the response's unreachable_nodes field rather
than silently missing from items. REST equivalent: GET /fleet/vms
Usage: fluxctl fleet vms [OPTIONS]
Options:
fluxctl fleet node-vms
The VMs on exactly one node, queried directly against that node rather than filtered out of the
fleet-wide list — works even when other nodes in the fleet are unreachable. REST equivalent: GET /fleet/nodes/{name}/vms
Usage: fluxctl fleet node-vms [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet delete
Delete a VM on a specific node through the fleet proxy. REST equivalent: DELETE /fleet/vms/{node}/{id}
Usage: fluxctl fleet delete [OPTIONS] <NODE> <ID>
Arguments:
<NODE>
<ID>
Options:
fluxctl fleet nodes
List every registered node, each with its live healthy/cordoned state and free capacity. REST
equivalent: GET /fleet/nodes
Usage: fluxctl fleet nodes [OPTIONS]
Options:
fluxctl fleet node
Exactly one node's own record -- the same shape a Nodes list entry has, without fetching and
filtering the whole fleet just to check one node's healthy/cordoned/free-capacity state. REST
equivalent: GET /fleet/nodes/{name}
Usage: fluxctl fleet node [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet cordon
Exclude a node from automatic (residual-capacity) placement without touching any VM already on it or
deregistering the node — same semantics as kubectl cordon. REST equivalent: POST /fleet/nodes/{name}/cordon
Usage: fluxctl fleet cordon [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet uncordon
Clear a node's cordon, re-admitting it to automatic placement. REST equivalent: POST /fleet/nodes/{name}/uncordon
Usage: fluxctl fleet uncordon [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet deregister
Permanently forget a decommissioned node's registry entry. Only works once the node's heartbeat has
already gone stale — the registry rejects deregistering a still-healthy node (409), since its very
next heartbeat would just re-add it. REST equivalent: DELETE /fleet/nodes/{name}
Usage: fluxctl fleet deregister [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet capacity
Fleet-wide capacity summary computed from each node's last heartbeat — no proxy calls to any node's
own fluxctl serve. REST equivalent: GET /fleet/capacity
Usage: fluxctl fleet capacity [OPTIONS]
Options:
Snapshots and clones
fluxctl fleet snapshot
Snapshot a VM (by name or ID prefix): a copy-on-write clone of its disk, in any state. --memory
also saves what is running (the VM must be running or paused), so a restore resumes it there.
Example: fluxctl fleet snapshot ios-build-1 --name before-upgrade
Usage: fluxctl fleet snapshot [OPTIONS] <VM>
Arguments:
<VM>
Options:
--name <NAME> Snapshot name (default: `snap-<UTC time>`)
--memory Save the guest's memory and device state too
fluxctl fleet snapshots
A VM's snapshots, newest first, with their size and whether they hold memory
Usage: fluxctl fleet snapshots [OPTIONS] <VM>
Arguments:
<VM>
Options:
fluxctl fleet restore
Put a VM back to a snapshot: it is stopped, its disk swapped back from the snapshot, and started again. Asks first on a terminal
Usage: fluxctl fleet restore [OPTIONS] <VM> <SNAPSHOT>
Arguments:
<VM>
<SNAPSHOT>
Options:
-y, --yes
fluxctl fleet snapshot-rm
Delete one of a VM's snapshots. Asks first on a terminal
Usage: fluxctl fleet snapshot-rm [OPTIONS] <VM> <SNAPSHOT>
Arguments:
<VM>
<SNAPSHOT>
Options:
-y, --yes
fluxctl fleet clone
A new VM on the same Mac, from one of a VM's snapshots or (without --snapshot) from the stopped VM
itself. It counts against your quota. Example: fluxctl fleet clone ios-build-1 ios-build-2 --snapshot before-upgrade
Usage: fluxctl fleet clone [OPTIONS] <VM> <NEW_NAME>
Arguments:
<VM>
<NEW_NAME>
Options:
--snapshot <SNAPSHOT>
Volumes
fluxctl fleet volumes
Persistent volumes: disks that keep their data when the VM using them is deleted. A tenant sees its own
Usage: fluxctl fleet volumes [OPTIONS]
Options:
--tenant <TENANT> Operator only: one tenant's volumes
fluxctl fleet volume-create
Create a persistent volume on one Mac. Example: fluxctl fleet volume-create pg-data --size 50,
then fluxctl fleet launch --image debian-13 --volume pg-data
Usage: fluxctl fleet volume-create [OPTIONS] --size <SIZE> <NAME>
Arguments:
<NAME>
Options:
--size <SIZE> Size in GiB (1-2048). The file is sparse: space is used on the Mac as the
guest writes
--node <NODE> The Mac to put it on (default: one you lease, else the one with the most
free memory)
--tenant <TENANT> Operator only: the tenant that owns it
fluxctl fleet volume-rm
Delete a volume and its data (refused while a VM uses it). Asks first on a terminal
Usage: fluxctl fleet volume-rm [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
-y, --yes
fluxctl fleet volume-resize
Grow a detached volume to --size GiB. Grow the file system in the guest afterwards
Usage: fluxctl fleet volume-resize [OPTIONS] --size <SIZE> <NAME>
Arguments:
<NAME>
Options:
--size <SIZE>
Warm pools
fluxctl fleet pools
Warm pools: VMs booted ahead of time, so a launch of their image starts in seconds. Shows ready and
booting VMs and the last day's claims. REST: GET /fleet/pools
Usage: fluxctl fleet pools [OPTIONS]
Options:
fluxctl fleet pool-create
Create a warm pool. Example: fluxctl fleet pool-create ios-ci --image macos-27-xcode --min-ready 2. A tenant's pool runs on the Macs it leases; the operator's is shared (Macs nobody leases) unless
--tenant is given
Usage: fluxctl fleet pool-create [OPTIONS] --image <IMAGE> <NAME>
Arguments:
<NAME>
Options:
--image <IMAGE> Catalog image (`fluxctl fleet images`)
--min-ready <MIN_READY> VMs kept booted and idle [default: 1]
--max <MAX> Most VMs from the pool alive at once, warm plus claimed
(default: 4 x min-ready, at least min-ready + 4)
--vcpus <VCPUS> vCPUs per VM (default: the image's)
--memory <MEMORY> Memory per VM: `16` or `16G` (GiB), `4096M` (default: the
image's)
--tenant <TENANT> Operator only: the tenant that owns the pool
--node-selector <NODE_SELECTOR> Only nodes with this label, as `key=value`. Repeatable
--node <NODES> Only this node. Repeatable
fluxctl fleet pool-set
Change how many VMs a pool keeps ready (0 pauses it) or its maximum. REST: PATCH /fleet/pools/{name}
Usage: fluxctl fleet pool-set [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
--min-ready <MIN_READY>
--max <MAX>
fluxctl fleet pool-rm
Delete a pool and its warm VMs; VMs already claimed keep running. Asks first on a terminal
Usage: fluxctl fleet pool-rm [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
-y, --yes
SSH and port tunnels
fluxctl fleet ssh
SSH into a VM through central, without reaching its Mac: runs your ssh with a ProxyCommand tunnel,
so keys, agents and ssh_config work as usual. The user is -l, user@vm, the image's ssh_user,
or admin. Example: fluxctl fleet ssh web-1 -- -L 5432:localhost:5432
Usage: fluxctl fleet ssh [OPTIONS] <VM> [-- <ARGS>...]
Arguments:
<VM> `[user@]vm`: a VM name, id or id prefix (or `node/id`)
[ARGS]... Passed to ssh after the host: options, or a command to run
Options:
-l, --user <USER> Login name on the VM
fluxctl fleet port-forward
Forward a local port to a port of a VM through central; every connection gets its own tunnel.
Example: fluxctl fleet port-forward web-1 8080:80
Usage: fluxctl fleet port-forward [OPTIONS] <VM> <PORTS>
Arguments:
<VM>
<PORTS> `local:remote`, or `remote` for the same port on both ends
Options:
--address <ADDRESS> Local address to listen on [default: 127.0.0.1]
fluxctl fleet tunnels
Open tunnels (a tenant sees its own) and closing them. REST: GET /fleet/tunnels, DELETE /fleet/tunnels/{id}
Usage: fluxctl fleet tunnels [OPTIONS] [COMMAND]
Commands:
list The open tunnels (a tenant sees its own): VM, port, traffic and idle time
close Close a tunnel now. REST: `DELETE /fleet/tunnels/{id}`
help Print this message or the help of the given subcommand(s)
Options:
fluxctl fleet tunnels list
The open tunnels (a tenant sees its own): VM, port, traffic and idle time
Usage: fluxctl fleet tunnels list [OPTIONS]
Options:
fluxctl fleet tunnels close
Close a tunnel now. REST: DELETE /fleet/tunnels/{id}
Usage: fluxctl fleet tunnels close [OPTIONS] <ID>
Arguments:
<ID>
Options:
fluxctl fleet tunnel-stdio
Relay stdin/stdout through a tunnel to a port of a VM, for ssh -o ProxyCommand="fluxctl fleet tunnel-stdio <vm> %p". REST: GET /fleet/vms/{node}/{id}/tunnel?port=N (WebSocket)
Usage: fluxctl fleet tunnel-stdio [OPTIONS] <VM> <PORT>
Arguments:
<VM> VM name, id or id prefix, or `node/id`
<PORT>
Options:
Tenants, leases and drain (operator)
fluxctl fleet tenant
Tenants (operator): create, list, quota, disable, rotate token. See docs/mac-cloud-tenancy.md
Usage: fluxctl fleet tenant [OPTIONS] <COMMAND>
Commands:
create Create a tenant; prints its bearer token once
list
get
me The calling tenant's own record (with a tenant token)
update Change quota (only the flags given) and/or enable/disable
delete
rotate-token
help Print this message or the help of the given subcommand(s)
Options:
fluxctl fleet tenant create
Create a tenant; prints its bearer token once
Usage: fluxctl fleet tenant create [OPTIONS] <ID>
Arguments:
<ID>
Options:
--display-name <DISPLAY_NAME>
--max-vms <MAX_VMS>
--max-vcpus <MAX_VCPUS>
--max-memory-mib <MAX_MEMORY_MIB>
--max-leased-hosts <MAX_LEASED_HOSTS>
--max-volume-gib <MAX_VOLUME_GIB> Total GiB of persistent volumes
fluxctl fleet tenant list
Usage: fluxctl fleet tenant list [OPTIONS]
Options:
fluxctl fleet tenant get
Usage: fluxctl fleet tenant get [OPTIONS]
Arguments:
Options:
fluxctl fleet tenant me
The calling tenant's own record (with a tenant token)
Usage: fluxctl fleet tenant me [OPTIONS]
Options:
fluxctl fleet tenant update
Change quota (only the flags given) and/or enable/disable
Usage: fluxctl fleet tenant update [OPTIONS] <ID>
Arguments:
<ID>
Options:
--max-vms <MAX_VMS>
--max-vcpus <MAX_VCPUS>
--max-memory-mib <MAX_MEMORY_MIB>
--max-leased-hosts <MAX_LEASED_HOSTS>
--max-volume-gib <MAX_VOLUME_GIB> Total GiB of persistent volumes
--disable
--enable
fluxctl fleet tenant delete
Usage: fluxctl fleet tenant delete [OPTIONS]
Arguments:
Options:
fluxctl fleet tenant rotate-token
Usage: fluxctl fleet tenant rotate-token [OPTIONS]
Arguments:
Options:
fluxctl fleet lease
Mac host leases: a tenant rents a whole, empty Mac for at least 24 hours
Usage: fluxctl fleet lease [OPTIONS] <COMMAND>
Commands:
create Lease a Mac (the smallest free one that fits, or `--node`)
list
get
release End a lease (not before its 24-hour minimum, unless an operator passes `--force`)
help Print this message or the help of the given subcommand(s)
Options:
fluxctl fleet lease create
Lease a Mac (the smallest free one that fits, or --node)
Usage: fluxctl fleet lease create [OPTIONS]
Options:
--tenant <TENANT>
Operator only: the tenant to lease for
--node <NODE>
--hours <HOURS>
Lease length in hours (at least 24); omitted runs until released
--min-vcpus <MIN_VCPUS>
--min-memory-mib <MIN_MEMORY_MIB>
--nested
Only Macs with nested virtualization (M3 or later)
--node-selector <NODE_SELECTOR>
Print help
Print version
fluxctl fleet lease list
Usage: fluxctl fleet lease list [OPTIONS]
Options:
--tenant
--state active or released
fluxctl fleet lease get
Usage: fluxctl fleet lease get [OPTIONS]
Arguments:
Options:
fluxctl fleet lease release
End a lease (not before its 24-hour minimum, unless an operator passes --force)
Usage: fluxctl fleet lease release [OPTIONS] <ID>
Arguments:
<ID>
Options:
--force
fluxctl fleet drain
Cordon a node and handle its VMs: cordon (default) only reports, evict-ephemeral deletes VMs
with a TTL or fluxvm.dev/ephemeral=true, reschedule also recreates "reschedulable": true VMs
on another node. REST: POST /fleet/nodes/{name}/drain
Usage: fluxctl fleet drain [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
--mode <MODE> [default: cordon]
--force Drain a node that is leased to a tenant
fluxctl fleet drain-status
Drain progress and lease/scrub state of a node. REST: GET /fleet/nodes/{name}/drain
Usage: fluxctl fleet drain-status [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet scrub
Clear a node released from a lease for reuse (refused while it runs VMs unless --force deletes
them). REST: POST /fleet/nodes/{name}/scrub
Usage: fluxctl fleet scrub [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
--force
fluxctl fleet usage
Metering per tenant (VM, vCPU and memory hours; actual and billable lease hours). REST: GET /fleet/usage
Usage: fluxctl fleet usage [OPTIONS]
Options:
--from <FROM> RFC 3339 start (default: 30 days before `--to`)
--to <TO> RFC 3339 end (default: now)
--tenant <TENANT>
--csv CSV instead of JSON
fluxctl fleet reconcile
Reconcile the VM ledger against every node and end expired leases now. REST: POST /fleet/reconcile
Usage: fluxctl fleet reconcile [OPTIONS]
Options:
Team members (SSO)
fluxctl fleet members
The people who sign in to the console with SSO, and their roles. A tenant sees its own team; the
operator passes --tenant
Usage: fluxctl fleet members [OPTIONS]
Options:
--tenant <TENANT> Operator only: whose members
fluxctl fleet member-add
Invite a person by email: they can then sign in to the console with SSO. Roles: viewer (reads), member (VMs and networks), admin (also leases, keys, members, budget, webhooks), owner (everything)
Usage: fluxctl fleet member-add [OPTIONS] <EMAIL>
Arguments:
<EMAIL>
Options:
--role <ROLE> [default: member] [possible values: owner, admin, member, viewer]
--tenant <TENANT> Operator only: the tenant
fluxctl fleet member-rm
Remove a member; their console sessions end at once
Usage: fluxctl fleet member-rm [OPTIONS] <EMAIL>
Arguments:
<EMAIL>
Options:
--tenant <TENANT> Operator only: the tenant
--yes Do not ask for confirmation
fluxctl fleet member-role
Change a member's role (owner, admin, member or viewer)
Usage: fluxctl fleet member-role [OPTIONS] <EMAIL> <ROLE>
Arguments:
<EMAIL>
<ROLE> [possible values: owner, admin, member, viewer]
Options:
--tenant <TENANT> Operator only: the tenant
Metrics
fluxctl fleet top
The busiest VMs right now: CPU (share of each VM's vCPUs), memory, disk and network from central's
last sample. Example: fluxctl fleet top --sort mem -n 10
Usage: fluxctl fleet top [OPTIONS]
Options:
--sort <SORT> Order by `cpu` (default) or `mem` [default: cpu] [possible values: cpu, mem]
-n, --limit <LIMIT> Show only the first N VMs
fluxctl fleet metrics
A VM's CPU, memory, disk and network over the last hour (or --range 6h|24h), found by name or ID
prefix. Example: fluxctl fleet metrics ios-build-1 --range 6h
Usage: fluxctl fleet metrics [OPTIONS] <VM>
Arguments:
<VM>
Options:
--range <RANGE> [default: 1h] [possible values: 1h, 6h, 24h]
Prices, bills and budgets
fluxctl fleet prices
The price list. --set FILE (operator) replaces it with a JSON file shaped like fleet prices -o json
Usage: fluxctl fleet prices [OPTIONS]
Options:
--set <SET>
fluxctl fleet bill
A month's statement: what leases and VMs cost. A tenant sees its own; the operator every tenant's
Usage: fluxctl fleet bill [OPTIONS]
Options:
--month <MONTH> `2026-10` (default: this month)
--tenant <TENANT> Operator only: one tenant
--csv
fluxctl fleet budget
Show or set a tenant's monthly budget (a warning at 80% and when over; nothing is stopped)
Usage: fluxctl fleet budget [OPTIONS] [AMOUNT]
Arguments:
[AMOUNT] The monthly amount; `0` removes it. Omit to show the current budget and spend
Options:
--tenant <TENANT> Operator only: whose budget
Self-service sign-up, invoices and payment
fluxctl fleet signup
Create an account on a central with self-service sign-up on; needs no token and prints the account's
token once. Example: fluxctl fleet --central https://cloud.example.com signup acme --email you@acme.io
Usage: fluxctl fleet signup [OPTIONS] --email <EMAIL> <TENANT_ID>
Arguments:
<TENANT_ID> Account ID: lowercase letters, digits and '-', used in URLs and network names
Options:
--email <EMAIL>
--name <NAME> Name shown in the console (default: the ID)
fluxctl fleet signup-verify
Confirm a sign-up from the token in the mailed link (the link's page does the same) and print the account's token,
once. Example: fluxctl fleet --central https://cloud.example.com signup-verify fvv_....
Usage: fluxctl fleet signup-verify <TOKEN>
Arguments:
<TOKEN> The token from the confirmation link (or the whole link)
fluxctl fleet invoices
Invoices with their status and a link to pay. A tenant sees its own; the operator everyone's
Usage: fluxctl fleet invoices [OPTIONS]
Options:
--month <MONTH> `2026-09` (default: every month)
--tenant <TENANT> Operator only: one tenant
fluxctl fleet invoice-run
Operator: turn a finished month's statements into Stripe invoices, one per tenant with billing on. Safe to run again: a tenant already invoiced for the month is skipped
Usage: fluxctl fleet invoice-run [OPTIONS] --month <MONTH>
Options:
--month <MONTH> `2026-09`
--tenant <TENANT> Only this tenant
-y, --yes Do not ask
fluxctl fleet payment-method
A Stripe Checkout link to save a payment method for your invoices (tenant)
Usage: fluxctl fleet payment-method [OPTIONS]
Options:
Notifications, keys and the activity log
fluxctl fleet notifications
Recent notifications: leases ending, budgets, VM changes (and, for the operator, Macs down, drains, scrubs)
Usage: fluxctl fleet notifications [OPTIONS]
Options:
--limit <LIMIT> [default: 20]
fluxctl fleet webhooks
Webhooks that receive notifications as signed JSON: list (default), add, rm, test
Usage: fluxctl fleet webhooks [OPTIONS] [COMMAND]
Commands:
list
add Add a webhook; prints its signing secret once
rm
test Send a test event and show what the endpoint answered
help Print this message or the help of the given subcommand(s)
Options:
fluxctl fleet webhooks list
Usage: fluxctl fleet webhooks list [OPTIONS]
Options:
fluxctl fleet webhooks add
Add a webhook; prints its signing secret once
Usage: fluxctl fleet webhooks add [OPTIONS] <URL>
Arguments:
<URL>
Options:
--event <EVENTS> Only these events (repeatable), e.g. `--event lease.ending --event
budget.over`. Default: all
fluxctl fleet webhooks rm
Usage: fluxctl fleet webhooks rm [OPTIONS]
Arguments:
Options:
fluxctl fleet webhooks test
Send a test event and show what the endpoint answered
Usage: fluxctl fleet webhooks test [OPTIONS] <ID>
Arguments:
<ID>
Options:
fluxctl fleet keys
A tenant's named API keys: list (default), create, revoke. Keys are made and revoked with the
tenant's primary token (or by the operator with --tenant)
Usage: fluxctl fleet keys [OPTIONS] [COMMAND]
Commands:
list
create Create a key; prints its token once
revoke Revoke a key by name or id; anything using it stops working at once
help Print this message or the help of the given subcommand(s)
Options:
--tenant <TENANT> Operator only: whose keys
fluxctl fleet keys list
Usage: fluxctl fleet keys list [OPTIONS]
Options:
--tenant
fluxctl fleet keys create
Create a key; prints its token once
Usage: fluxctl fleet keys create [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
--expires-days <EXPIRES_DAYS> Days until it stops working (default 90; 0 never expires)
[default: 90]
--tenant <TENANT> Operator only: whose keys
--read-only It can only read
fluxctl fleet keys revoke
Revoke a key by name or id; anything using it stops working at once
Usage: fluxctl fleet keys revoke [OPTIONS] <KEY>
Arguments:
<KEY>
Options:
--tenant <TENANT> Operator only: whose keys
fluxctl fleet events
The activity log: every change made through central, newest first. A tenant sees its own
Usage: fluxctl fleet events [OPTIONS]
Options:
--limit <LIMIT> [default: 50]
--tenant <TENANT> Operator only: one tenant's actions
Images and private networks
fluxctl fleet images
The image catalog: list (default), add or remove (operator)
Usage: fluxctl fleet images [OPTIONS] [COMMAND]
Commands:
list
add Add or replace an image (operator). Put the disk on the Macs first (`fluxctl vm-image
pull`)
remove Remove an image from the catalog (VMs made from it keep running)
help Print this message or the help of the given subcommand(s)
Options:
fluxctl fleet images list
Usage: fluxctl fleet images list [OPTIONS]
Options:
fluxctl fleet images add
Add or replace an image (operator). Put the disk on the Macs first (fluxctl vm-image pull)
Usage: fluxctl fleet images add [OPTIONS] --path <PATH> --guest <GUEST> <NAME>
Arguments:
<NAME>
Options:
--path <PATH> The disk's path on every Mac that runs it
--guest <GUEST> [possible values: macos, linux]
--vcpus <VCPUS> Default vCPUs [default: 4]
--memory-gib <MEMORY_GIB> Default memory [default: 8]
--display-name <DISPLAY_NAME>
--description <DESCRIPTION>
--source <SOURCE> Where it came from, e.g. an OCI reference (shown to tenants)
fluxctl fleet images remove
Remove an image from the catalog (VMs made from it keep running)
Usage: fluxctl fleet images remove [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet networks
Private networks across Macs: list (default), show, create, delete, rotate, add-mac, remove-mac
Usage: fluxctl fleet networks [OPTIONS] [COMMAND]
Commands:
list
show
create Create a network; members default to every Mac the tenant leases
delete
rotate Issue a new key; Macs switch over without dropping traffic
add-mac
remove-mac
help Print this message or the help of the given subcommand(s)
Options:
fluxctl fleet networks list
Usage: fluxctl fleet networks list [OPTIONS]
Options:
fluxctl fleet networks show
Usage: fluxctl fleet networks show [OPTIONS]
Arguments:
Options:
fluxctl fleet networks create
Create a network; members default to every Mac the tenant leases
Usage: fluxctl fleet networks create [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
--mac <MAC> A member Mac. Repeatable
--tenant <TENANT> Operator only: the tenant that owns it
--vms-per-mac <VMS_PER_MAC> Guest addresses each Mac gets [default: 30]
--mtu <MTU> [default: 1400]
fluxctl fleet networks delete
Usage: fluxctl fleet networks delete [OPTIONS]
Arguments:
Options: -y, --yes
fluxctl fleet networks rotate
Issue a new key; Macs switch over without dropping traffic
Usage: fluxctl fleet networks rotate [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
fluxctl fleet networks add-mac
Usage: fluxctl fleet networks add-mac [OPTIONS]
Arguments:
Options:
fluxctl fleet networks remove-mac
Usage: fluxctl fleet networks remove-mac [OPTIONS]
Arguments:
Options: