---
title: "Plugin size limits"
description: "Diagnose a size refusal and choose the relevant limit reference."
canonical_url: "https://docs.oz0.ai/build/plugins/limits"
---
# Plugin size limits

> Diagnose a size refusal and choose the relevant limit reference.

For: tenant administrators and plugin authors.

Use the error code from lint, pack, hub submission or install to find the relevant size limit. README and licence messages end with a code such as `(readme.size)`. In `plugin lint --json`, each problem includes its code, a fix and a link to the corresponding limit.

The bounds protect the server when it reads files and keep the hub's rendered plugin page within its supported size. The companion pages separate documentation limits from artifact and index limits.

A job's own limits (steps, tokens, budgets, a job tree) are on [Contracts and limits](https://docs.oz0.ai/build/parts/contracts-and-limits/limits#every-limit-in-one-table), a tenant's (agents, task queues, request sizes) on [Limits and scaling](https://docs.oz0.ai/concepts/limits-and-scaling/limits#the-limits).

## When the README is too long

The hub's plugin page shows your `README.md` as the plugin's documentation, so it holds what a reader needs before they install: what the plugin does and for whom, how to set it up (connections, secrets, settings, models), which functions read and which write, and a Limits section that says what it does not do. Move everything longer to your own site and link it from the README: guides, tutorials, reference pages, a changelog, design notes. The listing's homepage link is the place for the site itself ([List a plugin](https://docs.oz0.ai/build/plugins/list-a-plugin)).

When `plugin lint` fails on the README:

- Too long, or too many images or diagrams (`readme.size`, `readme.images`, `readme.images_total`, `readme.diagrams`): cut it to the sections above and link the rest.
- An image (`readme.image_size`, `readme.image_dimensions`, `readme.image_format`, `readme.image_missing`): keep it in the plugin's folder, as PNG, JPEG, WebP or GIF with the extension of its format, at most 1 MiB and 4,096 pixels a side, and refer to it by a path relative to the README. A logo or a diagram drawn as SVG is refused: export it as PNG, or write the diagram in Mermaid.
- A diagram (`readme.diagram_size`): split it, or keep the overview in the README and the detail on your site.

Run `oz0 plugin lint` after each change: it reads the README the way the hub's page renders it.

## How to read the tables

Each check has a level at each step, and only an error stops the command; a warning is printed and the command goes on.

<table>
<thead>
  <tr>
    <th>
      Step
    </th>
    
    <th>
      What runs the check
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      lint
    </td>
    
    <td>
      <code>
        oz0 plugin lint
      </code>
      
      , and every check that loads a plugin's folder: <code>
        plugin test
      </code>
      
      , the studio's lint
    </td>
  </tr>
  
  <tr>
    <td>
      pack
    </td>
    
    <td>
      <code>
        oz0 plugin pack
      </code>
      
       and <code>
        oz0 plugin push
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      hub submit
    </td>
    
    <td>
      <code>
        oz0 hub submit
      </code>
      
      , and the hub's own checks of a pull request, which run the same engine
    </td>
  </tr>
  
  <tr>
    <td>
      install
    </td>
    
    <td>
      The edge's install of any source, a workspace, <code>
        oz0 dev
      </code>
    </td>
  </tr>
</tbody>
</table>

Installs take a plugin whose README breaks a limit, with a warning: the limits are the hub page's, and a plugin's own users may read anything it ships. `plugin lint --verified` changes none of these levels.

## Limits on other pages

Limits that belong to one part of a plugin are on that part's page, next to what they limit:

- a skill's body, all of a plugin's skills and how many it has ([what lint checks of skills](https://docs.oz0.ai/build/parts/skills#what-lint-checks));
- a tool's container image and each of its layers ([container images](https://docs.oz0.ai/build/plugins/container-images#pinned-and-mirrored-by-the-edge));
- each field of the manifest and of an agent, such as a reason's length or how many egress hosts a plugin names ([the plugin manifest](https://docs.oz0.ai/reference/plugin-manifest), [the agent definition](https://docs.oz0.ai/reference/agent-definition));
- a job's steps, tokens, budgets and tree ([Contracts and limits](https://docs.oz0.ai/build/parts/contracts-and-limits/limits#every-limit-in-one-table)).

## Related tasks

- [Documentation limits](https://docs.oz0.ai/build/plugins/limits/documentation): Look up README, image, diagram and licence bounds.
- [Artifact and index limits](https://docs.oz0.ai/build/plugins/limits/artifacts): Look up bundle, tool listing, startup, hub and index bounds.

<legacy-sections>

- <span id="bundle-checked">

Section

</span>

: [bundle checked](https://docs.oz0.ai/build/plugins/limits/artifacts#bundle-checked)
- <span id="bundle-entries">

Section

</span>

: [bundle entries](https://docs.oz0.ai/build/plugins/limits/artifacts#bundle-entries)
- <span id="bundle-size">

Section

</span>

: [bundle size](https://docs.oz0.ai/build/plugins/limits/artifacts#bundle-size)
- <span id="bundle-unpacked">

Section

</span>

: [bundle unpacked](https://docs.oz0.ai/build/plugins/limits/artifacts#bundle-unpacked)
- <span id="files-count">

Section

</span>

: [files count](https://docs.oz0.ai/build/plugins/limits/artifacts#files-count)
- <span id="hub-file-size">

Section

</span>

: [hub file size](https://docs.oz0.ai/build/plugins/limits/artifacts#hub-file-size)
- <span id="hub-files">

Section

</span>

: [hub files](https://docs.oz0.ai/build/plugins/limits/artifacts#hub-files)
- <span id="hub-size">

Section

</span>

: [hub size](https://docs.oz0.ai/build/plugins/limits/artifacts#hub-size)
- <span id="index-size">

Section

</span>

: [index size](https://docs.oz0.ai/build/plugins/limits/artifacts#index-size)
- <span id="licence-deprecated">

Section

</span>

: [licence deprecated](https://docs.oz0.ai/build/plugins/limits/documentation#licence-deprecated)
- <span id="licence-id">

Section

</span>

: [licence id](https://docs.oz0.ai/build/plugins/limits/documentation#licence-id)
- <span id="licence-mismatch">

Section

</span>

: [licence mismatch](https://docs.oz0.ai/build/plugins/limits/documentation#licence-mismatch)
- <span id="licence-missing">

Section

</span>

: [licence missing](https://docs.oz0.ai/build/plugins/limits/documentation#licence-missing)
- <span id="licence-undeclared">

Section

</span>

: [licence undeclared](https://docs.oz0.ai/build/plugins/limits/documentation#licence-undeclared)
- <span id="licence-unrecognised">

Section

</span>

: [licence unrecognised](https://docs.oz0.ai/build/plugins/limits/documentation#licence-unrecognised)
- <span id="listing-graph">

Section

</span>

: [listing graph](https://docs.oz0.ai/build/plugins/limits/artifacts#listing-graph)
- <span id="listing-links">

Section

</span>

: [listing links](https://docs.oz0.ai/build/plugins/limits/artifacts#listing-links)
- <span id="listing-sbom">

Section

</span>

: [listing sbom](https://docs.oz0.ai/build/plugins/limits/artifacts#listing-sbom)
- <span id="listing-summary">

Section

</span>

: [listing summary](https://docs.oz0.ai/build/plugins/limits/artifacts#listing-summary)
- <span id="listing-tag">

Section

</span>

: [listing tag](https://docs.oz0.ai/build/plugins/limits/artifacts#listing-tag)
- <span id="listing-tags">

Section

</span>

: [listing tags](https://docs.oz0.ai/build/plugins/limits/artifacts#listing-tags)
- <span id="readme-diagram_size">

Section

</span>

: [readme diagram_size](https://docs.oz0.ai/build/plugins/limits/documentation#readme-diagram_size)
- <span id="readme-diagrams">

Section

</span>

: [readme diagrams](https://docs.oz0.ai/build/plugins/limits/documentation#readme-diagrams)
- <span id="readme-excerpt">

Section

</span>

: [readme excerpt](https://docs.oz0.ai/build/plugins/limits/artifacts#readme-excerpt)
- <span id="readme-html">

Section

</span>

: [readme html](https://docs.oz0.ai/build/plugins/limits/documentation#readme-html)
- <span id="readme-image_alt">

Section

</span>

: [readme image_alt](https://docs.oz0.ai/build/plugins/limits/documentation#readme-image_alt)
- <span id="readme-image_dimensions">

Section

</span>

: [readme image_dimensions](https://docs.oz0.ai/build/plugins/limits/documentation#readme-image_dimensions)
- <span id="readme-image_format">

Section

</span>

: [readme image_format](https://docs.oz0.ai/build/plugins/limits/documentation#readme-image_format)
- <span id="readme-image_missing">

Section

</span>

: [readme image_missing](https://docs.oz0.ai/build/plugins/limits/documentation#readme-image_missing)
- <span id="readme-image_size">

Section

</span>

: [readme image_size](https://docs.oz0.ai/build/plugins/limits/documentation#readme-image_size)
- <span id="readme-images">

Section

</span>

: [readme images](https://docs.oz0.ai/build/plugins/limits/documentation#readme-images)
- <span id="readme-images_total">

Section

</span>

: [readme images_total](https://docs.oz0.ai/build/plugins/limits/documentation#readme-images_total)
- <span id="readme-missing">

Section

</span>

: [readme missing](https://docs.oz0.ai/build/plugins/limits/documentation#readme-missing)
- <span id="readme-remote_image">

Section

</span>

: [readme remote_image](https://docs.oz0.ai/build/plugins/limits/documentation#readme-remote_image)
- <span id="readme-size">

Section

</span>

: [readme size](https://docs.oz0.ai/build/plugins/limits/documentation#readme-size)
- <span id="startup-budget">

Section

</span>

: [startup budget](https://docs.oz0.ai/build/plugins/limits/artifacts#startup-budget)
- <span id="the-bundle">

Section

</span>

: [the bundle](https://docs.oz0.ai/build/plugins/limits/artifacts#the-bundle)
- <span id="the-hubs-review-caps">

Section

</span>

: [the hubs review caps](https://docs.oz0.ai/build/plugins/limits/artifacts#the-hubs-review-caps)
- <span id="the-licence">

Section

</span>

: [the licence](https://docs.oz0.ai/build/plugins/limits/documentation#the-licence)
- <span id="the-listing">

Section

</span>

: [the listing](https://docs.oz0.ai/build/plugins/limits/artifacts#the-listing)
- <span id="the-measured-listing">

Section

</span>

: [the measured listing](https://docs.oz0.ai/build/plugins/limits/artifacts#the-measured-listing)
- <span id="the-readme-its-images-and-its-diagrams">

Section

</span>

: [the readme its images and its diagrams](https://docs.oz0.ai/build/plugins/limits/documentation#the-readme-its-images-and-its-diagrams)
- <span id="the-signed-index">

Section

</span>

: [the signed index](https://docs.oz0.ai/build/plugins/limits/artifacts#the-signed-index)
- <span id="tool-size-and-start-up-budgets">

Section

</span>

: [tool size and start up budgets](https://docs.oz0.ai/build/plugins/limits/artifacts#tool-size-and-start-up-budgets)
- <span id="tools-budget">

Section

</span>

: [tools budget](https://docs.oz0.ai/build/plugins/limits/artifacts#tools-budget)
- <span id="tools-listing">

Section

</span>

: [tools listing](https://docs.oz0.ai/build/plugins/limits/artifacts#tools-listing)
- <span id="tools-tokens">

Section

</span>

: [tools tokens](https://docs.oz0.ai/build/plugins/limits/artifacts#tools-tokens)

</legacy-sections>


## Sitemap

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