Task Monitor API Node
The ComfyUI Node That Does Nothing but Knows Everything
The "Task Monitor API Node" is the rare custom node that takes no inputs and produces no outputs, yet it might be the most observant thing in your graph. It can't wire into anything, it can't affect a single pixel - and that's the point. Its only job is to sit in the workflow while you run something and tell you exactly what's happening: which node is executing, how many of your nodes have run, what's stuck in the queue, how long it's all taking, and what broke if it did.
Built-in ComfyUI already gives you a progress bar, so who is this for? People who aren't watching the UI. If you run ComfyUI headless, drive it from a script or another app, or keep a long queue of jobs going while you walk away, this gives you a second window into the machine - a web dashboard at http://localhost:8188/task_monitor/index.html and a JSON endpoint you can poll from anything.
How it actually works
Don't trust the name too literally: the node doesn't call any external API, and it needs no key. Under the hood this pack does something more invasive - and more interesting. On import it creates a single TaskMonitorNode instance and patches ComfyUI's PromptServer.send_sync to intercept seven server events (status, execution_start, executing, execution_cached, progress, executed, execution_error). It also installs itself as the global progress-bar hook and registers two routes on ComfyUI's aiohttp server: the /task_monitor static page and GET /task_monitor/status.
From those events it tracks, per task, the total number of nodes in your prompt (excluding itself and input/output nodes) versus how many have actually executed, the currently-running node's class and step count, queue depth, and elapsed time. The status endpoint then assembles it all into one JSON object you can slurp with curl:
curl http://localhost:8188/task_monitor/status
The fields that actually matter if you're building something on top of this:
status-idle,running,queued,completed, orerrorqueue- running and pending tasks with theirprompt_idandclient_idworkflow_progress-total_nodes/executed_nodes/last_executed_node_idcurrent_task_progress- which node is executing and itsstep/total_stepserror_info- exception details when a task diesexecution_time- seconds elapsed for the current task
The dashboard page just polls that endpoint every second and renders it. Nothing fancy, but it's genuinely useful when you've got a render farm of one running in the next room.
Inputs and outputs: there are none
Worth saying plainly because beginners always go looking: info_schema lists no required inputs, no optional inputs, and no outputs. The node is marked as an output node, but its do_nothing function returns an empty tuple. Drop it in the graph anywhere, leave every wire disconnected, and let it observe. The singleton does the work whether or not the node is in the workflow - the node's real contribution is just being present so your saved workflow remembers the monitor exists.
Installing it
No requirements.txt, no pip dependencies beyond setuptools, no model downloads. It's the easiest kind of install:
cd ComfyUI/custom_nodes
git clone https://github.com/hmwl/ComfyUI-TaskMonitor.git
Then restart ComfyUI. Or, if you use ComfyUI Manager (and you should - it's the ecosystem's answer to the missing-node grind), search for "Task Monitor" or "ComfyUI-TaskMonitor" and click install. The pack is registered with ComfyUI's registry under publisher hmwl.
Gotchas
Where people get burned: the URL hardcodes the assumption that you're on the default port 8188. If you launch ComfyUI with --port 8199 (or behind a reverse proxy), the dashboard and endpoint move with you - adjust accordingly.
The bigger one: this is a monkey-patching pack. It wraps the original send_sync and progress hook rather than replacing them outright, so it's careful, but if another extension also pokes those internals you can end up with two nodes fighting over the same hook. It's a known weak spot of the genre, not a defect specific to this one.
And the honest take: this pack is tiny and quiet. Zero impressions on comfy.icu, no community threads about it in the usual places, last touched in May 2025. It works - the source is clean and small enough to read in a sitting - but don't expect active maintenance, and check the code yourself before installing anything that patches the server. Also, the dashboard and status endpoint are unauthenticated, same as the rest of ComfyUI's API; don't expose them to the public internet.
If you run ComfyUI as a local server and ever wished you could peek at the queue from a phone or a script, this is a ten-minute install that scratches exactly that itch.
Inputs (0)
No inputs
Outputs (0)
No outputs