Spaces, computers and teams

Your Spaces and machines, unattended access on this machine, devices, teams, your remote use this month, and a cua-spacesd by URL.

CommandDescription
cua spacesSpaces: registered ones and your machines on the relay.
cua spaces lsRegistered Spaces and your machines on the relay.
cua spaces addRegister a Space after a capabilities handshake with its cua-spacesd (or, for another URL, an MCP initialize).
cua spaces createCreate Spaces: on this machine, on one of your machines that provides Spaces (cua host setup --provide-spaces there), or in your own cloud account.
cua spaces cancelCancel a create that is still running (here, in the daemon, or in another terminal): it stops and what it made is removed.
cua spaces gpusThe GPU options each runtime offers on this machine (or in your own cloud account).
cua spaces deleteDelete a Space's sandbox (on this machine, on the machine that provides it, or in your own cloud account) and forget it (asks first).
cua spaces stopTurn a Space off: a local container or QEMU VM is suspended (its memory is kept), a Lume VM or a Space one of your machines provides is stopped (its disk is kept), and so is a Space in your own cloud (--on aws, gcp; compute billing stops).
cua spaces startTurn a Space back on: resume a suspended one or boot a stopped one.
cua spaces rmForget a registered Space and its stored token.
cua spaces shareLet another cua.ai account watch (viewer) or use (editor) a Space, through the relay.
cua spaces unshareStop sharing a Space with one account at once, or with everyone.
cua spaces sharesWho a Space is shared with, and who of them is connected now.
cua spaces relay-registerPublish a Space on the relay for your other devices (a phone off this network): its own driver dials out, as cua host setup does for this computer.
cua spaces relay-unregisterTake a Space off the relay (every share with it ends).
cua hostUnattended access to this machine (setup, status, stop, start, remove).
cua host setupSet this machine up for unattended access: install cua-spacesd as a service that joins the cua.ai relay as your account (default) or serves on a direct ip:port.
cua host pairMake a one-time code (with a link and the install command) that adds another computer to your account: run the command it prints on that computer.
cua host configShow or change what this machine shares: its own desktop, and whether it creates Spaces for your other devices.
cua host statusShow whether this machine is set up, the service, and who is connected.
cua host stopStop sharing: disconnect everyone and refuse new connections.
cua host startStart sharing again after stop.
cua host shareShare a relay machine (this one, or --machine) with other cua.ai accounts (id or verified email).
cua host unshareStop sharing a relay machine with accounts; their open connections are cut.
cua host removeUnregister from the relay, uninstall the service and delete the host configuration (asks first).
cua devicesThis device as a client of your cua.ai account on the relay: enroll (second factor), approve other devices, list, rename, revoke, and the audit log of who accessed what.
cua devices statusThis device: enrolled, waiting for approval, or not enrolled.
cua devices enrollEnroll this device.
cua devices approveApprove a new device (or re-verify an expired one) from this enrolled device, by the code it shows or by its id.
cua devices lsYour devices and their state.
cua devices renameRename a device.
cua devices revokeRevoke a device: it can no longer list or reach your machines.
cua devices auditWho accessed what, and when: enrollments, device sessions, machine access (yours and by accounts you share with), sharing changes.
cua teamTeams (organizations of your cua.ai account) share machines with every member and their agents.
cua team createCreate a team; you are its owner.
cua team lsYour teams.
cua team showA team: plan, members, machines, open invites and devices.
cua team inviteInvite someone by email: cua.ai emails them an invitation.
cua team joinAfter accepting an emailed invitation: take the role it offered.
cua team leaveLeave a team.
cua team remove-memberRemove a member (owner or admin; admins cannot remove admins).
cua team set-roleMake a member an admin, or an admin a member (owner).
cua team devicesMember devices and whether they may open team machines.
cua team approveApprove a member device so it can open team machines.
cua team denyDecline a member device (it can no longer open team machines).
cua team requestAsk the team's admins to approve this device.
cua team add-machineMake a Space (or a machine you host) a team machine: every member and their agents see it and can open it.
cua team remove-machineTake a machine off the team.
cua team auditThe team's audit log.
cua team deleteDelete a team (owner; cancel its subscription first).
cua usageYour relay allowance this month: live sessions, relay hours, and your plan.
cua spacesdTalk to a cua-spacesd directly by URL.
cua spacesd capsPrint capabilities.
cua spacesd execRun a command (argv, no shell).
cua spacesd cpCopy files: cua spacesd cp <URL> local :remote uploads, cua spacesd cp <URL> :remote local downloads.
cua spacesd shellInteractive shell (PTY).
cua spacesd targetsList streamable targets (displays, and windows with --windows).
cua spacesd callCall any cua.env.v1 RPC with a proto3-JSON body.

Every command also accepts the global options.

cua spaces#

Spaces: registered ones and your machines on the relay.

cua spaces [OPTIONS] <COMMAND>

cua spaces ls#

Registered Spaces and your machines on the relay.

cua spaces ls [OPTIONS]

Alias: cua spaces list.

FlagTypeDefaultDescription
--relaystringRelay URL (default $CUA_RELAY_URL, else the CUA_ENV relay, https://relay.cua.ai in production).

Examples

cua spaces ls
cua spaces ls --json

cua spaces add#

Register a Space after a capabilities handshake with its cua-spacesd (or, for another URL, an MCP initialize). Re-adding an address updates it. The token is stored apart from the registry, 0600.

cua spaces add [OPTIONS] <URL>
ArgumentTypeDefaultDescription
<URL>stringrequiredThe Space's cua-spacesd (http(s)://host:port, host:port, default port 3211), a Space id (local:<name>), or any MCP endpoint URL.
FlagTypeDefaultEnv varDescription
--tokenstringCUA_ENV_TOKENspacesd token (or the bearer an MCP endpoint needs).
--namestringDisplay name (default: the guest's hostname).
--servicestringFor an MCP endpoint URL: the service name to register it under (default mcp).
--hostbooleanfalseIt is a machine that provides Spaces over its direct address (Tailscale or LAN): --on host:<name> finds it without the relay. Its token is stored like any direct Space's.

Examples

cua spaces add 10.0.0.5:3211 --token "$TOKEN" --name studio
cua spaces add local:my-sandbox
cua spaces add http://127.0.0.1:8765/mcp --service tools
 
# A machine that provides Spaces over Tailscale, without the relay (`cua host setup --direct ... --provide-spaces` on it prints this)
cua spaces add 100.101.102.103:3211 --host --name "Mac mini (spare)" --token "$TOKEN"

cua spaces create#

Create Spaces: on this machine, on one of your machines that provides Spaces (cua host setup --provide-spaces there), or in your own cloud account.

cua spaces create [OPTIONS] [IMAGE]
ArgumentTypeDefaultDescription
<IMAGE>stringoptionalImage: an alias (linux, macos, macos:26) or a registry reference. Default: the canonical Linux image.
FlagTypeDefaultDescription
--onstringWhere: local, aws, gcp, host:<machine>, or a machine name (mac-mini, "spare mac mini"). Default: your default location.
--countinteger1How many (1 to 8).
--namestringName (with --count, -2, -3, ... are appended).
--kindstringauto | container | vm.
--runtimestringauto, or an engine the location offers (lume, runc, gvisor, qemu).
--cpusintegervCPUs.
--memory-mbintegerMemory in MiB.
--disk-gbintegerGrow a VM's disk to this many GiB.
--gpustringA GPU: the runtime's own (--gpu), or an option cua spaces gpus lists. macOS VMs: GPU acceleration (experimental, Apple silicon; https://cua.ai/docs/lume/guides/gpu-passthrough).

Examples

cua spaces create linux
 
# Two macOS VMs on your spare Mac mini (matched by name)
cua spaces create macos:26 --on "spare mac mini" --count 2
cua spaces create --on host:0123abcd4567ef89 linux --json

cua spaces cancel#

Cancel a create that is still running (here, in the daemon, or in another terminal): it stops and what it made is removed. Finished image downloads stay cached. Ctrl-C during cua spaces create does the same.

cua spaces cancel [OPTIONS] <SPACE>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredThe id the Space will have (local:<name>, printed when the create starts) or its name.

Examples

cua spaces cancel local:space-1a2b3c
cua spaces cancel studio

cua spaces gpus#

The GPU options each runtime offers on this machine (or in your own cloud account).

cua spaces gpus [OPTIONS]
FlagTypeDefaultDescription
--onstringlocal (default), aws, gcp or modal.

Examples

cua spaces gpus
cua spaces gpus --json

cua spaces delete#

Delete a Space's sandbox (on this machine, on the machine that provides it, or in your own cloud account) and forget it (asks first).

cua spaces delete [OPTIONS] <SPACE>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id or name.
FlagShortTypeDefaultDescription
--force-fbooleanfalseSkip the confirmation (required without a terminal).

Examples

cua spaces delete relay:space-0123456789abcdef
cua spaces delete local:studio --force

cua spaces stop#

Turn a Space off: a local container or QEMU VM is suspended (its memory is kept), a Lume VM or a Space one of your machines provides is stopped (its disk is kept), and so is a Space in your own cloud (--on aws, gcp; compute billing stops). Modal sandboxes and Spaces added by address cannot be turned off.

cua spaces stop [OPTIONS] <SPACE>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id or name.

Examples

cua spaces stop local:studio
cua spaces stop relay:space-0123456789abcdef --json

cua spaces start#

Turn a Space back on: resume a suspended one or boot a stopped one.

cua spaces start [OPTIONS] <SPACE>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id or name.

Examples

cua spaces start local:studio
cua spaces start studio --json

cua spaces rm#

Forget a registered Space and its stored token. The sandbox keeps running. The relay:<machine> record of a Space that registered itself and is gone (not connected) also leaves your relay directory.

cua spaces rm [OPTIONS] <SPACE>

Alias: cua spaces remove.

ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id, address or display name (as cua spaces ls shows).

Examples

cua spaces rm direct:10.0.0.5:3211
cua spaces rm studio

cua spaces share#

Let another cua.ai account watch (viewer) or use (editor) a Space, through the relay. They open it as relay:<machine>.

cua spaces share [OPTIONS] <SPACE> <WHO>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id, address or display name.
<WHO>stringrequiredTheir email (verified by cua.ai) or account id.
FlagShortTypeDefaultDescription
--roleviewer | editorviewerviewer: presence and a view-only stream. editor: full use.
--yes-ybooleanfalseConfirm without a terminal prompt. Without a daemon the share happens at once. A running daemon still asks with Touch ID or your password on this computer; without a terminal, --yes says someone will answer there (otherwise the command fails at once instead of waiting for a prompt nobody sees).

Examples

cua spaces share local:studio bob@example.com
cua spaces share local:studio bob@example.com --role editor
cua spaces share relay:0123abcd4567ef89 acct-42 --role viewer
 
# From a script or agent: confirm with Touch ID or your password here
cua spaces share local:studio bob@example.com --yes

cua spaces unshare#

Stop sharing a Space with one account at once, or with everyone.

cua spaces unshare [OPTIONS] <SPACE> [WHO]
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id, address or display name.
<WHO>stringoptionalTheir email or account id.
FlagTypeDefaultDescription
--allbooleanfalseStop sharing with everyone (the Space leaves the relay).

Examples

cua spaces unshare local:studio bob@example.com
cua spaces unshare local:studio --all

cua spaces shares#

Who a Space is shared with, and who of them is connected now.

cua spaces shares [OPTIONS] <SPACE>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id, address or display name.

Examples

cua spaces shares local:studio
cua spaces shares local:studio --json

cua spaces relay-register#

Publish a Space on the relay for your other devices (a phone off this network): its own driver dials out, as cua host setup does for this computer. Nobody else gets in until you share it.

cua spaces relay-register [OPTIONS] <SPACE>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id, address or display name.

Examples

cua spaces relay-register local:studio

cua spaces relay-unregister#

Take a Space off the relay (every share with it ends). With a relay:<machine> id, removes that machine's record from your relay directory: a Space that registered itself (also after it was deleted), or a machine of yours that is gone. Only its owner can.

cua spaces relay-unregister [OPTIONS] <SPACE>
ArgumentTypeDefaultDescription
<SPACE>stringrequiredSpace id, address or display name.

Examples

cua spaces relay-unregister local:studio
cua spaces relay-unregister relay:space-0123abcd4567ef89

cua host#

Unattended access to this machine (setup, status, stop, start, remove).

cua host [OPTIONS] <COMMAND>

cua host setup#

Set this machine up for unattended access: install cua-spacesd as a service that joins the cua.ai relay as your account (default) or serves on a direct ip:port.

cua host setup [OPTIONS]
FlagTypeDefaultDescription
--relaystringRelay URL (default $CUA_RELAY_URL, else the CUA_ENV relay, https://relay.cua.ai in production).
--pairstringJoin with a one-time pairing code (or add-machine link) made in the Cua Spaces app or with cua host pair, instead of signing in here. The machine joins the account (or team) that made it.
--directstringServe directly on ip:port with a local env token (LAN / port-forwarded) instead of joining a relay.
--namestringDisplay name (default: the host name).
--allowstringAlso allow this account (id or email). Repeatable.
--driver-binpathcua-spacesd binary (default $CUA_SPACESD_BIN, a bundled one, or the release download).
--runnerstringautoauto | systemd | launchd | windows-task | process.
--profiledesktop | sparedesktopWhat this machine is for: desktop (share this desktop; the default) or spare (do not share the desktop; provide Spaces).
--max-spacesintegerProvided Spaces at once (default 4; 0: no limit).
--remotebooleanfalseWhen sign-in is needed, use a device code to approve it in a browser on another machine. The account session is not saved.
--desktopbooleanfalseShare this machine's own desktop as a Space.
--no-desktopbooleanfalseDo not share this machine's own desktop (screen, input, shell, files): relayed callers reach only the Spaces it provides.
--provide-spacesbooleanfalseCreate Spaces for your enrolled devices on this machine's runtimes (Lume macOS VMs, Docker Linux containers).
--no-provide-spacesbooleanfalseDo not create Spaces for other devices.
--allow-any-addressbooleanfalseWith --direct and Spaces: take host calls, and connections to the Spaces this machine forwards, from any address (and allow a public --direct address). By default only loopback, Tailscale and private LAN addresses may. The direct listener is plaintext and its token is a shell on this machine: prefer Tailscale.

Examples

# Join the cua.ai relay as your account (shares this desktop)
cua host setup
 
# A spare machine: do not share its desktop, run Spaces for your devices
cua host setup --profile spare --name "Mac mini (spare)"
cua host setup --no-desktop --provide-spaces
 
# Serve on the LAN instead of the relay
cua host setup --direct 0.0.0.0:3211 --name studio-mac
 
# A spare Mac on your tailnet that runs Spaces, without the relay (prints the command that adds it on your laptop)
cua host setup --direct 100.101.102.103:3211 --profile spare
 
# Add this machine with a one-time code from the Cua Spaces app (Add a machine) or `cua host pair`: no sign-in needed here
cua host setup --pair K7QM-4XPB-2RHD

cua host pair#

Make a one-time code (with a link and the install command) that adds another computer to your account: run the command it prints on that computer. Codes work once and expire (30 minutes by default). Run from an enrolled device.

cua host pair [OPTIONS]
FlagTypeDefaultDescription
--teamstringAdd the machine to this team (id, alias or name; owner or admin): waits until the machine joins, then makes it a team machine.
--namestringName the machine gets (default: its own host name).
--expiresinteger30Minutes until the code expires (1 to 1440).
--revokestringRevoke an unused code by id (pc_…).
--relaystringRelay URL (default $CUA_RELAY_URL, else the CUA_ENV relay, https://relay.cua.ai in production).
--no-waitbooleanfalseWith --team: print the code and exit instead of waiting; add the machine later with cua team add-machine <team> relay:<id>.
--listbooleanfalseList your codes (used, unused, revoked, expired) instead.

Examples

cua host pair
cua host pair --name build-box --expires 60
cua host pair --list
cua host pair --revoke pc_0123456789abcdef
 
# Add the machine to a team: waits for it to join, then adds it
cua host pair --team AIGIS

cua host config#

Show or change what this machine shares: its own desktop, and whether it creates Spaces for your other devices.

cua host config [OPTIONS]
FlagTypeDefaultDescription
--desktopon | offShare this machine's own desktop: on | off.
--provide-spaceson | offCreate Spaces for your enrolled devices: on | off.
--max-spacesintegerProvided Spaces at once (0: no limit).
--max-macos-vmsintegermacOS VMs at once, 0 to 2 (Apple's license allows two per Mac).

Examples

cua host config
 
# Stop sharing this desktop; keep providing Spaces
cua host config --desktop off --provide-spaces on
cua host config --max-spaces 6

cua host status#

Show whether this machine is set up, the service, and who is connected.

cua host status [OPTIONS]

Examples

cua host status

cua host stop#

Stop sharing: disconnect everyone and refuse new connections.

cua host stop [OPTIONS]

Examples

cua host stop

cua host start#

Start sharing again after stop.

cua host start [OPTIONS]

Examples

cua host start

cua host share#

Share a relay machine (this one, or --machine) with other cua.ai accounts (id or verified email). Run from an enrolled device; every change is in the owner's audit log (cua devices audit).

cua host share [OPTIONS] <WHO>...
ArgumentTypeDefaultDescription
<WHO>...stringrequiredAccounts to add. Repeatable. Repeatable.
FlagTypeDefaultDescription
--machinestringMachine id (default: this machine).
--relaystringRelay URL (default: the one this machine joined, else $CUA_RELAY_URL / https://relay.cua.ai).
--yesbooleanfalseDo not ask for confirmation.

Examples

cua host share friend@example.com
cua host share friend@example.com --machine 0123abcd4567ef89 --yes

cua host unshare#

Stop sharing a relay machine with accounts; their open connections are cut.

cua host unshare [OPTIONS] <WHO>...
ArgumentTypeDefaultDescription
<WHO>...stringrequiredAccounts to remove. Repeatable. Repeatable.
FlagTypeDefaultDescription
--machinestringMachine id (default: this machine).
--relaystringRelay URL.

Examples

cua host unshare friend@example.com

cua host remove#

Unregister from the relay, uninstall the service and delete the host configuration (asks first).

cua host remove [OPTIONS]
FlagShortTypeDefaultDescription
--force-fbooleanfalseSkip the confirmation prompt. Required when there is no terminal to ask on (scripts, agents): without it nothing is removed.
--uninstallingbooleanfalseFor an uninstall of Cua Spaces: turns off the Spaces this machine provides and takes them off the relay too, instead of refusing while it provides any. The Spaces and their data stay on this machine.

Examples

cua host remove
 
# Without the prompt (required in scripts and agents)
cua host remove --force

cua devices#

This device as a client of your cua.ai account on the relay: enroll (second factor), approve other devices, list, rename, revoke, and the audit log of who accessed what.

cua devices [OPTIONS] <COMMAND>

Examples

cua devices enroll
cua devices approve K7QX-M2RP
cua devices ls
cua devices audit

cua devices status#

This device: enrolled, waiting for approval, or not enrolled.

cua devices status [OPTIONS]
FlagTypeDefaultDescription
--relaystringRelay URL (default $CUA_RELAY_URL, else the CUA_ENV relay, https://relay.cua.ai in production).

Examples

cua devices status

cua devices enroll#

Enroll this device. Right after a fresh cua auth login it enrolls at once (and replaces this machine's older device key, if any); otherwise it shows a one-time code to approve from an enrolled device (cua devices approve <code> or the Cua Spaces app).

cua devices enroll [OPTIONS]
FlagTypeDefaultDescription
--namestringDisplay name (default: the host name).
--relaystringRelay URL.
--waitbooleanfalseWait (up to 10 minutes) until an enrolled device approves.

Examples

cua devices enroll
cua devices enroll --name "work laptop" --wait

cua devices approve#

Approve a new device (or re-verify an expired one) from this enrolled device, by the code it shows or by its id.

cua devices approve [OPTIONS] [CODE]
ArgumentTypeDefaultDescription
<CODE>stringoptionalThe one-time code the new device shows, or its device id (dev_…, from cua devices ls).
FlagTypeDefaultDescription
--devicestringOr the device id (cua devices ls).
--relaystringRelay URL.
--yesbooleanfalseDo not ask for confirmation.

Examples

cua devices approve K7QX-M2RP
cua devices approve dev_0123456789abcdef01234567

cua devices ls#

Your devices and their state.

cua devices ls [OPTIONS]

Alias: cua devices list.

FlagTypeDefaultDescription
--relaystringRelay URL.

Examples

cua devices ls
cua devices ls --json

cua devices rename#

Rename a device.

cua devices rename [OPTIONS] <ID> <NAME>
ArgumentTypeDefaultDescription
<ID>stringrequiredDevice id.
<NAME>stringrequiredNew name.
FlagTypeDefaultDescription
--relaystringRelay URL.

Examples

cua devices rename dev_0123456789abcdef01234567 "work phone"

cua devices revoke#

Revoke a device: it can no longer list or reach your machines.

cua devices revoke [OPTIONS] <ID>
ArgumentTypeDefaultDescription
<ID>stringrequiredDevice id.
FlagTypeDefaultDescription
--relaystringRelay URL.
--yesbooleanfalseDo not ask for confirmation.

Examples

cua devices revoke dev_0123456789abcdef01234567

cua devices audit#

Who accessed what, and when: enrollments, device sessions, machine access (yours and by accounts you share with), sharing changes.

cua devices audit [OPTIONS]
FlagTypeDefaultDescription
--limitinteger50Newest events to show.
--relaystringRelay URL.

Examples

cua devices audit
cua devices audit --limit 20 --json

cua team#

Teams (organizations of your cua.ai account) share machines with every member and their agents. Owners and admins invite by email, approve member devices and add machines.

cua team [OPTIONS] <COMMAND>

Examples

cua team create AIGIS
cua team invite AIGIS dillon@example.com
cua team add-machine AIGIS local:build-box
cua team approve AIGIS dev_0123456789abcdef01234567
cua team show AIGIS

cua team create#

Create a team; you are its owner. Buy Teams for it at app.cua.ai to add machines.

cua team create [OPTIONS] <NAME>
ArgumentTypeDefaultDescription
<NAME>stringrequiredTeam name.

Examples

cua team create "AIGIS"

cua team ls#

Your teams.

cua team ls [OPTIONS]

Alias: cua team list.

Examples

cua team ls
cua team ls --json

cua team show#

A team: plan, members, machines, open invites and devices.

cua team show [OPTIONS] <TEAM>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.

Examples

cua team show AIGIS

cua team invite#

Invite someone by email: cua.ai emails them an invitation. Manage invites at app.cua.ai/team.

cua team invite [OPTIONS] <TEAM> <EMAIL>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<EMAIL>stringrequiredTheir email.
FlagTypeDefaultDescription
--rolemember | adminmembermember or admin (only the owner invites admins).

Examples

cua team invite AIGIS dillon@example.com
cua team invite AIGIS ops@example.com --role admin

cua team join#

After accepting an emailed invitation: take the role it offered. Run cua auth login first so your session lists the team.

cua team join [OPTIONS] <TEAM>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.

Examples

cua team join AIGIS

cua team leave#

Leave a team.

cua team leave [OPTIONS] <TEAM>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.

Examples

cua team leave AIGIS

cua team remove-member#

Remove a member (owner or admin; admins cannot remove admins).

cua team remove-member [OPTIONS] <TEAM> <WHO>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<WHO>stringrequiredTheir email or account id.

Examples

cua team remove-member AIGIS bob@example.com

cua team set-role#

Make a member an admin, or an admin a member (owner).

cua team set-role [OPTIONS] <TEAM> <WHO> <ROLE>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<WHO>stringrequiredTheir email or account id.
<ROLE>member | adminrequiredmember or admin.

Examples

cua team set-role AIGIS bob@example.com admin

cua team devices#

Member devices and whether they may open team machines.

cua team devices [OPTIONS] <TEAM>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.

Examples

cua team devices AIGIS

cua team approve#

Approve a member device so it can open team machines.

cua team approve [OPTIONS] <TEAM> <DEVICE>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<DEVICE>stringrequiredDevice id (cua team devices).

Examples

cua team approve AIGIS dev_0123456789abcdef01234567

cua team deny#

Decline a member device (it can no longer open team machines).

cua team deny [OPTIONS] <TEAM> <DEVICE>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<DEVICE>stringrequiredDevice id.

Examples

cua team deny AIGIS dev_0123456789abcdef01234567

cua team request#

Ask the team's admins to approve this device.

cua team request [OPTIONS] <TEAM>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.

Examples

cua team request AIGIS

cua team add-machine#

Make a Space (or a machine you host) a team machine: every member and their agents see it and can open it. Macs, Linux and Windows machines all can. Each Space is added on its own: adding a host does not add the Spaces it provides.

cua team add-machine [OPTIONS] <TEAM> <SPACE>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<SPACE>stringrequiredSpace id or name (relay:<id> for a machine you host).
FlagTypeDefaultDescription
--yesbooleanfalseConfirm without a prompt.

Examples

cua team add-machine AIGIS local:build-box
cua team add-machine AIGIS relay:0123abcd4567ef89 --yes

cua team remove-machine#

Take a machine off the team.

cua team remove-machine [OPTIONS] <TEAM> <MACHINE>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<MACHINE>stringrequiredThe machine (relay:<id> or its id, as cua team show lists it).

Examples

cua team remove-machine AIGIS relay:0123abcd4567ef89

cua team audit#

The team's audit log. Audit export is coming soon; for now see the account app (app.cua.ai).

cua team audit [OPTIONS] <TEAM>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
FlagTypeDefaultDescription
--limitinteger50Newest events to show (when export arrives).

Examples

cua team audit AIGIS

cua team delete#

Delete a team (owner; cancel its subscription first). Its machines stay yours.

cua team delete [OPTIONS] <TEAM>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
FlagTypeDefaultDescription
--yesbooleanfalseDo not ask for confirmation.

Examples

cua team delete AIGIS --yes

cua usage#

Your relay allowance this month: live sessions, relay hours, and your plan. Spaces on your own network use none of it.

cua usage [OPTIONS]
FlagTypeDefaultDescription
--relaystringRelay URL (default $CUA_RELAY_URL, else the CUA_ENV relay, https://relay.cua.ai in production).

Examples

cua usage
cua usage --json

cua spacesd#

Talk to a cua-spacesd directly by URL.

cua spacesd [OPTIONS] <COMMAND>

cua spacesd caps#

Print capabilities.

cua spacesd caps [OPTIONS] <URL>
ArgumentTypeDefaultDescription
<URL>stringrequiredspacesd URL (http://host:port).
FlagTypeDefaultEnv varDescription
--tokenstringCUA_ENV_TOKENspacesd token.

Examples

cua spacesd caps http://127.0.0.1:3211

cua spacesd exec#

Run a command (argv, no shell).

cua spacesd exec [OPTIONS] <URL> <COMMAND>...
ArgumentTypeDefaultDescription
<URL>stringrequiredspacesd URL (http://host:port).
<COMMAND>...stringrequiredProgram and arguments. Repeatable.
FlagTypeDefaultEnv varDescription
--tokenstringCUA_ENV_TOKENspacesd token.

Examples

cua spacesd exec http://127.0.0.1:3211 uname -a

cua spacesd cp#

Copy files: cua spacesd cp <URL> local :remote uploads, cua spacesd cp <URL> :remote local downloads.

cua spacesd cp [OPTIONS] <URL> <SRC> <DST>
ArgumentTypeDefaultDescription
<URL>stringrequiredspacesd URL (http://host:port).
<SRC>stringrequiredSource: a local path, or :/guest/path.
<DST>stringrequiredDestination: a local path, or :/guest/path.
FlagTypeDefaultEnv varDescription
--tokenstringCUA_ENV_TOKENspacesd token.

Examples

# Upload
cua spacesd cp http://127.0.0.1:3211 ./notes.txt :/tmp/notes.txt
 
# Download
cua spacesd cp http://127.0.0.1:3211 :/tmp/notes.txt ./notes.txt

cua spacesd shell#

Interactive shell (PTY).

cua spacesd shell [OPTIONS] <URL>
ArgumentTypeDefaultDescription
<URL>stringrequiredspacesd URL (http://host:port).
FlagTypeDefaultEnv varDescription
--tokenstringCUA_ENV_TOKENspacesd token.

Examples

cua spacesd shell http://127.0.0.1:3211

cua spacesd targets#

List streamable targets (displays, and windows with --windows).

cua spacesd targets [OPTIONS] <URL>
ArgumentTypeDefaultDescription
<URL>stringrequiredspacesd URL (http://host:port).
FlagTypeDefaultEnv varDescription
--tokenstringCUA_ENV_TOKENspacesd token.
--windowsbooleanfalseInclude window targets.

Examples

cua spacesd targets http://127.0.0.1:3211 --windows

cua spacesd call#

Call any cua.env.v1 RPC with a proto3-JSON body.

cua spacesd call [OPTIONS] <URL> <METHOD> [BODY]
ArgumentTypeDefaultDescription
<URL>stringrequiredspacesd URL (http://host:port).
<METHOD>stringrequiredService/Method.
<BODY>string{}Request body (proto3 JSON).
FlagTypeDefaultEnv varDescription
--tokenstringCUA_ENV_TOKENspacesd token.

Examples

cua spacesd call http://127.0.0.1:3211 SystemService/GetCapabilities

Exit codes#

CodeMeaning
0Success.
1Failure, or cua do reported an error.
2Invalid argument, or an ambiguous sandbox name (qualify it: local:NAME).
3Not found: sandbox, window, skill or image (or an image not published yet).
4Not supported, or not configured (for example no provider credentials).
5No cua-spacesd answered, or a transport failure.
6Unauthenticated or permission denied (by Cua or your cloud account).
7Not enough free disk space (see cua cache).
130Cancelled (Ctrl-C during a create): what it made was removed.