Files, teleport and keys

Cua Volume files and sharing, moving an app session into a sandbox, and the Cua Keyvault.

CommandDescription
cua volumeCua Volume: the versioned volume every Space and agent shares (public/, agents/<agent>/, spaces/<space>/), its grants and audit.
cua volume lsList a folder (default: the root).
cua volume catPrint a file (or one of its versions) to stdout.
cua volume putWrite a file from a local file, or from stdin with -.
cua volume rmDelete a file (its history stays).
cua volume historyA file's versions, newest first.
cua volume restoreMake an old version current again (a new version).
cua volume grantLet an agent or a Space read (or, with --rw, write) a folder beyond its defaults.
cua volume revokeRevoke a grant.
cua volume grantsThe grants (live ones; --all includes expired and revoked).
cua volume requestsAccess requests agents filed, waiting for you.
cua volume approveTurn a request into a grant.
cua volume denyDecline a request.
cua volume auditThe audit log, newest first, and whether its hash chain verified.
cua volume mountShow the drive as a volume (Finder on macOS, FUSE on Linux).
cua volume unmountTurn the volume off (files still uploading land first).
cua volume statusThe volume, sync across devices, and the block cache.
cua volume configWhich store the drive uses (fs, s3).
cua volume config showThe backend and bucket settings in effect (never keys).
cua volume config setChoose the backend.
cua volume config set-keysSave S3 keys in the credential store: the access key id and the secret, one per line on stdin.
cua teleportMove a desktop app session (tabs, profile, sign-in) into a sandbox.
cua teleport providersList the apps this machine can teleport (JSON).
cua teleport manifestDescribe what teleporting an app would move (JSON).
cua teleport pushTeleport an app session into a sandbox.
cua keyvaultThe Cua Keyvault the daemon hosts: status, init, unlock, lock, saved passwords and approvals.
cua keyvault statusWhether the Keyvault exists and is unlocked, and which protectors (Touch ID with the OS key store, a passphrase) the daemon can use.
cua keyvault initCreate the Keyvault and print its recovery key once.
cua keyvault unlockUnlock the Keyvault with the OS key store, or with its passphrase.
cua keyvault lockLock the Keyvault (unlocking needs the OS key store or the passphrase again).
cua keyvault import-passwordsImport a browser's saved passwords into the Keyvault, one item per site.
cua keyvault import-sessionImport a signed-in session (cookies, or a single-app session like Slack's) into the Keyvault, without delivering it anywhere.
cua keyvault requestsRequests waiting for your approval (site logins, teleports).
cua keyvault approveApprove a waiting request (the daemon asks for Touch ID or your login password).
cua keyvault denyDecline a waiting request.

Every command also accepts the global options.

cua volume#

Cua Volume: the versioned volume every Space and agent shares (public/, agents/<agent>/, spaces/<space>/), its grants and audit. (cua volume still works for one release.).

cua volume [OPTIONS] <COMMAND>

Examples

cua volume ls agents/
cua volume cat agents/ada/memory/MEMORY.md
cua volume put public/rules.md ./rules.md
cua volume grant agent:researcher agents/writer/outputs/
cua volume audit

cua volume ls#

List a folder (default: the root).

cua volume ls [OPTIONS] [PATH]
ArgumentTypeDefaultDescription
<PATH>stringoptional
FlagTypeDefaultDescription
--asstringView the drive as this persistent agent does (agent:ada or ada).
--spacestringWith --as: the Space the agent is in (its spaces/<space>/ folder).

Examples

cua volume ls
cua volume ls agents/ada/
cua volume ls --as agent:ada --space local:work

cua volume cat#

Print a file (or one of its versions) to stdout.

cua volume cat [OPTIONS] <PATH>
ArgumentTypeDefaultDescription
<PATH>stringrequired
FlagTypeDefaultDescription
--versionstring
--asstringView the drive as this persistent agent does (agent:ada or ada).
--spacestringWith --as: the Space the agent is in (its spaces/<space>/ folder).

Examples

cua volume cat agents/ada/memory/MEMORY.md
cua volume cat public/rules.md --version 0001790683200000-1a2b3c4d

cua volume put#

Write a file from a local file, or from stdin with -.

cua volume put [OPTIONS] <PATH> <SOURCE>
ArgumentTypeDefaultDescription
<PATH>stringrequired
<SOURCE>stringrequiredLocal file, or - for stdin.
FlagTypeDefaultDescription
--if-etagstringWrite only if the current version has this etag.
--asstringView the drive as this persistent agent does (agent:ada or ada).
--spacestringWith --as: the Space the agent is in (its spaces/<space>/ folder).
--create-onlybooleanfalseWrite only if nothing is at the path yet.

Examples

cua volume put public/rules.md ./rules.md
cua volume put public/rules.md -
cua volume put agents/ada/inbox/brief.md ./brief.md --create-only

cua volume rm#

Delete a file (its history stays).

cua volume rm [OPTIONS] <PATH>
ArgumentTypeDefaultDescription
<PATH>stringrequired
FlagTypeDefaultDescription
--if-etagstring
--asstringView the drive as this persistent agent does (agent:ada or ada).
--spacestringWith --as: the Space the agent is in (its spaces/<space>/ folder).

Examples

cua volume rm spaces/local-work/scratch.txt

cua volume history#

A file's versions, newest first.

cua volume history [OPTIONS] <PATH>
ArgumentTypeDefaultDescription
<PATH>stringrequired
FlagTypeDefaultDescription
--asstringView the drive as this persistent agent does (agent:ada or ada).
--spacestringWith --as: the Space the agent is in (its spaces/<space>/ folder).

Examples

cua volume history agents/ada/memory/MEMORY.md

cua volume restore#

Make an old version current again (a new version).

cua volume restore [OPTIONS] <PATH> <VERSION>
ArgumentTypeDefaultDescription
<PATH>stringrequired
<VERSION>stringrequired
FlagTypeDefaultDescription
--asstringView the drive as this persistent agent does (agent:ada or ada).
--spacestringWith --as: the Space the agent is in (its spaces/<space>/ folder).

Examples

cua volume restore agents/ada/memory/MEMORY.md 0001790683200000-1a2b3c4d

cua volume grant#

Let an agent or a Space read (or, with --rw, write) a folder beyond its defaults. Asks for Touch ID or your passphrase.

cua volume grant [OPTIONS] <PRINCIPAL> <PREFIX>
ArgumentTypeDefaultDescription
<PRINCIPAL>stringrequiredagent:<name> or space:<id>.
<PREFIX>stringrequiredA folder (ending in /) or one file.
FlagTypeDefaultDescription
--forstringLifetime (30m, 2h, 7d). Default: until revoked.
--notestringA note shown next to the grant.
--rwbooleanfalseRead and write (default: read only).

Examples

cua volume grant agent:researcher agents/writer/outputs/
cua volume grant space:local-build public/datasets/ --rw --for 2h

cua volume revoke#

Revoke a grant.

cua volume revoke [OPTIONS] <GRANT_ID>
ArgumentTypeDefaultDescription
<GRANT_ID>stringrequired

Examples

cua volume revoke 5f2c9a0b1d3e4f67

cua volume grants#

The grants (live ones; --all includes expired and revoked).

cua volume grants [OPTIONS]
FlagTypeDefaultDescription
--allbooleanfalse

Examples

cua volume grants

cua volume requests#

Access requests agents filed, waiting for you.

cua volume requests [OPTIONS]

Examples

cua volume requests

cua volume approve#

Turn a request into a grant. Asks for Touch ID or your passphrase.

cua volume approve [OPTIONS] <REQUEST_ID>
ArgumentTypeDefaultDescription
<REQUEST_ID>stringrequired
FlagTypeDefaultDescription
--forstring

Examples

cua volume approve 5f2c9a0b1d3e4f67
cua volume approve 5f2c9a0b1d3e4f67 --for 1d

cua volume deny#

Decline a request.

cua volume deny [OPTIONS] <REQUEST_ID>
ArgumentTypeDefaultDescription
<REQUEST_ID>stringrequired

Examples

cua volume deny 5f2c9a0b1d3e4f67

cua volume audit#

The audit log, newest first, and whether its hash chain verified.

cua volume audit [OPTIONS]
FlagTypeDefaultDescription
--limitinteger50

Examples

cua volume audit
cua volume audit --limit 200 --json

cua volume mount#

Show the drive as a volume (Finder on macOS, FUSE on Linux). Off until turned on; stays on across restarts.

cua volume mount [OPTIONS]

Examples

cua volume mount
cua volume mount --json

cua volume unmount#

Turn the volume off (files still uploading land first).

cua volume unmount [OPTIONS]

Examples

cua volume unmount

cua volume status#

The volume, sync across devices, and the block cache.

cua volume status [OPTIONS]

Examples

cua volume status
cua volume status --json

cua volume config#

Which store the drive uses (fs, s3).

cua volume config [OPTIONS] <COMMAND>

cua volume config show#

The backend and bucket settings in effect (never keys).

cua volume config show [OPTIONS]

Examples

cua volume config show

cua volume config set#

Choose the backend. Keys are never arguments: see set-keys.

cua volume config set [OPTIONS] --backend <BACKEND>
FlagTypeDefaultDescription
--backendstringrequiredfs (default) or s3.
--endpointstring
--regionstring
--bucketstring
--rootstringA key prefix every drive key lives under.
--path-stylebooleanfalse

Examples

cua volume config set --backend fs
cua volume config set --backend s3 --endpoint http://127.0.0.1:9000 --bucket cua-volume --path-style

cua volume config set-keys#

Save S3 keys in the credential store: the access key id and the secret, one per line on stdin.

cua volume config set-keys [OPTIONS]

Examples

cua volume config set-keys

cua teleport#

Move a desktop app session (tabs, profile, sign-in) into a sandbox.

cua teleport [OPTIONS] <COMMAND>

cua teleport providers#

List the apps this machine can teleport (JSON).

cua teleport providers [OPTIONS]

Examples

cua teleport providers

cua teleport manifest#

Describe what teleporting an app would move (JSON).

cua teleport manifest [OPTIONS] --app <APP>
FlagTypeDefaultDescription
--appstringrequiredApp: a bundle id or app name ("com.google.Chrome", "Slack", "claude-code").
--scopestringfulltabs (open tabs and session state) or full (the whole profile).
--profilestringChrome profile to capture: a name ("Profile 1") or a path.
--display-namestringDisplay name for the app (UI only).

Examples

cua teleport manifest --app com.google.Chrome --scope tabs

cua teleport push#

Teleport an app session into a sandbox.

cua teleport push [OPTIONS] --app <APP>
FlagShortTypeDefaultEnv varDescription
--appstringrequiredApp: a bundle id or app name ("com.google.Chrome", "Slack", "claude-code").
--scopestringfulltabs (open tabs and session state) or full (the whole profile).
--profilestringChrome profile to capture: a name ("Profile 1") or a path.
--display-namestringDisplay name for the app (UI only).
--sandbox-sstringDestination sandbox (name).
--urlstringDestination cua-spacesd URL instead of a sandbox.
--tokenstringCUA_ENV_TOKENToken for --url.
--includestringSend exactly this manifest item (repeatable; see manifest). Default: the provider's default selection, which leaves credentials-heavy or bulky items (cookies, transcripts) out unless named here.
--allbooleanfalseSend every item the scope offers.
--no-launchbooleanfalseDo not launch the app in the sandbox after importing.
--progressbooleanfalsePrint progress <sent> <total> lines while uploading.
--relay-plaintext-ackbooleanfalseSend over a relay: destination even though this Space's image predates end-to-end sealing (S1): without this, such a send refuses before reading or uploading anything. Set it only after you understand that relay.cua.ai (or a self-hosted cua-relay) could read this delivery in the clear; local and direct destinations are unaffected either way.

Examples

# Chrome's open tabs into the sandbox dev
cua teleport push --app com.google.Chrome --scope tabs --sandbox dev
 
# The whole Slack profile, every item
cua teleport push --app Slack --sandbox dev --all

cua keyvault#

The Cua Keyvault the daemon hosts: status, init, unlock, lock, saved passwords and approvals. Passphrases are prompted for (or read from stdin), never arguments.

cua keyvault [OPTIONS] <COMMAND>

Examples

cua keyvault status
cua keyvault init --passphrase
cua keyvault unlock --passphrase
cua keyvault import-passwords --browser chrome
cua keyvault requests
cua keyvault approve <request-id>
cua keyvault lock

cua keyvault status#

Whether the Keyvault exists and is unlocked, and which protectors (Touch ID with the OS key store, a passphrase) the daemon can use.

cua keyvault status [OPTIONS]

Examples

cua keyvault status
cua keyvault status --json

cua keyvault init#

Create the Keyvault and print its recovery key once. Uses the OS key store (Touch ID confirms) unless --passphrase or --passphrase-stdin.

cua keyvault init [OPTIONS]
FlagTypeDefaultDescription
--passphrasebooleanfalseUse a passphrase, typed at a terminal prompt with echo off.
--passphrase-stdinbooleanfalseUse a passphrase read from the first line of stdin (scripts).

Examples

# The OS key store (the signed Cua daemon only)
cua keyvault init
 
# A passphrase, typed twice at a prompt
cua keyvault init --passphrase
 
# Scripts: the passphrase is the first line of stdin
cua keyvault init --passphrase-stdin

cua keyvault unlock#

Unlock the Keyvault with the OS key store, or with its passphrase.

cua keyvault unlock [OPTIONS]
FlagTypeDefaultDescription
--passphrasebooleanfalseUse a passphrase, typed at a terminal prompt with echo off.
--passphrase-stdinbooleanfalseUse a passphrase read from the first line of stdin (scripts).

Examples

cua keyvault unlock
cua keyvault unlock --passphrase

cua keyvault lock#

Lock the Keyvault (unlocking needs the OS key store or the passphrase again).

cua keyvault lock [OPTIONS]

Examples

cua keyvault lock

cua keyvault import-passwords#

Import a browser's saved passwords into the Keyvault, one item per site. They stay sealed: agents sign in with them through request_site_login after you approve, and never see them. The daemon asks for Touch ID or your login password.

cua keyvault import-passwords [OPTIONS]
FlagTypeDefaultDescription
--browserchromechromeThe browser to import from.
--profilestringThe browser profile (name or path); default: the default profile.
--sitestringOnly this site (a registrable domain such as github.com). Repeatable; default: every saved site.

Examples

cua keyvault import-passwords --browser chrome
cua keyvault import-passwords --browser chrome --site github.com --site example.com
cua keyvault import-passwords --browser chrome --profile "Profile 1"

cua keyvault import-session#

Import a signed-in session (cookies, or a single-app session like Slack's) into the Keyvault, without delivering it anywhere. A later cua teleport push --sandbox NAME (or the review sheet's "Save to Keyvault") can deliver it; it stays sealed until then. The daemon asks for Touch ID or your login password.

cua keyvault import-session [OPTIONS] --app <APP>
FlagTypeDefaultDescription
--appstringrequiredThe app to import from (a teleport provider id: chrome, firefox, slack, ...; cua teleport providers lists every one on this machine).
--profilestringThe browser profile (name or path); default: the default profile. Ignored for a single-app provider (Slack, Discord, ...).
--sitestringOnly this site's cookies (a registrable domain such as github.com). Repeatable; a browser with none named imports every site's cookies. Ignored (the whole session is one item) for a single-app provider.
--include-storagebooleanfalseAlso carry each named site's localStorage / IndexedDB origins.
--include-passwordsbooleanfalseAlso carry each named site's saved passwords, as part of this same session item (cua keyvault import-passwords keeps them as their own items instead, one per site).
--session-onlybooleanfalseOnly session cookies: drop every persistent cookie.
--drop-long-livedbooleanfalseDrop persistent cookies that expire more than 30 days out (long-lived refresh tokens), keeping short sessions.

Examples

cua keyvault import-session --app chrome
cua keyvault import-session --app chrome --site github.com --site example.com
cua keyvault import-session --app firefox --profile "Profile 1"
cua keyvault import-session --app slack

cua keyvault requests#

Requests waiting for your approval (site logins, teleports).

cua keyvault requests [OPTIONS]

Examples

cua keyvault requests
cua keyvault requests --json

cua keyvault approve#

Approve a waiting request (the daemon asks for Touch ID or your login password). A site login is approved for one sign-in.

cua keyvault approve [OPTIONS] <ID>
ArgumentTypeDefaultDescription
<ID>stringrequiredThe request id (cua keyvault requests).

Examples

cua keyvault approve 5f2c9a0e

cua keyvault deny#

Decline a waiting request.

cua keyvault deny [OPTIONS] <ID>
ArgumentTypeDefaultDescription
<ID>stringrequiredThe request id.

Examples

cua keyvault deny 5f2c9a0e

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.