comfy-org/comfy-cli

comfy-custom-nodes-frontend

Packaged fallback for shipping browser-side assets from a custom-node pack.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/comfy-org/comfy-cli --skill comfy-custom-nodes-frontend

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Frontend extension fallback

Two declarations expose a pack's browser-side directory, and both write into one registry keyed by name: module-level WEB_DIRECTORY in the pack's __init__.py, keyed by the pack's directory name, and [tool.comfy].web in pyproject.toml, keyed by project.name. Either is honored only when the directory exists on disk; a wrong relative path is skipped with no error, so "my script never loads" is usually a path. [tool.comfy].web also requires that the runtime can read pyproject.toml and is skipped with only a log warning otherwise, so WEB_DIRECTORY has fewer preconditions.

Declare one. Declaring both resolves by name rather than merging: equal names — the common case — mean WEB_DIRECTORY applies second and silently drops the pyproject.toml entry; differing names serve both prefixes and the second registration of one name raises.

Files are served at /extensions/<name>/…, and the listing the frontend loads enumerates **/*.js only, so build TypeScript or JSX to .js. An extension's name must be unique; registering it twice raises.

Treat frontend state as presentation only. Every non-secret value the Python node reads must live in the persisted widget value, because the browser layer is absent for an API-submitted prompt. Never put credentials in widget values — read secrets from the environment or the runtime's secret mechanism.

Related by task

from this repository

More skills

All skills
comfy-org
Community

comfy

Generate images, videos, audio, and 3D via ComfyUI — CLI surface, workflow creation hierarchy (template → fragment → raw JSON), domain gotchas, cloud auth, multi-stage orchestration.

installs
2
GitHub stars
1K
Updated
Oct 20
comfy-org
Community

comfy-agent-permissions

Use when a permission blocks the local comfy agent — a folder it cannot read or write, a host a download was refused for, a shell it does not have — to know what the agent may reach by default, how a request is recorded (requestpath, requesthost) and how only the user approves it (the agent panel or the in-chat card), the start-time settings, and what can never be granted.

installs
2
GitHub stars
1K
Updated
Oct 20
comfy-org
Community

comfy-build

Build a custom ComfyUI environment on the Comfy developer platform with comfy-cli: turn a local install, a ComfyUI Desktop snapshot, a workflow JSON, or nothing but a Dockerfile, a Modal script or a sentence into a committed comfy-build.yaml and a green release. Use whenever the user wants to package, build, pin, or reproduce a ComfyUI environment, decide the dependency pins before the first cut, or read a failed build's log. Stops at a green release; comfy-deploy takes it from there.

installs
2
GitHub stars
1K
Updated
Oct 20
comfy-org
Community

comfy-build-authoring

Reference skill cited by comfy-build. Read it with comfy skills show comfy-build-authoring when authoring a comfy-build.yaml definition by hand — the user has no ComfyUI install to scan, or you are editing a spec's models and customNodes directly. Covers searching the node registry, resolving model filenames to public sources, choosing the directory a weight lands in, and every field of the definition schema.

installs
2
GitHub stars
1K
Updated
Oct 20