# w3up CLI
Verifying the CLI is as we want it. Currently:
```sh
$ w3up --help
w3up
Commands:
w3up id Generate a UCAN Identity
w3up register <email> Register your UCAN Identity with w3up
w3up whoami Show your current UCAN Identity
w3up list List your uploads
w3up upload <path> Upload any file or directory to your account
w3up upload-cars <path> Walk a file directory, and upload any found cars to an account
w3up open <cid> Open a CID in your browser on w3s.link
w3up settings <cmd> Manage settings
w3up store <cmd> Manage car files in w3up.
w3up uploads <cmd> Manage uploads
w3up delegate <cmd> Manage delegations
w3up car <cmd> CAR file specific commands
w3up info Print information about cli
```
It's also built with `yargs` not `sade`.
---
## Proposal v2
```bash
$ w3 --help
w3
Commands:
w3 up <file> [file...] alias: upload, put
w3 ls alias: list
w3 rm <data-cid> alias: remove
w3 open <data-cid>
w3 whoami
# space management
w3 space create [name]
w3 space register <email>
w3 space ls
w3 space use <did>
w3 space add <proof.ucan>
# capability management
w3 proof ls
w3 proof add <proof.ucan>
w3 delegation ls
w3 delegation create <audience-did> <ability> [ability...] > delegation.ucan
# advanced usage - grouped by capability namespace:
w3 can <subcommand>
w3 can store add <car-file>
w3 can store list
w3 can store remove <car-cid>
w3 can upload add <root-cid> [shard-cid...]
w3 can upload list
w3 can upload remove <root-cid>
w3 can space info <did>
w3 can space recover <email>
Flags:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
```
## Proposal v1
```bash
$ w3 --help
w3
Commands:
w3 register <email>
w3 up <file> [file...] alias: upload, put
w3 ls alias: list
w3 rm <data-cid> alias: remove
w3 open <data-cid>
w3 whoami
w3 store add <car-file>
w3 store list
w3 store remove <car-cid>
w3 delegate --to did > delegation.ucan (dont call in *.car, it confuse user... never upload dis thing)
w3 delegate import delegation.ucan
Flags:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
```
## Reasoning (old)
```
w3cli account register <email>
```
Creates a new keypair, registers the account, delegates to the agent and throws away the private key (after printing pneumonic).
Internally this sets the “current” account DID.
```
w3cli account link <email>
```
Obtains an any delegation for the current agent.
Internally this sets the “current” account DID.
```
w3cli account delegate <ability> [ability...]
```
Delegates abilities from the current account to the current agent.
```
w3cli agent create <name>
```
Create a new agent keypair.
```
w3cli agent import <file>
```
Loads agent keypair and delegations from a file.
```
w3cli agent list
```
List agents known to the CLI.
```
w3cli agent switch <agent-did>
```
Select the agent DID as the “current” agent.
### w3access
keep advanced access management in seperate cli
```bash
w3access create <name> - output ucan?
w3access delegate <ability> [ability...]
w3access import <file>
w3access export
w3access list
w3access switch <agent-did>
```