---
title: "oz0 plugin remove"
description: "Uninstall a plugin; nodes stop it and delete it."
canonical_url: "https://docs.oz0.ai/reference/cli/oz0/plugin/remove"
---
# oz0 plugin remove

> Uninstall a plugin; nodes stop it and delete it.

For: Operators and developers looking up a command.

Uninstall a plugin; nodes stop it and delete it. The removal is refused while anything depends on the plugin (other plugins' grants or uses:, routines, other plugins' flows, running jobs, its records), and the refusal lists them with their owners (oz0 plugin dependents shows the same). Retire it first so nothing new starts to use it, or remove it anyway with --force and a --reason, which the audit log keeps with the list; running jobs are then cancelled.

What named its agents and flows is listed as they go: API key scopes and agent grants marked, routines paused, keep-for rules and legal bases dropped, rules to edit.

Removing a set removes, newest first, the members it installed that nothing else uses (no other plugin's grant or uses:, no other set), each checked and audited as a removal that names the set; a member that was installed before the set, or that something uses, stays, and the answer says why.

## Usage

```bash
oz0 plugin remove <name> [flags]
```

## Flags

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

<tbody>
  <tr>
    <td>
      <code>
        --force
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      remove it although others depend on it (takes --reason)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --reason
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      
    </td>
    
    <td>
      why a forced removal goes past its dependents (at most 500 characters; default $OZ0_REASON)
    </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.
