Nodes/ComfyUI-ShellAgent-Plugin/Input Text (ShellAgent Plugin)
ComfyUI Node

Input Text (ShellAgent Plugin)

The prompt slot your app can fill in

By myshell-ai·Created 2 years ago·Updated 5 months ago· 52
Input Text (ShellAgent Plugin)
    • text
    ◄input_nameinput_text►
    ◄default_value►
    ◄description►
    ◄choices►

    Input Text (ShellAgent Plugin) is the node that says "here's where the caller's text goes." If you've ever used ComfyUIDeploy or ComfyDeploy's text input nodes, it's the same idea: a named, externally-settable string slot that your workflow reads like a variable. When a ShellAgent app runs your workflow, it fills this in; when you're just testing locally, you type into the widget and it behaves like a normal string constant.

    It's the natural partner to the pack's Output Text node - text comes in through one, results go back out the other.

    How it works

    Under the hood it's a STRING with forceInput: false, meaning the widget holds a value by default but you can still wire another node's string output into it when you want a computed value. The node's validate() method advertises the input's schema to ShellAgent - title from input_name, type string - which is how the app builds its form. Run it and you get a plain string out of the text socket.

    The one genuinely neat feature: the pack's front-end extension adds a "manage choices" button to this node. You can define a fixed list of allowed values, and the widget turns into a dropdown in the app's UI. Great for constraining an agent's options - model names, styles, modes - instead of letting it type anything.

    Inputs and outputs

    • input_name - the variable name ShellAgent sees. Default input_text. Make it descriptive; it's the JSON key.
    • default_value - multiline. The fallback value used when the app doesn't supply one. This is also what you type into when testing standalone.
    • description - optional help text for whoever's using the app.
    • choices - optional comma/JSON list that turns the input into a picklist in the app. Empty string (the default) means free text.

    Output: a single STRING on the text socket. Wire it into your CLIP Text Encode or any string input.

    Installing it

    Same one install as every other node in this pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin
    

    restart, done. Or find ComfyUI-ShellAgent-Plugin in ComfyUI Manager. The pack brings in pydantic, opencv-python, pillow_heif and friends on install, but there are no model files to hunt down.

    Common issues

    • The app shows a free text box when I wanted a dropdown. You set choices but need to actually click manage choices on the node and add entries - the widget manages that list, it's not inferred from a plain string.
    • My prompt keeps getting overwritten. That's the point: when ShellAgent runs the workflow it injects its value into default_value. If you want a fixed prompt, use a regular Text node instead.
    • Nothing shows in the app UI. Check input_name - if it collides with another input node's name, the app may render only one of them.

    This is a tiny node, and that's okay. Its whole job is to be the named entry point for free-form text, and it does that without fuss.

    Categoryshellagent

    Inputs (4)

    NameTypeDefaultDescription
    input_nameSTRINGinput_text—
    default_valueoptSTRING—
    descriptionoptSTRING—
    choicesoptSTRING—

    Outputs (1)

    NameTypeDescription
    textSTRING—