> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tai42.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# tai setup

> Initialize a fresh deployment: create the owner principal and mint its first key.

Initialize a fresh deployment: create the owner principal and mint its first key.

```console theme={null}
$ tai setup [OPTIONS] COMMAND [ARGS]...
```

| Option                            | Description                                                                                                                                                                                                                                                                                                                                                                                                |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--display-name` `&lt;str&gt;`    | The owner principal's display name (required to initialize).                                                                                                                                                                                                                                                                                                                                               |
| `--token` `&lt;str&gt;`           | The setup token, or '-' to read it from stdin. The server auto-generates one and prints it in its startup log unless you set TAI\_SETUP\_TOKEN yourself, or the door is unavailable and mints none — access control off, no key-minting identity provider, or the access-control Redis unset (those three are also the 501 the door answers). Falls back to TAI\_SETUP\_TOKEN, then an interactive prompt. |
| `--user` `&lt;str&gt;`            | The owner principal's id (omitted = server-minted).                                                                                                                                                                                                                                                                                                                                                        |
| `--key-user` `&lt;str&gt;`        | The owner key's id (omitted = server-minted).                                                                                                                                                                                                                                                                                                                                                              |
| `--key-description` `&lt;str&gt;` | The owner key's description. *(default: `owner key`)*                                                                                                                                                                                                                                                                                                                                                      |
| `--password` `&lt;str&gt;`        | Set the owner's password now (needs --email).                                                                                                                                                                                                                                                                                                                                                              |
| `--password-file` `&lt;str&gt;`   | Read the owner's password from a file, or from stdin when the path is '-', instead of putting a secret on the command line (a value on argv leaks via ps and shell history).                                                                                                                                                                                                                               |
| `--invite`                        | Attach the owner's login via a one-time invite link instead of a password. *(default: `False`)*                                                                                                                                                                                                                                                                                                            |
| `--no-login`                      | Keys-only: create the owner and its key, attach no login. *(default: `False`)*                                                                                                                                                                                                                                                                                                                             |
| `--email` `&lt;str&gt;`           | The owner's email (required with --password/--invite).                                                                                                                                                                                                                                                                                                                                                     |
| `--recover`                       | Re-mint the owner's key when the deployment is initialized but no owner key can authenticate (host-side: reads the deployment's manifest and stores; needs the setup token). *(default: `False`)*                                                                                                                                                                                                          |
| `--manifest-path` `&lt;str&gt;`   | With --recover: the deployment's manifest (default: TAI\_MANIFEST\_PATH).                                                                                                                                                                                                                                                                                                                                  |
