Skip to content

Node Hub

The Node Hub (left rail, bookmark icon) browses the node catalog and installs entries into your library. Most node types on the canvas are described by a catalog entry. This includes shell actions, filesystem actions, utilities, CLI tool presets, and service integrations. When you install one, it writes its scheme to ~/.flow-studio/nodes/<slug>.json. That file is the runtime source of truth that the palette, factory, inspector, renderer, and pre-run validator all consume.

Each entry has the full schema needed to drop the node onto a canvas:

  • schema is a JSON Schema subset that drives the generic inspector’s form along with both the frontend and backend validators.
  • defaults holds the values stamped onto fresh nodes from the palette.
  • commandTree is embedded reference data. The inspector reads it to render a cascading command picker without a per-kind code path.
  • runtimeBindings are opt-ins for canvas-card extras such as the model badge, status dot, and CLI preview line.
  • settings declares the global-settings dependencies. The inspector shows a “Requires” hint when something is missing.
  • lowering is the adapter and actionId used when serializing to DSL.

Installing the same slug again falls through to Update. Uninstalling drops the scheme but leaves existing canvas nodes intact. Those nodes render as unsupported stubs rather than disappearing.

Entries with actionId: "cli-tool" route through the single vendor-neutral cli adapter, and the binary comes from the node’s bin field. Presets like Zowe Command (bin: "zowe") and GitHub Command (bin: "gh") are cli entries with the binary pre-stamped and an inlined command catalog.

Such entries declare a cliTool { name, version, versionCommand? } descriptor. It names the binary the node shells out to and the minimum version it needs. When the Node Hub opens, it probes the machine for each tool by running <name> --version. The probe is argv-only with no shell, and the binary name is validated as a bare token. The Hub then parses the version and surfaces the install and version status for each entry.

New node opens a scheme editor. It covers identity, type, and adapter, and the visible fields follow the selected node type. It also covers the JSON payloads, which are defaults, schema, and for CLI presets the command tree. Saving writes the scheme to your library like any installed node. Installed entries carry an Edit action that opens the same editor on the on-disk scheme. The edit counts as a local edit, so a later catalog update asks before overwriting, and fields the editor does not surface are preserved untouched.

The catalog is served by the Flow Hub service’s nodes registry when one is configured. It combines the seed entries with the latest approved published versions, and the embedded catalog is the offline floor. Installed entries carry a Publish action. It sends your installed scheme, including local edits, to the Hub, where it lands pending admin review. A preflight shows the proposed version, which is monotonic per slug, and any structural validation issues before you commit. Issues warn rather than block, and approving a version that carries them requires an explicit reviewer override. The row then tracks your publish with a Pending / Approved / Rejected pill.

The ai and agentic node types are not catalog entries and never appear in the Hub. They ship as first-class built-ins and cannot be uninstalled. They are merged into the installed set so everything treats them uniformly.

The Model Hub’s download path follows the same install discipline. A catalog download option names an artifact, which includes its format, quantization, size, URL, and an optional SHA-256. The artifact streams to disk with live progress and optional hash verification, and cancel removes the partial file. Download state lives in a store rather than the Hub view, so an in-flight download survives switching tabs. See Model Hub.