# Publishing to VIVERSE with the CLI

***

The [VIVERSE CLI](https://www.npmjs.com/package/@viverse/cli) can be used to publish any working WebGL build to the VIVERSE platform after an authentication process.

### Installation

Using npm:

```
npm install -g @viverse/cli
```

> **Note:** This CLI requires Node.js version 22.15.0 or higher.

### Authentication

Login to VIVERSE platform:

```
viverse-cli auth login
```

<figure><img src="https://1140075852-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4pMiThqqrBzfvP8uy5am%2Fuploads%2FK7xFSsfMkOyqXWNgXNWe%2Fimage.png?alt=media&#x26;token=f4f41069-6a08-4fdd-8a3c-8f37608370d3" alt=""><figcaption></figcaption></figure>

Or directly pass in login credentials for CI/CD integration:

```
viverse-cli auth login -e <email> -p <password>
```

In such CI/CD environments, it's recommended to use environment variables:

```
viverse-cli auth login -e $VVS_EMAIL -p $VVS_PASSWORD
```

After login, check your authentication status:

```
viverse-cli auth status
```

<figure><img src="https://1140075852-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4pMiThqqrBzfvP8uy5am%2Fuploads%2FsUgitPgxUhnm7msFmc1o%2Fimage.png?alt=media&#x26;token=094d2d7a-2aae-42fe-b74e-798bc8b19409" alt=""><figcaption></figcaption></figure>

And to logout:

```
viverse-cli auth logout
```

After [install and authentication](https://docs.viverse.com/standalone-app-publishing/publishing-to-viverse-with-the-cli), the VIVERSE CLI can be used to publish any working WebGL build to the VIVERSE platform after an authentication process. When publishing, you'll either access your existing projects, or create a new one.

## Creating Applications

You can use the VIVERSE CLI to create a new application directly:

```
viverse-cli app create
```

<figure><img src="https://1140075852-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4pMiThqqrBzfvP8uy5am%2Fuploads%2FniDfGKpvZgskQXhgqYIJ%2Fimage.png?alt=media&#x26;token=775a49ae-2391-49e3-bc29-dfda0dd95cda" alt=""><figcaption></figcaption></figure>

Or specify a name:

```
viverse-cli app create --name <application-name>
```

Alternately, you can use the [VIVERSE Studio](https://studio.viverse.com/) workflow to create an application ID:

<figure><img src="https://1140075852-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4pMiThqqrBzfvP8uy5am%2Fuploads%2Fix4He96yqQtczw1LT8vd%2Fimage.png?alt=media&#x26;token=faa35706-3712-4d08-b7ef-56daa44de6da" alt=""><figcaption><p>From the Upload section, click the light blue "Create New World" button in the top right to open this modal.</p></figcaption></figure>

<figure><img src="https://1140075852-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4pMiThqqrBzfvP8uy5am%2Fuploads%2FvIhatQ0JevPPetSih90V%2Fimage.png?alt=media&#x26;token=14b0bd81-a8a8-46e7-83dc-5eea235fd35f" alt=""><figcaption><p>Once created, your App ID will display on the world page.</p></figcaption></figure>

#### **Listing Applications**

Once authenticaed, you can view your account's available application list:

```
viverse-cli app list
```

The output will be displayed in a table format with the following columns:

* ID: Application identifier
* STATE: Application state
* TITLE: Application name
* URL: Application preview URL

## Publishing Content

Publishing content requires two inputs:

1. **App ID** — the target application to publish to (**required**)
2. **Content path** — the directory containing your content (optional if you're already in that directory)

**Option 1: Specify content path**

```
viverse-cli app publish <path> --app-id <your-app-id>
```

**Option 2: From within content directory**

```
viverse-cli app publish --app-id <your-app-id>
```

> **Note:** The App ID is required. You can use the `viverse-cli app list` command to query your existing application IDs, or view the IDs of newly created applications after using `app create`.

> **Important:** After uploading content successfully, you'll need to visit the Creator Studio website to complete the review and publishing process.

> **Warning:** The `<path>` parameter MUST point to your **build output folder** and NOT your source code folder. Publishing source code folders (containing `src/`, `node_modules/`, or development files like `.tsx`, `.jsx`, `.vue`, `.unity`, etc.) will result in non-functional content and deployment failures.

### Content Approval

For security purposes, creators must submit their application for approval
