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

> Usage and flags for oz0 setup.

For: Operators and developers looking up a command.

Write what a coding assistant reads to use Orchestrator Zero and build plugins for it, in the project's own files (the folder --dir names, by default this one), or in your own configuration with --global.

Every tool gets the build kit's skills (oz0-choose-the-kind, oz0-new-plugin, oz0-connector, oz0-check, oz0-contracts-and-evals, oz0-writing, oz0-publish, oz0-where-a-fix-belongs) in .agents/skills (--global: ~/.agents/skills), the folder every tool but Claude Code reads, and the operators' MCP server where the tool reads one:

claude-code  the skills in .claude/skills too (--global: ~/.claude/skills); the MCP server in .mcp.json (--global: ~/.claude.json)
codex        the MCP server in .codex/config.toml (--global: $CODEX_HOME/config.toml, ~/.codex by default), and a section of AGENTS.md
gemini       the MCP server in .gemini/settings.json (--global: ~/.gemini/settings.json), and a section of GEMINI.md (--global: ~/.gemini/GEMINI.md)
cursor       the MCP server in .cursor/mcp.json (--global: ~/.cursor/mcp.json)
copilot      GitHub Copilot's CLI, coding agent and VS Code: the MCP server in .mcp.json (--global: $COPILOT_HOME/mcp-config.json, ~/.copilot by default)
opencode     the MCP server in opencode.json (--global: ~/.config/opencode/opencode.json)
goose        the skills only; with --global, the MCP server in ~/.config/goose/config.yaml

The MCP server is `oz0 mcp`, the operators' MCP server on stdio, which reads this machine's CLI context when the assistant starts it: no token, key or password is written into any file. The instructions point the assistant at the documentation's llms.txt (--docs-url). Each skill carries the kit's version, this binary's: a second run changes nothing, and --update replaces skills of another version that nobody changed since setup wrote them, saying what changed.

A file that changes is copied to \<file>.oz0-backup-\<time> first; --dry-run prints the changes as a diff and writes nothing; --remove takes out only what setup wrote, and keeps a skill someone changed. It never runs the assistant's own commands, installs, downloads or signs in to anything. The assistant asks before it uses a project's MCP server for the first time.

## Usage

```bash
oz0 setup claude-code|codex|gemini|cursor|copilot|opencode|goose [flags]
```

## Flags

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

<tbody>
  <tr>
    <td>
      <code>
        --command
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        this binary's name, "oz0", found on PATH
      </code>
    </td>
    
    <td>
      the command the assistant starts
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --dir
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        this folder
      </code>
    </td>
    
    <td>
      the project folder
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --docs-url
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        https://docs.oz0.ai
      </code>
    </td>
    
    <td>
      the documentation's address, for the instructions (an internal mirror, for example)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --dry-run
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      print the changes as a diff and write nothing
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --global
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      write your own configuration (in your home folder) instead of the project's
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --remove
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      take out what oz0 setup wrote
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --update
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      also replace the kit's skills of another version, where nobody changed them since setup wrote them
    </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.
