Save Video - VHS (ShellAgent Plugin)
Hand a VHS-rendered video back to the app
- filenames
Save Video - VHS (ShellAgent Plugin) is the node that takes a video rendered by VideoHelperSuite and registers it as the result your ShellAgent app returns. It doesn't encode anything itself - the "VHS" in the name is the tell: it accepts a VHS_FILENAMES input, which is exactly what VideoHelperSuite's Video Combine node outputs. Your pipeline does the heavy lifting in VHS; this node just makes sure the app knows where the finished file is.
That dependency is the first thing to know: no VHS, no useful input. The node will still appear, but you can't feed it anything real. If your workflow isn't already using VideoHelperSuite, you'd usually go through the pack's own Video Combine Encrypt node instead.
How it works
The filenames input is the (status, output_files) tuple VHS produces. The node takes the last output file, converts it to a path relative to ComfyUI's base directory, and returns it through the UI result channel under {"ui": {"video": [...]}} - the format the parent app reads. Its validate() method advertises the output as {title: output_name, type: string, url_type: video}, so the app renders a video field rather than a generic link.
Two implementation details worth knowing: if output_files is empty it raises a "filenames are empty" error rather than failing silently, and the node has no output sockets - it's a pure terminal.
Inputs
- filenames - the
VHS_FILENAMESfrom VHS's Video Combine output. Nothing else fits this socket. - output_name - the key the app reads. Default
output_video. Unique names if you save multiple videos.
Installing it
Same one-pack install as the family:
cd ComfyUI/custom_nodes
git clone https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin
restart, or grab ComfyUI-ShellAgent-Plugin from ComfyUI Manager. And install VideoHelperSuite too - without it you have nothing to connect. Both are on ComfyUI Manager; no model downloads involved.
Common issues
- No matching input to connect. VideoHelperSuite isn't installed, or you're looking at the wrong output socket. VHS Video Combine's
filenamesoutput is the one. - "the filenames are empty" error. The VHS node upstream didn't produce output - check its encode settings and that it actually ran.
- The app shows a link instead of a player. The
url_type: videoschema handles rendering; if your app ignores it, that's app-side, not node-side.
It's a thin adapter, and it's only as useful as the VHS setup behind it. Pair it with Video Combine Encrypt if you want the pack's own encoding plus the encrypted-output option.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| filenames | VHS_FILENAMES | The filenames to save. | |
| output_name | STRING | output_video | — |
Outputs (0)
No outputs