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

> Usage and flags for oz0-node toolchain fetch.

For: Operators and developers looking up a command.

Download, at build time, everything a node installs before its runtime starts: the uv release this binary pins, the CPython build that uv installs for each runtime bundle's Python version, every third-party package of the bundles' requirements.txt as wheels, and the Node.js release this binary pins for plugins' npm packages, for each platform. Every file is checked against its SHA-256 (pinned in this binary, in the Python release's SHA256SUMS, or in requirements.txt) and listed in toolchain.json.

An edge serves the folder from its dist directory (dist/toolchain/), and nodes then install from the edge alone. Runs again add to what is there; downloads are kept in --cache.

## Usage

```bash
oz0-node toolchain fetch [flags]
```

## Flags

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

<tbody>
  <tr>
    <td>
      <code>
        --cache
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        the user cache directory
      </code>
    </td>
    
    <td>
      where downloads are kept between runs
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --dir
      </code>
    </td>
    
    <td>
      folder
    </td>
    
    <td>
      <code>
        dist/toolchain
      </code>
    </td>
    
    <td>
      the toolchain folder: toolchain/ in the dist directory the edge serves
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --index
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        https://pypi.org/simple
      </code>
    </td>
    
    <td>
      the package index (PEP 691) wheels come from
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --mlx-lm
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      mirror the mlx-lm the node installs for its mlx model servers, from the lock built into it (with --platform darwin/arm64)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --no-node
      </code>
    </td>
    
    <td>
      bool
    </td>
    
    <td>
      
    </td>
    
    <td>
      leave Node.js out (nodes then download it from nodejs.org for npm plugins, unless offline)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --platform
      </code>
    </td>
    
    <td>
      platform
    </td>
    
    <td>
      
    </td>
    
    <td>
      a node platform to mirror for: linux/amd64, linux/arm64, linux/amd64-musl, linux/arm64-musl, darwin/amd64, darwin/arm64, windows/amd64 (repeatable; default this machine's)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --plugin
      </code>
    </td>
    
    <td>
      folder
    </td>
    
    <td>
      
    </td>
    
    <td>
      a Python plugin's folder whose locked packages (every group) and build backend to mirror, for offline nodes; one without a uv.lock is locked first (repeatable)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --python
      </code>
    </td>
    
    <td>
      version
    </td>
    
    <td>
      
    </td>
    
    <td>
      another Python version to mirror (repeatable)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --requirements
      </code>
    </td>
    
    <td>
      file
    </td>
    
    <td>
      
    </td>
    
    <td>
      a requirements file, pinned by version and hash, whose packages to mirror too (repeatable)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        --runtime-bundle
      </code>
    </td>
    
    <td>
      dir
    </td>
    
    <td>
      
    </td>
    
    <td>
      a runtime bundle dir whose Python and packages to mirror (repeatable)
    </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>
        --data-dir
      </code>
    </td>
    
    <td>
      string
    </td>
    
    <td>
      <code>
        ~/.local/share/orchestrator-zero-node
      </code>
    </td>
    
    <td>
      where the node keeps its identity, uv, Python, runtimes and state
    </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-node` commands](https://docs.oz0.ai/reference/cli/oz0-node) and the [global flags](https://docs.oz0.ai/reference/cli/oz0-node#global-flags).


## Sitemap

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