---
title: "oz0 plugin preview"
description: "Build a plugin from a source as `plugin install` would, with the same checks against the tenant, and keep nothing."
canonical_url: "https://docs.oz0.ai/reference/cli/oz0/plugin/preview"
---
# oz0 plugin preview

> Build a plugin from a source as `plugin install` would, with the same checks against the tenant, and keep nothing.

For: Operators and developers looking up a command.

Build a plugin from a source as `plugin install` would, with the same checks against the tenant, and keep nothing. A folder or an archive on this machine, such as your working copy, is packed and uploaded as `plugin install` does it, so a plugin's CI can preview it against a real tenant.

It prints the names, the tool IDs and what the install would refuse (a tool ID or an agent name another plugin of the tenant has; the tenant's queue limits; contracts that break the installed version's without a new major version), the contract changes, and what the tenant's plugins would take of its limits.

For a Claude Code plugin, an Agent Plugin or an MCP Registry entry it prints the inventory, every hook and MCP command it would run on nodes, and its digest, which `plugin install --accept-inventory` takes, and what does not carry over. For a plugin that uses other plugins it prints what it asks of them, the plugins an install would install first, and the digest `plugin install --accept-uses` takes.

It names each agent that would combine private data, outside input and sending out while a sending function runs without asking, with the switch that closes it; that never refuses the install. Exits non-zero when the install would be refused; --json prints it all for scripts.

## Usage

```bash
oz0 plugin preview <folder | archive | git-url | oci://… | hub:name | mcp:name[@version]> [flags]
```

## Flags

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

<tbody>
  <tr>
    <td>
      <code>
        --dependency
      </code>
    </td>
    
    <td>
      stringArray
    </td>
    
    <td>
      
    </td>
    
    <td>
      &lt;plugin>=&lt;source>: where an install would get a plugin it uses that the tenant lacks; repeatable
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --guarded-servers
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      preview with the plugin's servers that hold secrets also serving guarded sessions (needs --harness-extras)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --harness-extras
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      preview with the plugin's hooks and MCP servers kept in harness sessions
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --json
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      print JSON instead of a table
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --path
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      
    </td>
    
    <td>
      the plugin's folder in the repository
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --plugin
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      
    </td>
    
    <td>
      the source is a Claude Code marketplace: preview its plugin of this name
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --ref
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      
    </td>
    
    <td>
      branch, tag or full commit SHA, or for mcp: the version
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --secret
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      
    </td>
    
    <td>
      tenant secret with a token for a private repository, bound to its host (oz0 secret set NAME --host HOST)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --tenant
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        default
      </code>
    </td>
    
    <td>
      tenant
    </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.
