> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cyberun.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Install custom nodes

> Add a custom node package to your team's agents.

This page walks the upload flow for a custom node package. For the
concept overview see [Custom nodes](/cloud/concepts/nodes). The
**Custom Nodes** entry must appear in your sidebar — if not, this deployment
hasn't enabled custom nodes on your deployment.

## Before you start

* The node package archive on disk.
* A team you belong to. Any member can upload.
* Decide on a `package_name` for the bundle. Workflows reference
  packages by this name — pick something stable.

## Upload

1. Open **Custom Nodes** in the sidebar.

2. Click **Upload node**.

3. Pick the archive.

4. Fill in the metadata:

   | Field            | Notes                                                                                                       |
   | ---------------- | ----------------------------------------------------------------------------------------------------------- |
   | Display name     | Human-readable label shown in lists. Up to 255 characters.                                                  |
   | Package name     | Directory name under `custom_nodes/`. Up to 100 characters, letters/digits/`-`/`_`/`.` only. **Immutable.** |
   | Version          | Free-form version string up to 50 characters (`1.0.0`, `2024-05`, anything).                                |
   | Pip requirements | Optional. Extra Python deps beyond the package's own `requirements.txt`, one per line.                      |

5. Click **Upload**. The dashboard uploads the archive and registers
   the package.

6. The new node appears in the list with its version badge.

## Update an existing package

Two paths:

* **Reupload** — from the node's row, replace the archive. The
  package name stays the same; the contents update. Useful for
  shipping a fix without bumping the version. Tasks already running
  on an agent finish with the version they started with.
* **Edit** — change display name, version, pip requirements, or
  status without touching the archive.

## Edit or delete

* **Edit** — display name, version, pip requirements, status.
* **Delete** — removes the record. Tasks already running finish
  with the version they started with.

Bulk delete from the list using multi-select.

## How packages reach agents

Same model as custom files: an agent with matching labels and a
task that references the package downloads it on first need,
caches it, and reuses it after that.

## Related

* [Custom nodes](/cloud/concepts/nodes) — concept.
* [Models](/cloud/guides/upload-model) — same pattern for model
  files.
* [Workflows](/cloud/concepts/workflows) — where packages are
  referenced.
