Computers and teams

Your computers, unattended access on this computer, teams, sharing, your remote use this month, and a cua-spacesd by URL.

CommandDescription
cua machinesYour computers on the relay: remove one that is gone.
cua machines rmRemove a computer that is gone: its row leaves your relay directory, then the signed-in device with exactly its name is revoked (never this device; nothing when several match).
cua hostUnattended access to this computer (setup, status, stop, start, remove).
cua host setupSet this computer 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 computer shares: its own desktop, and whether it creates Spaces for your other devices.
cua host cacheWhat the repo cache holds, and empty it.
cua host cache statusWhat the repo cache holds: repositories, size and what the last week saved.
cua host cache fillCopy one public repository into the cache now, instead of when a Space first clones it (or bring a copy up to date).
cua host cache clearDelete every repository the cache holds.
cua host statusShow whether this computer 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 computer (this one, or --machine) with people in your team (id or verified email).
cua host unshareStop sharing a relay computer with accounts; their open connections are cut.
cua host migratemacOS: move the host service into the Cua Spaces app, as its "Cua Spaces Helper" login item, from the LaunchAgent that older versions installed.
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 signed-in machines and their state.
cua devices renameRename a device.
cua devices revokeRevoke a device: it can no longer list or reach your computers.
cua devices auditWho accessed what, and when: enrollments, device sessions, computer access (yours and by accounts you share with), sharing changes.
cua teamTeams (organizations of your cua.ai account) share computers 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, computers, 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 computers.
cua team approveApprove a member device so it can open team computers.
cua team denyDecline a member device (it can no longer open team computers).
cua team requestAsk the team's admins to approve this device.
cua team add-machineMake a Space (or a computer you host) a team computer: every member and their agents see it and can open it.
cua team remove-machineTake a computer off the team.
cua team auditThe team's audit log.
cua team deleteDelete a team (owner; cancel its subscription first).
cua usageYour remote use this month: live sessions, remote 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.
cua shareShare a link to a port, a file or a folder that opens on your other signed-in devices (never localhost): cua share 3000, cua share ./report.html, cua share ls, cua share stop ID.
cua share lsList the active shares.
cua share stopStop a share (its link stops working at once), or all.
cua share checkOpen a share's link once, as its owner, and say what came back.

Every command also accepts the global options.

cua machines#

Your computers on the relay: remove one that is gone.

cua machines [OPTIONS] <COMMAND>

cua machines rm#

Remove a computer that is gone: its row leaves your relay directory, then the signed-in device with exactly its name is revoked (never this device; nothing when several match). A computer that is connected now is refused: run cua host remove on it.

cua machines rm [OPTIONS] <NAME>
ArgumentTypeDefaultDescription
<NAME>stringrequiredThe computer's name, machine id or relay:<id> (cua spaces ls).
FlagShortTypeDefaultDescription
--yes-ybooleanfalseRemove without asking.

Examples

cua machines rm old-laptop
cua machines rm relay:0123abcd4567ef89 --yes --json

cua host#

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

cua host [OPTIONS] <COMMAND>

cua host setup#

Set this computer 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. By default it shares this computer's desktop and, on a computer set up for the first time through the relay, provides Spaces to your devices (a host in your pool: cua run jobs and --on auto Spaces can run here, within its limits). --share picks what it shares: desktop, spaces (its own desktop stays private), both or none; cua host config changes it later. A computer set up before keeps what it provides. Running it again with the same options changes nothing (a stopped service starts again).

cua host setup [OPTIONS]
FlagTypeDefaultDescription
--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 computer joins the account (or team) that made it.
--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 | app-helper | windows-task | process. On a Mac with the Cua Spaces app, auto is app-helper: the service runs as the app's own login item ("Cua Spaces").
--sharedesktop | spaces | both | noneWhat this computer shares: its own desktop (screen, input, shell, files), the Spaces it creates for your enrolled devices (Lume macOS VMs, Docker Linux containers), both, or neither (refused). Default: the desktop, plus Spaces on a new relay setup; a computer set up before keeps what it provides.
--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 computer. The account session is not saved.
--dedicatedbooleanfalseThis computer exists only for Cua work (a cloud instance made for it; cua cloud add aws sets its hosts up this way): jobs may run in its own Space (kind = "machine"), with its GPU and drivers as they are. Never on a computer you also use: there jobs run in macOS VMs or containers.

Examples

# Join the cua.ai relay as your account (shares this desktop and provides Spaces to your devices)
cua host setup
 
# Share this desktop only
cua host setup --share desktop
 
# A spare computer: do not share its desktop, run Spaces for your devices
cua host setup --share spaces --name "Mac mini (spare)"
 
# Add this computer with a one-time code from the Cua Spaces app (Add a computer) 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 computer to this team (id, alias or name; owner or admin): waits until the computer joins, then makes it a team computer.
--namestringName the computer gets (default: its own host name).
--expiresinteger30Minutes until the code expires (1 to 1440).
--revokestringRevoke an unused code by id (pc_…).
--no-waitbooleanfalseWith --team: print the code and exit instead of waiting; add the computer 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 computer to a team: waits for it to join, then adds it
cua host pair --team AIGIS

cua host config#

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

cua host config [OPTIONS]
FlagTypeDefaultDescription
--desktopon | offShare this computer'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).
--max-memoryintegerMemory in GB the Spaces other machines create here may use in total (0: no limit).
--max-diskintegerDisk in GB the Spaces other machines create here may use in total (0: no limit).
--max-run-timeintegerMinutes a Space created here by another machine may run before it is stopped (0: no limit).
--repo-cacheon | offThe repo cache: on | off. It keeps verified copies of public git repositories on this machine so a repeat git clone in a Space starts from one (never private repositories, never anything off this machine's disk).
--repo-cache-sizestringThe most disk the repo cache may use, in GB (auto: the smaller of 5 GB and a tenth of the free disk). The least recently used repositories go first.

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
 
# Give the Spaces other machines create here at most 32 GB of memory and 200 GB of disk in total, and stop each after 8 hours (0: no limit)
cua host config --max-memory 32 --max-disk 200 --max-run-time 480
 
# Keep no copies of public git repositories on this machine, or at most 2 GB
cua host config --repo-cache off
cua host config --repo-cache on --repo-cache-size 2

cua host cache#

What the repo cache holds, and empty it.

cua host cache [OPTIONS] <COMMAND>

cua host cache status#

What the repo cache holds: repositories, size and what the last week saved.

cua host cache status [OPTIONS]

Examples

cua host cache status

cua host cache fill#

Copy one public repository into the cache now, instead of when a Space first clones it (or bring a copy up to date). A repository that needs a sign-in is never cached.

cua host cache fill [OPTIONS] <URL>
ArgumentTypeDefaultDescription
<URL>stringrequiredThe repository's https address.

Examples

cua host cache fill https://github.com/vitejs/vite

cua host cache clear#

Delete every repository the cache holds. They are copied again the next time a Space clones them.

cua host cache clear [OPTIONS]

Examples

cua host cache clear

cua host status#

Show whether this computer 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 computer (this one, or --machine) with people in your team (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
--machinestringComputer id (default: this computer). Alias: --computer.
--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 computer with accounts; their open connections are cut.

cua host unshare [OPTIONS] <WHO>...
ArgumentTypeDefaultDescription
<WHO>...stringrequiredAccounts to remove. Repeatable. Repeatable.
FlagTypeDefaultDescription
--machinestringComputer id (default: this computer). Alias: --computer.

Examples

cua host unshare friend@example.com

cua host migrate#

macOS: move the host service into the Cua Spaces app, as its "Cua Spaces Helper" login item, from the LaunchAgent that older versions installed. This machine keeps its id, registration and Spaces; if the helper does not take over, the old service is put back. macOS then asks once for Screen Recording and Accessibility for Cua Spaces Helper.

cua host migrate [OPTIONS]
FlagTypeDefaultDescription
--forcebooleanfalseTry again even if a move failed before with this version.

Examples

cua host migrate
 
# Try again after a move that was rolled back
cua host migrate --force

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 computer provides and takes them off the relay too, instead of refusing while it provides any. The Spaces and their data stay on this computer.

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]

Examples

cua devices status

cua devices enroll#

Enroll this device. Right after a fresh cua auth login it enrolls at once (and replaces this computer'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).
--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).
--yesbooleanfalseDo not ask for confirmation.

Examples

cua devices approve K7QX-M2RP
cua devices approve dev_0123456789abcdef01234567

cua devices ls#

Your signed-in machines and their state.

cua devices ls [OPTIONS]

Alias: cua devices list.

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.

Examples

cua devices rename dev_0123456789abcdef01234567 "work phone"

cua devices revoke#

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

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

Examples

cua devices revoke dev_0123456789abcdef01234567

cua devices audit#

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

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

Examples

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

cua team#

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

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 computers.

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, computers, 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 computers.

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 computers.

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 computers).

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 computer you host) a team computer: every member and their agents see it and can open it. Macs, Linux and Windows computers 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 computer 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 computer off the team.

cua team remove-machine [OPTIONS] <TEAM> <COMPUTER>
ArgumentTypeDefaultDescription
<TEAM>stringrequiredTeam id, alias or name.
<COMPUTER>stringrequiredThe computer (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 computers 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 remote use this month: live sessions, remote hours, and your plan. Remote hours are time spent using your computers from somewhere else; using a computer from itself is free.

cua usage [OPTIONS]

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.
FlagShortTypeDefaultEnv varDescription
--userstringRun as this guest user.
--cwdstringStart in this guest directory.
--timeoutintegerStop the command after this many seconds (0: no limit).
--tokenstringCUA_ENV_TOKENspacesd token.
--stdin-ibooleanfalseStream: run the command as argv (no shell), forward this command's stdin, write stdout and stderr as they arrive, set no time limit, pass SIGINT/SIGTERM/SIGHUP on, and kill the command when this process ends. Exits with the command's status (128 + n for signal n).

Examples

cua spacesd exec http://127.0.0.1:3211 uname -a
 
# A long-lived stdio stream (stdin forwarded, no time limit, killed with this command)
cua spacesd exec -i http://127.0.0.1:3211 cat

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

cua share#

Share a link to a port, a file or a folder that opens on your other signed-in devices (never localhost): cua share 3000, cua share ./report.html, cua share ls, cua share stop ID.

cua share [OPTIONS] <TARGET>
       cua share <COMMAND>
ArgumentTypeDefaultDescription
<TARGET>stringrequiredWhat to share: a port (3000), a port in a Space (space:NAME:3000), or a file or folder (./report.html, ./build/). Paths are read-only; use ./ls for a file called ls.
FlagTypeDefaultDescription
--ttlstringHow long the share lasts (10m, 1h, 60s to 24h). Public shares default to 1h; the others have no end unless you set one.
--namestringA name for cua share ls (and cua share stop NAME).
--teambooleanfalseShare with the members of your team.
--publicbooleanfalseAnyone with the link can open it. Expires (default 1h, 60s to 24h).

Examples

# A dev server on this machine, for your own devices (phone included)
cua share 3000
 
# A port inside a Space
cua share space:dev:3000
 
# A report or a folder, read-only
cua share ./report.html
cua share ./build/
 
# Members of your team
cua share 3000 --team
 
# Anyone with the link, for an hour
cua share ./report.html --public --ttl 1h
 
# What is shared, and stop it
cua share ls
cua share stop share-1a2b3c4d5e6f
cua share stop all

cua share ls#

List the active shares.

cua share ls [OPTIONS]

Examples

# What is shared right now
cua share ls
 
# The same as JSON
cua share ls --json

cua share stop#

Stop a share (its link stops working at once), or all.

cua share stop [OPTIONS] <ID>
ArgumentTypeDefaultDescription
<ID>stringrequiredThe share's id or name from cua share ls, or all.

Examples

# Stop one share by its id
cua share stop share-1a2b3c4d5e6f
 
# Stop everything this machine shares
cua share stop all

cua share check#

Open a share's link once, as its owner, and say what came back.

cua share check [OPTIONS] <ID> [PATH]
ArgumentTypeDefaultDescription
<ID>stringrequiredThe share's id or name.
<PATH>stringoptionalA path below the link to open.

Examples

# Does the link load?
cua share check share-1a2b3c4d5e6f
 
# Open a page below the link
cua share check share-1a2b3c4d5e6f /index.html

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).
8No room on the machine: its VMs are at their memory or CPU limit, or it is low on memory.
130Cancelled (Ctrl-C during a create): what it made was removed.