Now on the Comfy Registry. Install ComfyUI Agent Panel
(
comfyui-agent-panel) from ComfyUI-Manager, or install from git for the
latest build (see Setup below).ws://127.0.0.1:9199) serves every provider; each panel
tab picks its provider in the handshake. The bridge is loopback-only, and the
panel executes a fixed allowlist of graph commands (no arbitrary
JavaScript).
New here: Backends / providers explains the picker, the provider-neutral
AgentBackend port, and the capability matrix (what’s identical across Claude and
ChatGPT, and the few things that differ).Setup
-
Install the pack — search
comfyui-agent-panelin ComfyUI-Manager, or from git: -
Sign in to the provider you want once, so the background agent can use your
subscription:
-
Start the orchestrator on your machine and leave it running — see
Starting the panel orchestrator:
- Restart ComfyUI, open the Agent tab, pick a provider (Claude / ChatGPT chips), and click Connect. The panel links to the orchestrator’s loopback bridge. Type a request and the agent responds. Disconnect unlinks it; the orchestrator keeps running until you stop it.
claude mcp add, no API key. The panel is a pure-frontend extension and cannot
spawn the orchestrator itself, so it is always a process you start — the panel
auto-connects to a bridge that is already running. Prerequisites are Node.js/npx
on your PATH and the provider login above. Change the bridge port with
COMFYUI_MCP_BRIDGE_PORT.
Driving a remote ComfyUI (a cloud GPU pod, another box on your LAN)? The setup
above still applies, but run the orchestrator on your own machine, not the
remote box:
npx -y comfyui-mcp@latest connect <remote-url> handles the rest,
including a secure tunnel back to the pod’s HTTPS page. Then click Connect in the
panel. See Cloud deployment for the full walkthrough.Provider onboarding. At Connect the panel checks each provider’s readiness (its
CLI on your PATH + a login on disk; the macOS Keychain is handled). An onboarding card
appears only when neither provider is signed in. If your saved pick isn’t usable
the panel auto-switches to a ready provider (your saved preference is kept), and a
not-ready provider’s row offers a “set up” action that seeds the one-time
claude / codex login step. See Backends → readiness & onboarding.What it can do
The agent (Claude or ChatGPT) loads comfyui-mcp’s model skills (IDEOGRAM, WAN, LTX, Qwen, and more), so it already knows the models you run — Claude natively, and ChatGPT via the same knowledge exposed as MCP tools (knowledge parity). It can generate images, video and audio, inspect and manage your ComfyUI, and reason about your setup — then reply in the panel chat. It can also load a whole workflow or installer pack in one shot (panel_load_workflow pack:<name>) and is cost-aware: bundled packs are
local-GPU / free, and for an ad-hoc graph the agent checks the runtime
(list_packs with action:"check_runtime") and asks before spending paid API credits. See
Skills, Packs & Runtime Cost.
Driving the live graph
The autonomous agent works your live ComfyUI through a fixed allowlist ofpanel_* commands — no arbitrary JavaScript. Every graph mutation goes through
LiteGraph’s change tracking, so each is undoable with Ctrl+Z. The same
panel_* surface is exposed identically to both backends (in-process for Claude,
over a loopback HTTP MCP for ChatGPT/Codex), so parity is automatic.
Read
Edit the graph (undoable)
Subgraphs
Spatial layout
The agent can see node geometry —panel_query_graph detail rows return each node’s
pos/size, plus subgraph input/output rails, groups, and per-node
color/collapsed — and arrange the canvas with a matching set of writes,
then screenshot the result to judge its own layout. A workflow-layout
skill ties these into a dependency-layered, overlap-free auto-layout whose
headline rule is always leave inputs and outputs exposed so you can jump
straight in.
Workflow tabs
Load a workflow in one shot
Knowledge & cost awareness
The agent discovers bundled expertise and checks runtime cost before spending credits (same tools on both backends — see Skills, Packs & Runtime Cost):Run & view
Custom nodes (built-in ComfyUI Manager)
MCP & session
Working with the user
Every tool accepts an optional
tab_id — each browser tab holds its own
connection, and routing defaults to the only tab, or the tab the user last
typed in.Rewind & rollback
Past messages aren’t frozen. Hover any message and the ✎ edit button opens a rollback modal: roll back the code (revert the graph to that turn’s snapshot), the conversation (fork the session back to that point), or both, then resend an edited message from there. Graph reverts use per-turn snapshots, so undoing a turn restores exactly the graph it started from. Two shortcuts cover the common cases:/revert— undo the graph edits from the last turn.- Double-Esc — a quick last-turn rewind: revert the graph and recall the message into the composer to edit and resend.
Code (graph) rollback works on both providers — it lives in the
orchestrator via per-turn snapshots. Conversation rollback (forking the chat
back to a past turn) is currently Claude-only; the ChatGPT/Codex backend
resumes whole threads only, so the panel gates that scope off for it. See the
capability matrix.
Pending-message tray
Type while the agent is busy and your message doesn’t get lost in the chat — it waits in a fixed Pending tray docked above the downloads tray, out of the chat flow. Each pending message has edit, send-now, and delete buttons, and a drag handle (≡, on the left) to reorder how the agent flushes them. Send-now interrupts the current turn to steer it immediately. When a pending message is dequeued it materializes at the bottom of the chat, so the transcript reads in the exact order the agent (Claude or ChatGPT) processed it.Destructive-op confirmation
Irreversible actions ask first.panel_clear (wipe every node) and
panel_restart_comfyui pop a yes / no card and only act on yes — so the
agent can’t silently nuke your graph or bounce ComfyUI.
Reconnect durability
A wedged orchestrator no longer strands the panel. If a previous orchestrator is still holding the bridge port, clicking Connect reclaims that zombie instead of failing — the panel reconnects rather than leaving you stuck.Composer attachments
Attach, drag-and-drop, or paste into the composer. Alongside images, the composer now accepts video, workflow.json, and text files, so you
can hand the agent a reference clip, a workflow to adapt, or a notes file
directly.
Rich media in agent replies
When a run’s media is fed back to the agent, the output isn’t just an image block — it carries metadata the agent can reason about: each output’s path (subfolder-relative), file size, pixel dimensions, and asset-set grouping (“output K of N from this run” with its sibling filenames, or “single output”), plus render duration and completion time. Video storyboards add the format and the real frame count / fps when the payload carries them. So the agent names the actual saved result accurately and can talk about size, dimensions, and how many files a run produced.Copy & wrap code blocks
Rendered fenced code blocks get a hover Copy button and a persisted global line-wrap toggle (off by default — long lines scroll horizontally until you turn it on). Inline code gets its own Copy. Both are styled to match the panel.Render-stall warning
The orchestrator runs a passive watchdog over your ComfyUI queue: a render whose node/progress stops advancing is flagged as stalled and the agent is told (so it stops blindly stacking jobs behind a wedged one). The threshold is the Render stall warning (seconds) setting under Settings → Comfy MCP Agent → General (default 180s, range 15–3600). It’s sent on Connect and pushed live — changing it applies without a reconnect. See Configuration →COMFYUI_MCP_STALL_S.
Background-tab reliability
Streamed replies now render even when the ComfyUI tab is in the background. Previously the reply typewriter ran onrequestAnimationFrame, which the browser
pauses in a hidden tab — so switching away during a long multi-stage run left the
bubble empty with a stuck streaming cursor, looking like the agent was “stuck
thinking” even though the turn had finished. The reply now finalizes synchronously
when the tab is hidden, and a visibilitychange handler flushes any pending reply on
hide and resumes the typewriter on return. Foreground animation is unchanged.
RunPod cloud control
A toolbar host pill reads 🟢 Local · your rig or **🔵 RunPod ·<pod> ·
GPU · ·hr / ComfyUI URL / idle auto-stop countdown), a pod dropdown that
lists your pods by name, Connect / Start / Stop / Use Local, and a
confirm-armed Deploy. Set RUNPOD_API_KEY once in the API-Keys card and you
can deploy, monitor, switch local⇄pod, and stop a cloud GPU without touching the
RunPod console — the host pill always tells you where the next render runs. See
Cloud deployment and the blog
Run ComfyUI on a rented cloud GPU.
CivitAI browser
The Civitai toolbar button opens a full CivitAI browser — images, videos, checkpoints, LoRAs and workflows with search, filters, and a fullscreen viewer. Pick a result to share it with the agent, download it to your machine, or save an embedded workflow to the canvas. The story: CivitAI inside ComfyUI.See also
- Mobile app (beta) — pair your phone with the panel and chat with the agent on the go
- Backends / providers — Claude vs ChatGPT, the picker, capability parity
- Skills, Packs & Runtime Cost — knowledge parity + the cost guardrail
- Bridge configuration
- Cloud deployment — drive the panel against a remote ComfyUI pod (RunPod, etc.)
- Self-hosted relay — run your own tunnel infrastructure for the bridge
- The Claude Code plugin — model skills, slash commands, agents
- comfyui-mcp on GitHub · comfyui-mcp-panel on GitHub