---
title: "oz0 plugin push"
description: "Usage and flags for oz0 plugin push."
canonical_url: "https://docs.oz0.ai/reference/cli/oz0/plugin/push"
---
# oz0 plugin push

> Usage and flags for oz0 plugin push.

For: Operators and developers looking up a command.

Publish a bundle (or a folder, packed first) to an OCI registry as an artifact of type application/vnd.oz0.plugin.v1: a config with the plugin's name and version (application/vnd.oz0.plugin.config.v1+json) and the bundle as its one layer (application/vnd.oz0.plugin.bundle.v1.tar+gzip). It prints the manifest's digest, which is what `plugin install oci://...@sha256:<digest>` takes: plugins install from registries by digest only, never by a tag that can move. The same bundle always gives the same digest.

Credentials come from --username with --password-stdin, or OZ0_REGISTRY_AUTH (user:password); registries on this machine are reached over plain HTTP (servers do that only in dev mode). This runs on your machine; servers pull with a tenant secret.

## Usage

```bash
oz0 plugin push <bundle|dir> oci://<registry>/<repository>[:<tag>] [flags]
```

## Flags

<table>
<thead>
  <tr>
    <th>
      Flag
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Default
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        --json
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      print JSON instead of a table
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --password-stdin
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      read the registry password or token from stdin
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --username
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      
    </td>
    
    <td>
      the registry user
    </td>
  </tr>
</tbody>
</table>

## Inherited flags

<table>
<thead>
  <tr>
    <th>
      Flag
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Default
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        --context
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        $OZ0_CONTEXT or &lt;config dir>/orchestrator-zero/context.json
      </code>
    </td>
    
    <td>
      CLI context file written by server init
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --log-level
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        info
      </code>
    </td>
    
    <td>
      log level: debug, info, warn or error
    </td>
  </tr>
</tbody>
</table>

See [all `oz0` commands](https://docs.oz0.ai/reference/cli/oz0) and the [global flags](https://docs.oz0.ai/reference/cli/oz0#global-flags).


## Sitemap

See the full [sitemap](https://docs.oz0.ai/sitemap.md) for all pages.
