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

# koava push

> Complete workflow: create model, encrypt, and upload to KoalaVault & Hugging Face

# Usage

```bash theme={"system"}
koava push <MODEL_PATH> [OPTIONS]
```

For help:

```bash theme={"system"}
koava push -h
```

# Description

The `push` command is the recommended way to publish models to KoalaVault. It combines four steps into one:

1. **Create**: Create the model on KoalaVault
2. **Encrypt**: Convert safetensors files to encrypted format, insert compliance block into `README.md` and add `LICENSE.KOALAVAULT` (see [Hugging Face Compliance](/koava/huggingface-compliance) for more details)
3. **Upload**: Upload metadata to KoalaVault
4. **Publish**: Create model on Hugging Face (*private repository by default*) and upload complete encrypted files, then update KoalaVault with Hugging Face URL and README

This is the easiest way for most users to publish their models.

<Note>
  Currently, KoalaVault only supports `safetensors` format files. Convert your model to safetensors format first if needed.
</Note>

# Examples

```bash theme={"system"}
# Basic push
koava push ./my-model

# Push with custom name and description
koava push ./my-model --name "my-encrypted-model" --description "Fine-tuned GPT-2 model for text generation"

# Force push (overwrite existing)
koava push ./my-model --force
```

# Advanced

## Arguments

### MODEL\_PATH

Path to the directory containing your model files (required).

## Options

### --name, -n

Model name to be created on both KoalaVault and Hugging Face (defaults to directory name).

```bash theme={"system"}
koava push ./my-model --name "my-model"
```

### --description, -d

Model description for marketplace listing on KoalaVault.

```bash theme={"system"}
koava push ./my-model --description "My awesome model"
```

### --force, -f

Force encryption (overwrite backup) and upload (overwrite remote).

```bash theme={"system"}
koava push ./my-model --force
```

### --public

<Note>
  **[Hugging Face Compliance](/koava/huggingface-compliance)**: By default, the `push` command creates a **private** Hugging Face repository to ensure compliance with platform requirements for encrypted models. You can manually publish the repository on Hugging Face if needed.
</Note>

Create a public Hugging Face repository instead of private (default: private).

```bash theme={"system"}
koava push ./my-model --public
```

# Publishing Your Hugging Face Repository after `push`

After using `push`, your model will be available on Hugging Face as a **private** repository. To make it public:

1. Visit your repository on Hugging Face: `https://huggingface.co/your-username/model-name`
2. Click on **Settings** in the repository menu
3. Scroll down to **Repository visibility**
4. Click **Make public** and confirm

# Related Commands

* [koava create](/koava/create) - Create model only (manual workflow)
* [koava encrypt](/koava/encrypt) - Encrypt only (manual workflow)
* [koava upload](/koava/upload) - Upload only (manual workflow)
* [koava restore](/koava/restore) - Restore from backup if needed

### See also

* [Hugging Face Compliance](/koava/huggingface-compliance)
